insmod:'错误...模块格式无效' - 交叉编译用法

时间:2018-03-06 20:26:18

标签: linux linux-kernel kernel cross-compiling insmod

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

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

[nn.nnn]' module.ko&#39 ;:版本魔术' 4.9.0-00011-ge82bfab-dirty SMP mod_unload  aarch64'应该是' 4.9.0 SMP mod_unload aarch64'

很少有评论:

  • 检查过上一篇与帖子相关的问题(insmod error: inserting './hello.ko': -1 Invalid module format"),但它使用了' uname -a'这对我来说没什么用,因为我使用我的Linux操作系统作为其他操作系统(嵌入式)的编译环境 - 交叉编译用法。
  • 我在内核源代码树(内核下载包)中搜索了版本字符串,但只找到了自动生成字符串的位置(在../include/ generated / utsrelease.h)
  • Makefiles既用于Kernal(我使用uImage:u-boot Legacy uImage,Linux / OS Kernel),也用于module.ko使用相同的CROSS_COMPILE路径。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

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