QEMU允许在u-boot传递给-kernel选项的情况下启动VM。但它需要在主机系统上提供额外的文件(u-boot本身)。我的目标是加载存储在QEMU磁盘映像中的u-boot。所以我希望做到这样的事情:
qemu-system-arm -kernelblocks 1:128 -device sdhci-pci -drive format=raw,file=./build/disk.img,if=none,id=disk,cache=writeback,discard=unmap -device sd-card,drive=disk
其中-kernelblocks是一个虚构选项,告诉QEMU从QEMU磁盘映像的特定块加载u-boot,而不是在主机系统上加载文件。
所以问题是:如何让QEMU从QEMU磁盘映像加载u-boot? 作为替代方案,我可以接受答案,显示如何从QEMU磁盘映像上的文件系统加载文件。
对于我的任务,我可以自由地将任何选项传递给QEMU,但除了QEMU磁盘映像外,主机系统上不能有任何文件。
答案 0 :(得分:1)
您的命令行未指定特定的机器型号,这对qemu-system-arm无效。以下经验法则适用于或不适用于特定的QEMU机器型号。
要运行QEMU访客代码,您通常可以:
第一个是方便的捷径;第二个就像硬件实际启动的方式。 (qemu-system-x86_64的工作方式与-bios选项相似;您只是不注意,因为默认情况下启用了-bios选项并从系统库目录加载BIOS图像。)某些板模型不支持-bios
QEMU没有任何说法“从磁盘块中加载来宾图像”。这对于手工模拟访客BIOS的细节会有太多的了解,我们更愿意通过运行实际的访客BIOS blob来提供该功能。