我正在为mcp251xfd构建和安装一个linux内核驱动程序。构建似乎是成功的(我得到了.ko文件),但是当我调用insmod来安装它时,我得到:
insmod: ERROR: could not insert module mcp251xfd.ko: Invalid module format在谷歌搜索中,似乎最常见的建议是使用完全相同的源代码来构建您想要构建的内核版本。因此,不名的-a返回:
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准备,然后进入驱动程序源代码目录并调用:
make -C ~/linux-5.11.3 -M=`pwd` modules这是成功的,因为它生成了文件mcp251xfd.ko。就在这之后,我得到了错误。我给dmesg打电话,它会返回:
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“版本号?
发布于 2021-09-14 13:14:57
解决方案是打开Makefile ( linux源代码树上的那个)并修改行:
EXTRAVERSION = -300.fc34.x86_64它与安装的OS的uname -r文本匹配。
https://unix.stackexchange.com/questions/668868
复制相似问题