Você não pode converter facilmente um binário x86 em ARM. Se você não puder obter o código-fonte, ou um binário ARM do fabricante, e você realmente quiser usar a impressora com seu Pi2, então a abordagem Qemu é a correta neste caso, embora seja muito lenta . O Qemu faz emulação total do sistema, mas também funciona muito bem para a emulação de um único processo.
Eu estou supondo que você tenha algum tipo de derivado Debian no seu Pi2 (eu não tenho certeza se isso funcionará com o Raspbian), e que o binário que você tem é para i386
(se for 64-bit, use amd64
). Comece adicionando i386
como uma arquitetura estrangeira:
sudo dpkg --add-architecture i386
sudo apt-get update
Em seguida, execute ldd
no binário e adicione as bibliotecas necessárias; tipicamente
sudo apt-get install libc6:i386
e mais alguma coisa com o sufixo :i386
adicionado. Certifique-se de que isso não remova nenhum pacote instalado; Espero que tudo que você precisa esteja habilitado para multiarch. (Caso contrário, o resto não funcionará.)
Uma vez feito isso, instale qemu-user-static
se ele ainda não estiver instalado (junto com a recomendação binfmt-support
); então você pode usar qemu-i386-static
para executar seu programa:
qemu-i386-static /usr/lib/cups/filter/rasterorp3150
Na verdade, 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 maneira transparente.)
Se você não quiser usar binfmt-support
, mova rasterorp3150
:
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 opção --foreign
(o chroot pode ser configurado para usar o Qemu automaticamente).