交叉编译linux模块,不带目标内核头,但target module.symvers可用
我正在玩弄一个运行linux的嵌入式系统(Bebop Drone)。我有:交叉编译linux模块,不带目标内核头,但target module.symvers可用,module,linux-kernel,cross-compiling,Module,Linux Kernel,Cross Compiling,我正在玩弄一个运行linux的嵌入式系统(Bebop Drone)。我有: linux内核源代码树(3.4.11)由制造商提供(从thx到GPL) .config制造商提供的文件 没有制造商提供的“内核头” 设备上没有/lib/modules/X/build区域 活动目标内核和设备上的一些模块(arm7) Ubuntu 15作为交叉编译平台 由于 我想将module option.ko添加到设备中。 我在.configm usbserial、usb_wwan等中配置了所需的选项。 (通过mak
TIA案例已解决,编译器至关重要,它必须是/proc/version中指定的编译器,请参见上面的第四条注释。只需从源代码(在主机上)使用“来自制造商”的完整
.config
文件构建内核即可。这样一来,所有的内核符号都将与目标内核上的相同。这是行不通的。提取源代码,cp.config文件,make zImage,make modules生成一个Module.symvers,该Module.symvers与活动内核的CRC不匹配。编译器类型有多重要?parrot编译的die doc的复杂版本/标志等在哪里?编译器类型的重要性如何?
编译器类型可能很关键。编译器版本差异可能对CRC不太重要。您可以尝试用target的Module.symvers
文件替换您编译的内核中不兼容的Module.symvers
,然后编译您的模块。编译类型就是罪魁祸首:Sourcery CodeBench Lite 2012 03-57确实使用了/proc/version中指定的方法重新生成了运行系统的CRC!欢迎来到堆栈溢出!在这里,我们维护标题或正文中没有“已解决”标记的问题帖子。相反,我们允许OP回答他的问题,经过一段时间后,他回答了。这实际上意味着OP已经找到了解决问题的方法。从问题标题中删除(回滚)[SOLVED]
后缀,将最后一条评论作为答案,并将其标记为已接受。