首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到模块: modprobe

找不到模块: modprobe
EN

Stack Overflow用户
提问于 2014-11-24 13:33:51
回答 2查看 18.9K关注 0票数 3

我已经编写了一个简单的hello world内核模块,编译并安装在/lib/modules/kernel_version/extra/路径中。

对于insmod,它可以正确加载,但是对于modprobe,我得到了一个错误

代码语言:javascript
复制
modprobe: FATAL: Module hello_world.ko not found.

我已经安装了所有必备的。

以下是要编译和安装的Makefile:

代码语言:javascript
复制
make -C /lib/modules/$(shell uname -r)/build M=$(PWD)  modules
make -C /lib/modules/$(shell uname -r)/build  M=$(PWD)  modules_install

请告诉我怎么做。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-11-24 13:49:13

这是因为modprobe通过读取/lib/modules.dep/$( uname -r)/下的一个名为modules.dep的文件来插入模块。因此,在编译和安装模块之后,请确保再次重新创建该依赖文件。

下面是它是如何完成的

外壳模块安装完成后,请检查是否已将其复制到/lib/modules/

  • if,然后转到-> /lib/

  • /$(
  1. -r)/,并使用 and 命令创建新模块的依赖项列表。

模块完成后,您将能够在文件/lib/

/$(shell uname -r)/modules.dep下找到您的模块名。

在此之后,您可以使用modprobe插入模块。

编辑:

下面是我使用根权限构建和测试时使用的Makefile

代码语言:javascript
复制
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
票数 10
EN

Stack Overflow用户

发布于 2016-11-29 17:50:44

我曾经遇到过同样的问题。我的问题是,我在发出命令时没有删除扩展名。也就是说。

代码语言:javascript
复制
modprobe foo.ko

给出了上述错误。但这一点:

代码语言:javascript
复制
modprobe foo

成功了!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27098426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档