Non è possibile convertire facilmente un binario x86 in ARM. Se non riesci a ottenere il codice sorgente o un binario ARM dal produttore e vuoi davvero usare la stampante con il tuo Pi2, in questo caso l'approccio Qemu è quello corretto, anche se probabilmente sarà molto lento . Qemu esegue l'emulazione di sistema completa ma funziona anche molto bene per l'emulazione a processo singolo.
Suppongo che tu abbia una sorta di derivata Debian sul tuo Pi2 (non sono sicuro che funzionerà con Raspbian) e che il binario che hai è i386(se è a 64 bit, usa amd64invece). Inizia aggiungendo i386come un'architettura straniera:
sudo dpkg --add-architecture i386
sudo apt-get update
Quindi eseguire lddil file binario e aggiungere tutte le librerie richieste; tipicamente
sudo apt-get install libc6:i386
e qualsiasi altra cosa con il :i386suffisso aggiunto. Assicurarsi che ciò non rimuova alcun pacchetto installato; speriamo che tutto ciò di cui hai bisogno sia abilitato per multiarch. (Altrimenti il resto non funzionerà.)
Una volta che lo hai fatto, installa qemu-user-staticse non è già installato (insieme alla sua binfmt-supportraccomandazione); quindi è possibile utilizzare qemu-i386-staticper eseguire il programma:
qemu-i386-static /usr/lib/cups/filter/rasterorp3150
Infatti grazie ad binfmt-supportesso dovrebbe essere eseguito direttamente (come sottolineato da Toby Speight ):
/usr/lib/cups/filter/rasterorp3150
( binfmt-supportutilizzerà Qemu per farlo funzionare in modo trasparente.)
Se non vuoi usare binfmt-support, rasterorp3150allontanati:
sudo mv /usr/lib/cups/filter/rasterorp3150 /usr/lib/cups/filter/rasterorp3150.x86
e installa uno script contenente
#!/bin/sh
exec qemu-i386-static /usr/lib/cups/filter/rasterorp3150.x86 "$@"
come /usr/lib/cups/filter/rasterorp3150.
Se preferisci, puoi impostare un chroot per tutto questo; vedi debootstrape la sua --foreignopzione (il chroot può essere impostato per usare Qemu automaticamente).