首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >insmod不插入模块无效模块格式

insmod不插入模块无效模块格式
EN

Unix & Linux用户
提问于 2021-09-13 21:55:53
回答 1查看 2.1K关注 0票数 0

我正在为mcp251xfd构建和安装一个linux内核驱动程序。构建似乎是成功的(我得到了.ko文件),但是当我调用insmod来安装它时,我得到:

代码语言:javascript
复制
insmod: ERROR: could not insert module mcp251xfd.ko: Invalid module format

在谷歌搜索中,似乎最常见的建议是使用完全相同的源代码来构建您想要构建的内核版本。因此,不名的-a返回:

代码语言:javascript
复制
Linux fedora 5.11.3-300.fc34.x86_64 #1 SMP Thu Mar 4 19:03:18 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux.

于是,我下载了5.11.3版本的内核源代码,运行了make,编辑了包含驱动程序的.config文件,运行了make准备,然后进入驱动程序源代码目录并调用:

代码语言:javascript
复制
make -C ~/linux-5.11.3 -M=`pwd` modules

这是成功的,因为它生成了文件mcp251xfd.ko。就在这之后,我得到了错误。我给dmesg打电话,它会返回:

代码语言:javascript
复制
mcp251xfd: version magic '5.11.3 SMP mod_unload ' should be '5.11.3-300.fc34.x86_64 SMP mod_unload '

所以我不知道下一步该怎么办。5.11.3到底不是正确的版本吗?

我注意到在我的.config文件中,我看到了"CONFIG_BUILD_SALT="5.11.3-300.fc34.x86_64“,所以它看起来与我的系统版本号相匹配。在"make模块”中是否有额外的命令行选项指示使用"salt“版本号?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-09-14 13:14:57

解决方案是打开Makefile ( linux源代码树上的那个)并修改行:

代码语言:javascript
复制
EXTRAVERSION = -300.fc34.x86_64

它与安装的OS的uname -r文本匹配。

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

https://unix.stackexchange.com/questions/668868

复制
相关文章

相似问题

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