Vous ne pouvez pas facilement convertir un binaire x86 en ARM. Si vous ne pouvez pas obtenir le code source ou un binaire ARM du fabricant et que vous voulez vraiment utiliser l'imprimante avec votre Pi2, l'approche Qemu est la bonne dans ce cas, bien qu'elle soit probablement très lente. . Qemu fait une émulation complète du système, mais il fonctionne également très bien pour l'émulation de processus unique.
Je suppose que vous avez une sorte de dérivé Debian sur votre Pi2 (je ne suis pas sûr que cela fonctionnera avec Raspbian), et que le binaire que vous avez est destiné i386(s'il est 64 bits, utilisez-le à la amd64place). Commencez par ajouter i386une architecture étrangère:
sudo dpkg --add-architecture i386
sudo apt-get update
Exécutez ensuite lddsur le binaire et ajoutez toutes les bibliothèques requises; typiquement
sudo apt-get install libc6:i386
et toute autre chose avec le :i386suffixe ajouté. Assurez-vous que cela ne supprime aucun package installé; nous espérons que tout ce dont vous avez besoin est compatible multiarchitecture. (Sinon, le reste ne fonctionnera pas.)
Une fois que vous avez fait cela, installez-le qemu-user-statics'il n'est pas déjà installé (avec sa binfmt-supportrecommandation); alors vous pouvez utiliser qemu-i386-staticpour exécuter votre programme:
qemu-i386-static /usr/lib/cups/filter/rasterorp3150
En fait, grâce à binfmt-supportcela, il devrait fonctionner directement (comme l'a souligné Toby Speight ):
/usr/lib/cups/filter/rasterorp3150
( binfmt-supportutilisera Qemu pour rendre ce travail transparent.)
Si vous ne voulez pas utiliser binfmt-support, rasterorp3150éloignez-vous:
sudo mv /usr/lib/cups/filter/rasterorp3150 /usr/lib/cups/filter/rasterorp3150.x86
et installez un script contenant
#!/bin/sh
exec qemu-i386-static /usr/lib/cups/filter/rasterorp3150.x86 "$@"
comme /usr/lib/cups/filter/rasterorp3150.
Si vous préférez, vous pouvez configurer un chroot pour tout cela; voir debootstrapet son --foreignoption (le chroot peut être configuré pour utiliser Qemu automatiquement).