1. 构建测试模块:hello
2. 在hello/下新建hello.c Makefile Kconfig三个文件
hello.c
#include <linux/module.h> //所有模块都需要的头文件
#include <linux/init.h> // init&exit相关宏
#include <linux/kernel.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("xxx");
MODULE_DESCRIPTION("hello world module");
static int __init hello_init(void)
{
printk(KERN_WARNING "hello world.\n");
return 0;
}
static void __exit hello_exit(void)
{
printk(KERN_WARNING "hello exit!\n");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile:
obj-$(CONFIG_HELLO) += hello.o
Kconfig:
menu "HELLO TEST Driver "
comment "HELLO TEST Driver Config"
config HELLO
tristate "hello module test"
default y
help
This is the hello test driver.
endmenu
3. 修改上一级目录的Kconfig和Makefile
进入/drivers/
1)编辑Makefile,在后面添加一行:
obj-$(CONFIG_HELLO) += hello/
2)编辑Kconfig,在后面添加一行:
source "drivers/hello/Kconfig"
3)添加config定义,在defconfig文件中添加:
CONFIG_HELLO=y
4. 编译
在out\target\product\lahaina\obj文件夹下查看对应路径(out\target\product\lahaina\obj\kernel\msm-5.4\drivers),出现hello.o文件即编译成功。