Модули ядра
Данное руководство описывает процесс разработки модулей ядра для Embedded-Linux. Будет продемонстрировано создание простого модуля ядра.
Приводимые инструкции протестированы на конкретных релизах Buildroot. Название и расположение элементов и папок могут измениться в будущем.
Дополнительная информация:
Для разработки модулей ядра следует использовать ОС на базе GNU/Linux.
Подготовка
-
Скачать архив buildroot
- СКИФ
- 1892ВМ14Я
Ссылка на последний релиз - https://support.elvees.com/go/mcom03br
Протестировано на версии 2024.06
Ссылка на последний релиз https://support.elvees.com/go/mcom02br
Протестировано на версии 2025.06
-
Распаковать и перейти в папку.
-
Запуск сборки Buildroot
- СКИФ
- 1892ВМ14Я
./docker-build.sh make mcom03_defconfig
./docker-build.sh makeПодробнее про сборку и настройку: https://dist.elvees.com/mcom03/docs/linux-sdk/latest/components/buildroot.html
./docker-build.sh make mcom02_defconfig
./docker-build.sh makeПодробнее про сборку и настройку: https://dist.elvees.com/mcom02/docs/buildroot/latest/buildroot.html
подсказкаДля правильной работы и сборки рекомендуется использовать docker.
Написание драйвера
-
Создадим папку drivers.
-
В ней создадим Makefile.
-
В Makefile добавляем содержимое:
- СКИФ
- 1892ВМ14Я
MakefileCFILES := hello-module.c
hello-driver-objs := $(CFILES:.c=.o)
obj-m := hello-module.o
CROSS_COMPILE ?= "$(BR_HOME)/buildroot/output/host/bin/aarch64-buildroot-linux-gnu-"
KERNELDIR ?= "$(BR_HOME)/buildroot/output/build/linux-mcom03-5.10.y"
PWD := $(shell pwd)
all:
$(MAKE) -C $(KERNELDIR) M=$(PWD) ARCH=arm64 CROSS_COMPILE=$(CROSS_COMPILE) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean