Kernel driver not installed en VirtualBox

Estoy haciendo unos cursos en CISCO sobre Ciberseguridad (soy un total novato en esto). En algún momento te dan, además de Packet Tracer y sus respectivas prácticas, una máquina virtual para que puedas hacer algunas prácticas con diferentes usuarios/roles. Y como casi siempre, cuando más entrado estás haciendo algo, surge otra cosa que impide que continúes por ese camino de rosas. En este caso fue el error Kernel driver not installed en VirtualBox, tan común y molesto.

Es un error al parecer común, y concretamente me refiero a este:

Kernel driver not installed en Virtualbox
Kernel driver not installed (rc=-1908)  
  
The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing  
  
'/sbin/vboxconfig'  
  
as root.  
  
If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information.  
  
where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT.

Antes de continuar, estas son las versiones bajo las que resolví el problema. Si no puedes, seguramente se debe a que las versiones pueden cambiar, sobre todo en los archivos donde se tiene que agregar código (más adelante lo veremos).

VirtualBox: Version 7.0.10 r158379 (Qt5.15.10)

Kernel: Linux 6.4.11-200.fc38.x86_64

Analizando el error

Pues lo primero que haremos, es ejecutar lo que nos dice el error: Please try setting it up again by executing '/sbin/vboxconfig' as root. Entonces abrimos la consola y lo hacemos:

sudo /sbin/vboxconfig

Después de un rato, tratando de hacer algo, aparece lo siguiente:

sudo /sbin/vboxconfig

Da errores, pero uno tiene fe. Pruebo abriendo VirtualBox y el mismo error. Así que revisamos el archivo de log. Primero lo pasamos a un archivo para analizarlo bien, por si con nuestros intentos cambia el archivo de log.

cat  /var/log/vbox-setup.log > vbox-setup.log
cat vbox-setup.log
/var/log/vbox-setup.log vbox-setup.log

¿Qué es esoooooo? Tantos archivos .o y .c, ese asterisco que indica apuntadores… que miedo. O sea, que cuando ejecutamos vboxconfig trata de compilar módulos.

Nota: buscando, algunos errores están relacionados a la versión de gcc que tengas, por eso es importante revisar bien el error antes de continuar con esta receta.

Si seguimos buscando algo que podamos usar, vemos que esa palabra clave es skb_gso_segment, así que buscamos en Google:

virtualbox skb_gso_segment

Aparecen varios resultados y doy con uno que posiblemente me puede ayudar. Gracias a esos que saben tanto y que comparten sus conocimientos.

Solución a Kernel driver not installed en VirtualBox

Lo primero que tenemos que hacer es ubicar un archivo y abrirlo con permisos root:

/usr/share/virtualbox/src/vboxhost/vboxnetflt/VBoxNetFltInternal.h

Nota: en el foro donde encontré la solución, el archivo no se llamaba VBoxNetFltInternal.h sino VBoxNetFlt-linux.c.

Cuando lo abres, encuentra la línea que contiene lo siguiente:

#include <VBox/intnet.h>

Nota: en el foro donde encontré la solución, el archivo no era VBox/intnet.h sino linux/inetdevice.h.

¿Cómo supe que esos eran los archivos correctos si no se llamaban igual? Pues suponiendo, la verdad.

Bueno, abajo de esa línea agregas lo siguiente:

#include <net/gso.h>

Con esto agregado, guarda el archivo (recuerda que debes estar como root). Entonces ejecutamos de nuevo el primer comando:

sudo /sbin/vboxconfig
sudo /sbin/vboxconfig sin errores

¡Ahora sí, sin errores papá!

Abriendo VirtualBox y… listo ahora sí, a seguir con el curso.

VirtualBox ejecutándose Kernel driver not installed
cisco skills for all maquina virtual

Gracias por leer.


Posted

in

, , ,

by