vboxdrv

VirtualBox-Kernel-Modul bauen

Wenn ihr Mainline oder einen anderen Kernel-Updater verwendet, kenn ihr bestimmt das Problem, dass bestimmt Module, die vorher problemlos kompiliert werden konnten, plötzlich nicht mehr geladen werden bzw. gefunden werden können, da die Updateroutine nicht in der Lage war, das Modul für den neuen Kernel zu bauen.

So erging es mir als ich Ubuntu vom Kernel zuerst auf 6.4.10 und dann auf 6.4.11 upgedatet hatte. Das Update musste ich machen, da aus einem unerfindlichen Grund meine Nvidia-Treiber instabil wurden – das Bild fror einfach ein. Mein PC arbeitete aber problemlos weiter. Die Musik, die ich über Spotify wiedergab, spielte weiter und reagierte auch auf Tasten wie Vor und Zurück oder lauter und leiser. Aber das nur am Rande.

Ich hatte von da an das Problem, dass Virtualbox meine virtuellen Maschinen nicht mehr starten konnte, da angeblich das Modul vboxdrv nicht vorhanden sei.

Ich führte /sbin/vboxconfig aus und erhielt diese Meldung:

vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

There were problems setting up VirtualBox. To re-start the set-up process, run
/sbin/vboxconfig
as root. If your system is using EFI Secure Boot you may 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.

In der log.Datei waren dann gleich am Anfang die Meldungen, dass das Modul nicht gebaut werden konnte, da meine gcc-Version nicht der entpricht, mit der der Kernel gebaut wurde:

warning: the compiler differs from the one used to build the kernel
The kernel was built by: gcc (Ubuntu 13.2.0-3ubuntu1) 13.2.0
You are using: gcc (Ubuntu 13.1.0-2ubuntu2~23.04) 13.1.0

Die Eingabe von lsmod | grep "vboxdrv" ergab, dass es tatsächlich kein Modul mehr gab, das geladen werden konnte.

Also versuchte ich den manuellen Weg:
Es ging um das Modul VBoxDrv.ko, ohne das VirtualBox zwar startete aber keine virtuelle Maschine mehr. Es kam immer die Fehlermeldung, dass der Treiber nicht installiert sei.

Kurz um: hier die Methode, die bei mir funktioniert hat:

Der Sourcecode für vboxdrv liegt hier:
/usr/share/virtualbox/src/vboxhost/vboxdrv

  1. In das besagte Verzeichnis wechseln: cd /usr/share/virtualbox/src/vboxhost/vboxdrv
  2. mit sudo make && make install das Modul bauen. Komischerweise kam zwar hier auch die Fehlermeldung, aber das Modul wurde problemlos gebaut.
  3. Zum Schluss noch mit sudo insmod ./vboxdrv.ko das Modul laden
  4. Direkt danach startete auch meine virtuelle Windows 10 Maschine wieder vollkommen normal.
  5. Damit das Modul auch nach einem Neustart automatisch geladen wird, muss es noch in die /etc/modules eingetragen werden: sudo nano /etc/modules und als letzte Zeile tragen wir dann vboxdrv ein.
    Statt nano kann auch der Gnome-Editor gedit oder ein anderer Editor wie pico oder vim benutzt werden.

Sollte beim Kompilieren eine Fehlermeldung á la fatal error: opening dependency file /usr/share/virtualbox/src/vboxhost/vboxdrv/.combined-agnostic1.o.d oder einer anderen Datei erscheinen, gibt es eine einfache Lösung:

sudo su
cd /usr/share/virtualbox/src/vboxhost/vboxdrv
make && make install
insmod ./vboxdrv.ko
exit

Dieses mal sollte keine Fehlermeldung erscheinen. Dann wieder mit insmod ./vboxdrv.ko das Modul laden und wieder mit einem Editor in die /etc/modules eintragen.

Wenn nach einem Neustart das Modul immer noch nicht geladen wird, dann müssen wir einen Gang zulegen:

sudo depmod -a

Damit werden alle Module neu gesucht und nicht geladene Module geladen.

Ein kleiner aber gemeiner Fehler aber ich hoffe, das euch diese kleine Anleitung geholfen hat.

 Letztes Update: Fr, 25. Aug. 2023
Ursprünglich veröffentlicht:  Do, 24. Aug. 2023

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert