Błąd! Nie można znaleźć pliku dkms.conf`

42

Podczas niedawnego apt-get dist-upgrade12.10 otrzymałem następujący błąd:

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.

Jakieś pomysły?

Andrew Tomazos
źródło
Wiem, że to zła odpowiedź, ale zawsze mam ten błąd i wszystko działa dobrze. Chyba dkmspo prostu używa ustawień domyślnych.
MiJyn

Odpowiedzi:

28

Dostaję to od aktualizacji jądra, przez co nie wszystkie moje dkmssterowniki są aktualizowane podczas aktualizacji jądra.

Po pierwsze, byłem w stanie obejść ten problem, zmieniając konfigurację wszystkich pakietów, które dkmszmuszały je do ponownej kompilacji dla bieżącego jądra - np. Zawiodły moje sterowniki wideo AMD (pakiet == fglrx):

sudo dpkg-reconfigure fglrx

To przynajmniej skonfigurowałoby sterowniki dla bieżącej wersji.

W końcu znalazłem ten błąd, który obejmuje kilka kroków, które można wykonać, aby zdiagnozować: https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/830915

dkms status
ls -R /var/lib/dkms

Zasadniczo szukają czegoś, co jest zaskakujące lub nieoczekiwane - np. Pakiety, które odinstalowałeś - lub oprogramowanie, które zainstalowałeś ręcznie na wcześniejszej wersji ubuntu i może nie działać z nowszą wersją. W szczególności sprawdź znacznik daty w katalogach, który może wskazywać, że szczególnie stare pakiety mogą pochodzić z ręcznie zainstalowanych pakietów.

ls -l /var/lib/dkms

W moim przypadku miałem starą wersję fglrxinstalacji, której użyłem do diagnozowania niektórych problemów rok temu i po prostu zmieniłem jej nazwę. Usunięcie tego starego crufta sprawiło, że problem zniknął.

Jeśli jest śmieci, usuń go (lub przenieś z tego katalogu) - jeśli jest tam ręcznie zainstalowany pakiet, rozważ jego aktualizację lub odinstalowanie i użycie utrzymanej wersji.

Greg
źródło
Dziękuję za to, miałem problem ze nvidia-340sterownikiem ...
ionreflex,
1
Miałem ten sam problem zanbox
Aaronem Cofieldem,
28

Jest to zwykle spowodowane przez moduły /var/lib/dkms, które nie mają dkms.confpliku w swoich podkatalogach źródłowych - dkmsoczekuje tego pliku, więc zgłosi błąd, jeśli go brakuje, a następnie może przegapić kompilację niektórych prawidłowych modułów.

Aby znaleźć moduł obrażający, uruchom ten krótki skrypt (dzięki Lekensteyn ):

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

To wyświetli dowolne katalogi modułów dkms; możesz następnie zdecydować, czy odinstalować pakiet, który je utworzył, czy też został ręcznie zainstalowany lub zmienił nazwę, aby przenieść je gdzieś indziej lub usunąć.

David Fraser
źródło
3
Doskonały. Inne odpowiedzi mogą dotyczyć określonych instancji, ale bardzo szybko pokazało to, gdzie był problem (i tak naprawdę nie było problemu, ponieważ pewne oprogramowanie kopiowało stare instalacje do katalogu /var/lib/dkms/*.old).
Auspex
W przypadku gdy nvidia jest sprawcą, np /var/lib/dkms/nvidia/396.24/source. Wyjście, sprawdź, czy są już nowsze wersje /var/lib/dkms/nvidiai usuń winną.
Flatron
14

Miałem ten problem z VirtualBox z ppa Oracle, a nie z pakietem 12.04 LTS:

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

Skopiowałem zawartość / var / lib / dkms do innego katalogu jako kopię zapasową, a następnie usunąłem katalog vboxhost w / var / lib / dkms;

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

Następnie ponownie skonfigurowałem pakiet virtualbox w następujący sposób:

sudo dpkg-reconfigure virtualbox-4.2

i udało się to zrobić:

   * Trying to register the VirtualBox kernel modules using DKMS
Ian Ohr
źródło
1
Właśnie sudo dpkg-reconfigure virtualbox-4.2wykonałem robotę. Dziękuję
Siergiej
11

Długo też cierpiałem na ten problem. Muszę ponownie zainstalować sterownik NVIDIA za każdym razem po aktualizacji jądra i zrestartować. Ostatnio zacząłem analizować ten problem. W rzeczywistości moim problemem jest to, że istnieje wiele folderów modułów o tym samym prefiksie nvidia-pod /usr/src/i wiele folderów o różnych numerach wersji pod /var/lib/dkms/nvidia. Po usunięciu starszych wersji oba poniższe polecenia

    dkms status
    dkms autoinstall

pracował

antyk
źródło
Działa to dla mnie, ale musiałem zrobić apt-get install --reinstall dkmsi dkms autoinstallpo użyciu twojej metody ... a następnie zainstalować sterowniki NVIDIA ...
Milor123
tylko to rozwiązanie pomogło - pamiętaj, aby uruchomić z sudo
Aryeh Beitz
0

Zdarzyło mi się to raz na stacji roboczej Red Hat 7.5 ze sterownikiem Nvidia. Wiem, że to nie Ubuntu, ale może to komuś pomóc ...

Usuń pliki Nvidia z dkms, a następnie zainstaluj ponownie dkms:

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

Następnie zainstaluj ponownie sterownik Nvidia

./NVIDIA-installer.bin --dkms
reboot

OSTRZEŻENIE, działało to dla mnie, ale może nie być właściwym sposobem robienia rzeczy.

Jake
źródło
I działało dla ciebie na RedHat, nie na Ubuntu !!!
Soren A