首页 文章

有什么办法可以在linux上将二进制文件从x86重新编译到ARM吗?

提问于
浏览
6

我想收集一些有关以下问题解决方案的想法 . 我有一个TOF相机,它的驱动程序为linux x86 / 64 . 它工作正常 . 但实际上,如果可能的话,相机将用于基于ARM的嵌入式设备 .

问题:

  • 我是否应该反编译驱动程序二进制文件并使用ARM编译器重新编译?有没有可用的反编译工具?

  • 有没有可用的ARM >> x86仿真器?

  • 还有其他想法吗?

ps:纯源是非常昂贵的,所以我不喜欢购买它:)

4 回答

  • 0

    有关详细信息,请参阅以下答案它列出了尝试自动执行此类转换时可能遇到的一些问题:

    Convert object file to another architecture

  • 0

    最近创建的Eltechs ExaGear Server(可在ARM as A Service上获得)在ARM设备上运行x86应用程序 .

    它是新的和专有的,但确实存在 .

  • 0

    如果你的驱动程序是一个内核对象,那么就没有能够在ARM内核中运行x86内核代码的模拟器(据我所知) . 如果您的“驱动程序”实际上是在通用驱动程序(v4l2等)之上被攻击的用户空间库,那么您可能会对此处提到的QEMU或Exagear感到满意 . 作为旁注,您可能最终会得到一个x86应用程序软件,因为QEMU或Exagear不支持从ARM代码调用x86库 .

  • 1
    • AFAIK,截至今天,没有这样的反编译器可以从机器代码生成可编译的代码 . 您必须手动修复(通常很多修复)生成的代码 . 您可以查看Linux反编译器的this问题 .

    • 检查QEmu . 只要您可以执行它,底层架构就不相关了;)

    • 有's not much besides what you' ve说 .

    你正在尝试的是(部分)reverse engineering . RE是一个复杂的过程,需要很多知识,我不会浪费我的时间(或先获取知识;))

相关问题