`Kesalahan! Tidak dapat menemukan file dkms.conf`

42

Selama apt-get dist-upgradepukul 12.10 baru-baru ini saya menerima kesalahan berikut:

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.

Ada ide?

Andrew Tomazos
sumber
Saya tahu ini adalah jawaban yang buruk, tetapi saya selalu memiliki kesalahan itu, dan semuanya berjalan dengan baik. Saya kira dkmshanya menggunakan pengaturan default.
MiJyn

Jawaban:

28

Saya sudah mendapatkan itu pada peningkatan kernel untuk sementara waktu, dengan hasil bahwa tidak semua dkmsdriver saya diperbarui pada peningkatan kernel.

Pertama saya dapat menyelesaikan masalah dengan mengkonfigurasi ulang paket yang digunakan dkmsuntuk memaksa mereka untuk dikompilasi ulang untuk kernel saat ini - misalnya driver video AMD saya yang gagal (paket == fglrx):

sudo dpkg-reconfigure fglrx

Setidaknya itu akan membuat driver dikonfigurasi untuk versi saat ini.

Akhirnya saya menemukan bug ini, yang mencakup beberapa langkah yang dapat Anda gunakan untuk mendiagnosis: https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/830915

dkms status
ls -R /var/lib/dkms

Pada dasarnya apa yang mereka lakukan adalah mencari-cari sesuatu yang mengejutkan, atau tidak terduga - misalnya paket yang telah Anda hapus - atau perangkat lunak yang telah Anda instal secara manual pada versi ubuntu sebelumnya dan mungkin tidak berfungsi dengan versi yang lebih baru. Terutama periksa cap tanggal pada direktori yang mungkin menunjukkan Anda paket lama bisa dari paket yang diinstal secara manual.

ls -l /var/lib/dkms

Dalam kasus saya, saya memiliki versi lama fglrxpemasangan yang saya gunakan untuk mendiagnosis beberapa masalah setahun yang lalu dan hanya menamainya kembali. Menghapus cruft tua ini membuat masalah hilang.

Jika ada sampah yang menghapusnya (atau memindahkannya dari direktori itu) - jika ada paket yang diinstal secara manual di sana, pertimbangkan untuk memperbaruinya, atau mencopotnya dan menggunakan versi yang dipertahankan.

Greg
sumber
Terima kasih untuk ini, masalah yang saya miliki adalah dengan nvidia-340pengemudi ...
ionreflex
1
Saya memiliki masalah yang sama dengananbox
Aaron Cofield
29

Ini biasanya disebabkan oleh modul /var/lib/dkmsyang tidak memiliki dkms.conffile di dalam subdirektori sumbernya - dkmsmengharapkan file ini, jadi akan melaporkan kesalahan jika hilang, dan kemudian mungkin kehilangan kompilasi beberapa modul yang valid.

Untuk menemukan modul yang menyinggung, jalankan skrip pendek ini (terima kasih kepada Lekensteyn ):

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

Itu akan menampilkan direktori modul dkms; Anda kemudian dapat memutuskan apakah akan menghapus paket yang membuatnya, atau jika mereka telah diinstal secara manual atau diganti namanya, untuk memindahkannya ke tempat lain atau menghapusnya.

David Fraser
sumber
3
Sempurna. Jawaban lain mungkin berlaku untuk contoh spesifik, tetapi ini dengan sangat cepat menunjukkan di mana masalahnya (dan itu benar-benar bukan masalah, karena perangkat lunak tertentu sedang menyalin instalasi lama ke direktori /var/lib/dkms/*.old).
Auspex
Dalam hal nvidia adalah pelanggar misalnya /var/lib/dkms/nvidia/396.24/sourceadalah output, periksa sudah ada versi yang lebih baru /var/lib/dkms/nvidiadan hapus yang menyinggung.
Flatron
Terima kasih! Dalam kasus saya pelaku adalah open-vm-toolspaket, dan setelah membersihkan saya harus ingat untuk menjalankannya apt auto-remove, karena ketergantungan menyebabkan masalah ini.
Tampilan elips
14

Saya punya masalah dengan VirtualBox dari Oracle ppa, daripada yang dikemas dengan 12,04 LTS:

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

Saya menyalin isi / var / lib / dkms ke direktori lain sebagai cadangan, lalu menghapus direktori vboxhost di / var / lib / dkms;

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

Saya kemudian mengkonfigurasi ulang paket virtualbox seperti ini:

sudo dpkg-reconfigure virtualbox-4.2

dan berhasil melakukan ini:

   * Trying to register the VirtualBox kernel modules using DKMS
Ian Ohr
sumber
1
Baru saja sudo dpkg-reconfigure virtualbox-4.2melakukan pekerjaan. Terima kasih
Sergey
11

Saya juga menderita masalah ini untuk waktu yang lama. Saya perlu menginstal ulang driver NVIDIA setiap kali setelah pembaruan kernel dan restart. Baru-baru ini, saya mulai melihat masalah ini. Sebenarnya, masalah saya adalah bahwa ada beberapa folder modul dengan awalan yang sama di nvidia-bawah /usr/src/dan beberapa folder dengan nomor versi yang berbeda di bawah /var/lib/dkms/nvidia. Setelah menghapus versi yang lebih lama, keduanya mengikuti perintah

    dkms status
    dkms autoinstall

bekerja.

jaman dahulu
sumber
Ini bekerja untuk saya, tetapi saya harus melakukan apt-get install --reinstall dkmsdan dkms autoinstallsetelah menggunakan metode Anda ... dan kemudian menginstal driver nvidia ...
Milor123
hanya solusi ini yang membantu - pastikan untuk menjalankannya dengan sudo
Aryeh Beitz
0

Ini pernah terjadi pada saya di Red Hat 7.5 Workstation dengan driver Nvidia. Saya tahu ini bukan Ubuntu tetapi ini dapat membantu seseorang ...

Hapus file Nvidia dari dkms dan kemudian instal ulang dkms:

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

Kemudian instal ulang driver Nvidia

./NVIDIA-installer.bin --dkms
reboot

PERINGATAN, ini bekerja untuk saya tetapi mungkin bukan cara yang benar dalam melakukan sesuatu.

Jake
sumber
Dan itu berhasil untuk Anda di RedHat, bukan di Ubuntu !!!
Soren A