Parfois, mon système entre dans un état où il manque un module ou deux à certains noyaux, car DKMS a oublié de compiler ces modules pour ce noyau. Plutôt que de passer du temps à diagnostiquer le problème, il serait bien qu’il y ait une seule commande pour pouvoir exécuter ce woudl et reconstruire chaque module contrôlé par dkms pour chaque noyau installé. Y a-t-il une telle commande?
kernel
kernel-modules
dkms
Ryan C. Thompson
la source
la source
Réponses:
J'ai imaginé un shell one-liner pour le faire:
Cela fonctionne car les noms des répertoires
/var/lib/initramfs-tools
sont exactement les noms de version du noyau que vous devez passer pourdkms_autoinstaller
lui indiquer de reconstruire tous les modules pour ces versions de noyau. Notez que si vous avez désinstallé d'anciens noyaux, leurs répertoires risquent de traîner et de générer des erreurs, mais cela ne pose pas de problème, cardkms_autoinstaller
rien ne sera fait pour les versions de noyau non installées.la source
dkms status
dans le nouveau noyau en utilisant les modules suivants que je voulais dans "/ usr / src". Les paramètres doivent être modifiés selon les besoins pour -c, -m, -v. Voici un exemple pour le module nvidia-384-384.90:ls /var/lib/initramfs-tools | \ sudo xargs -n1 /usr/sbin/dkms install -c /usr/src/nvidia-384-384.90/dkms.conf -m nvidia -v 384-384.90 -k
Ne semble pas que la
dkms
commande vous permet de le faire. J'ai créé un petit script Python qui devrait faire ce que vous voulez. Vous pouvez mettre un alias dans votre~/.bashrc
commeBien sûr, vous devez d'abord le rendre exécutable. Voici le code:
Testé ici, semble bien fonctionner:
Si vous souhaitez également installer les modules, remplacez build par install dans l'avant dernière ligne.
la source
En combinant les réponses de @htorque et de @Ryan Thompson, voici mon one-line (en tant que root):
la source
Ce qui précède ne fonctionne pas sur toutes les variantes, cela pourrait être un peu plus utile dans ces cas ...
la source
dkms status
etdkms_autoinstaller
ne fonctionne pas dans Ubuntu 16.x. Donc, un script shell fera l'affaire. Ce script suppose que vous avez*-dkms
installé le paquetage approprié etbash
constitue votre shell.la source
Une édition de script par @htorque. Utilisez-le si vous voulez forcer la reconstruction (et l'installation) de modules déjà construits. Basculé sur python3,
subprocess.run()
nécessite Python 3.5+.la source