您无法轻松地将x86二进制文件转换为ARM。如果您无法从制造商那里获取源代码或ARM二进制文件,并且您确实希望将打印机与Pi2一起使用,则在这种情况下,Qemu方法是正确的,尽管这可能会很慢。Qemu可以进行完整的系统仿真,但对于单进程仿真也可以很好地工作。
我假设您的Pi2上有某种Debian派生类(尽管我不确定这是否可以与Raspbian一起使用),并且您拥有的二进制文件适用于i386
(如果是64位,请amd64
改用)。首先添加i386
为外部架构:
sudo dpkg --add-architecture i386
sudo apt-get update
然后ldd
在二进制文件上运行并添加任何必需的库;通常
sudo apt-get install libc6:i386
以及:i386
添加后缀的其他内容。确保这不会删除任何已安装的程序包;希望您所需要的一切都启用了多体系结构。(否则其余的将不起作用。)
完成此操作后,请安装(qemu-user-static
如果尚未安装)(及其binfmt-support
建议)。然后您可以使用它qemu-i386-static
来运行程序:
qemu-i386-static /usr/lib/cups/filter/rasterorp3150
实际上,由于binfmt-support
它应该直接运行(如Toby Speight所指出):
/usr/lib/cups/filter/rasterorp3150
(binfmt-support
将使用Qemu使该工作透明化。)
如果您不想使用binfmt-support
,请rasterorp3150
移开:
sudo mv /usr/lib/cups/filter/rasterorp3150 /usr/lib/cups/filter/rasterorp3150.x86
并安装一个脚本,其中包含
#!/bin/sh
exec qemu-i386-static /usr/lib/cups/filter/rasterorp3150.x86 "$@"
作为/usr/lib/cups/filter/rasterorp3150
。
如果愿意,您可以为所有这些设置一个chroot;请参阅debootstrap
及其--foreign
选项(可以将chroot设置为自动使用Qemu)。