Ricompilare i moduli kernel per virtualbox con dkms

Tags: 

Con gli ultimi pacchetti di virtualbox su arch linux è scomparso il binario "vboxbuild" che permetteva di ricompilare i moduli quando mancavano (in genere dopo l'aggiornamento di un kernel non standard).

Poco male, il comando da eseguire per fare la stessa cosa è molto semplice:

sudo dkms install vboxhost/<versione>
#... e poi per caricare i moduli subito in memoria, se occorre ...
sudo modprobe vboxdrv; sudo modprobe vboxnetflt

Al posto di <versione> occorre inserire il numero di versione di virtualbox appena installato. Se non lo sappiamo possiamo cercarlo in vari modi: a parte guardare il pacchetto installato, una ricerca più "dkms-oriented" è eseguire il comando:

sudo dkms status

che risponde una cosa del tipo:

vboxhost, 4.1.20: added

Significa che sono disponibili i sorgenti per la versione 4.1.20, ma non sono stati compilati+installati. Facendo lo stesso comando "status" dopo "install" apparirà invece:

vboxhost, 4.1.20, 3.5.2-3-ck, x86_64: installed

Che indica che il modulo è installato, e su quale versione di kernel ("3.5.2-3-ck") + architettura ("x86_64").

Un altro modo per sapere che sorgenti sono disponibili per l'installazione è quello di guardare nella cartella "/var/lib/dkms/vboxhost/" e vedere che versione è presente (una sottocartella, in questo caso "4.1.20", che contiene i sorgenti).

  • Per conoscenza, la compilazione viene effettuata dentro "/var/lib/dkms/vboxhost/<ver>/build", e i moduli finali vengono creati dentro "/var/lib/dkms/vboxhost/<ver>/<kernel_ver>/<arch>/modules".
  • Da notare che il comando completo per la compilazione dei moduli, come citato dal wiki di arch linux, sarebbe:

    sudo dkms install vboxhost/<virtualbox-source version> -k <your custom kernel version>/<your architecture>

    In realtà se il kernel in uso al momento è anche lo stesso per il quale dobbiamo compilare la parte del "-k" è inutile.

    Comunque nel caso, per sapere il kernel attuale:

    uname -r

    Vedi: https://wiki.archlinux.org/index.php/VirtualBox#Hosts_running_a_custom_k...

     

    Da notare che tramite il pacchetto in AUR "virtualbox-hook" è possibile ricompilare automaticamente il modulo a ogni update del kernel.

    Vedi: https://wiki.archlinux.org/index.php/VirtualBox#Automatic_re-compilation...

    Aggiungi un commento