Por que o X não consegue encontrar o meu driver vboxvideo?

10

Estou executando o Fedora 25 como convidado no VirtualBox 5.1.14 em um host do Windows 10. Instalei o xorg-x11-server-Xorg e as adições de convidados da VBox (usando a ISO fornecida pelo próprio VirtualBox). As adições de convidado foram instaladas corretamente, depois de forçar as versões corretas do cabeçalho do kernel com dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r). Não há erros no log de instalação do VBGA. O dmesg mostra que o vboxvideo foi carregado, o systemctl mostra que o vboxadd-service está sendo executado e o vboxadd-x11 está ativo / encerrado. A aceleração 3D é ativada nas configurações da VM.

No entanto, quando tento iniciar o X, recebo (EE) Failed to load module "vboxvideo" (module does not exist, 0). Reiniciei várias vezes, reinstalei o VBGA e o X várias vezes, ele apenas se recusa a trabalhar. Muitas, muitas, muitas pesquisas apresentaram muitas instâncias desse problema, mas a maioria parece girar em torno de: a) instalar o VBGA a partir de um pacote, em vez do ISO incluído (mas eu usei o ISO); b) o VBGA não foi instalado corretamente ( mas ele foi instalado corretamente quando eu tinha os cabeçalhos corretos e parece estar em execução) ou c) um /etc/X11/xorg.conf ruim (que eles recomendam excluir, mas não tenho um para começar). O restante é para versões muito mais antigas do VBox do que estou usando e foram corrigidas com uma simples atualização do VBox.

Por que o X não consegue encontrar o driver vboxvideo e como o endireito?

Adrian
fonte
Eu tenho o mesmo problema com um convidado do Arch na 5.0.18, onde instalei o virtualbox-guest-utilspacote, mas recebo o mesmo erro (não consigo encontrar o vboxvideo) ao iniciar o X. Também notei que o arquivo /usr/lib/xorg/modules/drivers/vboxvideo_drv.soparece estar ausente enquanto /usr/lib/xorg/modules/dri/vboxvideo_dri.soestá presente.
Jake

Respostas:

3

Criei uma conta apenas porque estava tendo os mesmos problemas e descobri algumas coisas ao longo do caminho que poderiam ajudar outras pessoas.

Então, para começar, estou executando uma VM do CentOS 7 no VirtualBox 4.xx e o driver de vídeo é reconhecido com minhas adições de convidado trabalhando quase completamente (o redimensionamento automático ainda está quebrado, mas posso usar isso por enquanto).

Obtendo recursos de vídeo em uma VM do CentOS 7 (também pode ser modificado para aplicar-se a outras distribuições Linux):

1. Baixe e instale uma versão compatível do VirtualBox Guest Additions

A. Faça o download de uma versão mais recente ou criada para o programa host VirtualBox atualmente instalado

Pesquise no repositório de download do VirtualBox: https://download.virtualbox.org/virtualbox/

Após selecionar uma pasta, procure o arquivo "VBoxGuestAdditions x.xx.iso" e faça o download

B. Instalar dependências de adições de convidados

Inicie a VM e monte o arquivo .iso baixado como um dispositivo de CD / DVD no painel Dispositivos da VM.

Existem alguns pré-requisitos para instalar o Guest Additions que estão disponíveis no programa de repositório de software nativo do sistema operacional.

Para Linux baseado em RHEL, use o seguinte com "yum":

yum update
yum install epel-release
yum install gcc binutils make patch libgomp glibc-headers glibc-devel kernel kernel-devel kernel-headers
yum install dkms

Certifique-se de digitar "yes" para os comandos de instalação ou use o sinalizador de opção "-y"

C. Instalar adições de convidados

Abra um terminal e use o comando "cd" para navegar até a raiz da pasta CD / DVD.

Execute o seguinte comando para iniciar o instalador:

sudo sh VBoxLinuxAdditions.run

Se a construção do módulo principal do kernel do Guest Additions falhar, verifique se todos os pré-requisitos foram instalados corretamente. Caso contrário, reinstale-os e tente executar o instalador novamente.

2. Obtendo, compilando e instalando o driver "vboxvideo"

A. Baixando os arquivos de origem para compilação

O arquivo no link abaixo é um arquivo compactado dos arquivos de origem do driver "vboxvideo":

https://cgit.freedesktop.org/xorg/driver/xf86-video-vbox/snapshot/xf86-video-vbox-ab07f97612d045d8c0a376174b39a294d028fef2.tar.xz

B. Compilando e instalando o driver "vboxvideo"

Descompacte os arquivos baixados e navegue pelo terminal na pasta "xf86-video-vbox -..."

Execute o seguinte no terminal:

sudo sh autogen.sh --prefix=/usr --with-xorg-module-dir=/usr/lib64/xorg/modules/drivers
sudo make && sudo make install      

Esses comandos instalarão dois arquivos "vboxvideo_drv.so" e "vboxvideo_drv.la" no diretório do módulo Xorg. Nota: O módulo do kernel "vboxvideo.ko" é instalado com o Guest Additions e não precisa ser ajustado para isso.

