Dynamic Kernel Module Support (Русский)
Состояние перевода: На этой странице представлен перевод статьи Dynamic Kernel Module Support. Дата последней синхронизации: 2024-01-16. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
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 пакета
Смотрите также
Зачем нужен DKMS?
Прочитал о выходе нового драйвера NVidia, и что в нем «обеспечена возможность динамической пересборки модуля ядра Linux с использованием DKMS». Почитал про DKMS тут и тут. Не понял где профит.
1. Заявляется что «DKMS позволяет драйверам устройств автоматически пересобираться, когда ядро уже собрано». А без DKMS они как собираются — перед тем как ядро собрано? При условии правильного линка /usr/src/linux , в Gentoo (уверен что и в другом дистрибутиве) emerge nvidia-drivers тоже сделает то, что нужно.
2. Заявляется «автоматическая рекомпиляция всех модулей в случае установки новой версии ядра». Но оно ж не мониторит систему на предмет нового ядра! Просто когда ты установил новое ядро, будь добр, переустанови «внешние» драйвера.
Kroz ★★★★★
14.07.12 09:27:45 MSK
Dynamic Kernel Module Support
Dynamic Kernel Module Support или DKMS — фреймворк, который используется для генерации тех модулей ядра Linux, которые в общем случае не включены в дерево исходного кода. DKMS позволяет драйверам устройств автоматически пересобираться, когда ядро уже собрано. DKMS может быть использован в двух направлениях: автоматическая рекомпиляция всех модулей в случае установки новой версии ядра, и установка новых версий модулей (драйверов) в существующую систему без необходимости ручной компиляции или предкомпилированных пакетов. Это, к примеру, делает возможным использование новых видеокарт на старых Linux-системах.
DKMS был написан группой линукс-разработчиков в компании Dell в 2003 году. DKMS уже включен в многие дистрибутивы ОС LINUX, такие как Debian Squeeze, Ubuntu 8.10 [2] (и поздние версии) или Fedora [3] , является свободным ПО, выпускаемым под лицензией GNU General Public License (GPL) v2 или поздней.
DKMS поддерживает RPM и DEB форматы пакетов «из коробки».
Примечания
- ↑http://linux.dell.com/dkms/permalink/ Dell’s DKMS repository
- ↑IntrepidIbex/TechnicalOverview — Ubuntu Wiki
- ↑Fedora Package Database — Invalid PackageBuild Name
Ссылки
- Dell DKMS site (англ.)
- LinuxJournal — Exploring DKMS (англ.)
- Building a kernel module using DKMS (англ.)
- Программное обеспечение по алфавиту
- Ядро Linux
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое «Dynamic Kernel Module Support» в других словарях:
- Dynamic Kernel Module Support — Saltar a navegación, búsqueda Dynamic Kernel Module Support Desarrollador Dell linux.dell.com/dkms/ Información general … Wikipedia Español
- Dynamic Kernel Module Support — Original author(s) Gary Lerhaupt Developer(s) Dell Initial release 2003 Stable release 2.2.0.2[ … Wikipedia
- Dynamic Kernel Module Support — Dernière version 2.1.1.2 (16 février 2010) … Wikipédia en Français
- Dynamic Kernel Module Support — DKMS steht für Dynamic Kernel Module Support. Das 2003 von Dell entwickelte Framework für Linux überwacht, ob zusätzliche Kernelmodule manuell installiert wurden und aktualisiert die Module immer dann, wenn ein neuer/aktualisierter Kernel… … Deutsch Wikipedia
- Kernel (computing) — A kernel connects the application software to the hardware of a computer In computing, the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware… … Wikipedia
- Kernel (computer science) — In computer science, the kernel is the central component of most computer operating systems (OS). Its responsibilities include managing the system s resources (the communication between hardware and software components). As a basic component of… … Wikipedia
- Linux kernel — Linux Linux kernel 3.0.0 booting Company / developer Linus Torvalds and thousands … Wikipedia
- Dkms — Dynamic Kernel Module Support Dynamic Kernel Module Support Dernière version 2.1.0.1 (le 26 août 2009) … Wikipédia en Français
- Ubuntu — Bildschirmfoto … Deutsch Wikipedia
- List of Ubuntu releases — Main article: Ubuntu (operating system) Ubuntu 11.10 Oneiric Ocelot, the latest stable release of Ubuntu. Ubuntu releases are made semiannually by Canonical Ltd, the developers of the Ubuntu operating system, using the year and month of the… … Wikipedia
- Обратная связь: Техподдержка, Реклама на сайте
- Путешествия
Экспорт словарей на сайты, сделанные на PHP,
WordPress, MODx.
- Пометить текст и поделитьсяИскать в этом же словареИскать синонимы
- Искать во всех словарях
- Искать в переводах
- Искать в ИнтернетеИскать в этой же категории
Автоматическая сборка модулей ядра при помощи DKMS
В некоторых случаях ручная сборка модулей ядра нецелесообразна, поскольку удобнее использовать Dynamic Kernel Module Support (DKMS)
Технология DKMS позволяет в том числе производить автоматическую сборку модулей системы при обновлении ядра.
В данной статье рассматривается автоматическое управление при помощи DKMS на примере модулей шины CAN.
DKMS предполагает, что пакет модуля или совокупности модулей ядра располагается в директории /usr/src/-
Кроме исходных текстов модуля/модулей, директория пакета содержит конфиг dkms.conf, а также Makefile, в соответствии с которым производится сборка.
- net/can
- drivers/net/can
PACKAGE_NAME="can-dkms" PACKAGE_VERSION="4.1.6-200" MAKE[0]="make M=$dkms_tree/$PACKAGE_NAME/$PACKAGE_VERSION/build modules" BUILT_MODULE_NAME[0]="can" BUILT_MODULE_LOCATION[0]="net/can" DEST_MODULE_LOCATION[0]="/updates/net/can" BUILT_MODULE_NAME[1]="can-raw" BUILT_MODULE_LOCATION[1]="net/can" DEST_MODULE_LOCATION[1]="/updates/net/can" BUILT_MODULE_NAME[2]="can-bcm" BUILT_MODULE_LOCATION[2]="net/can" DEST_MODULE_LOCATION[2]="/updates/net/can" BUILT_MODULE_NAME[3]="can-gw" BUILT_MODULE_LOCATION[3]="net/can" DEST_MODULE_LOCATION[3]="/updates/net/can" BUILT_MODULE_NAME[4]="vcan" BUILT_MODULE_LOCATION[4]="drivers/net/can" DEST_MODULE_LOCATION[4]="/updates/drivers/net/can" BUILT_MODULE_NAME[5]="can-dev" BUILT_MODULE_LOCATION[5]="drivers/net/can" DEST_MODULE_LOCATION[5]="/updates/drivers/net/can" BUILT_MODULE_NAME[6]="kvaser_usb" BUILT_MODULE_LOCATION[6]="drivers/net/can/usb" DEST_MODULE_LOCATION[6]="/updates/drivers/net/can/usb" AUTOINSTALL="yes"
В конфиге указывается имя и версия пакета, команда сборки, список собираемых модулей, а также включается автосборка.
В директории пакета также необходимо создать Makefile:
# net/can export CONFIG_CAN := m export CONFIG_CAN_RAW := m export CONFIG_CAN_BCM := m export CONFIG_CAN_GW := m export CONFIG_CAN_VCAN := m # drives/net/can export CONFIG_CAN_DEV := m export CONFIG_CAN_KVASER_USB := m SRC_DIRS := net/can drivers/net/can modules: $(SRC_DIRS) $(SRC_DIRS): $(MAKE) -C /lib/modules/`uname -r`/build M="$(M)/$@" subdir-ccflags-y=-DCONFIG_CAN_CALC_BITTIMING .PHONY: $(SRC_DIRS) modules
В Makefile задается структура поддиректорий модулей шины CAN, а также список собираемых модулей.
Таким образом, пакет DKMS для модулей шины CAN создан.
Далее необходимо зарегистрировать пакет в дереве DKMS:
sudo dkms add -m can-dkms -v 4.1.6-200
После чего создается ссылка /var/lib/dkms/can-dkms/4.1.6-200/source
Сборка и установка пакета производится командами:
sudo dkms build -m can-dkms -v 4.1.6-200 sudo dkms install -m can-dkms -v 4.1.6-200
В случае необходимости пакет можно удалить из дерева командой:
sudo dkms remove -m can-dkms/4.1.6-200 --all
При создании статьи были использованы материалы проекта aur.archlinux.org/packages/linux-can-dkms