Você não pode converter facilmente um binário x86 para ARM. Se você não pode obter o código-fonte ou um binário ARM do fabricante e realmente deseja usar a impressora com o Pi2, a abordagem Qemu é a correta nesse caso, embora provavelmente seja muito lenta . O Qemu faz emulação completa do sistema, mas também funciona muito bem para emulação de processo único.
Estou assumindo que você tenha algum tipo de derivado do Debian no seu Pi2 (embora não tenha certeza de que isso funcione com o Raspbian), e que o binário que você possui é i386
(se for de 64 bits, use amd64
). Comece adicionando i386
como uma arquitetura estrangeira:
sudo dpkg --add-architecture i386
sudo apt-get update
Em seguida, execute ldd
o binário e adicione as bibliotecas necessárias; tipicamente
sudo apt-get install libc6:i386
e qualquer outra coisa com o :i386
sufixo adicionado. Verifique se isso não remove nenhum pacote instalado; espero que tudo o que você precise seja habilitado para multiarch. (Caso contrário, o resto não funcionará.)
Depois de fazer isso, instale qemu-user-static
se ainda não estiver instalado (junto com sua binfmt-support
recomendação); então você pode usar qemu-i386-static
para executar seu programa:
qemu-i386-static /usr/lib/cups/filter/rasterorp3150
De fato, graças a binfmt-support
ele deve ser executado diretamente (como apontado por Toby Speight ):
/usr/lib/cups/filter/rasterorp3150
( binfmt-support
usará o Qemu para fazer isso funcionar de forma transparente.)
Se você não quiser usar binfmt-support
, afaste- rasterorp3150
se:
sudo mv /usr/lib/cups/filter/rasterorp3150 /usr/lib/cups/filter/rasterorp3150.x86
e instale um script contendo
#!/bin/sh
exec qemu-i386-static /usr/lib/cups/filter/rasterorp3150.x86 "$@"
como /usr/lib/cups/filter/rasterorp3150
.
Se preferir, você pode configurar um chroot para tudo isso; veja debootstrap
e sua --foreign
opção (o chroot pode ser configurado para usar o Qemu automaticamente).