Crie cabeçalhos de kernel para compilar o módulo hcp do R1Soft

3

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

    
por George Tasioulis 21.03.2012 / 02:25

1 resposta

1

Não, nunca vi o problema. Mas parece confuso. Isso pode ser um problema de suporte de hospedagem. Se o host envia uma versão específica do kernel e eles gerenciam a instalação do R1Soft, o host não deve ter um módulo hcp disponível ou ser capaz de orientar os usuários nas etapas necessárias para fazer as coisas funcionarem? Se qualquer coisa, você pode tentar hcp-setup e carregar as informações relevantes para servidores de compilação da R1Soft. Eu nunca tive que construir o módulo localmente, mas normalmente estou em kernels de distribuição ou em kernels de distribuição ligeiramente modificados.

    
por 21.03.2012 / 02:32