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 i386como uma arquitetura estrangeira:
sudo dpkg --add-architecture i386
sudo apt-get update
Em seguida, execute lddo binário e adicione as bibliotecas necessárias; tipicamente
sudo apt-get install libc6:i386
e qualquer outra coisa com o :i386sufixo 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-staticse ainda não estiver instalado (junto com sua binfmt-supportrecomendação); então você pode usar qemu-i386-staticpara executar seu programa:
qemu-i386-static /usr/lib/cups/filter/rasterorp3150
De fato, graças a binfmt-supportele deve ser executado diretamente (como apontado por Toby Speight ):
/usr/lib/cups/filter/rasterorp3150
( binfmt-supportusará o Qemu para fazer isso funcionar de forma transparente.)
Se você não quiser usar binfmt-support, afaste- rasterorp3150se:
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 debootstrape sua --foreignopção (o chroot pode ser configurado para usar o Qemu automaticamente).