Corrigindo erro do VirtualBox no Slackware 14.2 após atualizar Kernel

Publicado por Rodrigo Albuquerque Serafim em 28/03/2018

[ Hits: 2.575 ]

Blog: https://www.vivaolinux.com.br/~raserafim

 


Corrigindo erro do VirtualBox no Slackware 14.2 após atualizar Kernel



Após atualizar o Kernel do Slackware é comum que o VirtualBox deixe de funcionar e exiba a seguinte mensagem:

Kernel drive not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing
Linux: Corrigindo erro do VirtualBox no Slackware 14.2 após atualizar Kernel
Isso ocorre porque a versão instalada do VirtualBox não está configurada para o novo Kernel. É necessário alguns procedimentos para que volte a existir correspondência entre o Kernel do sistema e o VirtualBox.

Embora na mensagem de erro seja sugerido executar "/sbin/rcvboxdrv setup", esse arquivo não existe no Slackware. O seu equivalente é o "rc.vboxdrv" que fica em "/etc/rc.d/".

Em algumas situações já me foi possível corrigir esse tipo de erro apenas executando:

# /etc/rc.d/rc.vboxdrv setup

Atualmente, quando tento executar o referido comando, recebo a seguinte mensagem:

Not implemented! Please use the virtualbox-kernel.SlackBuild available at SlackBuilds.org instead.
No entanto, nas duas últimas atualizações de Kernel do Slackware apenas consegui corrigir o problema ao reinstalar o pacote virtualbox-kernel.

Apresento, então, dois métodos para fazer essa reinstalação:

Pressuposto: o VirtualBox foi anteriormente instalado por meio do slackbuilds.org
Pressuposto: todos os processos serão executados como root

Método 1: baixando os arquivos diretamente do site slackbuilds.org, compilando-os e instalando-os

Entrar no site: https://slackbuilds.org/repository/14.2/system/virtualbox-kernel/

Baixar os arquivos:
  • virtualbox-kernel.tar.gz
  • virtualbox-kernel-5.0.40.tar.xz (a numeração pode variar em caso de nova versão do pacote)

ou então, baixar diretamente através dos seguintes links:
Descompactar (extrair) o arquivo virtualbox-kernel.tar.gz.

Copiar o arquivo virtualbox-kernel-5.0.40.tar.xz para dentro do diretório virtualbox-kernel que foi gerado a partir da descompactação do arquivo virtualbox-kernel.tar.gz.

Entrar no diretório virtualbox-kernel e executar o arquivo virtualbox-kernel.SlackBuild:

# ./virtualbox-kernel.SlackBuild

Ao final da compilação, um pacote deverá ser gerado em /tmp.

Entrar em /tmp e instalar/atualizar o pacote:

# upgradepkg --install-new virtualbox-kernel-*.tgz

Pronto!

Agora basta reiniciar a sessão ou reiniciar o serviço vboxdrv:

# /etc/rc.d/rc.vboxdrv restart

Método 2: utilizando o sbopkg

Após sincronizar (Sync) e verificar se há atualizações (Updates), na lista, deverá aparecer o virtualbox-kernel-5.0.40...

Adicioná-lo à lista (Queue) e processar a sua instalação (Queue > Process> Install)

Pronto!

Agora basta reiniciar a sessão ou reiniciar o serviço vboxdrv:

# /etc/rc.d/rc.vboxdrv restart

Outras dicas deste autor

Como dar Permissão de Execução a Arquivo (script ou binário) no GNU/Linux - Abordagem Prática

Como atualizar o Java (JDK) no Slackware 14.2: superando o erro no sbopkg

Leitura recomendada

Script Ubuntu Perfeito para Ubuntu 9.04 Jaunty Jackalope

Gerar imagem .png a partir de um vídeo com o xine

Instalando o programa de digitação Klavaro no Ubuntu 10.10

Conexões Wi-Fi no Debian Wheezy

Monitoramento de tráfego no CentOS com MRTG - o retorno

  

Comentários
[1] Comentário enviado por removido em 28/03/2018 - 17:30h

