Attualmente devo ricompilare il mio driver wireless dal sorgente ogni volta che ricevo una nuova versione del kernel. Pensando che sarebbe stato incredibilmente hacker automatizzare questo processo, ho collegato il mio script di build Bash a /etc/kernel/postinst.d
. Ho verificato che, in effetti, viene eseguito quando viene installato l'ultimo aggiornamento del kernel, ma una cosa rimane come un problema:il driver viene compilato per la versione in esecuzione esistente del kernel.
Ad esempio, se eseguo 3.0.0-14-generic e apt-get dist-upgrade
al kernel 3.0.0-15-generic, quindi compila per il kernel 3.0.0-14-generic, il che non mi aiuta affatto.
C'è un modo per dire dal mio script postinst del kernel quale versione del kernel è stata installata in modo da poterla passare al mio make
call in modo che possa essere compilato per il kernel appena installato?
Risposta accettata:
Questa non è una vera risposta alla tua domanda, solo un puntatore a uno strumento che potrebbe essere correlato e utile:
Hai dkms
installato? (Alcune informazioni qui, la pagina dell'alioth sembra inattiva al momento.) Dovrebbe fare proprio questo, se non sono fuorviato. Richiede gli appropriati linux-headers
pacchetto e il modulo/firmware/qualcosa di simile al pacchetto da installare; e funziona per tutti linux-image
installati pacchetti. (Non posso dire nulla su un modulo generico, ma ha funzionato bene quando l'ho usato con il modulo nvidia non libero.)
(Ci sono più collegamenti qui, come la pagina di manuale e questo linuxjournal.com
articolo che fornisce una spiegazione del programma non incentrata sull'ecosistema Debian.)