首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何生成Module.symvers?

如何生成Module.symvers?
EN

Unix & Linux用户
提问于 2011-11-16 10:59:51
回答 2查看 54.4K关注 0票数 23

我最近通过了OpenSuse解包内核源rpm离开系统?;由于在我的机器上花费了> 10小时,想象一下我的惊讶,在完成了这里描述的过程之后,我在任何地方都没有找到Module.symvers

当我搜索"generate Module.symvers“时,我得到以下内容:

注意:即使设置了modules_prepare CONFIG_MODVERSIONS,“”也不会构建;因此,需要执行完整的内核构建以使模块版本控制work. (Linux内核文档::kbuild:内核文档)得以执行。

..。但是我并没有真正理解它--内核不是在前面的步骤中构建的吗(在上面的链接中描述过)?我当然知道CC需要> 10小时才能生成一大堆*.o文件,而LD则需要将它们链接起来,所以肯定已经构建了一些东西。但如果是这样,那么Module.symvers在哪里呢?

更明确地说,我应该调用什么命令来生成Module.symvers?我知道make prepare不能工作--但是命令是什么呢?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2011-11-16 22:51:45

Module.symvers是在编译模块时生成的。运行make modules,您应该在内核树的根处得到一个Module.symvers文件。

请注意,如果您只运行make而不运行make modules,那么您还没有构建任何模块。来自内核本身的符号(vmlinux或依赖于体系结构的图像格式之一)是以System.map表示的。

票数 23
EN

Unix & Linux用户

发布于 2017-07-16 02:47:51

对于那些在googling上搜索到这个问题的人,在编译德里克·莫洛伊的一个示例LKM时得到的警告:你可以简单地用touch Modules.symvers做一个空的。如果您的内核不使用modversion(操作系统使用的CRCs来帮助确保模块与内核匹配),而且您的模块对其他模块没有任何依赖,那么这将足以抑制警告。

代码语言:javascript
运行
复制
WARNING: Symbol version dump ./Module.symvers
         is missing; modules will have no dependencies and modversions.

该空文件与gcc生成的文件一样好,该文件的符号都具有相同的0x00000000 CRC值,在没有修改的系统中。

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

https://unix.stackexchange.com/questions/24704

复制
相关文章

相似问题

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