¿Por qué X no puede encontrar mi controlador de vboxvideo?

10

Estoy ejecutando Fedora 25 como invitado en VirtualBox 5.1.14 en un host de Windows 10. He instalado xorg-x11-server-Xorg y las adiciones de invitados VBox (usando el ISO proporcionado por VirtualBox). Las adiciones de invitados se instalaron bien, después de forzar las versiones correctas del encabezado del núcleo con dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r). No hay errores en el registro de instalación de VBGA. dmesg muestra que vboxvideo se ha cargado, systemctl muestra que vboxadd-service se está ejecutando, vboxadd-x11 activo / salido. La aceleración 3D está habilitada en la configuración de VM.

Sin embargo, cuando intento iniciar X, obtengo (EE) Failed to load module "vboxvideo" (module does not exist, 0). He reiniciado varias veces, he reinstalado VBGA y X varias veces, simplemente se niega a funcionar. Muchas, muchas, muchas búsquedas han arrojado muchas instancias de este problema, pero la mayoría parece girar en torno a a) instalar VBGA desde un paquete en lugar del ISO incluido (pero usé el ISO), b) VBGA no se instaló correctamente ( pero se instaló bien una vez que tuve los encabezados correctos, y parece estar ejecutándose), o c) un /etc/X11/xorg.conf (que recomiendan eliminar, pero no tengo uno para empezar). El resto son para versiones mucho más antiguas de VBox de las que estoy usando y se solucionaron con una simple actualización de VBox.

¿Por qué X no puede encontrar el controlador de vboxvideo y cómo lo soluciono?

Adrian
fuente
Tengo el mismo problema con un invitado de Arch en 5.0.18 donde instalé el virtualbox-guest-utilspaquete pero recibo el mismo error (no puedo encontrar vboxvideo) al iniciar X. También he notado que el archivo /usr/lib/xorg/modules/drivers/vboxvideo_drv.soparece faltar mientras /usr/lib/xorg/modules/dri/vboxvideo_dri.soestá presente.
Jake

Respuestas:

3

Creé una cuenta solo porque estaba teniendo los mismos problemas y descubrí algunas cosas en el camino que podrían ayudar a otros.

Entonces, para comenzar, estoy ejecutando una máquina virtual CentOS 7 en VirtualBox 4.xx y el controlador de video se reconoce con mis adiciones de invitados trabajando casi por completo (el cambio de tamaño automático todavía está roto, pero puedo vivir con esto por ahora).

Obtención de capacidades de video en una máquina virtual CentOS 7 (se puede modificar para aplicar también a otras distribuciones de Linux):

1. Descargue e instale una versión compatible de VirtualBox Guest Additions

A. Descargue una versión, más nueva o hecha para el programa host VirtualBox actualmente instalado

Busque a través del repositorio de descarga de VirtualBox: https://download.virtualbox.org/virtualbox/

Después de seleccionar una carpeta, busque el archivo "VBoxGuestAdditions x.xx.iso" y descárguelo

B. Instalar dependencias de adiciones de invitados

Inicie la VM y monte el archivo .iso descargado como un dispositivo de CD / DVD en el panel Dispositivos de VM.

Hay algunos requisitos previos para instalar Guest Additions que están disponibles a través del programa de repositorio de software nativo del sistema operativo.

Para Linux basado en RHEL, use lo siguiente con "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

Asegúrese de escribir "sí" para los comandos de instalación o use el indicador de opción "-y"

C. Instalar adiciones de invitados

Abra una terminal y use el comando "cd" para navegar a la raíz de la carpeta de CD / DVD.

Ejecute el siguiente comando para iniciar el instalador:

sudo sh VBoxLinuxAdditions.run

Si falla la construcción del módulo principal del núcleo de Guest Additions, asegúrese de que todos los requisitos previos se hayan instalado correctamente. De lo contrario, vuelva a instalarlos e intente ejecutar el instalador nuevamente.

2. Obtención, compilación e instalación del controlador "vboxvideo"

A. Descargar los archivos fuente para compilar

El archivo en el siguiente enlace es un archivo comprimido de los archivos fuente del controlador "vboxvideo":

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

B. Compilar e instalar el controlador "vboxvideo"

Descomprima los archivos descargados y navegue el terminal a la carpeta "xf86-video-vbox -..."

Ejecute lo siguiente en la terminal:

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

