Эльбрус/rtc/перепаковка: различия между версиями
(нач) |
м (→statifier: ...да, и не забываем отмонтировать /proc) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
Для запуска x86-приложений на [[ports/e2k|e2k]] под [[эльбрус/rtc|бинарным транслятором]] необходимо подготовить окружение, достаточное для выполнения целевого приложения; в случае динамически скомпонованного исполняемого файла это обычно [[chroot|чрут]] с нужными библиотеками, а вот для статического бинарника без особых файлов конфигурации может ничего и не понадобиться, запуск осуществляется командой вида {{cmd|rtc --path_prefix / -- /путь/к/программе}} | |||
__TOC__ | |||
= rtc-storcli = | = rtc-storcli = | ||
Пример упакечивания статического x86-бинарника для запуска под [[эльбрус/rtc|rtc]] | Пример упакечивания статического x86-бинарника для запуска под [[эльбрус/rtc|rtc]]: | ||
<pre> | <pre> | ||
Строка 42: | Строка 46: | ||
- initial repackage | - initial repackage | ||
</pre> | </pre> | ||
Запуск: {{cmd|/usr/sbin/storcli64}} | |||
= rtc-megacli = | |||
Пример перепаковки динамического x86-бинарника со специфической библиотекой для запуска под [[эльбрус/rtc|rtc]]. | |||
== statifier == | |||
Для начала [http://statifier.sourceforge.net/ приготовим] статический бинарник из [http://www.broadcom.com/support/download-search?dk=megacli динамического] (см. тж. [https://phoenixnap.com/kb/how-to-set-up-hardware-raid-megacli howto]). | |||
На x86 [[эльбрус/rtc#Создание_окружений|готовим чрут]] из [[branches/p10|p10]], помещаем в него целевой megacli, смотрим: | |||
<pre> | |||
# cat /usr/sbin/megacli | |||
#!/bin/sh | |||
LD_LIBRARY_PATH="/usr/lib/megacli:$LD_LIBRARY_PATH" /usr/lib/megacli/megacli.real "$@" | |||
</pre> | |||
Такое же окружение понадобится и для запуска {{cmd|statifier}} из одноименного пакета: | |||
<pre> | |||
# apt-get install -y statifier | |||
# mount /proc | |||
# export LD_LIBRARY_PATH="/usr/lib/megacli:$LD_LIBRARY_PATH" | |||
# statifier /usr/lib/megacli/megacli.real /root/megacli | |||
# umount /proc | |||
# ldd /root/megacli | |||
</pre> | |||
Полученный бинарник без внешних библиотечных зависимостей проверяем на функционирование: {{cmd|/root/megacli -h}}; затем перепаковываем как {{pkg|rtc-megacli}}. | |||
== rtc-megacli.spec == | |||
<pre> | |||
Name: rtc-megacli | |||
Version: 8.07.14 | |||
Release: alt1.E2K.1 | |||
Summary: megacli repackaged for use with rtc | |||
License: proprietary | |||
Group: System/Configuration/Hardware | |||
Source: megacli | |||
AutoReqProv: no | |||
Requires: rtc >= 4.1-alt1.E2K.5 | |||
%define mcdir %prefix/libexec | |||
%add_debuginfo_skiplist %mcdir | |||
%set_verify_elf_method none | |||
%description | |||
%summary | |||
%prep | |||
%build | |||
cat > megacli.sh << EOF | |||
#!/bin/sh | |||
exec rtc64 --path_prefix / -- %mcdir/megacli "\$@" | |||
EOF | |||
%install | |||
install -pDm755 %SOURCE0 %buildroot%mcdir/megacli | |||
install -pDm755 megacli.sh %buildroot%_sbindir/megacli | |||
%files | |||
%_sbindir/* | |||
%mcdir/megacli | |||
%changelog | |||
* Tue Oct 18 2022 Michael Shigorin <mike@altlinux.org> 8.07.14-alt1.E2K.1 | |||
- initial repackage | |||
</pre> | |||
Запуск: {{cmd|/usr/sbin/megacli}} | |||
{{Category navigation|title=E2K|category=E2K|sortkey=*}} | {{Category navigation|title=E2K|category=E2K|sortkey=*}} |
Текущая версия от 17:24, 18 октября 2022
Для запуска x86-приложений на e2k под бинарным транслятором необходимо подготовить окружение, достаточное для выполнения целевого приложения; в случае динамически скомпонованного исполняемого файла это обычно чрут с нужными библиотеками, а вот для статического бинарника без особых файлов конфигурации может ничего и не понадобиться, запуск осуществляется командой вида rtc --path_prefix / -- /путь/к/программе
rtc-storcli
Пример упакечивания статического x86-бинарника для запуска под rtc:
Name: rtc-storcli Version: 1704 Release: alt1.E2K.1 Summary: storcli repackaged for use with rtc License: proprietary Group: System/Configuration/Hardware Source: storcli64 AutoReqProv: no Requires: rtc >= 4.1-alt1.E2K.5 %define scdir %prefix/libexec %add_debuginfo_skiplist %scdir %set_verify_elf_method none %description %summary %prep %build cat > storcli64.sh << EOF #!/bin/sh exec rtc64 --path_prefix / -- %scdir/storcli64 "\$@" EOF %install install -pDm755 %SOURCE0 %buildroot%scdir/storcli64 install -pDm755 storcli64.sh %buildroot%_sbindir/storcli64 %files %_sbindir/* %scdir/storcli64 %changelog * Fri Oct 14 2022 Michael Shigorin <mike@altlinux.org> 1704-alt1.E2K.1 - initial repackage
Запуск: /usr/sbin/storcli64
rtc-megacli
Пример перепаковки динамического x86-бинарника со специфической библиотекой для запуска под rtc.
statifier
Для начала приготовим статический бинарник из динамического (см. тж. howto).
На x86 готовим чрут из p10, помещаем в него целевой megacli, смотрим:
# cat /usr/sbin/megacli #!/bin/sh LD_LIBRARY_PATH="/usr/lib/megacli:$LD_LIBRARY_PATH" /usr/lib/megacli/megacli.real "$@"
Такое же окружение понадобится и для запуска statifier из одноименного пакета:
# apt-get install -y statifier # mount /proc # export LD_LIBRARY_PATH="/usr/lib/megacli:$LD_LIBRARY_PATH" # statifier /usr/lib/megacli/megacli.real /root/megacli # umount /proc # ldd /root/megacli
Полученный бинарник без внешних библиотечных зависимостей проверяем на функционирование: /root/megacli -h; затем перепаковываем как rtc-megacli.
rtc-megacli.spec
Name: rtc-megacli Version: 8.07.14 Release: alt1.E2K.1 Summary: megacli repackaged for use with rtc License: proprietary Group: System/Configuration/Hardware Source: megacli AutoReqProv: no Requires: rtc >= 4.1-alt1.E2K.5 %define mcdir %prefix/libexec %add_debuginfo_skiplist %mcdir %set_verify_elf_method none %description %summary %prep %build cat > megacli.sh << EOF #!/bin/sh exec rtc64 --path_prefix / -- %mcdir/megacli "\$@" EOF %install install -pDm755 %SOURCE0 %buildroot%mcdir/megacli install -pDm755 megacli.sh %buildroot%_sbindir/megacli %files %_sbindir/* %mcdir/megacli %changelog * Tue Oct 18 2022 Michael Shigorin <mike@altlinux.org> 8.07.14-alt1.E2K.1 - initial repackage
Запуск: /usr/sbin/megacli