README.md

Repka Pi 3 H5 BuildRoot

Описание

Данный external tree имеет возможность создавать отдельные разделы под данные, реквизиты и бизнес-приложение. Изначально проект создавался для своих нужд.

Структура папок

  • appfs - раздел под бизнес-приложение, может быть заменен в процессе работы системы во время обновления
  • configs - конфиг-файлы для различных компонентов системы (buildroot, linux, uboot и другие)
  • credentials_sample - раздел под реквизиты устройства (например, серийный номер, логин-пароль-ключ устройства и др.), раздел только для чтения
  • overlay - наслойка структуры на rootfs
  • package - пакеты, которые также собираются в buildroot и исполняемые файлы внедряются в целевую систему
  • patches - патчи к системе или к компонентам
  • post_build_scripts - скрипты, выполняемые после сборки системы и до сборки образа. Любой положенный в папку скрипт будет выполнен в процессе сборки.

Инструкция по сборке

  1. Разархивировать TAR файл либо склонировать репозиторий с external tree
  2. Отредактировать конфигурационный файл с настройками WIFI.
  3. Скачать BuildRoot.
  4. Подготовить скрипт repka_pi_prepare.sh
  5. Запустить сборку sdcard.img для microSD.
  6. Записать sdcard.img на microSD.
  7. Подключить microSD и UART консоль, включить репку.
  8. Вввести логин root и пароль 123 на консоли, посмотреть IP адрес.
  9. Соединиться 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

Конвейеры
0 успешных
0 с ошибкой