Buildroot для ELTAY RM66
Для платы ELTAY RM66 доступна сборка Buildroot в виде SDK в репозитории на gitflic. SDK содержит внешний слой для плат ELTAY (buildroot-external-eltay), а основной репозиторий Buildroot подключен как подмодуль (используется версия 2025.02.6).
Подготовка к работе
Для работы с Buildroot необходимо установить определенный список пакетов:
sudo apt-get update
sudo apt-get install -y \
which sed make binutils build-essential diffutils gcc g++ bash patch \
gzip bzip2 perl tar cpio unzip rsync file bc findutils wget python3 libncurses-dev
Далее необходимо клонировать ELTAY SDK к себе на ПК и перейти в загруженную папку. При клонировании обязательно использовать флаг --recurse-submodules, чтобы так же клонировался репозиторий Buildroot:
git clone --recurse-submodules https://gitflic.ru/project/elron-tech/buildroot-eltay.git
cd buildroot-eltay
Сборка
Сборка на основе mainline ядра
В основной ветке SDK присутствует конфигурационный файл eltay_rm66_defconfig (buildroot-eltay/buildroot-external-eltay/configs), который обеспечивает минимально необходимые настройки для запуска платы и входа в ОС. Собранный по файлу дистрибутив позволяет:
- получать доступ к системной консоли по UART;
- получать доступ к устройству по протоколу SSH;
- выполнять обслуживание и использование накопителей, разделов и файловых систем с использованием стандартного набора консольных утилит, в том числе устройств хранения типа NVMe.
Для включения периферийных устройств или дополнительных пакетов необходимо самостоятельно изменить конфигурации Buildroot или ядра Linux.
Процесс сборки
- Задать пути к папке с SDK, а также к папке для результатов сборки:
cd buildroot-eltay/buildroot
export BR_EXT="$(realpath ../buildroot-external-eltay)"
export BR_OUT="$(realpath ../buildroot_built)" - Установить конфигурационный файл
eltay_rm66_defconfigдля сборки:make BR2_EXTERNAL="$BR_EXT" O="$BR_OUT" eltay_rm66_defconfig - Запустить сборку на всех доступных ядрах:
make -j"$(nproc)" BR2_EXTERNAL="$BR_EXT" O="$BR_OUT"
После завершения сборки образ появится в папке $BR_OUT/images/sdcard.img.
В процессе сборки отдельно формируется файл загрузчика uboot для памяти SPI Flash. Файл называется u-boot-rockchip-spi.bin, его можно найти в каталоге сборки Buildroot в папке build/uboot-2024.10. Способы записи загрузчика в SPI Flash описаны в соответствующем разделе.
Сборка на основе ядра от Rockchip с поддержкой медиа-драйверов
Для работы с камерами необходимо использовать ветку с Rockchip BSP ядром и медиа-драйверами. Ветка rk356x-media использует vendor-ядро Rockchip с поддержкой подсистемы media (ISP, CIF). В mainline-ядре Linux поддержка этих аппаратных блоков отсутствует или неполная, поэтому работа с камерами в основной ветке невозможна.
Процесс сборки
- После клонирования репозитория переключиться на соответствующую ветку:
cd buildroot-eltay
git checkout rk356x-media - Задать пути к папке с SDK, а также к папке для результатов сборки:
cd buildroot-eltay/buildroot
export BR_EXT="$(realpath ../buildroot-external-eltay)"
export BR_OUT="$(realpath ../buildroot_built_media)" - Установить конфигурационный файл
eltay_rm66_defconfigдля сборки:make BR2_EXTERNAL="$BR_EXT" O="$BR_OUT" eltay_rm66_defconfig - Запустить сборку на всех доступных ядрах:
make -j"$(nproc)" BR2_EXTERNAL="$BR_EXT" O="$BR_OUT"
После завершения сборки образ появится в папке $BR_OUT/images/sdcard.img.
Полезные команды
Запуск редактора конфигурации с установленным конфигурационным файлом:
make BR2_EXTERNAL="$BR_EXT" O="$BR_OUT" menuconfig
Сохранение текущей конфигурации в defconfig-файл в каталоге сборки BR_OUT:
make BR2_EXTERNAL="$BR_EXT" O="$BR_OUT" savedefconfig
После сохранения при необходимости можно обновить конфигурационный файл в SDK, чтобы не потерять изменения при очистке папки сборки
cp "$BR_OUT/defconfig" "$BR_EXT/configs/eltay_rm66_defconfig"
Очистка сборки:
make distclean
# или вручную удалить каталог сборки BR_OUT
Запуск ОС с microSD карты
Запишите полученный образ на microSD карту (способы записи образа на другие доступные носители описаны в соответствующем разделе).
- Windows
- Linux
Скопируйте загрузочный файл sdcard.img на microSD карту с помощью команды dd:
sudo dd if=output/images/sdcard.img of=/dev/sdX status=progress
sudo sync
Для загрузки можно использовать программу BalenaEtcher.
Нажмите Flash from file, выберите sdcard.img, выберите вашу microSD карту из списка и нажмите Flash!.
Вставьте microSD карту памяти в плату Eltay RM66 и подайте питание на плату. Консоль подключена к 3-контактному разъёму TTL Debug UART, который расположен рядом с портом питания Type-C. Подключите к нему любой USB-UART преобразователь (например, на базе микросхем CP2102 или СР340) и откройте соединение на скорости 1500000 бод/с.
По умолчанию в системе присутствует только пользователь root:
user: root
password: eltay
В сборке используется ядро Linux версии 6.12 из основной ветки, в указанной версии отсутствует поддержка медиадрайверов для SoC RK3566 - камера по интерфейсу MIPI CSI не работает.