Estou executando uma VM baseada em Xen com o CentOS 5, e meu provedor de hospedagem envia a versão do kernel 2.6.37.6 da máquina host (portanto, não pv-grub).
[root@dev ~]# uname -r
2.6.37.6
Estou tentando instalar o agente R1Soft e precisei criar o módulo hcpdriver para ele. Infelizmente, yum install kernel-devel
ou yum install kernel-xen-devel
não fizeram o truque quando tentei instalar os cabeçalhos do kernel necessários para construir o módulo (e acredito que isso tenha a ver com o fato de meu provedor de hospedagem usar um kernel personalizado).
Então eu fui em frente e baixei o kernel do kernel.org, extraí-lo para /usr/src/
e executei:
zcat /proc/config.gz > .config
make oldconfig && make modules_prepare
Agora que eu tinha os cabeçalhos do kernel eu construí o módulo hcpdriver, mas quando eu tentei modprobe / insmod, eu estava recebendo o seguinte erro no dmesg
hcpdriver: no symbol version for module_layout
Eu pesquisei o erro e encontrei algumas dicas sobre vermagic. Mas meu módulo recém-construído tem o mesmo vermagic que o módulo anterior fornecido pelo meu provedor de hospedagem (que aparentemente sofre de algum tipo de erro e o suporte da R1Soft me pediu para compilar uma versão mais nova).
Aqui está o antigo buggy (fornecido pelo meu host): [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
e aqui está o novo que eu criei baseado nos cabeçalhos do kernel recém-compilados:
[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
Como você pode ver, vermagic
é exatamente o mesmo. O problema é que o primeiro módulo roda bem quando insiro, mas o segundo não.
Alguém já teve algum tipo de problema semelhante? É a primeira vez que construo os cabeçalhos do kernel por conta própria, então não tenho certeza se o processo que usei foi o correto neste caso.
Há mais alguma coisa que eu possa tentar?
Atualização 1
Eu fiz o processo do zero novamente, re-fiz o download do tar.gz do kernel.org, o descompactei em / usr / src / kernels e então corri:
zcat /proc/config.gz > .config
make
make modules_install && make headers_install
tudo foi concluído sem erros.
então eu corri:
r1soft-setup --get-module --no-binary
que também completou erros a / o, mas agora quando tento insmod o módulo, o dmesg reporta:
hcpdriver: disagrees about version of symbol __memcpy
hcpdriver: Unknown symbol __memcpy (err -22)
Obrigado antecipadamente,
George