VirtualBox no Debian

1

Eu tenho dois kernels instalados, 3.5.0 e 3.6.0. Por várias razões eu tem que rodar o kernel 3.5.0. O VirtualBox funciona perfeitamente no 3.6.0, mas não na 3.5.0.

Depois de inicializar o kernel 3.5.0, iniciei uma reconstrução do módulo com apt-get --reinstall install virtualbox-dkms . Isso recompilou o módulo VirtualBox com sucesso. Contudo, falha ao carregar.

# modprobe vboxdrv
ERROR: could not insert 'vboxdrv': Exec format error

/var/log/messages:

warning: 'VirtualBox' uses 32-bit capabilities (legacy support in use)
vboxdrv: disagrees about version of symbol module_layout

O módulo parece estar instalado corretamente:

$ ls /lib/modules/3.5.0/updates/dkms/
vboxdrv.ko  vboxnetadp.ko  vboxnetflt.ko  vboxpci.ko

Informação do sistema: Debian unstable, pacote virtualbox-dkms está instalado

$ uname -r
3.5.0

$ apt-cache show virtualbox | grep Version
Version: 4.1.18-dfsg-1.1

$ apt-cache show dkms | grep Version
Version: 2.2.0.3-1.2

Aqui está a saída da compilação do módulo:

-------- Uninstall Beginning --------
Module:  virtualbox
Version: 4.1.18
Kernel:  3.5.0 (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

vboxdrv.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.5.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxnetadp.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.5.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxnetflt.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.5.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxpci.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.5.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod....

DKMS: uninstall completed.

-------- Uninstall Beginning --------
Module:  virtualbox
Version: 4.1.18
Kernel:  3.6.0 (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

vboxdrv.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.6.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxnetadp.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.6.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxnetflt.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.6.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxpci.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.6.0/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod....

DKMS: uninstall completed.

------------------------------
Deleting module version: 4.1.18
completely from the DKMS tree.
------------------------------
Done.
Unpacking replacement virtualbox-dkms ...
Setting up virtualbox-dkms (4.1.18-dfsg-1.1) ...
Loading new virtualbox-4.1.18 DKMS files...
Building for 3.5.0 and 3.6.0
Building initial module for 3.5.0
Done.

vboxdrv:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.5.0/updates/dkms/

vboxnetadp.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.5.0/updates/dkms/

vboxnetflt.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.5.0/updates/dkms/

vboxpci.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.5.0/updates/dkms/

depmod....

DKMS: install completed.
Building initial module for 3.6.0
Done.

vboxdrv:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.6.0/updates/dkms/

vboxnetadp.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.6.0/updates/dkms/

vboxnetflt.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.6.0/updates/dkms/

vboxpci.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.6.0/updates/dkms/

depmod....

DKMS: install completed.
[ ok ] Stopping VirtualBox kernel modules.
[FAIL] Starting VirtualBox kernel modules[....] modprobe vboxdrv failed. Please use 'dmesg' to find out why ... failed!
 failed!
invoke-rc.d: initscript virtualbox, action "restart" failed.

Como posso fazer com que o VirtualBox funcione no 3.5.0?

    
por Marco 21.10.2012 / 23:21

2 respostas

1

Graças ao link do warlock, percebi que havia alguma incompatibilidade de versão. Eu suponho que foi causado pelo fato de eu não ter criado o pacote kernel-source . Em vez disso, eu estava usando o repositório git que foi usado para compilar várias outras versões também.

Primeiro, excluí os pacotes linux-image e linux-headers (o kernel atualmente em execução).

O próximo passo foi um checkout completamente limpo (sem build permanece no diretório). Então eu construí o kernel e criei os pacotes linux-image , linux-headers e o pacote linux-source e instalou-os. Depois disso, o módulo VirtualBox foi construído e seu carregamento foi bem sucedido.

Eu não sei quais versões não combinavam antes, mas seguindo estas etapas garante que não deve haver incompatibilidade de versão.

    
por 22.10.2012 / 22:50
0

Você tem o pacote virtualbox-dkms instalado?
Eu geralmente tenho que reinstalar isso após cada atualização do kernel, o que eu acho que indica que a parte dkms está quebrada, mas a reinstalação funciona para mim. Eu nunca tentei reinstalá-lo em nada além de um novo kernel, mas eu suponho que ele deve ser construído contra qualquer kernel que esteja rodando atualmente.

    
por 22.10.2012 / 02:58