Come posso compilare il modulo DKMS per più versioni di immagini del kernel in Debian?


10

Ho installato le versioni 3.16 e 4.0 del linux-imagepacchetto. Durante il login posso selezionare quale kernel voglio avviare nella voce di menu "opzioni avanzate". Tuttavia, quando installo un modulo DKMS, questo viene compilato solo per la versione più recente:

Setting up fglrx-modules-dkms (1:14.12-1) ...
Loading new fglrx-14.12 DKMS files...
Building only for 4.0.0-1-amd64

Pacchetti rilevanti ( linux-headers, linux-kbuild, linux-compiler-gcc) sono installati per 3.16 troppo.

Perché il pacchetto non viene compilato per la vecchia immagine del kernel? Posso configurare qualcosa in modo che sia compilato?


2
Esiste già, forse?
0xC0000022L

Al momento non ho accesso a quel computer per verificare, ma ho ricevuto lo stesso messaggio nel tentativo di reinstallare quel pacchetto DKMS. Quindi, probabilmente no.
doppio

No, non è stato installato. Tuttavia, ora è diventata disponibile una versione più recente di quel pacchetto e, una volta aggiornato, è stato creato automaticamente per entrambi i kernel. Quindi, potrebbe esserci stato qualche problema anche nel pacchetto. D'altra parte, ho eseguito l'aggiornamento durante l'avvio in 3.16, quindi forse si basa sempre sul kernel corrente e su quelli più recenti installati ?
doppio

Risposte:


5

È possibile utilizzare il comando di installazione DKMS (Rif . man dkms:) per ricostruire e installare il modulo per un kernel specifico. Di seguito un esempio creato rimuovendo i moduli virtualbox per una versione del kernel.

sudo dkms install <module-name>/<module-version> -k <kernel-version>

$ dkms status
vboxhost, 5.0.10, 4.2.0-21-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-22-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-23-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-25-generic, x86_64: installed

$ sudo dkms remove vboxhost/5.0.10 -k 4.2.0-22-generic
...

$ dkms status
vboxhost, 5.0.10, 4.2.0-21-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-23-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-25-generic, x86_64: installed


$ sudo dkms install vboxhost/5.0.10 -k 4.2.0-22-generic

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....
make KERNELRELEASE=4.2.0-22-generic -C /lib/modules/4.2.0-22-generic/build M=/var/lib/dkms/vboxhost/5.0.10/build...............
cleaning build area....

DKMS: build completed.

vboxdrv.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.2.0-22-generic/updates/dkms/

vboxnetflt.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.2.0-22-generic/updates/dkms/

vboxnetadp.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.2.0-22-generic/updates/dkms/

vboxpci.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.2.0-22-generic/updates/dkms/

depmod....

DKMS: install completed.

$ dkms status
vboxhost, 5.0.10, 4.2.0-21-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-22-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-23-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-25-generic, x86_64: installed

1
Ottimo, questo funziona. E per sapere quali moduli e versioni sono noti a DKMS, usa il dkms statuscomando.
Ruslan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.