Ports/mipsel/BuildHowto: различия между версиями
Yaleks (обсуждение | вклад) мНет описания правки |
Nir (обсуждение | вклад) |
||
(не показано 8 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
[[Category:Sisyphus]] | [[Category:Sisyphus]] | ||
[[Категория: | [[Категория:MIPSEL]] | ||
==Настройка сборки пакетов под mipsel на x86== | ==Настройка сборки пакетов под mipsel на x86== | ||
Строка 7: | Строка 7: | ||
и статьи 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 | ||
Описанные ниже настройки опубликованы в репозитории Сизиф в пакете 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 === | === Настраиваем qemu-user и binfmt-misc === | ||
Строка 19: | Строка 26: | ||
* Регистрируем 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 (или более старое), или запуск "чужих" бинарников в основной системе | |||
о какой-то причине неприемлем, то нужно использовать такой вариант: | |||
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 | ||
'''''ОБРАТИТЕ ВНИМАНИЕ''''': <tt>/.host/qemu-mipsel</tt> -- это путь в сборочном чруте. Именно туда hasher положит соответсвующий бинарник. В вашей системе такого файла может и не быть (обычно нет). | |||
==== Если установлен пакет livecd-qemu-arch ==== | |||
Для применения настроек нужно выполнить следующую команду '''от root'а''': | |||
register-qemu-mipsel | |||
==== Если у Вас systemd ==== | ==== Если у Вас systemd ==== | ||
Строка 26: | Строка 48: | ||
Если у Вас достаточно свежий <tt>systemd</tt>, то для того, чтобы настраивать так binfmt-misc при каждой загрузке, достаточно прописать эту строчку в какой-нибудь файл в каталоге <tt>/etc/binfmt.d</tt>, например: | Если у Вас достаточно свежий <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:/.host/qemu-mipsel:' > /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 | |||
Чтобы сразу применить это изменение, перезапустите сервис <tt>systemd-binfmt</tt>. | Чтобы сразу применить это изменение, перезапустите сервис <tt>systemd-binfmt</tt>. | ||
Строка 44: | Строка 70: | ||
* /<путь от корня>/sources.list.mipsel, указывающий на репозиторий для 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 === | ||
(Если требуется его установка - смотрите страницу [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]) | |||
Теперь можно создать сборочницу: | Теперь можно создать сборочницу: |
Текущая версия от 10:26, 15 августа 2022
Настройка сборки пакетов под 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