将模块编译入内核
文章目录
- 准备好要编译到内核的模块源码
#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
- 将重新编译后的内核载到开发板中
模块成功加载到内核中