我有一个关于 modprobe
命令的问题... 我编译了一个简单的内核模块并使用 insmod
加载它,加载成功了,当我运行lsmod
命令时,可以在输出列表中看到它。但是当我使用 modprobe
命令插入这个模块时,我遇到了一个致命错误:
root@okapi:/home/ravi# modprobe ./hello.ko
FATAL: Module ./hello.ko not found.
root@okapi:/home/ravi#
以下是模块代码:
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
和 Makefile
obj-m += hello.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
/lib/modules/$(uname -r)
目录中,那么它能正常运行吗? - Ravi Guptamodules_install
,你可以使用它来安装你的模块。 - Shahbazsudo depmod
命令重新生成模块依赖,然后执行modprobe your_module
命令。 - Danijel