在Linux上,是否有一种将x86二进制文件重新编译为ARM的方法?

11
我希望收集一些有关以下问题解决方案的想法。 我有一个TOF相机,以及针对Linux x86/64的驱动程序。它工作正常。但实际上,如果可能的话,相机将在基于ARM的嵌入式设备上使用。
问题: 1. 我是否需要反编译驱动程序二进制文件,并使用ARM编译器重新编译?是否有任何可用的反编译工具? 2. 是否有任何可用的ARM>>x86模拟器? 3. 其他任何想法?
注:纯源代码非常昂贵,所以我不想购买它 :)

你的问题标题可以有效地理解为“我能在ARM设备上运行x86二进制文件吗?”对此的答案是“不行”。你只能进行逆向工程来获取驱动程序。 - auselen
4个回答

4
  1. 据我所知,目前还没有这样的反编译器可以从机器码生成可编译的代码。您将不得不手动修复(通常需要大量修复)生成的代码。您可以查看此问题以获取Linux反编译器。
  2. 检查QEmu。只要您可以执行它,底层架构就不重要;)
  3. 除了您已经提到的内容外,没有什么了。

您正在尝试的是(部分地)逆向工程。逆向工程是一个复杂的过程,需要对您尝试逆向的事物有很好的了解,例如您的情况下相机驱动程序。如果您在这个领域有知识,请继续。如果没有,我不会浪费时间(或者先获取相关知识再进行研究)。


0

如果您的驱动程序是内核对象,则我所知道的没有模拟器能够在ARM内核中运行x86内核代码。如果您的“驱动程序”实际上是在通用驱动程序(v4l2等)之上修改的用户空间库,则可能会在此处提到的QEMU或Exagear中获得好运。顺便说一句,您最终可能会得到一个x86应用软件,因为从ARM代码调用x86库不受QEMU或Exagear的支持。


0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接