Sie können eine x86- Binärdatei nicht einfach in ARM konvertieren . Wenn Sie den Quellcode oder eine ARM-Binärdatei vom Hersteller nicht erhalten können und den Drucker wirklich mit Ihrem Pi2 verwenden möchten, ist der Qemu-Ansatz in diesem Fall der richtige, obwohl er wahrscheinlich sehr langsam ist . Qemu führt eine vollständige Systememulation durch, funktioniert aber auch sehr gut für die Einzelprozessemulation.
Ich gehe davon aus, dass Sie eine Art Debian-Derivat auf Ihrem Pi2 haben (ich bin mir nicht sicher, ob dies mit Raspbian funktioniert) und dass die Binärdatei, für die Sie haben i386
(wenn es 64-Bit ist, verwenden Sie amd64
stattdessen). Beginnen Sie mit dem Hinzufügen i386
als fremde Architektur:
sudo dpkg --add-architecture i386
sudo apt-get update
Führen Sie dann ldd
die Binärdatei aus und fügen Sie alle erforderlichen Bibliotheken hinzu. typischerweise
sudo apt-get install libc6:i386
und alles andere mit dem :i386
hinzugefügten Suffix. Stellen Sie sicher, dass dadurch kein installiertes Paket entfernt wird. Hoffentlich ist alles, was Sie brauchen, Multiarch-fähig. (Sonst funktioniert der Rest nicht.)
Sobald Sie dies getan haben, installieren Sie es, qemu-user-static
falls es noch nicht installiert ist (zusammen mit seiner binfmt-support
Empfehlung). Dann können Sie qemu-i386-static
Ihr Programm ausführen:
qemu-i386-static /usr/lib/cups/filter/rasterorp3150
In der Tat sollte dank binfmt-support
ihm direkt laufen (wie von Toby Speight hervorgehoben ):
/usr/lib/cups/filter/rasterorp3150
( binfmt-support
verwendet Qemu, um diese Arbeit transparent zu machen.)
Wenn Sie nicht verwenden möchten binfmt-support
, entfernen Sie rasterorp3150
sich:
sudo mv /usr/lib/cups/filter/rasterorp3150 /usr/lib/cups/filter/rasterorp3150.x86
und installieren Sie ein Skript mit
#!/bin/sh
exec qemu-i386-static /usr/lib/cups/filter/rasterorp3150.x86 "$@"
als /usr/lib/cups/filter/rasterorp3150
.
Wenn Sie es vorziehen, können Sie für all dies eine Chroot einrichten. siehe debootstrap
und seine --foreign
Option (die Chroot kann so eingerichtet werden, dass Qemu automatisch verwendet wird).