Buildroot для ELTAY SC
Для плат ELTAY SC на базе платформы MCom03R / K1892ВМ21Я по ссылке доступна сборка Buildroot в виде SDK для плат Eltay SC rev.1.0.0 и Eltay SC rev.1.0.1 .
Версии основных компонентов
При работе используются Buildroot, Linux и U-Boot от Elvees.
| Компонент | Версия |
|---|---|
| Buildroot | 2025.09 |
| Linux kernel | 6.6.30 |
| U-Boot | 2024.07 |
Структура внешних слоёв
В сборке используются внешние слои Buildroot:
external-common общая инфраструктура и пакеты Elvees
external-elcore50 поддержка ELcore/DSP
external-mcom03 базовый слой платформы MCom03/MCom03R
external-eltaySC слой платы Eltay SC
Пользовательские изменения для платы рекомендуется вносить в слой external-eltaySC.
Подготовка Ubuntu-хоста к сборке
-
Установить базовые пакеты:
sudo apt updatesudo apt install -y ca-certificates curl git docker.io pipx python3-venv -
Запустить Docker и разрешить текущему пользователю доступ к Docker и UART:
sudo systemctl enable --now dockersudo usermod -aG docker "$USER"sudo usermod -aG dialout "$USER"После этого необходимо выйти из сессии и зайти повторно. Для текущего терминала можно временно применить группу Docker:
newgrp docker -
Установить утилиту для прошивки SPI Flash через
pipxи проверить установку:pipx ensurepathexport PATH="$HOME/.local/bin:$PATH"pipx install git+https://github.com/elvees/mcom03-flash-tools.gitdocker --versiongit --versionmcom03-flash --help
Полная сборка
Сборка производится на Linux машине в Docker из корневой папки SDK:
cd eltay-sc-sdk
export DOCKERFILE=Dockerfile.centos8stream
export ENABLE_NETWORK=1
export BUILD_ID=eltay-sc-$(date +%Y%m%d-%H%M)
./docker-build.sh make eltay_sc_rev100_defconfig
./docker-build.sh make -j$(nproc)
Для сборки в отдельную папку можно использовать следующие команды:
cd eltay-sc-sdk
export DOCKERFILE=Dockerfile.centos8stream
export ENABLE_NETWORK=1
export BUILD_ID=eltay-sc-$(date +%Y%m%d-%H%M)
export BR_OUTPUT="$PWD/buildroot_rev100_build"
./docker-build.sh make O="$BR_OUTPUT" eltay_sc_rev100_defconfig
./docker-build.sh make O="$BR_OUTPUT" -j$(nproc)
Здесь:
eltay-sc-sdk- название папки, содержащей SDK,eltay_sc_rev100_defconfig- конфигурационный файл Buildroot, соответствующий необходимой ревизии платы,BR_OUTPUT- целевая папка для сборки,-j$(nproc)- опция, позволяющая использовать для сборки все доступные на ПК ядра.
Для сборки под ревизию платы Eltay SC rev.1.0.0 необходимо использовать конфигурационный файл eltay_sc_rev100_defconfig.
Для сборки под ревизию платы Eltay SC rev.1.0.1 необходимо использовать конфигурационный файл eltay_sc_rev101_defconfig.
Основные артефакты после сборки:
images/rootfs.tar.gz
images/tar2dev
images/sbl/sbl-xip-mcom03r-eltay-sc-r1.0.x.bin
images/elvees/mcom03r-eltay-sc-r1.0.x.dtb
images/uboot-dtb/mcom03r-eltay-sc-r1.0.x.dtb
При встроенной сборке папка с артефактами располагается по пути buildroot/output/images. При вынесенной сборке с O="$BR_OUTPUT" используется путь $BR_OUTPUT/images.
Загрузчик и деревья устройств отличаются для разных ревизий платы.
Прошивка SBL в QSPI flash
Загрузчик необходимо загрузить в микросхему QSPI flash. Для этого:
-
Перевести DIP-переключатели на плате в положение:
ON ON OFF -
Подключить USB-UART преобразователь и подать питание на плату.
-
Запустить утилиту
mcom03-flash-toolsдля записи загрузчика. Для встроенного каталога сборки:mcom03-flash --port /dev/ttyUSB0 flash qspi0 buildroot/output/images/sbl/sbl-xip-mcom03r-eltay-sc-r1.0.0.binДля вынесенного каталога сборки:
mcom03-flash --port /dev/ttyUSB0 flash qspi0 "$BR_OUTPUT/images/sbl/sbl-xip-mcom03r-eltay-sc-r1.0.0.bin"Здесь:
/dev/ttyUSB0- устройство, соответствующее подключенному USB-UART преобразователю,buildroot/output/images/sbl/sbl-xip-mcom03r-eltay-sc-r1.0.0.bin- путь до загружаемого файла.
-
Для загрузки системы на плате вернуть DIP-переключатели в штатный режим загрузки:
OFF OFF OFF
Запись rootfs на SD-карту
-
Определить устройство, соответствующее карте памяти:
lsblkЗаписывать нужно на весь диск, например
/dev/sdb, а не на раздел/dev/sdb1. -
Убедиться, что выбрано правильное устройство. Следующая команда перезапишет таблицу разделов и данные на выбранном диске.
-
Записать файловую систему на карту с помощью утилиты
tar2dev.Для встроенного каталога сборки:
sudo buildroot/output/images/tar2dev -n eltay-sc buildroot/output/images/rootfs.tar.gz /dev/sdXsyncДля вынесенного каталога сборки:
sudo "$BR_OUTPUT/images/tar2dev" -n eltay-sc "$BR_OUTPUT/images/rootfs.tar.gz" /dev/sdXsyncЗдесь
/dev/sdX— устройство, соответствующее всей SD-карте.
Настройка Buildroot
Для изменения набора пакетов и опций Buildroot используется специальное меню - menuconfig.
Встроенный каталог сборки
Далее даны команды для конфигурации Eltay SC rev.1.0.0. Для платы Eltay SC rev.1.0.1 во всех командах необходимо заменить eltay_sc_rev100_defconfig на eltay_sc_rev101_defconfig.
Задать конфигурационный файл и открыть меню редактирования конфигурации:
./docker-build.sh make eltay_sc_rev100_defconfig
./docker-build.sh make menuconfig
После выхода из меню сохранить минимальный defconfig:
./docker-build.sh make savedefconfig
Файл будет сохранён как buildroot/defconfig. Чтобы обновить базовую конфигурацию платы:
cp buildroot/defconfig external-eltaySC/configs/eltay_sc_rev100_defconfig
Вынесенный каталог сборки
Необходимо использовать тот же каталог, который был передан через O при сборке:
export BR_OUTPUT="$PWD/buildroot_rev100_build"
./docker-build.sh make O="$BR_OUTPUT" eltay_sc_rev100_defconfig
./docker-build.sh make O="$BR_OUTPUT" menuconfig
После выхода из меню сохранить минимальный defconfig:
./docker-build.sh make O="$BR_OUTPUT" savedefconfig
Файл будет сохранён как $BR_OUTPUT/defconfig. Чтобы обновить базовую конфигурацию платы:
cp "$BR_OUTPUT/defconfig" external-eltaySC/configs/eltay_sc_rev100_defconfig
Включение и использование доступной периферии
Для включения различной периферии необходимо активировать особые слои (overlays) для дерева устройства. Это делается путем добавления файлов слоев в конфигурационный файл /boot/extlinux/extlinux.conf.
Для добавления слоя overlay необходимо в секцию загрузки файла добавить строку:
fdtoverlays /boot/overlays/overlay-name.dtbo
В случае, если необходимо добавить несколько слоев, их нужно перечислять через пробел, например:
fdtoverlays /boot/overlays/overlay-name1.dtbo /boot/overlays/overlay-name2.dtbo
Примерное содержимое файла после редактирования:
LABEL default
MENU LABEL Default (/boot/Image)
LINUX /boot/Image
FDT /boot/elvees/mcom03r-eltay-sc-r1.0.0.dtb
fdtoverlays /boot/overlays/overlay-name.dtbo
APPEND console=ttyS0,115200n8 earlycon root=PARTUUID=65e6e56a-51cb-c74e-b6bc-5be5dbdc7b0c rootfstype=ext4 rw rootwait
После сохранения изменений необходимо перезагрузить устройство:
sync
reboot
Инструкции по использованию периферии: