Yocto для ELTAY RM66
Для сборки минимального дистрибутива Linux для платы ELTAY RM66 + ELTAY Base Board в репозитории gitflick доступен bsp-слой meta-eltay-rm66.
Подготовка к работе
В качестве host-системы рекомендуется использовать Ubuntu 24.04.
Для сборки дистрибутива в Yocto потребуется:
- основной проект - Yocto Project 5.0 (Scarthgap)
- набор мета-слоев для сборки дистрибутива под архитектуру
arm64 - bsp-слой для платы ELTAY RM66
-
Удобно собрать необходимые слои Yocto в одной директории:
mkdir yocto
cd yoctoВ созданную папку необходимо клонировать репозитории основного проекта и слоев, которые понадобятся для сборки:
git clone -b scarthgap git://git.yoctoproject.org/poky.git
git clone -b scarthgap git://git.yoctoproject.org/meta-rockchip
git clone -b scarthgap git://git.yoctoproject.org/meta-arm
git clone https://gitflic.ru/project/elron-tech/meta-eltay-rm66 -
Далее необходимо подготовить окружение для сборки. Для этого в основном проекте есть специальный скрипт, ответственный за создание необходимых переменных окружения, папок, в которых будет идти сборка, и т.д. В качестве аргумента при вызове скрипта можно указать название папки сборки:
source poky/oe-init-build-env build-eltay-rm66После выполнения скрипта текущая рабочая директория переключается на указанную папку. Дальнейшие команды выполняются из нее, если не указано иное.
вниманиеДанный скрипт необходимо запускать каждый раз перед началом работы после перезагрузки host-системы, т.к. вносимые изменения работают только в текущей сессии. Указывать папку сборки обязательно. Изменения, произошедшие в ней с момента создания, сохранятся.
-
Указать системе сборки, какие слои использовать. Для этого можно выполнить следующие команды:
bitbake-layers add-layer ../meta-arm/meta-arm-toolchain
bitbake-layers add-layer ../meta-arm/meta-arm
bitbake-layers add-layer ../meta-rockchip
bitbake-layers add-layer ../meta-eltay-rm66Порядок добавления слоев в некоторых случаях критичен. Например, слой
meta-armзависит отmeta-arm-toolchain, поэтому toolchain нужно подключать первым, иначе возникнет ошибка.Альтернативный метод - заменить конфигурацию слоёв заранее подготовленным файлом из bsp-слоя. Для этого необходимо скопировать файл
meta-eltay-rm66/bblayers.confв папкуbuild-eltay-rm66/conf/, полностью заменив существующий файл.Для проверки подключенных слоев можно использовать команду
bitbake-layers show-layers -
Указать Yocto, для какой машины производится сборка. Это нужно сделать в файле
build-eltay-rm66/conf/local.conf- в конец файла добавить:MACHINE = "eltay-rm66" -
Yocto Project достаточно требователен к ресурсам host-системы, главным образом это касается использования оперативной памяти. По умолчанию сборка происходит в несколько потоков, задействуются все доступные ядра хоста. На каждом ядре выполняется одна задача, и для нее требуется около 2,5 ГБ RAM. Поэтому рекомендуется ограничить количество ядер для сборки, исходя из доступного объема RAM. Это можно сделать в файле
build-eltay-rm66/conf/local.conf, добавив в конец:BB_NUMBER_THREADS = "6"
PARALLEL_MAKE = "-j6"
NINJA_ARGS = "-j6"При сборке на 6 ядрах было замечено пиковое потребление RAM около 15,5 ГБ.
Заранее подготовленный файл
local.confс указанными настройками так же можно скопировать из bsp-слояmeta-eltay-rm66и вставить его в папкуbuild-eltay-rm66/conf/, полностью заменив существующий файл.
Сборка
Если сборка производится после перезагрузки host-системы, предварительно необходимо подготовить окружение для сборки, запустив специальный скрипт (Подготовка к работе, п.2).
Сборка дистрибутива запускается командой
bitbake core-image-minimal
В первый раз процесс занимает около двух часов.
После завершения сборки wic-архив с образом системы появится в папке build-eltay-rm66/tmp/deploy/images/eltay-rm66/core-image-minimal-eltay-rm66.rootfs-*.wic.
Запуск ОС с microSD карты
Запишите полученный образ на microSD карту (способы записи образа на другие доступные носители описаны в соответствующем разделе).
- Windows
- Linux
Wic-архив core-image-minimal-eltay-rm66.rootfs-*.wic можно записать на microSD карту с помощью команды
bmaptool copy core-image-minimal-eltay-rm66.rootfs-*.wic /dev/sdX
Для загрузки можно использовать программу BalenaEtcher.
Нажмите Flash from file, выберите core-image-minimal-eltay-rm66.rootfs-*.wic, выберите вашу microSD карту из списка и нажмите Flash!.
Вставьте microSD карту памяти в плату Eltay RM66 и подайте питание на плату. Консоль подключена к 3-контактному разъёму TTL Debug UART, который расположен рядом с портом питания Type-C. Подключите к нему любой USB-UART преобразователь (например, на базе микросхем CP2102 или СР340) и откройте соединение на скорости 1500000 бод/с.
По умолчанию в системе присутствует только пользователь root без пароля:
user: root
password:
В сборке используется ядро Linux версии 6.12 из основной ветки, в указанной версии отсутствует поддержка медиадрайверов для SoC RK3566 - камера по интерфейсу MIPI CSI не работает.