qemu valid dtb and unrecognized/unsupported machine ID

0

I am following this tutorial to run Raspbian on my Windows PC, but it does not work.

I renamed my system img and kernel to fit the command, but no success.

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)

The command I was executing:

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" 
raspbian
qemu
asked on Stack Overflow Feb 6, 2021 by rares 1337 • edited Feb 6, 2021 by Jeremy Caney

1 Answer

0

You've cut off the first part of the error message, which is confusing. The full text is "Error: invalid dtb and unrecognized/unsupported machine ID".

What the kernel is trying to tell you here is that you must provide it with the correct device tree blob (dtb) file for the board you are running it on. Newer kernels can't boot without a dtb. You need to pass QEMU the correct file via its -dtb option, which in this case is "versatile-pb.dtb". That file should be built when you build the kernel from source, or if you got your kernel from somebody else they should also provide the dtb.

answered on Stack Overflow Feb 6, 2021 by Peter Maydell

User contributions licensed under CC BY-SA 3.0