sudo dkms build -m <modulo> -v <versione_modulo> -k <versione_kernel> sudo dkms install -m <modulo> -v <versione_modulo> -k <versione_kernel> sudo dkms statusIl primo comando serve per compilare il modulo, nella versione <versione_modulo> e per il kernel <versione_kernel>, il secondo comando serve per installare il modulo compilato (prima di procedere con questo comando assicurarsi che la compilazione sia andata a buon fine. La buona riuscita o meno della compilazione viene segnalata dai messaggi di output del comando dkms build) e l'ultimo serve per verificare lo stato dei moduli gestiti da DKMS, per controllare che i moduli desiderati siano stati effettivamente installati. Per conoscere la versione del kernel attualmente in uso si può dare nel terminale il comando uname -r.
Quando si installa una nuova versione dei driver proprietari della scheda video (farò l'esempio con una scheda Nvidia), viene compilato solo il modulo per il kernel attualmente in uso (oltre ai kernel successivamente installati, come abbiamo già detto prima). Si potrebbe, però, voler compilare il modulo anche per una versione del kernel diversa da quella in uso (come può essere una versione precedente). Ammettiamo quindi per esempio che il modulo che si voglia ricompilare è il driver Nvidia, chiamato nvidia, che la sua versione è la 280.13 e che il kernel per il quale si vuole ricompilare il modulo è il 3.0.0-1-686-pae. Dunque dovremo dare i seguenti comandi per compilare e installare il modulo:
sudo dkms build -m nvidia -v 280.13 -k 3.0.0-1-686-pae sudo dkms install -m nvidia -v 280.13 -k 3.0.0-1-686-paeAlla fine potremo usare il comando dkms status per controllare lo stato dei moduli così installati. L'output sarà qualcosa di questo tipo
nvidia, 280.13, 2.6.38-2-686, i686: installed nvidia, 280.13, 2.6.39-2-686-pae, i686: installed nvidia, 280.13, 3.0.0-1-686-pae, i686: installedNaturalmente consiglio di consultare il manuale di DKMS (man dkms) per avere maggiori informazioni sul programma e le sue opzioni.
Invece di usare dkms build e dkms install, è possibile utilizzare il comando dkms autoinstall che installa, per una specifica versione del kernel, tutti i moduli che sono già installati per altre versioni del kernel diverse da quella indicata. La sintassi è
sudo dkms autoinstall --kernelver <versione_kernel>Si può anche eseguire direttamente lo script dkms_autoinstaller citato all'inizio (il breve script dkms_autoinstaller richiama a sua volta dkms autoinstall al suo interno). La sintassi è
/usr/lib/dkms/dkms_autoinstaller startse si vogliono compilare i moduli per il kernel attualmente in uso oppure
/usr/lib/dkms/dkms_autoinstaller start <versione_kernel>se si vuole indicare una particolare versione del kernel.
I comandi sopra spiegati sono validi solo se il modulo è già predisposto per la compilazione con DKMS. Per aggiungere il supporto a DKMS a dei moduli di cui si possiede il codice sorgente si può vedere qui.
I comandi di questo post sono stati presi dal seguente messaggio dell'utente bugsbunny sul forum forums.debian.net: http://forums.debian.net/viewtopic.php?f=6&t=66973#p382913.