`Errore! Impossibile trovare il file dkms.conf`


42

Durante un recente apt-get dist-upgrade12.10 ho ricevuto il seguente errore:

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.

Qualche idea?


So che questa è una cattiva risposta, ma ho sempre quell'errore e le cose funzionano bene. Suppongo dkmsche usi solo le impostazioni predefinite.
MiJyn,

Risposte:


28

Lo ottengo dagli aggiornamenti del kernel da un po ', con il risultato che non tutti i miei dkmsdriver vengono aggiornati sugli aggiornamenti del kernel.

In primo luogo sono stato in grado di risolvere il problema riconfigurando tutti i pacchetti che dkmsli costringevano a essere ricompilati per il kernel corrente, ad esempio sono stati i miei driver video AMD a fallire (pacchetto == fglrx):

sudo dpkg-reconfigure fglrx

Ciò consentirebbe almeno di configurare i driver per la versione corrente.

Alla fine ho trovato questo bug, che include alcuni passaggi che è possibile utilizzare per diagnosticare: https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/830915

dkms status
ls -R /var/lib/dkms

Fondamentalmente quello che stanno facendo è cercare qualcosa di sorprendente o imprevisto, ad esempio pacchetti disinstallati, o software installato manualmente su una versione precedente di Ubuntu e potrebbe non funzionare con la versione più recente. Controllare in particolare il segno di data sulle directory che potrebbe mostrare che pacchetti particolarmente vecchi potrebbero provenire da pacchetti installati manualmente.

ls -l /var/lib/dkms

Nel mio caso avevo una vecchia versione fglrxdell'installazione che avevo usato per diagnosticare alcuni problemi un anno fa e l'avevo semplicemente ribattezzata. L'eliminazione di questa vecchia cruft ha risolto il problema.

Se c'è spazzatura, eliminala (o spostala da quella directory) - se c'è un pacchetto installato manualmente, considera l'aggiornamento o la disinstallazione e l'utilizzo della versione gestita.


Grazie per questo, il problema che ho avuto era con l' nvidia-340autista ...
ionreflex,

1
Ho avuto lo stesso problema conanbox
Aaron Cofield il

29

Questo di solito è causato da moduli /var/lib/dkmsche non hanno un dkms.conffile all'interno delle loro sottodirectory di origine - si dkmsaspetta questo file, quindi segnalerà un errore se manca, e quindi potrebbe perdere la compilazione di alcuni moduli validi.

Per trovare il modulo offensivo, esegui questo breve script (grazie a Lekensteyn ):

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

Questo produrrà tutte le directory del modulo dkms; è quindi possibile decidere se disinstallare il pacchetto che li ha creati o se sono stati installati o rinominati manualmente, per spostarli da qualche altra parte o rimuoverli.


3
Perfezionare. Le altre risposte possono applicarsi a istanze specifiche, ma ciò ha dimostrato molto rapidamente dove si trovava il problema (ed era davvero un non-problema, dato che alcuni software stavano copiando le vecchie installazioni in una directory /var/lib/dkms/*.old).
Auspex,

Nel caso in cui nvidia sia l'autore del reato, ad esempio /var/lib/dkms/nvidia/396.24/sourcel'output, controlla che ci siano già versioni più recenti /var/lib/dkms/nvidiae rimuovi quella offensiva.
Flatron,

Grazie! Nel mio caso l'autore del reato era un open-vm-toolspacco, e dopo essere stato eliminato ho dovuto ricordarmi di correre apt auto-remove, poiché una dipendenza stava causando questo problema.
Vista ellittica il

14

Ho avuto questo problema con VirtualBox dal ppa di Oracle, piuttosto che quello impacchettato con 12.04 LTS:

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

Ho copiato il contenuto di / var / lib / dkms in un'altra directory come backup, quindi ho rimosso la directory vboxhost in / var / lib / dkms;

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

Ho quindi riconfigurato il pacchetto virtualbox in questo modo:

sudo dpkg-reconfigure virtualbox-4.2

e ci riuscì:

   * Trying to register the VirtualBox kernel modules using DKMS

1
Ho appena sudo dpkg-reconfigure virtualbox-4.2fatto il lavoro. Grazie
Sergey

11

Soffrivo anche di questo problema da molto tempo. Devo reinstallare il driver NVIDIA ogni volta dopo l'aggiornamento e il riavvio del kernel. Di recente, ho iniziato a esaminare questo problema. In realtà, il mio problema è che ci sono più cartelle di moduli con lo stesso prefisso nvidia-sotto /usr/src/e più cartelle con numeri di versione diversi sotto /var/lib/dkms/nvidia. Dopo aver rimosso le versioni precedenti, entrambi i seguenti comandi

    dkms status
    dkms autoinstall

lavorato.


Funziona per me, ma ho dovuto fare apt-get install --reinstall dkmse dkms autoinstalldopo aver usato il tuo metodo ... e poi installare i driver nvidia ...
Milor123

solo questa soluzione ha aiutato - assicurati di correre con sudo
Aryeh Beitz il

0

Questo mi è successo una volta su una Red Hat 7.5 Workstation con un driver Nvidia. So che non è Ubuntu ma questo potrebbe aiutare qualcuno ...

Rimuovere i file Nvidia da dkms e quindi reinstallare dkms:

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

Quindi reinstallare il driver Nvidia

./NVIDIA-installer.bin --dkms
reboot

ATTENZIONE, questo ha funzionato per me ma potrebbe non essere il modo corretto di fare le cose.


E ha funzionato per te su RedHat, non su Ubuntu !!!
Soren A
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.