我们只能在内核源代码树中重新编译内核模块吗?
Posted
技术标签:
【中文标题】我们只能在内核源代码树中重新编译内核模块吗?【英文标题】:Can we only recompile a kernel module in kernel source tree? 【发布时间】:2013-08-29 05:34:47 【问题描述】:假设我们安装一个内核2.6.32.el6,然后我们下载2.6.32.el6.src.rpm,我们可以只安装源并修改一些模块,然后使用make -C 2.6.32.el6 .src.source.directry -M$PWD 在模块目录下编译模块,然后我们复制到/lib/modules/2.6.32.el6/kernel/moduledirectory 新的模块就可以了?
我尝试修改kvm模块并编译它,但是当我重新编译模块并将其复制到目录中时,机器在启动时说:
kvm: module_layout 没有符号版本 kvm_intel: module_layout 没有符号版本
有谁知道怎么回事?
【问题讨论】:
【参考方案1】:可能 linux 内核 2.6.32.el6 已使用 modversions 编译,但您的模块编译时没有使用它。检查您是否在内核配置文件中选择或取消选择了 CONFIG_MODVERSIONS。将它与 /proc/.config 文件进行比较,该文件是内核配置文件 - 当然如果你有的话。
换句话说 - 可能您的 linux 内核要求模块支持版本控制,但您的模块不提供它。
【讨论】:
以上是关于我们只能在内核源代码树中重新编译内核模块吗?的主要内容,如果未能解决你的问题,请参考以下文章