【问题标题】:Emulatin Big Endian ARM system with QEMU带有 QEMU 的 Emulatin Big Endian ARM 系统
【发布时间】:2017-01-10 14:50:41
【问题描述】:

是否可以编译一些 Linux 内核并在 QEMU 上运行它,模拟一些 Big Endian ARM 处理器?

如果 QEMU 不能做到这一点,我很想听听其他系统仿真器的能力。

我的基本目标是在尽可能多的本地环境中运行和调试专用的 Big Endian ELF。

每一个接近的解决方案或想法都会有所帮助!

【问题讨论】:

标签: arm qemu endianness device-emulation


【解决方案1】:

QEMU 支持大端 ARM CPU,但目前不支持模拟任何具有大端 ARM CPU 的特定机器(板)。 ARM Linux 内核通常只能在编译它们的硬件上运行,所以你不能只使用随机的大端 ARM Linux 内核并在任何东西上运行——你需要对内核想要的硬件进行建模先看看吧。

其根本原因是大端 ARM 系统非常罕见 - 几乎每个人都以小端模式运行 ARM CPU,而今天所有的 QEMU 型号的主板都是小端模式。

【讨论】:

  • 没有支持双字节序的ARM型号机器,我们可以从默认配置切换吗?
  • 模拟器将支持在启动内核之前切换字节顺序的假设启动 rom,但 Linux 内核不支持 bigendian 模式下的那些板——设备驱动程序等可能无法工作。理论上你可以让它工作,但你可能会花很多时间在这个过程中摆弄内核。
  • 嗨皮特,出于好奇,你能运行用户模式的大端二进制文件吗?我尝试在我的 aarch64 Linux 独立程序集 hello world 上添加 -mbig-endian,但 QEMU 不喜欢它:“此架构的 ELF 图像无效”:-(
  • 这应该是可能的——你需要使用 qemu-aarch64_be 二进制文件,而不是 qemu-aarch64 little-endian 二进制文件。 (这是要配置的目标列表选项中的“aarch64_be-linux-user”。)
猜你喜欢
  • 1970-01-01
  • 2016-07-15
  • 2017-06-14
  • 2011-10-06
  • 1970-01-01
  • 2020-12-01
  • 2016-01-26
  • 2018-05-15
  • 2019-06-30
相关资源
最近更新 更多