`Lỗi! Không thể định vị tệp dkms.conf`


42

Trong apt-get dist-upgrade12.10 gần đây, tôi đã nhận được lỗi sau:

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.

Có ý kiến ​​gì không?


Tôi biết đây là một câu trả lời tồi, nhưng tôi luôn có lỗi đó và mọi thứ hoạt động tốt. Tôi đoán dkmschỉ cần sử dụng các thiết lập mặc định.
MiJyn

Câu trả lời:


28

Tôi đã nhận được điều đó khi nâng cấp kernel trong một thời gian, với kết quả là không phải tất cả các dkmstrình điều khiển của tôi đều được cập nhật về nâng cấp kernel.

Đầu tiên tôi có thể giải quyết vấn đề bằng cách cấu hình lại bất kỳ gói nào đã sử dụng dkmsđể buộc chúng được biên dịch lại cho kernel hiện tại - ví dụ: đó là trình điều khiển video AMD của tôi bị lỗi (gói == fglrx):

sudo dpkg-reconfigure fglrx

Điều đó ít nhất sẽ có được các trình điều khiển được cấu hình cho phiên bản hiện tại.

Cuối cùng tôi đã tìm thấy lỗi này, bao gồm một số bước bạn có thể sử dụng để chẩn đoán: https://bugs.launchpad.net/ubfox/+source/dkms/+orms/830915

dkms status
ls -R /var/lib/dkms

Về cơ bản những gì họ đang làm là tìm kiếm bất cứ điều gì đáng ngạc nhiên hoặc bất ngờ - ví dụ: các gói bạn đã gỡ cài đặt - hoặc phần mềm bạn đã cài đặt thủ công trên phiên bản ub Ubuntu trước đó và có thể không hoạt động với phiên bản mới hơn. Đặc biệt kiểm tra dấu ngày trên các thư mục có thể hiển thị cho bạn các gói đặc biệt cũ có thể là từ các gói được cài đặt thủ công.

ls -l /var/lib/dkms

Trong trường hợp của tôi, tôi đã có một phiên bản cũ của bản fglrxcài đặt mà tôi đã sử dụng để chẩn đoán một số vấn đề một năm trước và chỉ đơn giản là đặt lại tên cho nó. Xóa hành trình cũ này làm cho vấn đề biến mất.

Nếu có rác hãy xóa nó (hoặc di chuyển nó ra khỏi thư mục đó) - nếu có gói được cài đặt thủ công ở đó, hãy xem xét cập nhật hoặc gỡ cài đặt nó và sử dụng phiên bản được bảo trì.


Cảm ơn bạn vì điều này, vấn đề tôi gặp phải là với người nvidia-340lái xe ...
ionreflex

1
Tôi có cùng một vấn đề vớianbox
Aaron Cofield

29

Điều này thường được gây ra bởi các mô-đun trong /var/lib/dkmsđó không có dkms.conftệp trong thư mục con nguồn của chúng - dkmsmong đợi tệp này, vì vậy sẽ báo cáo lỗi nếu thiếu, và sau đó có thể bỏ lỡ việc biên dịch một số mô-đun hợp lệ.

Để tìm mô-đun vi phạm, hãy chạy tập lệnh ngắn này (nhờ Lekensteyn ):

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

Điều đó sẽ xuất ra bất kỳ thư mục mô-đun dkms; sau đó bạn có thể quyết định có nên gỡ cài đặt gói đã tạo ra chúng hay không, nếu chúng đã được cài đặt hoặc đổi tên theo cách thủ công, để di chuyển chúng sang nơi khác hoặc xóa chúng.


3
Hoàn hảo. Các câu trả lời khác có thể áp dụng cho các trường hợp cụ thể, nhưng điều này đã nhanh chóng chứng minh vấn đề là ở đâu (và nó thực sự không phải là vấn đề, vì một số phần mềm đã sao chép các cài đặt cũ vào thư mục /var/lib/dkms/*.old).
Auspex

Trong trường hợp nvidia là người vi phạm, ví dụ như /var/lib/dkms/nvidia/396.24/sourceđầu ra, hãy kiểm tra xem đã có phiên bản mới hơn /var/lib/dkms/nvidiavà loại bỏ phiên bản vi phạm.
Flatron

Cảm ơn! Trong trường hợp của tôi, người phạm tội là open-vm-toolscác gói, và sau khi thanh trừng tôi phải nhớ chạy apt auto-remove, vì một sự phụ thuộc đã gây ra vấn đề này.
hình elip

14

Tôi đã gặp vấn đề này với VirtualBox từ ppa của Oracle, thay vì vấn đề được đóng gói với 12.04 LTS:

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

Tôi đã sao chép nội dung của / var / lib / dkms sang một thư mục khác để sao lưu, sau đó xóa thư mục vboxhost trong / var / lib / dkms;

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

Sau đó tôi đã cấu hình lại gói hộp ảo như thế này:

sudo dpkg-reconfigure virtualbox-4.2

và nó đã thành công trong việc này:

   * Trying to register the VirtualBox kernel modules using DKMS

1
Chỉ cần sudo dpkg-reconfigure virtualbox-4.2làm công việc. Cảm ơn bạn
Serge

11

Tôi cũng bị vấn đề này trong một thời gian dài. Tôi cần cài đặt lại trình điều khiển NVIDIA mỗi lần sau khi cập nhật kernel và khởi động lại. Gần đây, tôi bắt đầu xem xét vấn đề này. Trên thực tế, vấn đề của tôi là có nhiều thư mục mô-đun có cùng tiền tố nvidia-bên dưới /usr/src/và nhiều thư mục có số phiên bản khác nhau bên dưới /var/lib/dkms/nvidia. Sau khi loại bỏ các phiên bản cũ hơn, cả hai lệnh sau

    dkms status
    dkms autoinstall

đã làm việc.


Nó hoạt động với tôi, nhưng tôi phải làm apt-get install --reinstall dkmsdkms autoinstallsau khi sử dụng phương pháp của bạn ... và sau đó cài đặt trình điều khiển nvidia ...
Milor123

chỉ có giải pháp này mới giúp - đảm bảo chạy với sudo
Aryeh Beitz

0

Điều này đã xảy ra với tôi một lần trên máy trạm Red Hat 7.5 với trình điều khiển Nvidia. Tôi biết đó không phải Ubuntu nhưng điều này có thể giúp ai đó ...

Xóa các tệp Nvidia khỏi dkms và sau đó cài đặt lại dkms:

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

Sau đó cài đặt lại trình điều khiển Nvidia

./NVIDIA-installer.bin --dkms
reboot

CẢNH BÁO, điều này làm việc cho tôi nhưng có thể không phải là cách làm chính xác.


Và nó hoạt động cho bạn trên RedHat, không phải trên Ubuntu !!!
Soren A
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.