К СВЕДЕНИЮ
Репозиторий с загрузичком U-Boot для Repka Pi 3/Repka Pi 4/Repka Pi 5 доступен по ссылке: repka-os_boot-loader
Данный репозиторий предназначен для сборки загрузчика под одноплатные компьютеры Repka Pi 3, Repka Pi 4 и Repka Pi 5. Репозиторий включает в себя несколько git-подмодулей, которые используются для конкретного одноплатного компьютера:
| Git-подмодуль | Repka Pi 3 | Repka Pi 4 | Repka Pi 5 |
|---|---|---|---|
| ARM Trusted Firmware (ATF) | Используется | Используется | Не используется |
| ARM Trusted Firmware-A 2.13 | Не используется | Не используется | Используется |
| Гипервизор для работы с PCIe (aw-el2-barebone) | Не используется | Используется | Не используется |
| rkbin | Не используется | Не используется | Используется |
| U-Boot версии v2020.04-rc3 | Не используется | Используется | Не используется |
| U-Boot версии v2022.04 | Используется | Не используется | Не используется |
| U-Boot версии v2025.10 | Не используется | Не используется | Используется |
Версии необходимых утилит для сборки:
| Утилита | Версия |
|---|---|
| git | 2.43.0 |
| Docker Engine | 28.0.1 |
| GNU Make | 4.3 |
Примечание: Сборка осуществлялась на ОС Linux Ubuntu 24.04 с архитектурой x86_64.
Сборка #
Для сборки прошивки необходимо выполнить следующие команды:
-
Скачать все подмодули с помощью команды:
git submodule update --init --recursive -
Запустить сборку с помощью команды:
Для Repka Pi 3:
make REPKA_MODEL=pi3 build-loaderДля Repka Pi 4:
make REPKA_MODEL=pi4 build-loaderДля Repka Pi 5:
make REPKA_MODEL=pi5 build-loader -
После успешной сборки появится директория
src-<REPKA_MODEL>в корне репозитория.Для Repka Pi 3:
src-pi3 ├── overlays (директория с оверлеями для Repka Pi 3) │ ├── 1008GHz.dtbo │ ├── 1200GHz.dtbo │ ├── 1368GHz.dtbo │ ├── 1416GHz.dtbo │ ├── i2c1.dtbo │ ├── i2c1-fast-mode.dtbo │ ├── i2c2.dtbo │ ├── i2c2-fast-mode.dtbo │ ├── i2s.dtbo │ ├── i2s_pcm5102.dtbo │ ├── i2s_pcm5122.dtbo │ ├── i2s_wm8960.dtbo │ ├── profile-ver1.3.dtbo │ ├── profile-ver1.4-1.6-active.dtbo │ ├── profile-ver1.4-1.6-passive.dtbo │ ├── pwm0.dtbo │ ├── spi0_can.dtbo │ ├── spi0.dtbo │ ├── spi1.dtbo │ ├── s_uart.dtbo │ └── uart2.dtbo ├── repka-pi.dtb (основное дерево устройств для Repka Pi 3) └── spl ├── u-boot-sunxi-with-spl.bin (загрузчик с включенным логированием в UART0) └── u-boot-sunxi-with-spl-silent.bin (загрузчик с тихим режимом)Для Repka Pi 4:
src-pi4 ├── overlays (директория с оверлеями для Repka Pi 4) │ ├── i2c1.dtbo │ ├── i2c1-fast-mode.dtbo │ ├── i2c2.dtbo │ ├── i2c2-fast-mode.dtbo │ ├── i2c3.dtbo │ ├── i2c3-fast-mode.dtbo │ ├── i2s.dtbo │ ├── i2s_pcm5102.dtbo │ ├── i2s_pcm5122.dtbo │ ├── spi0.dtbo │ ├── s_uart.dtbo │ ├── uart3.dtbo │ └── w1_gpio.dtbo ├── repka-pi.dtb (основное дерево устройств для Repka Pi 4) └── spl ├── u-boot-sunxi-with-spl.bin (загрузчик с включенным логированием в UART0) └── u-boot-sunxi-with-spl-silent.bin (загрузчик с тихим режимом)Для Repka Pi 5:
src-pi5 ├── overlays (директория создается на этапе сборки) └── spl └── u-boot-rockchip.bin (итоговый загрузчик для платформы RK3588)
Краткий алгоритм сборки загрузчика в контейнере #
Более подробно алгоритм сборки можно изучить в скрипте, который находится по пути:
Для Repka Pi 3:
docker/build-pi3.sh
Для Repka Pi 4:
docker/build-pi4.sh
Для Repka Pi 5:
docker/build-pi5.sh
Алгоритм для Repka Pi 3 #
- Сборка arm-trusted-firmware с включенным режимом логирования.
- Сборка U-Boot (внутри которого собирается дерево устройств и необходимые оверлеи) с включенным режимом логирования.
- Сборка arm-trusted-firmware с тихим режимом.
- Сборка U-Boot с тихим режимом.
- Помещение всех собранных файлов в директорию
src-pi3(которая связана с хостовой машиной).
Алгоритм для Repka Pi 4 #
- Сборка arm-trusted-firmware с включенным режимом логирования.
- Сборка гипервизора
aw-el2-bareboneс включенным режимом логирования. - Сборка U-Boot (внутри которого собирается дерево устройств и необходимые оверлеи) с включенным режимом логирования.
- Сборка arm-trusted-firmware с тихим режимом.
- Сборка гипервизора
aw-el2-bareboneс тихим режимом. - Сборка U-Boot с тихим режимом.
- Помещение всех собранных файлов в директорию
src-pi4(которая связана с хостовой машиной).
Алгоритм для Repka Pi 5 #
- Сборка Trusted Firmware-A 2.13 (
bl31) для платформыrk3588. - Подготовка бинарного DDR/TPL-файла из
rkbin. - Сборка U-Boot
v2025.10с конфигурациейrepka-pi5-rk3588_defconfig. - Помещение итогового файла
u-boot-rockchip.binв директориюsrc-pi5/spl(которая связана с хостовой машиной).
Как записать загрузчик на Repka Pi 3 / Repka Pi 4 / Repka Pi 5 #
Repka Pi 3 / Repka Pi 4 #
- В первую очередь необходимо скопировать содержимое директории
src-<REPKA_MODEL>/splв директорию/boot/splна Repka Pi. - Далее есть два варианта записи:
-
Запись через
dd(для загрузчика с режимом логирования):dd if=/boot/spl/u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8 strconv=notrunc -
Запись через
dd(для загрузчика с тихим режимом):dd if=/boot/spl/u-boot-sunxi-with-spl-silent.bin of=/dev/mmcblk0 bs=1024 seek=8 strconv=notrunc -
Запись через утилиту
repka-config:repka-configИ далее перейти в раздел "DL3 Boot Message" для Repka Pi 3 или для Repka Pi 4.
-
Repka Pi 5 #
-
Необходимо использовать файл
src-pi5/spl/u-boot-rockchip.bin. -
Для записи загрузчика на SD-карту или eMMC используйте команду:
dd if=src-pi5/spl/u-boot-rockchip.bin of=/dev/mmcblk0 bs=512 seek=64 conv=fsync,notrunc -
Для платформы
pi5в текущем репозитории собирается один вариант загрузчика без отдельного "silent"-образа.