RPi4-SDK: различия между версиями
(→Быстрое развёртывание RPi4-SDK: Теперь такие муки не нужны, используется NetworkManager) |
|||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 5: | Строка 5: | ||
=== Железо === | === Железо === | ||
Кроме самого одноплатника RPi4, нужен монитор с кабелем HDMI и SD-card, на которую надо развернуть rootfs. На этой железке можно собирать и под ARMv7, и под ARMv8. Мы предоставляем [https://www.altlinux.org/Starterkits/Download#Минимальное_сборочное_окружение образы сборочного окружения] для обоих вариантов. Железка достаточно крутая, тянет два монитора 4K, но памяти только 4Гб (ещё бывают модели с 8Гб). Хорошо бы на | Кроме самого одноплатника 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! ;-)
- ↑ о можно обойтись и без монитора, если подключиться к последовательному порту, как описано в статье: https://www.altlinux.org/Ports/aarch64/Raspberry_Pi4#Консоль
- ↑ загрузка работает только с USB 2.0. Также требуется обновление прошивки EEPROM: https://github.com/raspberrypi/rpi-eeprom