Запуск двоичного Debian i386 на Debian armel через qemu

10

Я пытаюсь следовать этому руководству, чтобы настроить сервер Ventrilo на моем SheevaPlug, на котором запущен Debian armel. На этой странице указано, что я могу использовать QEMU для запуска двоичного файла, созданного для i386, в моей системе arm.

Настройка qemu говорит, что мне нужно установить qemu, qemu-user и qemu-libc-i386. Первые два я нашел в apt-get , но qemu-libc-i386 - это не пакет. Поэтому я попытался запустить qemu для запуска сервера Ventrilo следующим образом:

# qemu-i386 ./ventrilo_srv
/lib/ld-linux.so.2: No such file or directory

Кажется, ld-linux.so.2это версия i386 того, что у меня есть в armel as ld-linux.so.3.

Так что я знаю, как это сделать для другого дистрибутива Linux, но, похоже, я смогу запустить его в Debian, если они смогут в своем сумасшедшем дистрибутиве. Есть ли пакет, который я могу получить, чтобы установить libc-i386, чтобы я мог запустить его (аналогично ia32-libs для системы x64?) Я попытался также скопировать so.2из другой системы i386, но это не помогло мне где угодно.

muncherelli
источник
Что касается вашей проблемы, если вы не зависите от этого VOIP-сервера, существуют решения VoIP-сервера для свободного программного обеспечения , некоторые уже упакованы для Debian / armel.
sr_
Правильно - я имею в виду, что я мог бы использовать бормотание или что-то в этом роде, но это скорее «могу я заставить его работать так», чем мне нужно решение проблемы.
Манчерелли

Ответы:

4

Да, вы можете запускать двоичные файлы x86 в QEmu, когда QEmu работает на процессоре ARM. Это будет очень медленно, потому что QEmu выполняет программную эмуляцию процессора x86, и вам может не хватить оперативной памяти, но она может работать.

qemu-userПакет содержит саму виртуальную машину, т.е. эмулятора процессора x86 и некоторых аппаратных устройств и ядро Linux работает на этом harwdare. ( qemu-systemПакет содержит эмулятор только того оборудования, на котором вы можете установить операционную систему по вашему выбору.) Вам все еще нужно заполнить виртуальную машину средой выполнения, в том числе /lib/ld-linux.so.2(динамический загрузчик, необходимый для запуска любого динамически связанного исполняемого файла) и куча библиотек. Это то, что предоставляет qemu-libc-i386пакет на Optware. Это немного похоже ia32-libsна системы amd64, но это намного проще, потому что процессор amd64 может выполнять двоичные файлы i386 изначально; здесь вам нужно иметь библиотеки внутри виртуальной машины x86.

Вы можете попробовать получить qemu-libc-i386пакет из Optware. Формат пакета Optware очень похож на формат Debian, поэтому вы можете конвертировать ipk в deb вручную:

mkdir tmp
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/qemu-libc-i386_2.3.6-1_arm.ipk
tar xzf qemu-libc-i386_2.3.6-1_arm.ipk
ar rc qemu-libc-i386_2.3.6-1_arm.deb debian-binary control.tar.gz data.tar.gz 

Я не гарантирую, что это будет работать. Возможно, вам потребуется убедиться, что версии QEmu совпадают.

Если установка модифицированного ipk не работает, попробуйте воспроизвести его содержимое в вашей системе. Распакуйте data.tar.gzкуда-нибудь (или получите те же файлы из другой системы x86), посмотрите, что делает postinstскрипт control.tar.gz, и укажите правильные пути qemu-i386.

Жиль "ТАК - перестань быть злым"
источник