QEMU树莓派仿真,无法显示视频。

3
我在Ubuntu 20.04上编译了qemu 6.1.50版本。我尝试了raspi2和raspi3两种模式,但是没有视频输出。终端会显示启动消息,我可以从其中的终端登录到树莓派。然而,视频输出屏幕并没有真的显示任何东西,除了在raspi2模式下,它只显示四个树莓派标志。(需要明确的是,当我说我能够登录时,我的意思是通过QEMU将串行端口重定向到我的电脑终端。这也可以工作,只是与模拟pi帧缓冲区相关联的视频输出不起作用。)是否有我需要指定的选项才能使其正常工作?以下是我运行的命令行,首先是树莓派2的命令行:
qemu-system-arm -M raspi2b -append \
"rw earlyprintk loglevel=8 console=ttyAMA0,115200 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootdelay=1" \
-dtb ./dtbs/bcm2709-rpi-2-b.dtb \
-sd 2021-10-30-raspios-bullseye-armhf-full.img \
-kernel kernel7.img -m 1G -smp 4 -serial stdio -usb -device usb-mouse -device usb-kbd \
-device usb-net,netdev=net0 -netdev user,id=net0,hostfwd=tcp::5555-:22

以及树莓派3b的命令行:

qemu-system-aarch64 -M raspi3b \
    -append "rw earlyprintk loglevel=8 console=ttyAMA0,115200 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootdelay=1" \
    -dtb ./dtbs/bcm2710-rpi-3-b-plus.dtb \
    -sd 2021-10-30-raspios-bullseye-armhf-full.img \
    -kernel kernel8.img \
    -m 1G \
    -smp 4 \
    -serial stdio \
    -usb -device usb-mouse -device usb-kbd \
    -device usb-net,netdev=net0 -netdev user,id=net0,hostfwd=tcp::5555-:22

就我所知,我已经成功地将pi3仿真与网络连接起来了,这很好。

预先感谢!

2个回答

0
  1. 检查终端是否获取到了/dev/fb0。 如果没有获取到/dev/fb0,那肯定没有视频。
  2. 树莓派的机器类型与标准PC架构不同,无法使用像VGA设备这样的设备。所以,要获取视频,请尝试使用机器类型virt。 以下是在运行Raspi OS和rootfs时有效的命令:

qemu-system-aarch64
-M virt,highmem=off
-smp 8
-m 2G
-cpu cortex-a72
-kernel $HOST_SHARE_DIR/linux-stable/arch/arm64/boot/Image
-append "root=PARTUUID=d97f5830-02 rw console=ttyAMA0"
-serial telnet:localhost:4321,server,nowait
-monitor telnet:localhost:4322,server,nowait
-device VGA,id=vga1
-device secondary-vga,id=vga2
-device virtio-keyboard-pci
-device virtio-mouse-pci
-hda $HOST_SHARE_DIR/data/images/2022-01-28-raspios-bullseye-arm64.img

如果你真的想使用Machine类型的raspx,你需要研究一下该机器类型或soc的framebuffer设备,然后将其重定向到qemu视频。

0

这不是一个完整的答案,但希望至少能缩小您想要查找问题的范围...

如果您看到4个树莓标志,则表示您的命令行正在告诉QEMU模拟视频设备,并且客户机内核正在使用视频设备来显示至少一些内容。任何其他在您期望时未使用视频的内容几乎肯定是客户机操作系统配置问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接