Wie kompiliere ich das DKMS-Modul für mehrere Kernel-Image-Versionen in Debian?

10

Ich habe die Versionen 3.16 und 4.0 des linux-imagePakets installiert. Während der Anmeldung kann ich im Menüpunkt "Erweiterte Optionen" auswählen, welchen Kernel ich starten möchte. Wenn ich jedoch ein DKMS-Modul installiere, wird es nur für die neuere Version kompiliert:

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

Relevante Pakete ( linux-headers, linux-kbuild, linux-compiler-gcc) für 3.16 zu installieren.

Warum wird das Paket nicht für das alte Kernel-Image kompiliert? Kann ich konfigurieren etwas so es wird kompiliert?

doublep
quelle
2
Existiert es vielleicht schon?
0xC0000022L
Ich habe momentan keinen Zugriff auf diesen Computer, um dies zu überprüfen, aber ich habe die gleiche Meldung erhalten, dass ich versucht habe, dieses DKMS-Paket neu zu installieren. Also wahrscheinlich nein.
Doublep
Nein, es wurde nicht installiert. Jetzt wurde jedoch eine neuere Version dieses Pakets verfügbar, und nach dem Upgrade wurde es automatisch für beide Kernel erstellt. Es könnte also auch ein Problem im Paket gewesen sein. Auf der anderen Seite führte ich während in 3,16 gebootet aktualisieren, so vielleicht ist es baut für immer den aktuellen Kernel und alle installierten neueren diejenigen?
Doublep

Antworten:

4

Sie können den DKMS-Installationsbefehl (Ref man dkms:) verwenden, um das Modul für einen bestimmten Kernel neu zu erstellen und zu installieren. Unten ein Beispiel, das durch Entfernen von Virtualbox-Modulen für eine Kernelversion erstellt wurde.

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
user.dz
quelle
1
Großartig, das funktioniert. Verwenden Sie den dkms statusBefehl , um zu erfahren, welche Module und Versionen DKMS bekannt sind .
Ruslan