`Erreur! Impossible de localiser le fichier dkms.conf`

42

Au cours d'une récente apt-get dist-upgradede 12.10 j'ai reçu l'erreur suivante:

Setting up linux-headers-3.5.0-19-generic (3.5.0-19.30) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 3.5.0-19-generic /boot/vmlinuz-3.5.0-19-generic
Error! Could not locate dkms.conf file.
File:  does not exist.

Des idées?

Andrew Tomazos
la source
Je sais que c'est une mauvaise réponse, mais j'ai toujours cette erreur et les choses fonctionnent bien. Je suppose dkmsque n'utilise que les paramètres par défaut.
MiJyn

Réponses:

28

Cela fait un certain temps que je reçois cette information sur les mises à niveau du noyau, de sorte que tous mes dkmspilotes ne sont pas mis à jour sur les mises à niveau du noyau.

Tout d'abord, j'ai pu contourner le problème en reconfigurant tous les packages qui dkmsles obligeaient à être recompilés pour le noyau actuel - par exemple, ce sont mes pilotes vidéo AMD qui ont échoué (package == fglrx):

sudo dpkg-reconfigure fglrx

Cela permettrait au moins de configurer les pilotes pour la version actuelle.

Enfin, j'ai trouvé ce bogue, qui inclut certaines étapes permettant de diagnostiquer: https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/830915

dkms status
ls -R /var/lib/dkms

Essentiellement, ils recherchent tout ce qui est surprenant ou inattendu - par exemple, des packages que vous avez désinstallés - ou des logiciels que vous avez installés manuellement sur une version antérieure d'ubuntu et qui risquent de ne pas fonctionner avec la version la plus récente. Vérifiez en particulier l’horodatage des répertoires qui pourrait indiquer que des paquets particulièrement anciens peuvent provenir de paquets installés manuellement.

ls -l /var/lib/dkms

Dans mon cas, j'avais une ancienne version de l' fglrxinstallation que j'avais utilisée pour diagnostiquer certains problèmes il y a un an et que je l'avais simplement renommée. La suppression de ce vieil état a fait disparaître le problème.

S'il y a de la malbouffe, supprimez-la (ou déplacez-la hors de ce répertoire) - si un paquet est installé manuellement, envisagez de le mettre à jour, ou de le désinstaller et d'utiliser la version conservée.

Greg
la source
Merci pour cela, le problème que j'ai eu était avec le nvidia-340pilote ...
ionreflex
1
J'ai eu le même problème avecanbox
Aaron Cofield
29

Cela est généralement dû à des modules /var/lib/dkmsqui n'ont pas de dkms.conffichier dans leurs sous-répertoires sources. dkmsCe fichier est attendu, il signalera donc une erreur s'il est manquant et risque de rater la compilation de certains modules valides.

Pour trouver le module incriminé, exécutez ce court script (grâce à Lekensteyn ):

for i in /var/lib/dkms/*/[^k]*/source; do [ -e "$i" ] || echo "$i";done

Cela produira tous les répertoires du module dkms; vous pouvez ensuite décider de désinstaller le package qui les a créés ou, s'ils ont été installés ou renommés manuellement, de les déplacer ailleurs ou de les supprimer.

David Fraser
la source
3
Parfait. Les autres réponses peuvent s’appliquer à des instances spécifiques, mais cela montre très rapidement où se trouve le problème (ce n’était vraiment pas un problème, certains logiciels copiant d’anciennes installations dans un répertoire /var/lib/dkms/*.old).
Auspex
Si nvidia est le délinquant, par exemple, /var/lib/dkms/nvidia/396.24/sourcela sortie, vérifiez qu’il existe déjà des versions plus récentes /var/lib/dkms/nvidiaet supprimez la version incriminée.
Flatron
Merci! Dans mon cas, le délinquant était constitué de open-vm-toolspaquets, et après la purge, je devais me rappeler de le lancer apt auto-remove, car une dépendance était à l'origine de ce problème.
Vue elliptique
14

J'ai eu ce problème avec VirtualBox de ppa d'Oracle, plutôt que celui fourni avec 12.04 LTS:

Error! Could not locate dkms.conf file.
File:  does not exist.

J'ai copié le contenu de / var / lib / dkms dans un autre répertoire en tant que sauvegarde, puis j'ai supprimé le répertoire vboxhost dans / var / lib / dkms;

mkdir ~/backup_dkms
cp -r /var/lib/dkms/* ~/backup_dkms 
rm -rf /var/lib/dkms/vboxhost

J'ai ensuite reconfiguré le paquet virtualbox comme ceci:

sudo dpkg-reconfigure virtualbox-4.2

et il a réussi à faire ceci:

   * Trying to register the VirtualBox kernel modules using DKMS
Ian Ohr
la source
1
Je viens de sudo dpkg-reconfigure virtualbox-4.2faire le travail. Merci
Sergey
11

Je souffrais aussi de ce problème depuis longtemps. Je dois réinstaller le pilote NVIDIA à chaque fois après la mise à jour et le redémarrage du noyau. Récemment, j'ai commencé à examiner ce problème. En fait, mon problème est qu'il ya des dossiers de modules multiples avec le même préfixe nvidia-sous /usr/src/et plusieurs dossiers avec différents numéros de version sous /var/lib/dkms/nvidia. Après avoir supprimé les anciennes versions, les deux commandes suivantes

    dkms status
    dkms autoinstall

travaillé.

antiquité
la source
Cela fonctionne pour moi, mais je devais faire apt-get install --reinstall dkmset dkms autoinstallaprès avoir utilisé votre méthode ... et ensuite installer les pilotes nvidia ...
Milor123
seule cette solution a aidé - assurez-vous de fonctionner avec sudo
Aryeh Beitz
0

Cela m'est arrivé une fois sur une station de travail Red Hat 7.5 avec un pilote Nvidia. Je sais que ce n'est pas Ubuntu mais cela peut aider quelqu'un ...

Supprimez les fichiers Nvidia de dkms, puis réinstallez dkms:

rm -rf /var/lib/dkms/nvidia
yum reinstall dkms

Puis réinstallez le pilote Nvidia

./NVIDIA-installer.bin --dkms
reboot

ATTENTION, cela a fonctionné pour moi mais peut ne pas être la bonne façon de faire les choses.

Jake
la source
Et cela a fonctionné pour vous sur RedHat, pas sur Ubuntu !!!
Soren Un