Dynamic Kernel Module Support (Русский)
Из Википедии:
- Dynamic Kernel Module Support (DKMS) — это фреймворк, который используется для генерации тех модулей ядра Linux, которые в общем случае не включены в дерево исходного кода. DKMS позволяет драйверам устройств автоматически пересобираться, когда ядро уже установлено.
Это означает, что пользователь может не ждать, пока какая-то компания, проект или сопроводитель пакета выпустит новую версию модуля. После введения хуков pacman пересборка модулей осуществляется автоматически во время обновления ядра.
Установка
Установите пакет dkms и заголовочные файлы требуемого ядра/ядер. Например, для ядра по умолчанию linux соответствует linux-headers. Другие ядра имеют собственные пакеты с заголовочными файлами.
Значительное число модулей, не включенных в ядро, имеют DKMS вариант; некоторые из них размещаются в официальных репозиториях, но большинство из них можно найти только в AUR.
Обновления
Обычно пересборка модулей DKMS во время обновления ядра выполняется бесшовно, но что-то может пойти не так. Следует обратить особое внимание на вывод pacman! Это, в частности, относится к тем системам, которым требуется модуль DKMS для успешной загрузки и/или если вы используете DKMS с ядром не из официальных репозиториев.
Для того, чтобы следовать изменениям в ядре, исправить ошибки или добавить необходимый функционал, подумайте об обновлении соответствующего пакета DKMS перед перезагрузкой.
Использование
Использование DKMS вручную.
Автозавершение по Tab
будет доступно после выполнения команды:
# source /usr/share/bash-completion/completions/dkms
Список модулей
Чтобы увидеть текущее состояние модулей, версий и ядер внутри дерева, выполните:
# dkms status
Пересборка модулей
Пересборка всех модулей для текущего ядра:
# dkms autoinstall
или для конкретного ядра:
# dkms autoinstall -k 3.16.4-1-ARCH
Сборка конкретного модуля для текущего ядра:
# dkms install -m nvidia -v 334.21
или просто:
# dkms install nvidia/334.21
Сборка модуля для всех ядер:
# dkms install nvidia/334.21 --all
Удаление модулей
Удаление модуля (старые автоматически не удаляются):
# dkms remove -m nvidia -v 331.49 --all
или просто:
# dkms remove nvidia/331.49 --all
Если пакет dkms удален, то теряется информация о предыдущих файлах сборки модуля. В этом случае, перейдите в директорию /usr/lib/modules/kernel_release
и /var/lib/dkms/package_name
и удалите все файлы и каталоги, которые больше не используются.
Создание DKMS пакета
Смотрите руководство.