No puede convertir fácilmente un binario x86 a ARM. Si no puede obtener el código fuente, o un binario ARM del fabricante, y realmente desea utilizar la impresora con su Pi2, entonces el enfoque de Qemu es el correcto en este caso, aunque probablemente sea muy lento . Qemu realiza la emulación completa del sistema, pero también funciona muy bien para la emulación de un solo proceso.
Supongo que tiene algún tipo de derivado de Debian en su Pi2 (aunque no estoy seguro de que esto funcione con Raspbian), y que el binario que tiene es para i386
(si es de 64 bits, use amd64
en su lugar). Comience agregando i386
como arquitectura extranjera:
sudo dpkg --add-architecture i386
sudo apt-get update
Luego, ejecute ldd
en el binario y agregue las bibliotecas necesarias; típicamente
sudo apt-get install libc6:i386
y cualquier otra cosa con el :i386
sufijo agregado. Asegúrese de que esto no elimine ningún paquete instalado; Esperemos que todo lo que necesita esté habilitado para multiarch. (De lo contrario, el resto no funcionará).
Una vez que haya hecho eso, instálelo qemu-user-static
si aún no está instalado (junto con su binfmt-support
recomendación); entonces puedes usar qemu-i386-static
para ejecutar tu programa:
qemu-i386-static /usr/lib/cups/filter/rasterorp3150
De hecho, gracias a binfmt-support
él debería ejecutarse directamente (como lo señaló Toby Speight ):
/usr/lib/cups/filter/rasterorp3150
( binfmt-support
utilizará Qemu para que esto funcione de manera transparente).
Si no quieres usar binfmt-support
, rasterorp3150
aléjate:
sudo mv /usr/lib/cups/filter/rasterorp3150 /usr/lib/cups/filter/rasterorp3150.x86
e instalar un script que contenga
#!/bin/sh
exec qemu-i386-static /usr/lib/cups/filter/rasterorp3150.x86 "$@"
como /usr/lib/cups/filter/rasterorp3150
.
Si prefieres puedes configurar un chroot para todo esto; see debootstrap
y su --foreign
opción (el chroot se puede configurar para usar Qemu automáticamente).