我使用CentOS 5运行基于Xen的VM,我的托管提供商将内核版本2.6.37.6从主机推入(所以没有pv)。
[root@dev ~]# uname -r
2.6.37.6
我正在尝试安装R1Soft代理,我需要为它构建hcpdriver模块。不幸的是,当我试图安装构建模块所需的内核头时,yum install kernel-devel或yum install kernel-xen-devel没有做到这一点(我猜这与我的主机提供商使用自定义内核这一事实有关)。
因此,我继续从kernel.org下载内核,将其解压缩到/usr/src/并运行:
zcat /proc/config.gz > .config
make oldconfig && make modules_prepare
现在我已经有了内核头,我构建了hcpdriver模块,但是当我尝试对它进行调制解调器/干扰时,我得到了dmesg中的以下错误
hcpdriver: no symbol version for module_layout
我在googled上搜索了这个错误,并发现了一些关于ver魔术的提示。但是,我的新构建的模块具有与我的主机提供商提供的前一个模块相同的版本(它显然受到了某种bug的困扰,R1Soft支持要求我编译一个更新的版本)。
这是一辆老爷车(由我的主人提供):
[root@dev r1soft]# modinfo hcpdriver.o
filename: hcpdriver.o
version: 4.1.1 build 13785
license: Proprietary
description: Linux Hot Copy Driver
author: Michael Brumlow
depends:
vermagic: 2.6.37.6 SMP mod_unload modversions
下面是我根据新编译的内核头构建的新版本:
[root@dev r1soft]# modinfo hcpdriver-cki-2.6.37.6.ko
filename: hcpdriver-cki-2.6.37.6.ko
version: 4.2.1 build 16433
license: Proprietary
description: Linux Hot Copy Driver
author: Michael Brumlow
depends:
vermagic: 2.6.37.6 SMP mod_unload modversions
正如您所看到的,vermagic是完全相同的。问题是,当我发现第一个模块时,它运行得很好,但是第二个模块却没有。
有谁有过类似的问题吗?这是我第一次自己构建内核头,所以我不太确定在本例中我使用的进程是否正确。还有什么我可以试试的吗?
更新1
我从头开始了这个过程,从kernel.org中重新下载了kernel.org,将它解压缩到/usr/src/kernels中,然后运行:
zcat /proc/config.gz > .config
make
make modules_install && make headers_install
一切都完成了w/o错误。
然后我跑了:
r1soft-setup --get-module --no-binary
这也完成了w/o错误,但是现在当我试图入侵模块时,dmesg报告:
hcpdriver: disagrees about version of symbol __memcpy
hcpdriver: Unknown symbol __memcpy (err -22)
谢谢你,乔治
发布于 2012-03-21 01:32:07
不,我从没见过这个问题。但听起来很乱。这可能是托管支持问题。如果主机推送一个特定的内核版本并管理R1Soft安装,那么主机不应该有一个工作的hcp模块可用,还是应该让用户完成工作所需的步骤?如果有的话,您可以尝试hcp-setup并将相关信息上传到R1Soft的构建服务器。我从未在本地构建过模块,但我通常使用发行版内核或稍微修改过的发行版内核。
https://serverfault.com/questions/371799
复制相似问题