Repka Pi 3 H5 BuildRoot
Описание
Данный external tree имеет возможность создавать отдельные разделы под данные, реквизиты и бизнес-приложение. Изначально проект создавался для своих нужд.
Структура папок
- appfs - раздел под бизнес-приложение, может быть заменен в процессе работы системы во время обновления
- configs - конфиг-файлы для различных компонентов системы (buildroot, linux, uboot и другие)
- credentials_sample - раздел под реквизиты устройства (например, серийный номер, логин-пароль-ключ устройства и др.), раздел только для чтения
- overlay - наслойка структуры на rootfs
- package - пакеты, которые также собираются в buildroot и исполняемые файлы внедряются в целевую систему
- patches - патчи к системе или к компонентам
- post_build_scripts - скрипты, выполняемые после сборки системы и до сборки образа. Любой положенный в папку скрипт будет выполнен в процессе сборки.
Инструкция по сборке
- Разархивировать TAR файл либо склонировать репозиторий с external tree
- Отредактировать конфигурационный файл с настройками WIFI.
- Скачать BuildRoot.
- Подготовить скрипт repka_pi_prepare.sh
- Запустить сборку sdcard.img для microSD.
- Записать sdcard.img на microSD.
- Подключить microSD и UART консоль, включить репку.
- Вввести логин root и пароль 123 на консоли, посмотреть IP адрес.
- Соединиться SSH и ввести логин pi и пароль 123.
Подготовка external tree
Данная инструкция предполагает, что эта external tree - единственная в системе. Если нет, то вместо описанных в инструкции путей для BR2_DL_DIR и DR2_CCACHE_DIR пропишите пути к имеющимся папкам. Такой подход уменьшит время сборки и расход трафика.
Для начала нужно создать папку под наше решение
mkdir -v ~/repka && cd ~/repka
Клонирование репозитория
git clone ... repka-pi-3-h5-buildroot
Разархивировать TAR файл
mkdir -v ~/repka && cd ~/repka
mv -v ~/repka-pi-3-h5-buildroot.tbz2 .
tar -vxf repka-pi-3-h5-buildroot.tbz2
Отредактировать конфигурационный файл с настройками WIFI
wpa_passphrase ИМЯ_ТОЧКИ_ДОСТУПА ПАРОЛЬ
nano repka-pi-3-h5-buildroot/overlay/etc/wpa_supplicant.conf
ssid="ИМЯ_ТОЧКИ_ДОСТУПА"
psk=656c4700f528aced39b853b3c51b3fdcfc55409faa83a6402e936842237ac6f3
Скачать BuildRoot
time git clone git://git.buildroot.net/buildroot.git br-repka-pi-3-h5
cd br-repka-pi-3-h5 && git checkout 2023.02
Подготовить скрипт repka_pi_prepare.sh
Этот скрипт нужен для инициализации переменнных среды перед сборкой ОС и входящих в нее пакетов
cd repka-pi-3-h5-buildroot
cp repka_pi_prepare.sh ../repka_pi_prepare.sh
cd ..
mkdir downloads
mkdir ccache
nano repka_pi_prepare.sh
В открывшемся редакторе в терминале заменить строчку на
export BR2_DL_DIR=$HOME/repka/downloads BR2_CCACHE_DIR=$HOME/repka/ccache
BuildRoot - cборка sdcard.img для microSD
Для начала работы запустите скрипт с помощью source
source ./repka_pi_prepare.sh
После этого можно начинать сборку
time make 2>&1 | tee make.log
Скачивание пакетов buildroot и сборка может занять от 30 минут до нескольких часов в зависити от скорости компьютера и Интернет. Если не удалять директории ~/repka/downloads и ~/repka/ccache, то повторная сборка занимает меньше времени.
Записать sdcard.img на microSD
- /dev/sdX нужно заменить на диск microSD (например /dev/sda).
export MICROSD=/dev/sdX
lsblk $MICROSD && sudo dd if=output/images/sdcard.img of=$MICROSD bs=1M status=progress
Подключить microSD и UART консоль, включить репку
Пример подключения к UART консоли с помощью screen:
screen /dev/ttyUSB1 115200
Пример вывода на экран консоли
U-Boot SPL 2023.01 (Apr 02 2023 - 10:48:59 +0300)
...
CPU: Allwinner H5 (SUN50I)
Model: Repka-Pi3-H5
...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
1: linux
Retrieving file: /boot/Image
append: console=ttyS0,115200 root=/dev/mmcblk0p1 ro rootwait
...
Starting kernel ...
...
[ 0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p1 ro rootwait
...
Welcome to Repka Pi 3 H5
repka login: root
Password:
# ip a s wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
inet 192.168.0.123/24 brd 192.168.0.255 scope global dynamic noprefixroute wlan0
Ссылки по Buildroot
- The Buildroot user manual https://buildroot.org/downloads/manual/manual.html
- Buildroot — часть 1. Общие сведения, сборка минимальной системы, настройка через меню https://habr.com/ru/post/448638/
- Buildroot — часть 2. Создание конфигурации своей платы; применение external tree, rootfs-overlay, post-build скриптов https://habr.com/ru/post/449348/
- Введение в использование buildroot https://russianblogs.com/article/14911665550/
Описание
External tree для сборки ОС на базе Linux в Buildroot