Я установил модуль, acpi_call, с make && sudo make install
. Проблемой является модуль, больше не установлен, когда я обновляю ядро, я должен сделать make install
снова. Почему этого не происходит с другими модулями, andhow я могу избежать этого?
Спасибо всем, я решил.
Используя пример, связанный CelticWarrior, я создал этот dkms.conf
файл:
MAKE[0]="make"
CLEAN="make clean"
BUILT_MODULE_NAME[0]=acpi_call
# BUILT_MODULE_LOCATION[0]=./
DEST_MODULE_LOCATION[0]="/extra"
PACKAGE_NAME=acpi_call
PACKAGE_VERSION=1.0
REMAKE_INITRD=yes
DEST_MODULE_LOCATION
требуется, как зарегистрировано в man dkms
, несмотря на пример.
Затем я скопировал исходный код в /usr/src/acpi_call-1.0
и затем установил его с:
sudo dkms install -m acpi_call -v 1.0
Видят также документация kernel.org о внешних модулях - она документирует корректный способ создать make-файл для создания и установки внешнего модуля, и она говорит, что корректное местоположение для внешнего модуля находится под extra
subdir.
acpi_call
не обычная программа, а модуль ядра. Модули ядра должны быть скомпилированы в определенную версию ядра, еще их считают несовместимыми и не загрузятся.
DKMS
(Динамическая Система управления Ядра), будет управлять Вашими пользовательскими модулями ядра и перекомпилирует их в текущей рабочей версии ядра и сделает так автоматически каждый раз, когда Вы загружаете новую версию. Это также обновит initrd
который является частью процесса программы начальной загрузки (названный начальной загрузкой). Уникальный initrd находится в Вашем /boot
каталог для каждой уникальной версии ядра Вы установили.
Поскольку CelticWarrior указал, что можно прочитать подробные инструкции по установке для Ubuntu в: help.ubuntu.com/community/DKMS.
Сама страница проекта в: linux.dell.com/dkms/ и это содержат некоторые дополнительные ссылки, которые Вы найдете полезным.
Я использовал DKMS для хранения EnhanceIO
(Жесткий диск к программе кэширования SSD, ранее используемой для серверов Facebook) актуальный. DKMS автоматически скомпилировал для различных версий ядра, и он работает очень хорошо. Обратите внимание на сообщения об ошибках, потому что параметры могут измениться между версиями ядра, и новые патчи исходного кода могут требоваться от github
.
Для заинтересованных читателей мысль о компиляции модулей Ядра кажется пугающей сначала, но, после того как Вы входите в нее, Вы будете чувствовать себя комфортно.