Estos comandos instalarán dos archivos "vboxvideo_drv.so" y "vboxvideo_drv.la" en el directorio de su módulo Xorg. Nota: El módulo de kernel "vboxvideo.ko" se instala con Guest Additions y no necesita ser ajustado para esto.

3. Configuración de la configuración del servidor X

A. Crear / descargar el archivo Xorg.conf

VirtualBox Guest Additions está configurado para generar su propio archivo Xorg.conf al final de la instalación. Este proceso tiene errores en algunas versiones. A continuación se proporciona un enlace a un archivo Xorg.conf en funcionamiento.

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

B. Insertar el archivo " Xorg.conf " para usar

Una vez descargado o copiado, copie el archivo a la carpeta X11.

sudo cp xorg.conf/etc/X11/

C. Procedimientos de cierre

Reinicie la VM desde el sistema operativo invitado y permita que se inicie por completo. Ahora debería haber video y otras capacidades de invitado.

Para verificar esto, inicie sesión en el sistema operativo y abra el menú Configuración en la sección Pantallas.

La etiqueta del monitor debe leer "VBX" y hacer clic en la etiqueta permitirá ajustar la resolución de la pantalla.

Notas adicionales:

I. "Pantalla negra / congelada al arrancar"

Si el procedimiento de arranque se bloquea después de completar la guía, cambie a una ventana de terminal diferente presionando las teclas "Alt" y "Fx" simultáneamente donde x es un número del 2 al 6 (es decir, "Alt-F2").

Esto abrirá un inicio de sesión de usuario a través de una interfaz CLI.

Inicie sesión en la terminal y use el siguiente comando para verificar el registro " Xorg ":

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

Busque cualquier entrada relacionada con el dispositivo " vboxvideo ".

- Para cualquier problema "No encontrado":

Verifique que el archivo "vboxvideo_drv.so" compilado en el Paso 2b esté en la carpeta adecuada.

- Para cualquier problema de "Versión incompatible":

Verifique que el archivo "vboxvideo_drv.so" apropiado compilado en el Paso 2b, ya que está destinado a ser compatible con la última versión del servidor X disponible en CentOS 7. (1.19.3 - Ver (23))

La versión actual del servidor X se encuentra usando el comando:

X -version

- Para cualquier problema relacionado con la sintaxis incorrecta en el " Xorg.conf ":

Verifique que el archivo " Xorg.conf " en el Paso 3A coincida con el de la carpeta " / etc / X11 / " en el SO Invitado.

II "Justificación del proceso"

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.

Estos archivos de controladores estaban disponibles en un repositorio de OpenIndiana para una versión de código abierto de su propio sistema operativo basado en Solaris, que todavía era utilizable en Linux basado en RHEL. Se incluyen algunos enlaces de referencia y soporte 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
fuente
2

Si está en el servidor Xorg 1.19. *, Entonces las adiciones de invitados VBox 5.1.14 no son compatibles con Xorg 1.19, o cree que no se necesita vboxvideo * .so con Xorg 1.19. *. Esto es lo que encontré ...

5.1.14 ISO creó /opt/VBoxGuestAdditions-5.1.14/lib/VBoxGuestAdditions que contiene muchos archivos vboxvideo_drv _ *. So (donde '*' es un número de 2 o 3 dígitos). Además, hay enlaces simbólicos que apuntan a este directorio desde / lib / VBoxGuestAdditions, / lib64 / VBoxGuestAdditions, / usr / lib / VBoxGuestAdditions y / usr / lib64 / VBoxGuestAdditions. Hay un /opt/VBoxGuestAdditions-5.1.14/lib/VBoxGuestAdditions/vobxadd-x11 script, que solo sube a Xorg versión 1.18. *, Y el archivo vboxvideo_drv de mayor número es vboxvideo_drv_118.so.

FYI, tengo el servidor Xorg 1.19.3, y falla de la misma manera que el sistema OP.

22 de julio de 2017: probé usando vboxvideo_drv_118.so con el servidor Xorg 1.19.3. Se informó que cargó vboxvideo, luego falló con "(EE) vboxvideo: la versión principal del módulo ABI (20) no coincide con la versión del servidor (23)" y vboxvideo descargado. Entonces, VirtualBox 5.1.14 definitivamente no proporciona un vboxvideo * .so que es compatible con Xorg 1.19.

También encontré https://bugs.archlinux.org/task/52704 que habla de que se supone que fbdev es una alternativa, pero que recientemente se rompió con los parches 3 y 4.

¿Podría alguien con el último VBox verificar su script vboxadd-x11, por favor?

DMW
fuente