Наш wiki-портал переехал на новый движок и доступен по адресу http://wiki.astralinux.ru

Эта версия портала обновляться больше не будет.

Сборка модулей ядра

Материал из AstraLinux Wiki
Перейти к: навигация, поиск

Сборка модуля ядра отдельно от дерева исходного ядра


1. Установить пакет с заголовочными файлами (linux-headers-...)
2. Создать рабочий каталог
3. Скопировать в него исходные коды модуля
4. Перейти в рабочий каталог
5. Создать Makefile вида:

       obj-m = <название-драйвера>.o
KVERSION = $(shell uname -r)
all:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean


6. Выполнить команду make
7. Полученный файл <название-драйвера>.ko скопировать в /lib/modules/<версия- ядра>/<путь-до-модуля-ядра>
8. Выполнить команду sudo depmod -a

Сборка модуля ядра с помощью dkms


1. Установить пакет dkms и пакет c заголовочными файлами ядра (linux-headers-...)
2. Создать рабочий каталог по пути /usr/src/<название-драйвера>-<версия>
3. Скопировать исходные коды в рабочий каталог
4. Создать в рабочем каталоге конфигурационный файл dkms.conf вида:

       PACKAGE_NAME="<название-драйвера>"
PACKAGE_VERSION="<версия>"
BUILT_MODULE_NAME[0]="<название-драйвера>"
DEST_MODULE_LOCATION[0]="<путь-до-модуля-ядра>"
AUTOINSTALL="yes"


5. Создать в рабочем каталоге Makefile вида:

       obj-m = <название-драйвера>.o
KVERSION = $(shell uname -r)
all:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean


6. Добавить исходный код данного модуля в дерево DKMS:

       sudo dkms add -m <название-драйвера> -v <версия>

7. Собрать драйвер командой:

       sudo dkms build -m <название-драйвера> -v <версия>

8. Проинсталлировать драйвер командой:

       sudo dkms install -m <название-драйвера> -v <версия>

9. При обновлении ядра и заголовочных файлов данный модуль будет автоматически пересобран.

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты