使用 linux-header 板上编译模块测试
在安装了Linux-Header后,可以编译一个简单内核模块验证:
1 创建测试模块
// hello.c
#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
static int __init hello_start(void) {
printk(KERN_INFO "RK3588: Headers 5.10.160 loaded!\n");
return 0;
}
static void __exit hello_end(void) {
printk(KERN_INFO "RK3588: Module unloaded.\n");
}
module_init(hello_start);
module_exit(hello_end);
2 编写 Makefile
obj-m := hello.o
KERNEL_SRC := /usr/src/linux-headers-5.10.160+
PWD := $(shell pwd)
all:
$(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules
clean:
$(MAKE) -C $(KERNEL_SRC) M=$(PWD) clean
3 编译模块
make # 成功会生成 hello.ko
4 加载测试
sudo insmod hello.ko # 加载模块
sudo rmmod hello # 卸载模块
sudo dmesg | tail -10 # 查看内核日志
成功输出:
[ 123.456789] RK3588: Headers 5.10.160 loaded!
[ 125.789012] RK3588: Module unloaded.
留下评论