【问题标题】:Booting a QorIQ PowerPC firmware in Qemu在 Qemu 中启动 QorIQ PowerPC 固件
【发布时间】:2020-04-08 11:45:53
【问题描述】:

我有一个基于 QorIQ (P2041) 处理器的物联网设备固件。我有 uBoot、内核和 initrd ramdisk。无论我用qemu-system-ppc 做什么,我都无法让它工作。我怀疑qemu-system-ppc 不支持 QorIQ 处理器。无论如何我可以在 Qemu 或任何其他模拟器中加载和启动这个固件吗?

【问题讨论】:

    标签: qemu u-boot powerpc firmware


    【解决方案1】:

    U-Boot 有配置文件 qemu-ppce500_defconfig。您应该能够使用命令运行使用此配置构建的 U-Boot

    qemu-system-ppc -nographic -bios u-boot -M ppce500

    CPU可以通过-cpu参数指定为e500mc。

    要运行您的内核,它需要模拟机器提供的硬件驱动程序,例如 E1000 网卡和 NS16550 控制台。

    使用 U-Boot 的 fdt 命令获取模拟机中可用设备的概览。

    【讨论】:

    • 谢谢,我正在尝试这样做,但似乎它不喜欢我的 u-boot 文件。我得到“qemu:无法加载固件”。我的 uboot img 文件的标头以 AA 55 AA 55 和 100 字节左右开头显示 VU-Boot 2012.11-svn.... 等。我是否必须修剪一些 img 文件的顶部?
    【解决方案2】:

    固件二进制文件通常与构建它们运行的​​硬件密切相关——它们对可用的硬件、可以在内存中的哪些地址等做出假设。您需要使用与您要求 QEMU 模拟的硬件相对应的固件 blob。由于 QEMU 不会模拟您的随机物联网设备,因此您需要使用与 QEMU 实际拥有的硬件相匹配的 u-boot(例如 Xypron 的回答中所建议的)。

    一旦您启动了固件,您可能仍然会发现内核存在完全相同的问题——它是为在一个硬件上运行而构建的,而您正试图在不同的硬件上运行它,而这根本行不通。

    【讨论】:

    • 好的,但是我有所有文件,我不需要硬件的东西来工作,显然我不希望能够在其中运行单个二进制文件的调试。我可以尝试在 Qemu 中单独运行二进制文件吗?
    • 是的,我认为仅使用用​​户空间或仅使用来自设备的特定二进制文件和库,该设备构建为与 QEMU 一起使用的内核是一种更有可能成功的途径。
    猜你喜欢
    • 2018-06-09
    • 2013-08-07
    • 1970-01-01
    • 2012-11-09
    • 2013-06-21
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    相关资源
    最近更新 更多