SDK Buildroot для плат ELTAY
Репозиторий содержит Buildroot SDK для плат ELTAY. Основной поддерживаемый способ сборки — через Docker на Linux-хосте. Используемая версия Buildroot - 2025.02.6.
Поддерживаемые платы
| Конфигурация плат | Конфигурация Buildroot | Описание |
|---|---|---|
| ELTAY RM66 + ELTAY BB CM4/Orange Pi CM4 Base Board | eltay_rm66_defconfig |
Минимальная базовая сборка для модуля ELTAY RM66, установленного на ELTAY BB CM4 или Orange Pi CM4 Base Board |
| ELTAY RM88S + Orange Pi CM5 Base Board | eltay_rm88s_op_baseboard_defconfig |
Сборка для модуля ELTAY RM88S, установленного на Orange Pi CM5 Base Board |
| ELTAY RM88S + Orange Pi CM5 Tablet Base Board | eltay_rm88s_op_tablet_defconfig |
Сборка для модуля ELTAY RM88S, установленного на Orange Pi CM5 Tablet Base Board |
Сборка
Подготовка
Для сборки необходимы:
- Linux host;
- Git;
- Docker.
Пакеты, необходимые самому Buildroot, вручную на хост устанавливать не требуется — они устанавливаются внутри Docker-образа.
Клонировать SDK необходимо вместе с подмодулями:
git clone --recurse-submodules https://gitflic.ru/project/elron-tech/buildroot-eltay.git
cd buildroot-eltay
Если репозиторий был склонирован без --recurse-submodules, Buildroot можно загрузить отдельно:
git submodule update --init --depth 1
Перед первой сборкой необходимо создать Docker-образ:
make docker-image
Основные команды
Все команды выполняются из корня репозитория buildroot-eltay.
-
Показать справку:
make -
Показать доступные конфигурации плат:
make list-configs -
Собрать Docker-образ окружения:
make docker-image -
Применить defconfig (например, для платы ELTAY RM66):
make docker-defconfig CONFIG=eltay_rm66_defconfig -
Запустить сборку после применения defconfig:
make docker-build -
Открыть
menuconfigдля текущей сборки:make docker-menuconfig -
Сохранить текущую конфигурацию Buildroot обратно в defconfig платы (например, для платы ELTAY RM66):
make docker-save-config CONFIG=eltay_rm66_defconfig -
Очистить конкретный пакет:
make docker-package-dirclean PACKAGE=linux -
Открыть shell внутри сборочного Docker-контейнера:
make docker-shell
Переменные сборки
Makefile поддерживает следующие переменные:
| Переменная | Назначение | Значение по умолчанию |
|---|---|---|
CONFIG |
defconfig из buildroot-external-eltay/configs/ |
не задано |
OUT |
отдельный каталог сборки Buildroot | не задано, используется buildroot/output |
PACKAGE |
пакет Buildroot для docker-package-dirclean |
не задано |
DL_DIR |
общий каталог скачанных исходников | dl |
JOBS |
количество параллельных задач сборки | $(nproc) |
IMAGE |
имя Docker-образа сборочного окружения | buildroot-eltay:ubuntu24.04 |
OUT должен быть относительным путём внутри репозитория.
Последовательность сборки
При сборке можно использовать штатный каталог или отдельный каталог сборки.
Сборка в штатный каталог buildroot/output (пример для RM66):
make docker-defconfig CONFIG=eltay_rm66_defconfig
make docker-build
Результаты сборки находятся в buildroot/output/images/. Основной образ для записи на microSD - buildroot/output/images/sdcard.img.
Использование отдельного OUT удобно, если необходимо хранить несколько сборок одновременно или экспериментировать с конфигурацией, не затрагивая другую сборку.
Сборка в отдельный каталог (пример для RM66):
OUT=buildroot_build/eltay_rm66
make docker-defconfig CONFIG=eltay_rm66_defconfig OUT="$OUT"
make docker-build OUT="$OUT"
Артефакты располагаются в $OUT/images/. Основной образ - $OUT/images/sdcard.img. Для всех последующих команд необходимо использовать тот же OUT.
Настройка Buildroot
Для изменения набора пакетов и опций Buildroot используется menuconfig.
Штатный каталог buildroot/output
Сначала применить конфигурацию нужной платы, например RM88S:
make docker-defconfig CONFIG=eltay_rm88s_op_baseboard_defconfig
Открыть меню:
make docker-menuconfig
После внесения изменений сохранить минимальный defconfig непосредственно в buildroot-external-eltay/configs/:
make docker-save-config CONFIG=eltay_rm88s_op_baseboard_defconfig
Отдельный каталог сборки
Необходимо указывать тот же OUT, который использовался при применении make docker-defconfig и сборке:
OUT=buildroot_build/eltay_rm88s_op_baseboard
make docker-defconfig CONFIG=eltay_rm88s_op_baseboard_defconfig OUT="$OUT"
make docker-menuconfig OUT="$OUT"
После выхода из menuconfig сохранить изменения:
make docker-save-config CONFIG=eltay_rm88s_op_baseboard_defconfig OUT="$OUT"
Файл eltay_rm88s_op_baseboard_defconfig в buildroot-external-eltay/configs/ будет обновлён автоматически.
Запись образа на microSD
Linux
Перед записью необходимо определить устройство карты памяти:
lsblk
Записывать необходимо на весь диск, например /dev/sdb, а не на раздел /dev/sdb1.
sudo dd if=buildroot/output/images/sdcard.img of=/dev/sdX bs=4M status=progress conv=fsync
sync
Здесь в аргументе if необходимо указать путь до собранного образа, а в аргументе of - реальное устройство microSD.
Windows
Для записи можно использовать BalenaEtcher:
- Нажать
Flash from file. - Выбрать
sdcard.img. - Выбрать microSD-карту.
- Нажать
Flash!.
Запуск
Вставьте microSD-карту в используемую плату и подайте питание.
Консоль подключена к 3-контактному разъёму TTL Debug UART, который чаще всего выведен отдельно на базовой плате. Параметры подключения:
1500000 8N1
Данные для входа по умолчанию:
user: root
password: eltay