`Помилка! Не вдалося знайти файл 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 вийшли з ладу (пакет == fglrx):

sudo dpkg-reconfigure fglrx

Це хоча б налагодить драйвери для поточної версії.

Нарешті я знайшов цю помилку, яка включає деякі кроки, які можна використовувати для діагностики: https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/830915

dkms status
ls -R /var/lib/dkms

В основному те, що вони роблять, - це оглянути все, що дивує або несподівано - наприклад, пакунки, які ви видалили, - або програмне забезпечення, яке ви встановили вручну на більш ранній версії ubuntu і може не працювати з новою версією. Особливо перевірте позначення дати в каталогах, які можуть показувати, що ви особливо старі пакунки можуть бути від встановлених вручну пакетів.

ls -l /var/lib/dkms

У моєму випадку у мене була стара версія fglrxвстановлення, яку я використовував для діагностики деяких проблем рік тому і просто перейменував її. Видалення цієї старої суглоби призвело до усунення проблеми.

Якщо є небажане, видаліть його (або перемістіть його з цього каталогу) - якщо там встановлений пакет вручну, подумайте про його оновлення або видалення та використання підтримуваної версії.


Дякую за це, проблема у мене була з nvidia-340водієм ...
ionreflex

1
У мене був такий самий випускanbox
Аароном Кофілдом

28

Зазвичай це спричинено модулями /var/lib/dkms, які не мають dkms.confфайлу у своїх вихідних підкаталогах - dkmsочікує, що цей файл, тож повідомить про помилку, якщо він відсутній, а потім може пропустити компіляцію деяких дійсних модулів.

Щоб знайти кривдний модуль, запустіть цей короткий сценарій (завдяки Лекенштейн ):

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зробив роботу. Дякую
Сергій

11

Я також довго страждав від цієї проблеми. Мені потрібно перевстановлювати драйвер NVIDIA щоразу після оновлення та перезавантаження ядра. Нещодавно я почав розбиратися в цій проблемі. Власне, моя проблема полягає в тому, що під декількома папками модулів з однаковим префіксом nvidia-під /usr/src/і кілька папок з різними номерами версій під /var/lib/dkms/nvidia. Після видалення старих версій обидві наступні команди

    dkms status
    dkms autoinstall

працювали.


Це працює для мене, але я повинен був зробити apt-get install --reinstall dkmsі dkms autoinstallпісля використання вашого методу ... а потім встановити драйвери nvidia ...
Milor123

тільки це рішення допомогло - переконайтеся, що бігати з
судо

0

Це сталося зі мною одного разу на робочій станції Red Hat 7.5 з драйвером Nvidia. Я знаю, що це не Ubuntu, але це може допомогти комусь ...

Видаліть файли Nvidia з dkms, а потім перевстановіть dkms:

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

Потім перевстановіть драйвер Nvidia

./NVIDIA-installer.bin --dkms
reboot

ПОПЕРЕДЖЕННЯ, це спрацювало для мене, але це може бути не правильним способом.


І це працювало для вас на RedHat, а не на Ubuntu !!!
Soren A
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.