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

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.

Процесс сборки

  1. Задать пути к папке с SDK, а также к папке для результатов сборки:
    cd buildroot-eltay/buildroot
    export BR_EXT="$(realpath ../buildroot-external-eltay)"
    export BR_OUT="$(realpath ../buildroot_built)"
  2. Установить конфигурационный файл eltay_rm66_defconfig для сборки:
    make BR2_EXTERNAL="$BR_EXT" O="$BR_OUT" eltay_rm66_defconfig
  3. Запустить сборку на всех доступных ядрах:
    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 поддержка этих аппаратных блоков отсутствует или неполная, поэтому работа с камерами в основной ветке невозможна.

Процесс сборки

  1. После клонирования репозитория переключиться на соответствующую ветку:
    cd buildroot-eltay
    git checkout rk356x-media
  2. Задать пути к папке с SDK, а также к папке для результатов сборки:
    cd buildroot-eltay/buildroot
    export BR_EXT="$(realpath ../buildroot-external-eltay)"
    export BR_OUT="$(realpath ../buildroot_built_media)"
  3. Установить конфигурационный файл eltay_rm66_defconfig для сборки:
    make BR2_EXTERNAL="$BR_EXT" O="$BR_OUT" eltay_rm66_defconfig
  4. Запустить сборку на всех доступных ядрах:
    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 карту (способы записи образа на другие доступные носители описаны в соответствующем разделе).

Скопируйте загрузочный файл sdcard.img на microSD карту с помощью команды dd:

sudo dd if=output/images/sdcard.img of=/dev/sdX status=progress
sudo sync

Вставьте 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 не работает.