Não é possível construir o Virtualbox-dkms - kernel e cabeçalhos incompatíveis

2

Já usei o VirtualBox anteriormente na minha máquina Ubuntu 14.10, mas não o usei nos últimos dois meses.

Quando tentei iniciar uma VM, recebi o seguinte erro:

WARNING: The character device /dev/vboxdrv does not exist.
     Please install the virtualbox-dkms package and the appropriate
     headers, most likely linux-headers-generic.

     You will not be able to start VMs until this problem is fixed.

Encontrei várias outras perguntas que dizem para executar sudo dpkg-reconfigure virtualbox-dkms ou para desinstalar e reinstalar o VirtualBox.

Quando executo qualquer um desses comandos, recebo a seguinte mensagem:

------------------------------
Deleting module version: 4.3.18
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-4.3.18 DKMS files...
Building only for 3.13.0-29-generic
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
 * Stopping VirtualBox kernel modules                                  [ OK ] 
 * Starting VirtualBox kernel modules
 * No suitable module for running kernel found
                                                                       [fail]
invoke-rc.d: initscript virtualbox, action "restart" failed.

Quando executo uname -a , vejo que a versão do Kernel em execução é 3.13.0-29-generic , como a mensagem acima diz.

No entanto, quando verifico quais cabeçalhos de kernel estão instalados, vejo estes:

linux-headers-3.16.0-24 - Header files related to Linux kernel version 3.16.0
linux-headers-3.16.0-24-generic - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-24-lowlatency - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-25 - Header files related to Linux kernel version 3.16.0
linux-headers-3.16.0-25-generic - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-25-lowlatency - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-26 - Header files related to Linux kernel version 3.16.0
linux-headers-3.16.0-26-generic - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-26-lowlatency - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-28 - Header files related to Linux kernel version 3.16.0
linux-headers-3.16.0-28-generic - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-28-lowlatency - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-29 - Header files related to Linux kernel version 3.16.0
linux-headers-3.16.0-29-generic - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-29-lowlatency - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-30 - Header files related to Linux kernel version 3.16.0
linux-headers-3.16.0-30-generic - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-30-lowlatency - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-31 - Header files related to Linux kernel version 3.16.0
linux-headers-3.16.0-31-generic - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
linux-headers-3.16.0-31-lowlatency - Linux kernel headers for version 3.16.0 on 64 bit x86 SMP

Eu tentei instalar os cabeçalhos 3.13.0-29 usando sudo apt-get install linux-headers-'uname -r' e recebi este erro:

Package linux-headers-3.13.0-29-generic is not available...

Eu tentei executar sudo apt-get dist-upgrade para atualizar o Kernel para 3.16... , mas não parece fazer nada.

Como posso atualizar o kernel instalado para corresponder aos cabeçalhos que estão disponíveis ou obter os cabeçalhos antigos?

    
por Moshe Katz 25.02.2015 / 20:10

1 resposta

1

Eu percebi isso depois de encontrar link e notando que 14.10 deve ter sido enviado com o kernel 3.16 desde o início.

Esta máquina foi atualizada de 14.04 para 14.10 usando do-release-upgrade . No entanto, o kernel 3.13.x de 14.04 foi instalado explicitamente em vez do meta-pacote linux-image-generic , portanto, não foi atualizado. No entanto, os cabeçalhos foram instalados usando o meta-pacote -generic , então eles foram atualizados.

A instalação de linux-generic fez com que o Kernel e os Cabeçalhos atualizassem para o mais novo 3.16.x .

    
por Moshe Katz 25.02.2015 / 20:29