首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交叉编译linux模块w/o目标内核头但目标Module.symvers可用

交叉编译linux模块w/o目标内核头但目标Module.symvers可用
EN

Stack Overflow用户
提问于 2016-02-23 23:31:42
回答 1查看 537关注 0票数 2

我在玩一个运行linux的嵌入式系统(Bebop无人机)。我有:

  1. 从制造商(thx到GPL)的linux内核源代码树 (3.4.11)
  2. 制造商的.config文件
  3. 没有来自制造商的“内核标题”
  4. 设备上的NO /lib/modules/X/build区域
  5. 活动目标内核和设备上的一些模块(arm7)
  6. Ubuntu 15作为交叉编译平台
  7. Modules.symvers通过运行内核重新创建,这要归功于https://glandium.org/blog/?p=2664&cpage=1#comment-854639

我想将模块option.ko添加到设备中。我在.configm usbserial、usb_wwan、et.al中配置了所需的选项。(通过make oldconfig,make menuconf)

所有将模块加载到目标系统的尝试都失败,因为dmegs声明ko文件的module_layout具有与内核需要不同的CRC。将“正确”CRC编辑到ko文件中,只会将投诉转移到模块所需的另一个符号上。

无论我在交叉编译时尝试了什么,*.ko文件都有不匹配的符号CRCs!

我不知道什么时候从目标系统中溜进来“不匹配”的Module.symvers,模块交叉编译的最后阶段打破了我的诡计,重新创建了Module.symvers,覆盖了所需的目标CRCs。

,考虑到我所使用的正是制造商发布的源树(而活着的内核应该正在使用),为什么这个符号问题首先出现在上?

如何解决符号不匹配问题和为旧运行的内核生成“新”模块?

提亚

EN

回答 1

Stack Overflow用户

发布于 2016-02-25 11:27:19

问题解决了,编译器是关键的,它必须是/proc/version中的一个专用程序,参见上面的第四个注释。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35590392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档