There are many sites out there that describe how to emulate a Raspberry Pi with Raspberry Pi OS on it, so I won’t give those details, but with the new Debian Trixie (13) based Raspberry Pi OS, I ran into trouble booting. It kept hanging or rebooting at:

[    8.849465] systemd[1]: Detected architecture arm64.
[    8.854622] systemd[1]: Detected first boot.
 
Welcome to Raspbian GNU/Linux 13 (trixie)!
 
[    8.995587] systemd[1]: Hostname set to <raspberrypi>.
[    9.040059] systemd[1]: Initializing machine ID from random generator.

After checking on a real Pi what the next steps were in the boot process, I found the relevant fix was disabling the watchdog, which seems could only be done reliably by editing ‘/etc/systemd/system.conf’ and set:

WatchdogDevice=/dev/watchdog666

Also note that the ‘console=ttyAMA0,115200’ you see in many of the articles, probably needs to be ‘console=ttyAMA1,115200’. It did for me.

And for reference, my complete qemu command:

qemu-system-aarch64 \
  -no-reboot \
  -machine raspi3b \
  -cpu cortex-a72 \
  -nographic \
  -dtb bcm2710-rpi-3-b-plus.dtb \
  -m 1G \
  -smp 4 \
  -kernel kernel8.img \
  -drive file=2025-10-09-raspios-trixie-armhf-flashmq.img,if=sd,format=raw \
  -append "rw earlyprintk loglevel=8 console=ttyAMA1,115200 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootdelay=1" \
  -device usb-net,netdev=net0 \
  -netdev user,id=net0,hostfwd=tcp::2222-:22