Сборка заголовков ядра для компиляции модуля hcp R1Soft

Я использую виртуальную машину на базе Xen с CentOS 5, и мой хостинг-провайдер выталкивает версию ядра 2.6.37.6 с хост-машины (так что нет pv-grub).

[root@dev ~]# uname -r
2.6.37.6

Я пытаюсь установить агент R1Soft, и мне нужно было собрать для него модуль hcpdriver. Unfortunatelly yum install kernel-devel или же yum install kernel-xen-devel не добился цели, когда я попытался установить заголовки ядра, необходимые для сборки модуля (и я предполагаю, что это связано с тем фактом, что мой хостинг-провайдер использует собственное ядро).

Итак, я скачал ядро ​​с сайта kernel.org, распаковал его в /usr/src/ и побежал:

zcat /proc/config.gz > .config
make oldconfig && make modules_prepare

Теперь, когда у меня были заголовки ядра, я собрал модуль hcpdriver, но когда я попытался изменить его с помощью modprobe / insmod, я получил следующую ошибку в dmesg

hcpdriver: no symbol version for module_layout

Я погуглил ошибку и нашел несколько подсказок о вермагическом. Но мой недавно построенный модуль имеет ту же вермагичность, что и предыдущий модуль, предоставленный моим хостинг-провайдером (который, очевидно, страдает от какой-то ошибки, и поддержка 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
Я снова сделал этот процесс с нуля, заново загрузил tar.gz с kernel.org, разархивировал его в / usr / src / kernels и затем запустил:

zcat /proc/config.gz > .config
make
make modules_install && make headers_install

все выполнено без ошибок.

потом я побежал:
r1soft-setup --get-module --no-binary
который также завершил без ошибок, но теперь, когда я пытаюсь insmod модуль, dmesg сообщает:
hcpdriver: disagrees about version of symbol __memcpy
hcpdriver: Unknown symbol __memcpy (err -22)

Заранее спасибо Джордж

1 ответ

Решение

Нет, я никогда не видел проблему. Но это звучит грязно. Это может быть проблемой поддержки хостинга. Если хост выдвигает конкретную версию ядра и управляет установкой R1Soft, разве на хосте не должен быть доступен работающий модуль hcp, или он не сможет пройти через шаги, необходимые для работы? Если что, можете попробовать hcp-setup и загрузить соответствующую информацию на серверы сборки R1Soft. Мне никогда не приходилось собирать модуль локально, но я обычно использую ядра дистрибутивов или слегка модифицированные ядра дистрибутивов.

Другие вопросы по тегам