insmod: 'error ... invalid module format' - 交叉编译用法



我想解决这个错误,显然,在更新和构建内核并使用以前的 Linux 设备驱动程序模块时发生(我更改了内核的一两个参数设置,编译和构建并获取新的内核映像,问题开始了)。

但是,在构建新的模块设备驱动程序时,我不断收到错误:

[nn.nnn] 'module.ko':版本魔术'4.9.0-00011-ge82BFAB-脏SMP mod_unload aarch64' 应为 '4.9.0 SMP mod_unload aarch64'

几点评论:

  • 检查了上一篇文章相关的问题(insmod错误:插入"./hello.ko":-1 无效的模块格式"),但它使用"uname -a",这对我没有帮助,因为我使用我的 Linux 操作系统作为编译环境到其他操作系统(嵌入式) - 交叉编译用法。
  • 我在内核源代码树(内核下载的软件包)中搜索了版本字符串,但只找到了自动生成字符串的位置(在../include/generated/utsrelease.h)
  • 内核的制作文件(我正在使用uImage:u-boot Legacy uImage,Linux/OS内核)和使用相同的CROSS_COMPILE路径的module.ko。

我在这里缺少什么?

发现了问题。 以为我使用的是正确的内核编译,但是 - 正如@Tsyvarev所暗示的那样,我一直使用另一个内核版本。:-)

最新更新