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 amd64stattdessen). Beginnen Sie mit dem Hinzufügen i386als fremde Architektur:
sudo dpkg --add-architecture i386
sudo apt-get update
Führen Sie dann ldddie Binärdatei aus und fügen Sie alle erforderlichen Bibliotheken hinzu. typischerweise
sudo apt-get install libc6:i386
und alles andere mit dem :i386hinzugefü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-staticfalls es noch nicht installiert ist (zusammen mit seiner binfmt-supportEmpfehlung). Dann können Sie qemu-i386-staticIhr Programm ausführen:
qemu-i386-static /usr/lib/cups/filter/rasterorp3150
In der Tat sollte dank binfmt-supportihm direkt laufen (wie von Toby Speight hervorgehoben ):
/usr/lib/cups/filter/rasterorp3150
( binfmt-supportverwendet Qemu, um diese Arbeit transparent zu machen.)
Wenn Sie nicht verwenden möchten binfmt-support, entfernen Sie rasterorp3150sich:
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 debootstrapund seine --foreignOption (die Chroot kann so eingerichtet werden, dass Qemu automatisch verwendet wird).