Linux dkms что это

Обновлено: 08.07.2024

for i in /usr/src/drivers
do
cd $i;
make clean; make; make install;
cd -
done

, User294 ( ok ), 17:51, 12/11/2008 [^] [^^] [^^^] [ответить] + / –
А при выходе нового ядра я так понимаю Павлин предлагает в i-й раз перекомпиливать все самостоятельно, так? =)
, pavlinux ( ok ), 20:39, 12/11/2008 [^] [^^] [^^^] [ответить] + / –
Как же эта хрень определяет что появилось новое ядро?

Так и мы, попишемся в /etc/cron.daily, со словами

Говорю же
> Причёсывайте сами.

cat >> /etc/crontab << EOF
1 * * * * root /etc/cron.dayly/update_modules.sh
EOF

, pavlinux ( ok ), 03:04, 13/11/2008 [^] [^^] [^^^] [ответить] + / –
>> Причёсывайте сами.
>
>Рассмешил.

А такой монстроподобный dkms.conf для каждого драйвера, это смешно? :)

И вот это теперь называется монструозным конфигом?Ну тогда наверное пора начинать считать в стиле 1, 2, много. если 7 строчек - монструозно =)

Вся прелесть открытых Unix_ов - полный контроль над системой.
Данные скриптовые комплексы - разрушают эту гармонию, когда рушатся
такие системы, вам приходиться изучать, чужие методы и способы работы
со скриптовыми языками!
Время которое уйдёт на создание и эксплуатацию Вашей системы, намного
меньше, чем изучение и ремонт чужой.
Особенное зло - это использование чужих фаирволов на базе iptables/xtables/iproute2.

, User294 ( ok ), 22:51, 22/11/2008 [^] [^^] [^^^] [ответить] + / –
>А я Вам даже объясню почему подобные вещи - зло для Unix.

А при чем тут вообще юниксы?Разговор про лоадабельные модули ядра в линуксах.Вы хотите рулить модулями ядра во всех *никсоподобных одинаково?Жаль но боюсь что с этой мечтой придется умереть.А так по вашей логике cron тоже зло.

> Вся прелесть открытых Unix_ов - полный контроль над системой.

Поэтому давайте выкинем крон нафиг.Будем сами вместо него принимать решения когда надо модули сбилдить или там процесс запустить.

>Данные скриптовые комплексы - разрушают эту гармонию, когда рушатся
>такие системы, вам приходиться изучать, чужие методы и способы работы
>со скриптовыми языками!

А почему вас не коробит изучать "чужие" скриптовые конструкции скажем для управления старичком init?Собссно по вашей логике дебиановские средства для упрощения настройки стартовых скриптов надо выбросить.В редхатоподобных - аналогично.И айда педалить с десяток симлинков в разных дирах руками!Ибо нефиг автоматизировать этот процесс.А то отличия между *никсами получаются, мать-мать-мать.

>Особенное зло - это использование чужих фаирволов на базе iptables/xtables/iproute2.

Dynamic Kernel Module Support (DKMS) — это фреймворк, который используется для генерации тех модулей ядра Linux, которые в общем случае не включены в дерево исходного кода. DKMS позволяет драйверам устройств автоматически пересобираться, когда ядро уже установлено.

Это означает, что пользователь может не ждать, пока какая-то компания, проект или сопроводитель пакета выпустит новую версию модуля. После введения хуков pacman пересборка модулей осуществляется автоматически во время обновления ядра.

Contents

Установка

Установите пакет dkms и заголовочные файлы требуемого ядра/ядер. Например, для ядра по умолчанию linux соответствует linux-headers . Другие ядра имеют собственные пакеты с заголовочными файлами.

Значительное число модулей, не включенных в ядро, имеют DKMS вариант; некоторые из них размещаются в официальных репозиториях, но большинство из них можно найти только в AUR.

Обновления

Обычно пересборка модулей DKMS во время обновления ядра выполняется бесшовно, но что-то может пойти не так. Следует обратить особое внимание на вывод pacman! Это, в частности, относится к тем системам, которым требуется модуль DKMS для успешной загрузки и/или если вы используете DKMS с ядром не из официальных репозиториев.

Использование

Использование DKMS вручную.

Автозавершение по Tab будет доступно после выполнения команды:

Список модулей

Чтобы увидеть текущее состояние модулей, версий и ядер внутри дерева, выполните:

Пересборка модулей

Пересборка всех модулей для текущего ядра:

или для конкретного ядра:

Сборка конкретного модуля для текущего ядра:

Сборка модуля для всех ядер:

Удаление модулей

Удаление модуля (старые автоматически не удаляются):

Если пакет dkms удален, то теряется информация о предыдущих файлах сборки модуля. В этом случае, перейдите в директорию /usr/lib/modules/kernel_release и /var/lib/dkms/package_name и удалите все файлы и каталоги, которые больше не используются.

Создание DKMS пакета

Initial ramdisk

В случаях для любых модулей, которые были установлены через DKMS и используются в Initrd, например zfs-dkms AUR , может быть полезно написать хук pacman для автоматической пересборки образа(ов) initramfs.

