linux - Qemu 显示为 ARM (VM) 的黑屏
问题描述
所以我正在使用这个站点在我的 Lubuntu VM 上设置 Qemu。
https://azeria-labs.com/emulate-raspberry-pi-with-qemu/
当我尝试运行 Qemu 时出现我的错误,但屏幕显示为黑色,并显示“访客尚未初始化显示(尚未)”。
查看它说的错误:
错误:无效的 dtb 和无法识别/不受支持的机器 ID
r1=0x00000183 r2=0x00000100
r2[]=05 00 00 00 01 00 41 54 01 00 00 00 00 10 00 00
可用机器支持:
ID(十六进制)名称
ffffffff 基于通用 DT 的系统
ffffffff ARM-Versatile(设备树支持)
请检查您的内核配置和/或引导加载程序。
如您所见,我使用了最新的内核和覆盆子映像(Buster),所以我不确定这是否会导致错误,因为我使用的源代码已经过时了。
$ qemu-system-arm -kernel ~/qemu_vms/kernel-qemu4.19.50-buster -cpu arm1176 -m 256 -M versatilepb -serial stdio -append "root=/dev/sda2 rootfstype=ext4 rw" -hda ~/qemu_vms/2019-09-26-raspbian-buster.img
我无法从在线示例中执行 redir 部分,因为由于某种原因它一直在说-redir: invalid option
这是它给我的视觉输出:
https://ibb.co/xDmj7D7 https://ibb.co/9YrmD2M
如果有人能告诉我我做错了什么,输出应该类似于我使用的源代码,谢谢!: https ://azeria-labs.com/emulate-raspberry-pi-with-qemu/
编辑:好吧,自上次以来我已经取得了一些进展。所以我忘了包括 dtb,因为 buster 也需要这个。
-dtb /.../versatile-pb.dtb \
https://github.com/dhruvvyas90/qemu-rpi-kernel
使用了那里的命令格式,但我遇到我的文件是原始的,所以我做了一个驱动器命令format=raw
然后又弹出一个错误:
vpb_sic_write: Bad register offset 0x2c
通过添加解决:-serial stdio
来源:https ://github.com/dhruvvyas90/qemu-rpi-kernel/issues/75
它看起来像我在树莓派中,但我的 Qemu 仍然有一个黑屏,上面写着:Guest has not initialized the display (yet)
解决方案
对于 Raspbian Buster 映像和内核,我遇到了与上述相同的情况。但是当我切换到 2019-04-08-raspbian-stretch-full.img 和 kernel-qemu-4.14.79-stretch 而没有任何其他更改时,我能够获得图形(我的意思是鼠标光标、桌面等) ) 在 QEMU 中。看起来必须为 Raspbian Buster 纠正通用 pb.dtb。
推荐阅读
- node.js - 如何更新猫鼬列表中的对象(在NodeJS中)
- java - 如何始终从 MySQL 表中选择特定行并通过改造显示在 android TextView 上
- android - 我在导入 androidx.cardview.R 时出错;我该如何解决
- python - 自定义 Matplotlib 颜色图
- arrays - 使用 C 的直接 I/O:数组与指针
- c - x86-64 零标志在内联调用之间清除(和另一个问题)
- java - Android:谷歌登录需要哪些元数据标签
- java - Unity Android 服务
- javascript - 使用 react-quil 存储嵌入在文本中的图像的正确方法
- java - M1 Mac - 启动 ElasticSearch 的问题。无法运行 jdk/bin/java