我已经编写了一个简单的hello world内核模块,编译并安装在/lib/modules/kernel_version/extra/路径中。
对于insmod,它可以正确加载,但是对于modprobe,我得到了一个错误
modprobe: FATAL: Module hello_world.ko not found.我已经安装了所有必备的。
以下是要编译和安装的Makefile:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules_install请告诉我怎么做。
提前谢谢。
发布于 2014-11-24 13:49:13
这是因为modprobe通过读取/lib/modules.dep/$( uname -r)/下的一个名为modules.dep的文件来插入模块。因此,在编译和安装模块之后,请确保再次重新创建该依赖文件。
下面是它是如何完成的
外壳模块安装完成后,请检查是否已将其复制到/lib/modules/
模块完成后,您将能够在文件/lib/
/$(shell uname -r)/modules.dep下找到您的模块名。
在此之后,您可以使用modprobe插入模块。
编辑:
下面是我使用根权限构建和测试时使用的Makefile。
target ?= hello_world
obj-m = $(target).o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules_install
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean发布于 2016-11-29 17:50:44
我曾经遇到过同样的问题。我的问题是,我在发出命令时没有删除扩展名。也就是说。
modprobe foo.ko给出了上述错误。但这一点:
modprobe foo成功了!
https://stackoverflow.com/questions/27098426
复制相似问题