Например, когда используется linux и mkinitcpio, то для обновления модуля ZFS после каждого zfs-dkms AUR апгрейда,

Вы можете добавить больше таргетов в хук и сделать дополнительные копии хука, если в вашей система установлены другие ядра. Префикс 90- необходим для гарантированного запуска после хуков DPKMS.


Открой для себя бинарные дистры. Ядро там прилетает уже собранное и в post-install скрипте просто вызывает dkms-autoinstall для пересборки локально собранных с помощью dkms драйверов. Профит в отсутствии ручной работы - все происходит автоматически и не надо самому следить за локально собранными модулями.



Профит проявляется в бинарных дистрибутивах.
Хотя megabaks пилил скрипт dkms и для gentoo.
Достаточно удобная вещь. Я просто обновляю ядро и перезагружаю машину, а все зависящие модули автоматически при загрузке системы обнаруживаются и пересобираются под текущее ядро.


Спасибо за подъем настроения в нерадостное субботне-похмельное утро. Вопрос изрядно посмешил :)

Профит проявляется в бинарных дистрибутивах.

Похоже на самый правильный ответ.

P. S. Я рад что я на Gentoo и не имею этих проблем.


Но оно ж не мониторит систему на предмет нового ядра!


да, если они не собраны для данного ядра
//ты бы хоть погуглил чтоль.


да, если они еще не были для этого ядра скомпилированы.


вообще довольно удобная штука. все руки не доходят к арчу прикрутить ее.


Хм. Это с невидией такое только? На AMD столько *-hook, что я сначала не знал какой выбрать


Хм. Это с невидией такое только? На AMD столько *-hook, что я сначала не знал какой выбрать

у меня на dkms нвидия висела, lirc и virtualbox.


Не прошло и ста лет.


обеспечена возможность динамической пересборки модуля ядра Linux с использованием DKMS

А, а я то думал что я просто делал что то не так, что у меня после установки самосборных ядер приходится драйвер Энвидии вручную переустанавливать.


Он и не нужен. Нужны нормальные дистрибутивы со стабилизированным ABI ядра.

инфраструктура для поддержки динамически загружаемых модулей ядра

DKMS — инфраструктура, позволяющая обновлять модули ядра без изменения всего ядра. Также позволяет легко пересобирать модули при обновлении ядра.

Теги: Системное администрирование: Ядро или модули, Разработка программного обеспечения: Инструмент сборки, Разработка на C, devel::library, devel::packaging, Реализовано на: C, implemented-in::shell, interface::commandline, Роль: Библиотека разработчика, Программа, Область: scope::utility, suite::debian, Работает с: Исходный код

Другие пакеты, относящиеся к dkms

  • зависимости
  • рекомендации
  • предложения
  • enhances
  • dep: lsb-release утилиты выдачи версии Linux Standard Base
  • dep: coreutils (>= 7.4) основные служебные программы системы GNU
  • dep: dctrl-tools инструменты командной строки для работы с информацией из пакета Debian
  • dep: dpkg-dev инструменты сборки пакетов Debian
  • dep: gcc компилятор C от GNU или c-compiler виртуальный пакет, предоставляемый bcc, clang-11, clang-12, clang-13, clang-9, gcc, gcc-10, gcc-11, gcc-9, pcc, tcc
  • dep: kmod утилиты управления модулями ядра Linux или kldutils Пакет недоступен
  • dep: make утилита управления компиляцией или build-essential информационный список пакетов необходимых для сборки
  • dep: patch Применяет файл изменений к оригинальному файлу
  • rec: fakeroot tool for simulating superuser privileges
    также виртуальный пакет, предоставляемый pseudo
  • rec: linux-headers-686-pae Header files for Linux 686-pae configuration (meta-package) или linux-headers-amd64 Header files for Linux amd64 configuration (meta-package) или linux-headers-generic виртуальный пакет, предоставляемый linux-headers-686-pae, linux-headers-alpha-smp, linux-headers-amd64, linux-headers-arm64, linux-headers-armmp, linux-headers-itanium, linux-headers-m68k, linux-headers-parisc, linux-headers-powerpc64, linux-headers-powerpc64le, linux-headers-riscv64, linux-headers-s390x, linux-headers-sparc64-smp или linux-headers Пакет недоступен
  • rec: sudo предоставление частичных привилегий суперпользователя другим пользователям
    также виртуальный пакет, предоставляемый sudo-ldap
  • sug: e2fsprogs утилиты для файловых систем ext2/ext3/ext4
  • sug: menu создание меню со списком программ

Загрузка dkms

Загрузить для всех доступных архитектур
Архитектура Размер пакета В установленном виде Файлы
all 76,8 Кб293,0 Кб [список файлов]

Эта страница также доступна на следующих языках (Как установить язык по умолчанию):

Авторские права © 1997 - 2021 SPI Inc.; См. условия лицензии. Debian это торговый знак компании SPI Inc. Об этом сайте.

Читайте также: