在Android中单独编译linux kernel驱动模块

本文参考了:http://blog.csdn.net/qq1084283172/article/details/56958136

2018-9-8 再次编辑

Makefile

ifneq ($(KERNELRELEASE),)obj-m += hello.oelse    KERNELDIR ?= /out/target/product//obj/KERNEL_OBJ/    PWD ?= $(shell pwd)    ARCH = arm64    CROSS_COMPILE=/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-.PHONY: modules cleanmodules:    $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules    #这里还要给签名模块,具体操作见下文链接clean:    @rm -rf *.o *.order *.symvers *.mod.* .*.o.cmd .*.mod.o.cmd .*.ko.cmd .tmp_versions *.koendif

product_name 是产品的名字

注意事项

1. 关于KERNELDIR的值

如果你的“内核”编译系统生成中间文件不是在out路径下,而是在如下路径:

<aosp_path>/kernel

那么KERNELDIR的值要改为路径,而不是out下面。

2.关于ARCH和CROSS_COMPILE的值

如果你的ARCH是arm不是arm64,那么你的CROSS_COMPILE的值也要改变。具体路径差不多,这里就不列出来了。

3. 签名问题

android的驱动模块都是开启了签名的。这样子直接编译好的,是不能直接用的。具体怎么签名看我的这篇博客Linux kernel模块内核签名问题解决方法

End

最后,使用make命令即可编译生成正确的hello.ko文件。

更多相关文章

  1. Android(安卓)studio自动下载第三方jar包速度慢的问题解决方法
  2. Android判断某一应用是否正在运行与判断某一Service是否正在运行
  3. android取得当前程序File与Cache路径!
  4. ubuntu 10.4 下的 android 编译环境 配置
  5. Android的startActivity启动出错
  6. Android开发:Android虚拟机启动错误Can't find 'Linux version '
  7. Android(安卓)ViewPager分页功能
  8. android通过servlet上传文件到服务器
  9. Android(安卓)Util工具类的封装

随机推荐

  1. 深度解析MySQL启动时报“The server quit
  2. MySQL5.7.18修改密码的方法
  3. Linux CentOS MySQL数据库安装配置教程
  4. Centos 7下使用RPM包安装MySQL 5.7.9教程
  5. MySQL生僻字插入失败的处理方法(Incorrec
  6. Mysql中的join操作
  7. win10下安装两个MySQL5.6.35数据库
  8. win10 mysql 5.6.35 winx64免安装版配置
  9. mysql 5.5 安装配置图文教程
  10. MySQL数据库卸载的完整步骤