Método que uso:

https://www.vivaolinux.com.br/screenshots/viewshot.php?codigo=29400

[2] Comentário enviado por raserafim em 28/03/2018 - 22:01h

o comando que você mencionou, meianoite, já é automaticamente executado pelo slackware no "rc.local".

esse comando carrega os módulos de kernel do VirtualBox para o Kernel que está atualmente rodando.

sendo que quando o kernel sofre atualização é necessário instalar esses módulos do VirtualBox para o novo Kernel.

é para este último caso que minha dica se aplica.

[3] Comentário enviado por removido em 29/03/2018 - 01:21h


[2] Comentário enviado por raserafim em 28/03/2018 - 22:01h

o comando que você mencionou, meianoite, já é automaticamente executado pelo slackware no "rc.local".

esse comando carrega os módulos de kernel do VirtualBox para o Kernel que está atualmente rodando.




O arquivo "rc.local" não tinha nada de virtualbox antes tive que add manualmente.

# cat /etc/rc.d/rc.local

# Para iniciar o VirtualBox
#
if [ -x /etc/rc.d/rc.vboxdrv ]; then
/etc/rc.d/rc.vboxdrv start
fi

[4] Comentário enviado por raserafim em 29/03/2018 - 01:26h

Acho que o meu já tinha..

Independente disso, esse comando não funciona quando o kernel é atualizado: porque não tem módulos do virtualbox para serem carregados no novo kernel.

Primeiro é preciso instalá-los

[5] Comentário enviado por removido em 29/03/2018 - 01:57h


[4] Comentário enviado por raserafim em 29/03/2018 - 01:26h

Acho que o meu já tinha..

Independente disso, esse comando não funciona quando o kernel é atualizado: porque não tem módulos do virtualbox para serem carregados no novo kernel.

Primeiro é preciso instalá-los


Isso entra na parte de atualização do sistema.

Podemos usar o sbopkg para sincronizar com slackbuilds.org e depois atualizar o virtualbox.

Acho que seria isso:

# sqg -a <==== +/- 50 minutos
# sbopkg -r
# sbopkg -c
# sbopkg -ki pacote


$ ls /var/log/packages/ | grep -i virtual*
virtualbox-5.0.40-x86_64-1_SBo
virtualbox-extension-pack-5.0.40-x86_64-1_SBo
virtualbox-kernel-5.0.40_4.4.118-x86_64-1_SBo

[6] Comentário enviado por raserafim em 29/03/2018 - 14:50h

meianoite escreveu:

Isso entra na parte de atualização do sistema.

Podemos usar o sbopkg para sincronizar com slackbuilds.org e depois atualizar o virtualbox.

Acho que seria isso:

# sqg -a &lt;==== +/- 50 minutos
# sbopkg -r
# sbopkg -c
# sbopkg -ki pacote

Não precisa de nada disso ...


meianoite escreveu:

$ ls /var/log/packages/ | grep -i virtual*
virtualbox-5.0.40-x86_64-1_SBo
virtualbox-extension-pack-5.0.40-x86_64-1_SBo
virtualbox-kernel-5.0.40_4.4.118-x86_64-1_SBo


Quando se atualiza o Kernel apenas o pacote "virtualbox-kernel..." é preciso ser reinstalado para que os arquivos de módulo do kernel sejam colocados na pasta do novo Kernel.

(obs: não se trata de um pacote atualizado que o slackbuilds.org disponibilizou -- basta olhar os logs para ver que não é disso que se trata. Trata-se de um slackbuilds que reempacota com o número da versão do novo Kernel)


[7] Comentário enviado por cesarsj em 09/09/2019 - 13:42h

Fiz o upgrade da versão 13.1 (kernel 3.x) para 14.2 ( kernel 4.x), em uma VM montada no Virtual Box 6.0.10. É claro que 'lilo' (se for lilo) deve ser executado antes de reiniciar. Mas, apesar do erro acima discutido aparecer, ao reiniciar, já no boot, o virtualbox guest additions faz a construção do novo kernel.



Contribuir com comentário