Ports/mipsel/BuildHowto: различия между версиями

Материал из ALT Linux Wiki
< Ports‎ | mipsel
(не показано 14 промежуточных версий 5 участников)
Строка 1: Строка 1:
[[Category:Sisyphus]]
[[Category:Sisyphus]]
[[Категория:mipsel]]
[[Категория:MIPSEL]]


===Настройка сборки пакетов под mipsel на x86===
==Настройка сборки пакетов под mipsel на x86==


На основании статьи о настройках для arm: https://www.altlinux.org/Ports/arm/BuildHowto
На основании статьи о настройках для arm: [[Ports/arm/BuildHowto]]
и статьи https://wiki.gentoo.org/wiki/Embedded_Handbook/General/Compiling_with_qemu_user_chroot
и статьи https://wiki.gentoo.org/wiki/Embedded_Handbook/General/Compiling_with_qemu_user_chroot
где описаны настройки binfmt_misc под различные платформы, в том числе и под mipsel
где описаны настройки binfmt_misc под различные платформы, в том числе и под mipsel


Настраиваем binfmt_misc:
Описанные ниже настройки опубликованы в репозитории Сизиф в пакете livecd-qemu-arch-0.4-alt1.noarch.rpm
Он устанавливает в систему в том числе и файлы


* монтируем файловую систему binfmt_misc(если ещё не примонтирована)
* /etc/apt/apt.conf.sisyphus.mipsel
* /etc/apt/sources.list.sisyphus.mipsel
* /usr/bin/register-qemu-mipsel
 
=== Настраиваем qemu-user и binfmt-misc ===
 
* Устанавливаем пакет:
 
sudo apt-get install qemu-user-static
 
* Монтируем файловую систему binfmt_misc(если ещё не примонтирована):


   mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
   mount -t binfmt_misc none /proc/sys/fs/binfmt_misc


* регистрируем qemu-mipsel, как интерпретатор mipsel'овских ELF'ов (команда от root):
* Регистрируем qemu-mipsel, как интерпретатор mipsel'овских ELF'ов. Для этого нужно выполнить следующую команду '''от root'а''':
 
  echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel-static:OCF' > /proc/sys/fs/binfmt_misc/register
 
В этом случае mipsel бинарники можно запускать и в hasher, и в основной системе.
Если у Вас ядро 4.7 (или более старое), или запуск "чужих" бинарников в основной системе
о какой-то причине неприемлем, то нужно использовать такой вариант:


  sudo su
   echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/.host/qemu-mipsel:' > /proc/sys/fs/binfmt_misc/register
   echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/.host/qemu-mipsel:' > /proc/sys/fs/binfmt_misc/register


Настраиваем репозиторий mipsel
'''''ОБРАТИТЕ ВНИМАНИЕ''''': <tt>/.host/qemu-mipsel</tt> -- это путь в сборочном чруте. Именно туда hasher положит соответсвующий бинарник. В вашей системе такого файла может и не быть (обычно нет).
 
==== Если установлен пакет livecd-qemu-arch ====
 
Для применения настроек нужно выполнить следующую команду '''от root'а''':
 
  register-qemu-mipsel
 
 
==== Если у Вас systemd ====
 
Если у Вас достаточно свежий <tt>systemd</tt>, то для того, чтобы настраивать так binfmt-misc при каждой загрузке, достаточно прописать эту строчку в какой-нибудь файл в каталоге <tt>/etc/binfmt.d</tt>, например:
 
  echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel-static:OCF' > /etc/binfmt.d/qemu-mipsel.conf
 
Либо (если не хочется, чтоб mipsel бинарники запускались в основной системе, или старое ядро версии < 4.8):
 
  echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/.host/qemu-mipsel:' > /etc/binfmt.d/qemu-mipsel-for-hasher.conf
 
Чтобы сразу применить это изменение, перезапустите сервис <tt>systemd-binfmt</tt>.
 
=== Готовим настройки apt ===


Нужно создать файлы:
Нужно создать файлы:


* apt.conf.mipsel
* apt.conf.mipsel:
 
содержащий:


   Dir::Etc::main "/dev/null";
   Dir::Etc::main "/dev/null";
Строка 33: Строка 68:
   Dir::Etc::sourcelist "/<путь от корня>/sources.list.mipsel";
   Dir::Etc::sourcelist "/<путь от корня>/sources.list.mipsel";


* /<путь от корня>/sources.list.mipsel
* /<путь от корня>/sources.list.mipsel, указывающий на репозиторий для mipsel, например:


содержащий:
  rpm [secondary] http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/mipsel Sisyphus/mipsel classic
  rpm [secondary] http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/mipsel Sisyphus/noarch classic


rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/mipsel Sisyphus/mipsel classic
=== Запускаем hasher ===
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/mipsel Sisyphus/noarch classic
(требуеться его установка - [https://www.altlinux.org/Hasher/%D0%9A%D1%80%D0%B0%D1%82%D0%BA%D0%BE%D0%B5_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B8_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_hasher Установка и настройка hasher])


Теперь можно создать сборочницу:
Теперь можно создать сборочницу:
  hsh --with-qemu=mipsel --target=mipsel --apt-config=/home/jqt4/boot_image_mipsel/apt.conf.mipsel --initroot-only ~/hasher
  hsh --with-qemu=mipsel --target=mipsel --apt-config=apt.conf.mipsel --initroot-only ~/hasher


Также можно собрать пакет под mipsel, например такой:
Также можно собрать пакет под mipsel, например такой:
  hsh -v --with-qemu=mipsel --target=mipsel --apt-config=apt.conf.mipsel ~/hasher bc-1.06-alt4.src.rpm
  hsh -v --with-qemu=mipsel --target=mipsel --apt-config=apt.conf.mipsel ~/hasher bc-1.06-alt4.src.rpm

Версия от 10:58, 25 февраля 2021


Настройка сборки пакетов под mipsel на x86

На основании статьи о настройках для arm: Ports/arm/BuildHowto и статьи https://wiki.gentoo.org/wiki/Embedded_Handbook/General/Compiling_with_qemu_user_chroot где описаны настройки binfmt_misc под различные платформы, в том числе и под mipsel

Описанные ниже настройки опубликованы в репозитории Сизиф в пакете livecd-qemu-arch-0.4-alt1.noarch.rpm Он устанавливает в систему в том числе и файлы

  • /etc/apt/apt.conf.sisyphus.mipsel
  • /etc/apt/sources.list.sisyphus.mipsel
  • /usr/bin/register-qemu-mipsel

Настраиваем qemu-user и binfmt-misc

  • Устанавливаем пакет:
sudo apt-get install qemu-user-static
  • Монтируем файловую систему binfmt_misc(если ещё не примонтирована):
 mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
  • Регистрируем qemu-mipsel, как интерпретатор mipsel'овских ELF'ов. Для этого нужно выполнить следующую команду от root'а:
 echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel-static:OCF' > /proc/sys/fs/binfmt_misc/register

В этом случае mipsel бинарники можно запускать и в hasher, и в основной системе. Если у Вас ядро 4.7 (или более старое), или запуск "чужих" бинарников в основной системе о какой-то причине неприемлем, то нужно использовать такой вариант:

 echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/.host/qemu-mipsel:' > /proc/sys/fs/binfmt_misc/register

ОБРАТИТЕ ВНИМАНИЕ: /.host/qemu-mipsel -- это путь в сборочном чруте. Именно туда hasher положит соответсвующий бинарник. В вашей системе такого файла может и не быть (обычно нет).

Если установлен пакет livecd-qemu-arch

Для применения настроек нужно выполнить следующую команду от root'а:

 register-qemu-mipsel


Если у Вас systemd

Если у Вас достаточно свежий systemd, то для того, чтобы настраивать так binfmt-misc при каждой загрузке, достаточно прописать эту строчку в какой-нибудь файл в каталоге /etc/binfmt.d, например:

 echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel-static:OCF' > /etc/binfmt.d/qemu-mipsel.conf

Либо (если не хочется, чтоб mipsel бинарники запускались в основной системе, или старое ядро версии < 4.8):

 echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/.host/qemu-mipsel:' > /etc/binfmt.d/qemu-mipsel-for-hasher.conf

Чтобы сразу применить это изменение, перезапустите сервис systemd-binfmt.

Готовим настройки apt

Нужно создать файлы:

  • apt.conf.mipsel:
 Dir::Etc::main "/dev/null";
 Dir::Etc::parts "/var/empty";
 Dir::Etc::SourceParts "/var/empty";
 
 Dir::Etc::sourcelist "/<путь от корня>/sources.list.mipsel";
  • /<путь от корня>/sources.list.mipsel, указывающий на репозиторий для mipsel, например:
 rpm [secondary] http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/mipsel Sisyphus/mipsel classic
 rpm [secondary] http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/mipsel Sisyphus/noarch classic

Запускаем hasher

(требуеться его установка - Установка и настройка hasher)

Теперь можно создать сборочницу:

hsh --with-qemu=mipsel --target=mipsel --apt-config=apt.conf.mipsel --initroot-only ~/hasher

Также можно собрать пакет под mipsel, например такой:

hsh -v --with-qemu=mipsel --target=mipsel --apt-config=apt.conf.mipsel ~/hasher bc-1.06-alt4.src.rpm