, 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
- 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. Об этом сайте.
Читайте также:
|