qemu 有效的 dtb 和无法识别/不支持的机器 ID

问题描述

我正在按照本教程在我的 Windows PC 上运行 Raspbian,但它不起作用。

重命名了我的系统 img 和内核以适应命令,但没有成功。

valid dtb and unrecognized/unsupported machine ID
  r1=0x00000183,r2=0x00000100
  r2[]=05 00 00 00 01 00 41 54 01 00 00 00 00 10 00 00
Available machine support:

ID (hex)        NAME
ffffffff        Generic DT based system
ffffffff        ARM-Versatile (Device Tree Support)

我正在执行的命令:

qemu-system-arm -kernel kernel-qemu-4.4.34-jessie -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -drive "file=2017-03-02-raspbian-jessie.img,index=0,media=disk,format=raw" 

解决方法

您已截断了错误消息的第一部分,这令人困惑。全文为“错误:无效的 dtb 和无法识别/不支持的机器 ID”。

内核在这里试图告诉您的是,您必须为正在运行它的主板提供正确的设备树 blob (dtb) 文件。没有 dtb,较新的内核无法启动。您需要通过其 -dtb 选项向 QEMU 传递正确的文件,在本例中为“versatile-pb.dtb”。当您从源代码构建内核时应该构建该文件,或者如果您从其他人那里获得内核,他们也应该提供 dtb。