我刚刚开始学习内核模块,我在第一个程序,这是我的代码和Makefile
- > hello-1.c / 我的第一个程序 /
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void ){
printk(KERN_INFO "Hello this is known as module.\n" );
return 0;
}
void cleanup_module(void ){
printk(KERN_INFO "Bye. We'll come back soon.\n" );
}
- &GT;生成文件
obj-m += hello-1.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
现在问题是我能够make all
但是我无法加载它,实际上,我试过了
insmod ./hello-1.ko
这对我不起作用。
- 错误:insmod:错误:无法插入模块./hello-1.ko:不允许操作
所以,我做了sudo modprobe -v hello-1.ko
。
- 错误:insmod:错误:无法插入模块./hello-1.ko:不允许操作
但是,在执行lsmod
时,我能够看到我的模块,我也能够modinfo hello_1
。
因此,我尝试了modprobe hello_1
,但它正在显示
- 错误:modprobe:致命错误:目录/lib/modules/4.4.0-43-lowlatency中找不到模块hello_1
请帮助我找到我缺少的地方,因为这是我的第一个项目。谢谢!