RPi4-SDK: различия между версиями

Материал из ALT Linux Wiki
(→‎Быстрое развёртывание RPi4-SDK: Теперь такие муки не нужны, используется NetworkManager)
 
(не показаны 3 промежуточные версии 2 участников)
Строка 5: Строка 5:
=== Железо ===
=== Железо ===


Кроме самого одноплатника RPi4, нужен монитор с кабелем HDMI и SD-card, на которую надо развернуть rootfs. На этой железке можно собирать и под ARMv7, и под ARMv8. Мы предоставляем [https://www.altlinux.org/Starterkits/Download#Минимальное_сборочное_окружение образы сборочного окружения] для обоих вариантов. Железка достаточно крутая, тянет два монитора 4K, но памяти только 4Гб (ещё бывают модели с 8Гб). Хорошо бы на SD-card выделить место под SWAP для сборки, но сделать это надо до первой загрузки с RPi4, место следует выделять в самом конце флэшки.
Кроме самого одноплатника RPi4 , нужен монитор с кабелем HDMI <ref>о можно обойтись и без монитора, если подключиться к последовательному порту, как описано в статье: https://www.altlinux.org/Ports/aarch64/Raspberry_Pi4#Консоль</ref> и SD-card либо USB-накопитель <ref>загрузка работает только с USB 2.0. Также требуется обновление прошивки EEPROM: https://github.com/raspberrypi/rpi-eeprom</ref>, на которую надо развернуть rootfs. На этой железке можно собирать и под ARMv7, и под ARMv8. Мы предоставляем [https://www.altlinux.org/Starterkits/Download#Минимальное_сборочное_окружение образы сборочного окружения] для обоих вариантов. Железка достаточно крутая, тянет два монитора 4K, но памяти только 4Гб (ещё бывают модели с 8Гб). Хорошо бы на накопителе выделить место под SWAP для сборки, но сделать это надо до первой загрузки с RPi4, место следует выделять в самом конце флэшки.


Есть соображение, что RPi4 лучше всего использовать для сборки финальных RPM-пакетов. Для полноценного цикла разработки быстрее всё же использовать '''qemu-system-aarch64''' и '''qemu-system-arm'''. Для наших технологических партнёров мы также предоставляем PVE/виртуалки для быстрой нативной сборки (на площадке у провайдера, на сервере ThunderX).
Есть соображение, что RPi4 лучше всего использовать для сборки финальных RPM-пакетов. Для полноценного цикла разработки быстрее всё же использовать '''qemu-system-aarch64''' и '''qemu-system-arm'''. Для наших технологических партнёров мы также предоставляем PVE/виртуалки для быстрой нативной сборки (на площадке у провайдера, на сервере ThunderX).
Строка 34: Строка 34:
* При второй загрузке корневой раздел расширяется на всё свободное место на накопителе. SWAP необходимо предусмотреть в конце флэшки заранее до этого момента.
* При второй загрузке корневой раздел расширяется на всё свободное место на накопителе. SWAP необходимо предусмотреть в конце флэшки заранее до этого момента.
* Авторизуемся как пользователь '''<user>'''.
* Авторизуемся как пользователь '''<user>'''.
* Пробуем инициализировать пустое сборочное окружение (hasher): <pre>hsh --init</pre>
* Пробуем инициализировать пустое сборочное окружение ([https://www.altlinux.org/Hasher hasher]): <pre>hsh --init</pre>
* Требуется подключение к сети. Для того, чтобы сеть стартовала автоматом, нужно воткнуть кабель ethernet до загрузки. Если сеть подключили позже, то:
* Требуется подключение к сети. Сеть управляется через NetworkManager. Настроить соединение можно через nmcli или псевдографический интерфейс nmtui.
 
<!--
Для того, чтобы сеть стартовала автоматом, нужно воткнуть кабель ethernet до загрузки. Если сеть подключили позже, то:
<pre>
<pre>
# Получаем права root:
# Получаем права root:
Строка 48: Строка 51:
# или сочетанием клавиш ctrl + D
# или сочетанием клавиш ctrl + D
</pre>
</pre>
-->


=== Сборка пакета ===
=== Сборка пакета ===

Текущая версия от 19:01, 2 июня 2023

Памятка технологическому партнёру

Памятка по сборке RPM-пакетов на аппаратном комплекте Raspberry Pi 4

Железо

Кроме самого одноплатника RPi4 , нужен монитор с кабелем HDMI [1] и SD-card либо USB-накопитель [2], на которую надо развернуть rootfs. На этой железке можно собирать и под ARMv7, и под ARMv8. Мы предоставляем образы сборочного окружения для обоих вариантов. Железка достаточно крутая, тянет два монитора 4K, но памяти только 4Гб (ещё бывают модели с 8Гб). Хорошо бы на накопителе выделить место под SWAP для сборки, но сделать это надо до первой загрузки с RPi4, место следует выделять в самом конце флэшки.

Есть соображение, что RPi4 лучше всего использовать для сборки финальных RPM-пакетов. Для полноценного цикла разработки быстрее всё же использовать qemu-system-aarch64 и qemu-system-arm. Для наших технологических партнёров мы также предоставляем PVE/виртуалки для быстрой нативной сборки (на площадке у провайдера, на сервере ThunderX).

Загрузка с USB работает только у rootfs builder. У альфы Рабочей станции 9.1 для armh и выпущенных дистрибутивов 9.1 для aarch64 не работает (сборка старая). Для интенсивной сборки пакетов не помешает активное охлаждение. Никаких других особенностей нет.

Сборка в QEMU (armh)

gear -v --hasher -- hsh --lazy-cleanup --with-qemu arm \
        --apt-config=$HOME/apt/apt.conf.sisyphus.armh \
        --target=armh --repo=$HOME/hasher_repo/sisyphus ~/hasher

С aarch64 (ARMv8) по аналогии, только с --with-qemu aarch64. См. также: запуск образов в qemu/armh.

Быстрое развёртывание RPi4-SDK

  • Скачайте нужный образ сборочного окружения
  • Запишите на флешку (USB или microSD). Можно использовать altmediawriter либо в консоли:
    xzcat <путь/до/образа.img.xz> | dd of=/dev/mmcblkX bs=4M oflag=direct status=progress; sync
  • Вставляем в USB флешку или в разъём microSD карту. Включаем кабель питания. Происходит загрузка, пока не появится приглашение входа.
  • В поле login: вводим root. Далее пароль altlinux.
  • Меняем пароль root на свой командой:
    passwd root
  • Добавляем нового пользователя, который будет использоваться для сборки пакетов:
    builder-useradd <user>
    При создании пользователя нужно будет сразу задать ему пароль.
  • Добавляем пользователя в группу администраторов:
    usermod -a -G wheel <user>
  • Перезагружаемся:
    reboot
  • При второй загрузке корневой раздел расширяется на всё свободное место на накопителе. SWAP необходимо предусмотреть в конце флэшки заранее до этого момента.
  • Авторизуемся как пользователь <user>.
  • Пробуем инициализировать пустое сборочное окружение (hasher):
    hsh --init
  • Требуется подключение к сети. Сеть управляется через NetworkManager. Настроить соединение можно через nmcli или псевдографический интерфейс nmtui.


Сборка пакета

  • Клонируем репозиторий пакета:
    git clone <адрес репозитория>
  • Переходим в каталог репозитория пакета:
    cd <имя пакета>
  • Собираем пакет:
    gear --hasher -- hsh --lazy-cleanup -v --no-sisyphus-check=packager,gpg,changelog 2>&1 |tee build.log
    Здесь build.log - это лог сборки пакета.
  • Проверяем на отсутствие конфликтов:
    /path/to/hasher/aptbox/apt-cache unmet

Перепаковка чужого RPM

Если необходимо просто перепаковать уже собранный для другого дистрибутива RPM-пакет, воспользуйтесь RPM-repair или eepm.


Enjoy! ;-)

  1. о можно обойтись и без монитора, если подключиться к последовательному порту, как описано в статье: https://www.altlinux.org/Ports/aarch64/Raspberry_Pi4#Консоль
  2. загрузка работает только с USB 2.0. Также требуется обновление прошивки EEPROM: https://github.com/raspberrypi/rpi-eeprom