Динамический бинарник
Для запуска x86-приложений на e2k под бинарным транслятором необходимо подготовить окружение, достаточное для выполнения целевого приложения; в случае динамически скомпонованного исполняемого файла это обычно чрут с нужными библиотеками
Для запуска нам нужен statifier
Действия по упаковке:
# Установка утилиты для превращения динамических бинарников в статические
apt-get install -y statifier
# Монтируем /proc (нужно statifier'у для анализа зависимостей)
mount /proc
# Указываем путь к библиотекам megacli, если они не в стандартных директориях
export LD_LIBRARY_PATH="/usr/lib/megacli:$LD_LIBRARY_PATH"
# Создаём статически слинкованный бинарник megacli
statifier /usr/lib/megacli/megacli.real /root/megacli
# Отмонтируем /proc — очищаем после себя
umount /proc
# Проверяем, использует ли бинарник динамические библиотеки
# должен показать "not a dynamic executable"
ldd /root/megacliПолученный бинарник без внешних библиотечных зависимостей проверяем на функционирование: /root/megacli -h затем перепаковываем, как rtc-megacli
А после уже делаем вызов так же, будто это уже статика:
#!/bin/sh
exec rtc64 --path_prefix / -- %mcdir/megacli "\$@"Last updated