`ข้อผิดพลาด! ไม่พบไฟล์ dkms.conf


42

ระหว่างapt-get dist-upgrade12.10 เมื่อเร็ว ๆ นี้ฉันได้รับข้อผิดพลาดต่อไปนี้:

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.

ความคิดใด ๆ


ฉันรู้ว่านี่เป็นคำตอบที่ไม่ดี แต่ฉันมักจะมีข้อผิดพลาดนั้นและสิ่งที่ทำงานได้ดี ฉันเดาว่าdkmsจะใช้การตั้งค่าเริ่มต้นเท่านั้น
MiJyn

คำตอบ:


28

ฉันได้รับการอัพเกรดเคอร์เนลมาระยะหนึ่งแล้วด้วยผลลัพธ์ที่ว่าdkmsไดรเวอร์ของฉันไม่ได้รับการอัพเดตเมื่ออัพเกรดเคอร์เนล

ประการแรกฉันสามารถแก้ไขปัญหาด้วยการกำหนดค่าแพ็คเกจที่เคยdkmsบังคับให้คอมไพล์ใหม่สำหรับเคอร์เนลปัจจุบัน - เช่นเป็นไดรเวอร์วิดีโอของ AMD ที่ล้มเหลว (package == fglrx):

sudo dpkg-reconfigure fglrx

อย่างน้อยก็จะได้รับการกำหนดค่าไดรเวอร์สำหรับรุ่นปัจจุบัน

ในที่สุดฉันก็พบข้อผิดพลาดนี้ซึ่งรวมถึงขั้นตอนบางอย่างที่คุณสามารถใช้เพื่อวินิจฉัย: https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/830915

dkms status
ls -R /var/lib/dkms

โดยทั่วไปสิ่งที่พวกเขากำลังทำอยู่นั้นกำลังมองหาสิ่งที่น่าแปลกใจหรือไม่คาดคิด - เช่นแพ็คเกจที่คุณถอนการติดตั้ง - หรือซอฟต์แวร์ที่คุณติดตั้งด้วยตนเองในอูบุนตูรุ่นก่อนหน้านี้และอาจไม่ทำงานกับรุ่นที่ใหม่กว่า โดยเฉพาะอย่างยิ่งตรวจสอบประทับวันที่ในไดเรกทอรีที่อาจแสดงให้คุณเห็นแพคเกจเก่าโดยเฉพาะอย่างยิ่งอาจจะมาจากแพคเกจที่ติดตั้งด้วยตนเอง

ls -l /var/lib/dkms

ในกรณีของฉันฉันมีเวอร์ชันเก่าของการfglrxติดตั้งฉันใช้เพื่อวินิจฉัยปัญหาบางอย่างเมื่อปีที่แล้วและเพิ่งตั้งชื่อใหม่ การลบ cruft เก่านี้ทำให้ปัญหาหายไป

หากมีขยะอยู่ให้ลบออก (หรือย้ายออกจากไดเรกทอรีนั้น) - หากมีแพ็คเกจที่ติดตั้งด้วยตนเองให้ลองทำการอัปเดตหรือถอนการติดตั้งและใช้เวอร์ชันบำรุงรักษา


ขอบคุณสำหรับสิ่งนี้ปัญหาที่ฉันมีกับnvidia-340คนขับ ...
ionreflex

1
ฉันมีปัญหาเดียวกันกับanbox
Aaron Cofield

28

ซึ่งมักจะเกิดจากโมดูล/var/lib/dkmsที่ไม่มีdkms.confไฟล์ภายในไดเรกทอรีย่อยซอร์ส - dkmsคาดว่าไฟล์นี้ดังนั้นจะรายงานข้อผิดพลาดหากมันหายไปจากนั้นอาจพลาดการรวบรวมบางโมดูลที่ถูกต้อง

ในการค้นหาโมดูลที่ละเมิดให้รันสคริปต์สั้น ๆ นี้ (ขอบคุณLekensteyn ):

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

ที่จะส่งออกใด ๆ ไดเรกทอรีโมดูล dkms; จากนั้นคุณสามารถตัดสินใจได้ว่าจะถอนการติดตั้งแพคเกจที่สร้างขึ้นหรือถ้าพวกเขาได้รับการติดตั้งหรือเปลี่ยนชื่อด้วยตนเองเพื่อย้ายไปที่อื่นหรือลบออก


3
สมบูรณ์ คำตอบอื่น ๆ อาจนำไปใช้กับอินสแตนซ์ที่เฉพาะเจาะจง แต่สิ่งนี้แสดงให้เห็นอย่างรวดเร็วว่าปัญหาเกิดขึ้นที่ใด (และเป็นปัญหาที่ไม่จริงเพราะซอฟต์แวร์บางอย่างกำลังคัดลอกการติดตั้งเก่าไปยังไดเรกทอรี /var/lib/dkms/*.old)
Auspex

ในกรณีที่ nvidia เป็นผู้กระทำผิดเช่น/var/lib/dkms/nvidia/396.24/sourceเป็นผลลัพธ์ให้ตรวจสอบว่ามีเวอร์ชั่นที่ใหม่กว่าอยู่แล้ว/var/lib/dkms/nvidiaและลบรายการที่ละเมิดออก
Flatron

14

ฉันมีปัญหานี้กับ VirtualBox จาก ppa ของ Oracle มากกว่าหนึ่งที่บรรจุด้วย 12.04 LTS:

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

ฉันคัดลอกเนื้อหาของ / var / lib / dkms ไปยังไดเรกทอรีอื่นเป็นการสำรองข้อมูลจากนั้นลบไดเรกทอรี vboxhost ใน / var / lib / dkms;

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

ฉันกำหนดค่าแพคเกจ Virtualbox ใหม่เช่นนี้:

sudo dpkg-reconfigure virtualbox-4.2

และมันก็ประสบความสำเร็จในการทำเช่นนี้:

   * Trying to register the VirtualBox kernel modules using DKMS

1
เพิ่งsudo dpkg-reconfigure virtualbox-4.2ได้งาน ขอบคุณ
Sergey

11

ฉันก็ทรมานจากปัญหานี้มาเป็นเวลานาน ฉันต้องติดตั้งไดรเวอร์ NVIDIA ใหม่ทุกครั้งหลังจากอัพเดตเคอร์เนลและรีสตาร์ท เมื่อเร็ว ๆ นี้ฉันเริ่มที่จะมองปัญหานี้ อันที่จริงปัญหาของฉันคือว่ามีหลายโฟลเดอร์โมดูลด้วยคำนำหน้าเดียวกันnvidia-ภายใต้และหลายโฟลเดอร์ที่มีหมายเลขรุ่นที่แตกต่างภายใต้/usr/src/ /var/lib/dkms/nvidiaหลังจากลบเวอร์ชันเก่าออกแล้วทั้งสองคำสั่งต่อไปนี้

    dkms status
    dkms autoinstall

ทำงาน


มันใช้งานได้สำหรับฉัน แต่ฉันต้องทำapt-get install --reinstall dkmsและdkms autoinstallหลังจากใช้วิธีการของคุณ ... แล้วติดตั้งไดรเวอร์ nvidia ...
Milor123

วิธีแก้ปัญหานี้เท่านั้นที่ช่วยได้ - ตรวจสอบให้แน่ใจว่าได้ทำงานกับ sudo
Aryeh Beitz

0

เรื่องนี้เกิดขึ้นกับฉันหนึ่งครั้งบน Red Hat 7.5 Workstation พร้อมไดรเวอร์ Nvidia ฉันรู้ว่ามันไม่ใช่ Ubuntu แต่นี่อาจช่วยใครบางคน ...

ลบไฟล์ Nvidia ออกจาก dkms แล้วติดตั้ง dkms ใหม่:

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

จากนั้นติดตั้งไดรเวอร์ Nvidia อีกครั้ง

./NVIDIA-installer.bin --dkms
reboot

คำเตือนสิ่งนี้ใช้ได้กับฉัน แต่อาจไม่ใช่วิธีที่ถูกต้องในการทำสิ่งต่าง ๆ


และมันก็ได้ผลกับคุณบน RedHat ไม่ใช่บน Ubuntu !!!
Soren
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.