3. Definindo a configuração do servidor X

A. Criando / baixando o arquivo Xorg.conf

O VirtualBox Guest Additions está configurado para gerar seu próprio arquivo Xorg.conf no final da instalação. Este processo é incorreto em algumas versões. Um link para um arquivo Xorg.conf funcionando é fornecido abaixo.

https://drive.google.com/file/d/1y_f5od59sv3eeHGu01PorpvlnBfvum0M/view

B. Inserindo o arquivo " Xorg.conf " para uso

Depois de baixado ou copiado, copie o arquivo para a pasta X11.

sudo cp xorg.conf/etc/X11/

C. Procedimentos de fechamento

Reinicie a VM de dentro do sistema operacional convidado e permita que ela seja totalmente inicializada. Agora deve haver vídeo e outros recursos de convidado.

Para verificar isso, faça login no sistema operacional e abra o menu Configurações na seção Monitores.

O rótulo do monitor deve conter "VBX" e clicar no rótulo permitirá o ajuste da resolução da tela.

Notas Adicionais:

I. "Tela preta / congelada na inicialização"

Se o procedimento de inicialização for interrompido após a conclusão do guia, mude para uma janela de terminal diferente pressionando as teclas "Alt" e "Fx" simultaneamente, em que x é um número entre 2-6 (ou seja, "Alt-F2").

Isso abrirá um login de usuário por meio de uma interface CLI.

Faça login no terminal e use o seguinte comando para verificar o log " Xorg ":

sudo less /var/log/Xorg.0.log

Procure por entradas relacionadas ao dispositivo " vboxvideo ".

- Para qualquer problema "Não encontrado":

Verifique se o arquivo "vboxvideo_drv.so" compilado na etapa 2b está na pasta correta.

- Para qualquer problema de "Versão incompatível":

Verifique se o arquivo "vboxvideo_drv.so" adequado, compilado na Etapa 2b, é compatível com a versão mais recente do servidor X disponível no CentOS 7. (1.19.3 - Ver (23))

A versão atual do X Server é encontrada usando o comando:

X -version

- Para qualquer problema relacionado à sintaxe incorreta no " Xorg.conf ":

Verifique se o arquivo " Xorg.conf " na Etapa 3A corresponde ao da pasta " / etc / X11 / " no SO convidado.

II "Justificativa por trás do processo"

As it turns out, the VirtualBox Guest Additions has driver files for the X Server up to X 1.18 Ver(20) included natively. Oddly enough, these files should be included in the latest version of the Guest Additions for the latest stable release of the VirtualBox host client.

Esses arquivos de driver estavam disponíveis em um repositório da OpenIndiana para uma versão de código aberto de seu próprio sistema operacional baseado em Solaris, que ainda era utilizável no Linux baseado em RHEL. Estão incluídos alguns links de referência e suporte adicional.

https://pkg.openindiana.org/hipster/manifest/0/x11%2Fserver%2Fxorg%2Fdriver%2Fxorg-video-vboxvideo%401.0.1%2C5.11-2018.0.0.1%3A20180212T053651Z
https://gist.github.com/yvt/a1fd215609c0f1e5a85c7562103f3e65
https://www.openindiana.org/2017/11/11/virtualbox-video-driver-compatible-with-xorg-1-19-5-available/
JayLop
fonte
2

Se você estiver no servidor Xorg 1.19. *, As adições de convidados VBox 5.1.14 não suportam o Xorg 1.19 ou pensam que nenhum vboxvideo * .so é necessário no Xorg 1.19. *. Aqui está o que eu encontrei ...

O ISO 5.1.14 criou /opt/VBoxGuestAdditions-5.1.14/lib/VBoxGuestAdditions contendo muitos arquivos vboxvideo_drv _ *. So (onde '*' é um número de 2 ou 3 dígitos). Além disso, existem links simbólicos apontando para este diretório em / lib / VBoxGuestAdditions, / lib64 / VBoxGuestAdditions, / usr / lib / VBoxGuestAdditions e / usr / lib64 / VBoxGuestAdditions. Há um script /opt/VBoxGuestAdditions-5.1.14/lib/VBoxGuestAdditions/vobxadd-x11, que só sobe para a versão 1.18. * Do Xorg, e o arquivo vboxvideo_drv de maior número é vboxvideo_drv_118.so.

Para sua informação, tenho o servidor Xorg 1.19.3 e falha da mesma maneira que o sistema do OP.

22JUL2017: Testei usando o vboxvideo_drv_118.so com o servidor Xorg 1.19.3. Ele relatou o carregamento do vboxvideo e falhou com "(EE) vboxvideo: a versão principal do módulo ABI (20) não corresponde à versão do servidor (23)" e o vboxvideo descarregado. Portanto, o VirtualBox 5.1.14 definitivamente não fornece um vboxvideo * .so compatível com o Xorg 1.19.

Eu também encontrei https://bugs.archlinux.org/task/52704, que fala sobre o fbdev ser um substituto, mas recentemente quebrado pelos patches 3 e 4.

Alguém com o VBox mais recente pode verificar o script vboxadd-x11, por favor?

DMW
fonte