Comment compiler le module DKMS pour plusieurs versions d'images du noyau dans Debian?

10

J'ai linux-imageinstallé les versions 3.16 et 4.0 du package. Lors de la connexion, je peux sélectionner le noyau que je veux démarrer dans l'élément de menu "options avancées". Cependant, lorsque j'installe un module DKMS, il est compilé uniquement pour la version la plus récente:

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

Paquets concernés ( linux-headers, linux-kbuild, linux-compiler-gcc) sont installés pour 3,16 aussi.

Pourquoi le paquet n'est-il pas compilé pour l'ancienne image du noyau? Puis-je configurer quelque chose pour qu'il soit compilé?

doublep
la source
2
Existe-t-il déjà, peut-être?
0xC0000022L
Je n'ai pas accès à cet ordinateur pour le moment, mais j'ai reçu le même message en essayant de réinstaller ce package DKMS. Donc, probablement non.
doublep
Non, il n'a pas été installé. Cependant, maintenant une nouvelle version de ce package est devenue disponible, et une fois que j'ai mis à niveau, il a été automatiquement construit pour les deux noyaux. Donc, cela pourrait aussi avoir été un problème dans le package. D'un autre côté, j'ai effectué une mise à niveau lors du démarrage de la version 3.16, alors peut-être qu'il se construit toujours pour le noyau actuel et pour les plus récents installés ?
doublep

Réponses:

4

Vous pouvez utiliser la commande d'installation DKMS (Réf man dkms:) pour reconstruire et installer le module pour un noyau spécifique. Ci-dessous un exemple créé en supprimant les modules de virtualbox pour une version du noyau.

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
la source
1
Génial, cela fonctionne. Et pour savoir quels modules et versions sont connus de DKMS, utilisez la dkms statuscommande.
Ruslan