【问题标题】:Running x86 printer driver binaries on ARMv6在 ARMv6 上运行 x86 打印机驱动程序二进制文件
【发布时间】:2014-10-28 13:49:37
【问题描述】:

我们正在将一个解决方案移植到 ARM,该解决方案最初设计用于在基于 x86/x64 Debian 的系统上运行。

到目前为止,一切都很好,但是随着这个解决方案,我们发布了一个兼容的打印机,并附带 Linux(x86 和 x64)驱动程序,不幸的是,制造商没有针对它的 ARM 驱动程序,也无法从源代码(不知道为什么)。

我已经用 CUPS 安装了打印机并使用了 x86 二进制文件。但是当然,每当我向打印机发送任务时,ARM 系统就无法使用二进制文件,自然而然的 CUPS 报告:

/usr/lib/cups/filter/rastertotg2460 失败

我想知道如何在基于 ARM v6 的系统上运行 x86 二进制文件?

ARM 操作系统是在 Raspberry Pi B+ 板上运行的 Raspbian,二进制文件(如果您想查看)是 here

编辑:

我还了解到this 专有解决方案声称可以在 ARM 系统上运行 x86 二进制文件,但所有演示都是针对 ARM v7 系统,不确定它是否可以在带有 Raspberry Pi B+ 板的 Raspbian 上运行.

【问题讨论】:

  • 我不确定它是否会有所帮助,但 QEMU 使运行不同架构的可执行文件成为可能。我已经使用qemu-arm 在 X86 HW 中运行 ARM 二进制文件,所以应该可以使用 qemu-i386 在 ARM 中运行 x86 二进制文件,不是吗?
  • 我现在知道了。没用过QEMU。但我会调查的。

标签: linux x86 intel armv6


【解决方案1】:

我认为这需要一些认真的工作,但我一开始就搞错了。

由于您想驱动打印机,因此您必须在 CUPS 系统“内部”进行 x86 仿真。仅使用独立的 x86 模拟器是不够的,因为它们旨在为您提供带有外围硬件和东西的完整 x86 系统。你不需要那个,你只需要驱动打印机。

我可以想象在 CUPS“虚拟”驱动程序中使用某种 x86 仿真库,它会加载您拥有的 x86 二进制文件并将其输入到仿真器中。然后需要将预期的 CUPS 环境暴露给模拟器内的 x86 代码。

Soft86 之类的内容可能是一个很好的起点。

【讨论】:

  • 但是如果唯一的问题是运行 CUPS 过滤器,那是一个简单的输入/输出程序,可以使用 QEMU 包装器来模拟。很多 ifs 但也许它有效。
  • @FábioAntunes D'oh,我很困惑,弄错了。已修复,谢谢。
  • 我以前从未使用过 QEMU。如何通过它运行 x86 二进制文件?
猜你喜欢
  • 1970-01-01
  • 2017-12-16
  • 1970-01-01
  • 2023-04-01
  • 2017-09-19
  • 2018-03-17
  • 2021-12-07
  • 2020-04-02
  • 1970-01-01
相关资源
最近更新 更多