我想解决这个错误,显然是在更新和构建内核并使用以前的 Linux 设备驱动程序模块时发生的(我将一个或两个参数设置更改为内核,编译并构建并获取新的内核映像,为此问题开始)。
但是,在构建新的模块设备驱动程序时,我不断收到错误消息:
[nn.nnn]'module.ko':版本魔法'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)
- 内核的 Makefile(我使用的是 uImage:u-boot Legacy uImage,Linux / OS Kernel)和 module.ko 使用相同的 CROSS_COMPILE 路径。
我在这里缺少什么?