我正在玩一个运行linux的嵌入式系统(Bebop Drone)。我有:
我想将模块option.ko添加到设备中。 我在.configm usbserial,usb_wwan,et.al中配置了所需的选项。 (通过make oldconfig,make menuconf)
将模块加载到目标系统的所有尝试都失败,dmegs声明ko文件的module_layout具有与内核所需的CRC不同的CRC。 将“正确”CRC重新编入ko文件只会将投诉转移到模块所需的另一个符号。
无论我在交叉编译时尝试什么,* .ko文件都有不匹配的符号CRC!
我不知道何时从目标系统潜入“不匹配”的Module.symvers,模块交叉编译的最后阶段破坏了我的诡计并重新创建了Module.symvers,覆盖了所需的目标CRC。
为什么这个symvers问题首先出现,考虑到我正在使用制造商正在发布的源代码树(以及据说正在使用的内核)?
如何修复symvers不匹配问题,为旧的运行内核生成“新”模块?
TIA
答案 0 :(得分:1)
案例解决了,编译器很关键,它必须是/ proc / version中的一个指定,见上面的第四条评论。