Ausführen von Debian i386 binär auf Debian armel über qemu


10

Ich versuche, dieser Anleitung zu folgen , um einen Ventrilo-Server auf meinem SheevaPlug einzurichten, auf dem Debian Armel ausgeführt wird. Auf dieser Seite wird angegeben, dass ich QEMU verwenden kann, um die für i386 erstellte Binärdatei auf meinem Armsystem auszuführen.

Das Setup für qemu besagt, dass ich qemu, qemu-user und qemu-libc-i386 installieren muss. Ich habe die ersten beiden in apt-get gefunden , aber qemu-libc-i386 ist kein Paket. Also habe ich versucht, qemu auszuführen, um den ventrilo-Server wie folgt auszuführen:

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

Es scheint, dass dies ld-linux.so.2die i386-Version von dem ist, was ich in Armel als habe ld-linux.so.3.

Ich weiß also, wie es mit einer anderen Linux-Distribution geht, aber es scheint, dass ich dies in Debian zum Laufen bringen sollte, wenn sie es in ihrer verrückten Distribution könnten. Gibt es ein Paket, das ich bekommen kann, das libc-i386 installiert, damit ich es ausführen kann (ähnlich wie ia32-libs für ein x64-System?) Ich habe versucht, das auch so.2von einem anderen i386-System zu kopieren , und das hat mich nicht gebracht irgendwo.


In Bezug auf Ihr Problem gibt es, wenn Sie nicht von diesem VOIP-Server abhängig sind, VoIP-Server-Lösungen für freie Software , von denen einige bereits für Debian / armel verpackt sind.
sr_

Richtig - ich meine, ich könnte Murmeln oder so etwas gebrauchen, aber es ist eher ein "Kann ich es so zum Laufen bringen" als eine Lösung für ein Problem.
Muncherelli

Antworten:


4

Ja, Sie können x86-Binärdateien in QEmu ausführen, während QEmu auf einem ARM-Prozessor ausgeführt wird. Es wird sehr langsam sein, da QEmu die Software-Emulation des x86-Prozessors durchführt und Sie möglicherweise nicht genügend RAM haben, aber es kann funktionieren.

Das qemu-userPaket enthält die virtuelle Maschine selbst, dh einen Emulator eines x86-Prozessors und einiger Hardwaregeräte sowie einen Linux-Kernel, der auf dieser Harwdare ausgeführt wird. (Das qemu-systemPaket enthält nur einen Emulator der Hardware, auf der Sie das Betriebssystem Ihrer Wahl installieren können.) Sie müssen die virtuelle Maschine weiterhin mit einer Laufzeitumgebung füllen, einschließlich /lib/ld-linux.so.2(dem dynamischen Loader, der zum Ausführen einer dynamisch verknüpften ausführbaren Datei erforderlich ist). und eine Reihe von Bibliotheken. Dies ist, was das qemu-libc-i386Paket auf Optware bietet. Es ist etwas ähnlich wie ia32-libsauf amd64-Systemen, aber das ist viel einfacher, da ein amd64-Prozessor i386-Binärdateien nativ ausführen kann. Hier müssen sich die Bibliotheken in der x86-VM befinden.

Sie können versuchen, das qemu-libc-i386Paket von Optware abzurufen. Das Optware-Paketformat ist dem von Debian sehr ähnlich, sodass Sie das ipk manuell in ein Deb konvertieren können:

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 

Ich kann nicht garantieren, dass dies funktioniert. Möglicherweise müssen Sie sicherstellen, dass die Versionen von QEmu übereinstimmen.

Wenn die Installation des geänderten ipk nicht funktioniert, versuchen Sie, den Inhalt auf Ihrem System zu reproduzieren. Entpacken Sie data.tar.gzirgendwo (oder holen Sie sich dieselben Dateien von einem anderen x86-System), sehen Sie, was das postinstSkript control.tar.gzbewirkt, und geben Sie die richtigen Pfade an qemu-i386.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.