编译 android 内核,[原创]安卓内核驱动编译方法
设置完这些基本上就ok了。首先我们要编译的一种是可动态加载的内核驱动。去到 goldfish/drivers 文件夹创建一个文件夹。就叫helloworld吧。不过其实对于这种动态加载的内核驱动,不一定需要在这个drivers文件夹下面,因为最后只要得到那个ko模块就好了。在这个文件夹里面,我们创建了Makefile和hello.c文件。Hello.c文件内容如下。#include#includ.
设置完这些基本上就ok了。
首先我们要编译的一种是可动态加载的内核驱动。
去到 goldfish/drivers 文件夹创建一个文件夹。就叫helloworld吧。不过其实对于这种动态加载的内核驱动,不一定需要在这个drivers文件夹下面,因为最后只要得到那个ko模块就好了。
在这个文件夹里面,我们创建了Makefile和hello.c文件。
Hello.c文件内容如下。
#include
#include
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Xudong Shao 2018");
MODULE_DESCRIPTION("Hello World Kernel Module for Android");
static int hello_init(void)
{
printk("Hello Kernel World....\n");
return 0;
}
static void hello_exit(void)
{
printk("Goodbye Kernel World\n");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile文件内容如下。
obj-m := hello.o
KERNEL_DIR = ~/Documents/kernel/goldfish
all:
make -C $(KERNEL_DIR) M=$(PWD)/ ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules
然后在helloworld文件夹里面执行make就可以了。你可以看到那里出现了”hello.ko”文件。开启你的模拟器,将hello.ko 给push到/data/local/tmp下面,采用如下命令加载写在驱动就可以看到输入和输出了。
更多推荐
所有评论(0)