C 我们只能在内核源代码树中重新编译内核模块吗?

C 我们只能在内核源代码树中重新编译内核模块吗?,c,linux,linux-kernel,rhel,C,Linux,Linux Kernel,Rhel,假设我们安装一个内核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:模块_布局无符号版本 kvm_

假设我们安装一个内核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:模块_布局无符号版本 kvm_英特尔:模块布局无符号版本


有人知道怎么回事吗?

可能linux内核2.6.32.el6是用modversions编译的,但您的模块是在没有它的情况下编译的。检查是否在内核配置文件中选择或取消选择了CONFIG_MODVERSIONS。将它与/proc/.config文件进行比较,后者是内核配置文件——当然,如果您有它的话


换句话说-可能您的linux内核要求模块支持版本控制,但您的模块不提供版本控制。

可能linux内核2.6.32.el6已使用modversions编译,但您的模块未使用modversions编译。检查是否在内核配置文件中选择或取消选择了CONFIG_MODVERSIONS。将它与/proc/.config文件进行比较,后者是内核配置文件——当然,如果您有它的话

换句话说,您的linux内核可能要求模块支持版本控制,但您的模块没有提供版本控制