Capita spesso su gentoo di dover/voler aggiornare il kernel, e alcuni software smettono di funzionare. Uno di questi é VirtualBox. Dopo un aggiornamento del kernel si presenta sempre il solito errore:
Questo perchè non sono stati ricompilati i moduli del kernel per allinearli alla nuova versione.
Quello che dobbiamo fare quindi é ricompilare questi moduli. Ma dal momento che se ne occuperá emerge, se il kernel lo abbiamo ricompilato manualmente, dobbiamo tramite eselect selezionare la nuova versione del kernel. Quindi prima di tutto vediamo che versione del kernel abbiamo installata:
susan Temp # uname -a Linux susan 3.8.13-gentoo #11 SMP Sat Aug 17 12:00:54 CEST 2013 i686 Intel(R) Core(TM) i3-2330M CPU @ 2.20GHz GenuineIntel GNU/Linux
Ora vediamo invece quale é la versione settata tramite eselect (che poi altri non é che il link alla cartella /usr/src/linux):
susan Temp # eselect kernel list Available kernel symlink targets: [1] linux-3.2.1-gentoo-r2 [2] linux-3.2.12-gentoo [3] linux-3.2.21-gentoo [4] linux-3.3.8-gentoo [5] linux-3.4-rc7 [6] linux-3.5.7-gentoo * [7] linux-3.7.9-gentoo [8] linux-3.7.10-gentoo [9] linux-3.8.13-gentoo [10] linux-3.10.7-gentoo
Come vedete in questo caso le due versioni differiscono. Quindi dobbiamo prima di tutto selezionare la nuova versione, per fare questo diamo:
# eselect kernel set 9
Nel vostro caso, sostituite 9 con il numero corrispondende alla vostra versione del kernel (attenzione che l’output di eselect puó essere diverso, se avete per esempio meno kernel installati, o magari se ne sono aggiunti altri, etc.). A questo punto lanciamo il comando per ricompilare i moduli del kernel:
emerge -av module-rebuild
Dopo di che diamo i seguenti comandi:
# module-rebuild populate # module-rebuild rebuild
Il primo permette di ripopolare il database con tutti quei pacchetti che devono installare moduli all’interno del kernel, il secondo invece ricompila questi moduli.
Ora date:
#modprobe vboxdrv
e il problema dovrebbe essere risolto!
anche (o meglio)
emerge -1 @module-rebuild