- 准备好要编译到内核的模块源码
#include <linux/init.h> #include <linux/module.h> static int __init hello_init(void) { printk("hello world!\n"); return 0; } static void __exit hello_exit(void) { printk("<7>hello <0>exit\n"); } module_init(hello_init); module_exit(hello_exit); MODULE_LICENSE("GPL");
这是一个简单的模块hello.c。
- 拷贝文件 如果要将刚才的驱动程序直接编译到内核,那么我们必须把hello.c拷贝到内核的某个目录下。
字符设备可以考虑放到以下目录:
2. 修改Makefile
sudo vim Makefile
3. 修改Kconfig
sudo vim Kconfig
6. 重新配置 执行
make menuconfig
输入 / 可以根据关键字查找模块所在位置。
根据路径找到我们刚才的模块配置路径:
按下空格键设置为*,也就是让对应模块编译到内核中,然后保存退出。
5. 重新编译内核
make -j16
- 将重新编译后的内核载到开发板中
模块成功加载到内核中