在 android11 源码的kernel\drivers\hello目录下创建以下3个文件:

hello.c:

#include <linux/init.h>
#include <linux/module.h>

static int hello_init(void)
{
    printk(KERN_ALERT "Hello, world andy0325 \n");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("Dual BSD/GPL");


Makefile:

obj-m += hello.o

Kconfig :

config HELLO
tristate "First Android Driver"
default m
help
This is the first Android driver.

在源码的kernel\drivers\Makefile 文件中添加一行:

obj-y				+= hello/  

然后开始编译内核,我的这个开发板的编译命令为:

./build.sh  -K 

编译成功之后,可以看到在源码的kernel\drivers\hello目录生成了 hello.ko 文件,

然后把 hello.ko push到 设备的 sdcard,然后在adb shell 下执行

insmod   hello.ko

然后执行

dmesg 

可以看到 Hello, world andy0325 的输出。

成功 。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