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

Материал из ALT Linux Wiki
(не показано 6 промежуточных версий 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).
Строка 22: Строка 22:
См. также: [https://www.altlinux.org/Regular/arm#Запуск_в_QEMU запуск образов в qemu/armh].
См. также: [https://www.altlinux.org/Regular/arm#Запуск_в_QEMU запуск образов в qemu/armh].


=== Краткая инструкция по RPi4 ===
=== Быстрое развёртывание RPi4-SDK ===


* Скачайте нужный [https://www.altlinux.org/Starterkits/Download#Минимальное_сборочное_окружение образ сборочного окружения]
* Скачайте нужный [https://www.altlinux.org/Starterkits/Download#Минимальное_сборочное_окружение образ сборочного окружения]
* Запишите на флешку (USB или microSD). Можно использовать '''altmediawriter''' либо в консоли: <pre>xzcat <путь/до/образа.img.xz> | dd of=/dev/mmcblkX bs=4M oflag=direct status=progress; sync</pre>
* Запишите на флешку (USB или microSD). Можно использовать '''[https://www.altlinux.org/Запись_образов_на_DVD_и_USB_Flash#ALT_Media_Writer_(altmediawwriter) altmediawriter]''' либо в консоли: <pre>xzcat <путь/до/образа.img.xz> | dd of=/dev/mmcblkX bs=4M oflag=direct status=progress; sync</pre>
* Вставляем в USB флешку или в разъём microSD карту. Включаем кабель питания. Происходит загрузка, пока не появится приглашение входа.
* Вставляем в USB флешку или в разъём microSD карту. Включаем кабель питания. Происходит загрузка, пока не появится приглашение входа.
* В поле login: вводим '''root'''. Далее пароль '''altlinux'''.
* В поле login: вводим '''root'''. Далее пароль '''altlinux'''.
Строка 34: Строка 34:
* При второй загрузке корневой раздел расширяется на всё свободное место на накопителе. SWAP необходимо предусмотреть в конце флэшки заранее до этого момента.
* При второй загрузке корневой раздел расширяется на всё свободное место на накопителе. SWAP необходимо предусмотреть в конце флэшки заранее до этого момента.
* Авторизуемся как пользователь '''<user>'''.
* Авторизуемся как пользователь '''<user>'''.
* Пробуем инициализировать пустое сборочное окружение (hasher): <pre>hsh --initroot-only</pre>
* Пробуем инициализировать пустое сборочное окружение ([https://www.altlinux.org/Hasher hasher]): <pre>hsh --init</pre>
* Требуется подключение к сети. Для того, чтобы сеть стартовала автоматом, нужно воткнуть кабель ethernet до загрузки. Если сеть подключили позже, то:
* Требуется подключение к сети. Для того, чтобы сеть стартовала автоматом, нужно воткнуть кабель ethernet до загрузки. Если сеть подключили позже, то:
<pre>
<pre>
Строка 58: Строка 58:
=== Перепаковка чужого RPM ===
=== Перепаковка чужого RPM ===


Если необходимо просто перепаковать уже собранный для другого дистрибутива RPM-пакет, воспользуйтесь [https://www.altlinux.org/RPM-repair RPM-repair] или '''eepm'''.
Если необходимо просто перепаковать уже собранный для другого дистрибутива RPM-пакет, воспользуйтесь [https://www.altlinux.org/RPM-repair RPM-repair] или '''[https://wiki.etersoft.ru/Epm eepm]'''.




'''Enjoy! ;-)'''
'''Enjoy! ;-)'''
{{Category navigation|title=Starterkits|category=Starterkits|sortkey=*}}
{{Category navigation|title=Starterkits|category=Starterkits|sortkey=*}}

Версия от 15:38, 14 августа 2020

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

Памятка по сборке 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
  • Требуется подключение к сети. Для того, чтобы сеть стартовала автоматом, нужно воткнуть кабель ethernet до загрузки. Если сеть подключили позже, то:
# Получаем права root:
su -

# Перезапускаем службу сети:
systemctl restart network

# Возвращаемся в режим пользователя командой:
exit

# или сочетанием клавиш ctrl + D

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

  • Клонируем репозиторий пакета:
    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