Эльбрус/rtc/перепаковка: различия между версиями

Материал из ALT Linux Wiki
(нач)
 
м (→‎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