Перейти к основному содержимому

Buildroot для ELTAY RM88S

Общая информация​

Для платы ELTAY RM88S доступна сборка Buildroot в виде SDK в репозитории на gitflic. SDK содержит внешний слой для плат ELTAY (buildroot-external-eltay), а основной репозиторий Buildroot подключен как подмодуль (используется версия 2025.02.6).

Поскольку ELTAY RM88S является вычислительным модулем, конфигурация операционной системы определяется не только самим модулем, но и используемой базовой платой. В SDK каждая конфигурация сборки соответствует конкретной комбинации ELTAY RM88S + базовая плата и включает необходимые Device Tree, настройки ядра и программные компоненты для работы с периферией выбранной платы.

В основной ветке репозитория main предоставляются следующие конфигурационные файлы:

Конфигурация платКонфигурация BuildrootОписание
ELTAY RM88S + Orange Pi CM5 Base Boardeltay_rm88s_op_baseboard_defconfigОписание сборки
ELTAY RM88S + Orange Pi CM5 Tablet Base Boardeltay_rm88s_op_tablet_defconfigОписание сборки

Процесс сборки одинаков для каждой конфигурации.

Сборка​

Подготовка​

Для сборки необходимы:

  • 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:
    make docker-defconfig CONFIG=eltay_rm88s_op_baseboard_defconfig
  • Запустить сборку после применения defconfig:
    make docker-build
  • Открыть menuconfig для текущей сборки:
    make docker-menuconfig
  • Сохранить текущую конфигурацию Buildroot обратно в defconfig платы:
    make docker-save-config CONFIG=eltay_rm88s_op_baseboard_defconfig
  • Очистить конкретный пакет:
    make docker-package-dirclean PACKAGE=linux
  • Открыть shell внутри сборочного Docker-контейнера:
    make docker-shell

Переменные сборки​

Makefile поддерживает следующие переменные:

ПеременнаяНазначениеЗначение по умолчанию
CONFIGdefconfig из 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:

make docker-defconfig CONFIG=eltay_rm88s_op_baseboard_defconfig
make docker-build

Результаты сборки находятся в buildroot/output/images/. Основной образ для записи на microSD - buildroot/output/images/sdcard.img.

Использование отдельного OUT удобно, если необходимо хранить несколько сборок одновременно или экспериментировать с конфигурацией, не затрагивая другую сборку.

Сборка в отдельный каталог:

OUT=buildroot_build/eltay_rm88s_op_baseboard

make docker-defconfig CONFIG=eltay_rm88s_op_baseboard_defconfig OUT="$OUT"
make docker-build OUT="$OUT"

Артефакты располагаются в $OUT/images/. Основной образ - $OUT/images/sdcard.img. Для всех последующих команд необходимо использовать тот же OUT.

Настройка Buildroot​

Для изменения набора пакетов и опций Buildroot используется menuconfig.

Штатный каталог buildroot/output

Сначала применить конфигурацию нужной платы:

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=path/to/image.img of=/dev/sdX bs=4M conv=fsync status=progress

Здесь в аргументе if необходимо указать путь до собранного образа, а в аргументе of - реальное устройство microSD.

Windows​

Для записи можно использовать BalenaEtcher:

  1. Нажать Flash from file.
  2. Выбрать sdcard.img.
  3. Выбрать microSD-карту.
  4. Нажать Flash!.

Запуск​

Вставьте microSD-карту в используемую плату и подайте питание.

Консоль подключена к 3-контактному разъёму TTL Debug UART, который чаще всего выведен отдельно на базовой плате. Параметры подключения:

1500000 8N1

Данные для входа по умолчанию:

user: root
password: eltay