Текущая страница: ГлавнаяРазное → Dynamic Kernel Module Support или DKMS

Dynamic Kernel Module Support или DKMS

Dynamic Kernel Module Support или DKMS
Он используется для генерации модулей ядра не включенных в дерево исходного кода. Используется для автоматической компиляции модулей при установке нового ядра или для установки модулей в существующее ядро без необходимости ручной компиляции.

Ошибка:
Error! Could not locate dkms.conf file.
File:  does not exist.

Чтобы разобраться в ошибке, сначала вкратце о том, как это работает…..
При установке пакета исходники копируются в каталог /usr/src/имя-пакета/
Там же находится файл dkms.conf для данного пакета — в нем описывается как именно собирать пакет.
DKMS ведет базу данных установленных модулей имеющую древовидную структуру в каталоге /var/lib/dkms/
Если все работает — лезть в эти каталоги не надо, но если не работает, то можно посмотреть что именно вызывает ошибку и устранить ее.

Для поиска ошибки смотрим вывод команды

dkms status

При этом DKMS перебирает пакеты из своей базы и смотрит их состояние.
Чаще всего в ошибке бывает виновата ситуация когда исходники удалили, а информация в базе DKMS осталась.
Сравниваем структуру /usr/src/ и /var/lib/dkms/
Смотрим пакет в базе DKMS который идет следующим за последним успешно проверенным.
Чаще всего бывает ситуация, когда он есть в базе DKMS, а вот каталога /usr/src/имя-пакета/ нет — удалили некорректно.
Удаляем информацию о пакете из базы DKMS вручную удалив соответствующий подкаталог.
В моем случае виноват модуль одной из версий драйвера nvidia — каталог /var/lib/dkms/nvidia/304.123
Примечание:
Необходимость что-то делать вручную в DKMS возникает редко — команды aptitude, apt-get и dpkg-reconfigure обычно все делают сами.
Другие команды DKMS:
Переустанавливаем все модули DKMS:

dkms autoinstall

Сборка и установка пакета DKMS:

dkms build имя-пакета
dkms install имя-пакета

Добавление пакета

dkms add имя-пакета

Но это понадобится только если вы будете писать свой модуль ))))

Добавить комментарий