如果我们有一个 800x600 的物理显示器,其分辨率永远不能大于 800x600,无论系统的其他部分如何。
如何使用 QEMU 模拟此类行为?如果需要,我可以修补源代码并重新编译。
原因:我使用 android-x86 作为客户机,但无法使其适合主机的物理屏幕。
答案1
我设法通过以下参数获得较小的分辨率:
-显示sdl-vga无-设备virtio-vga,xres = 800,yres = 600
我现在无法让 android-x86 工作,所以我无法测试它是否工作,但我在 Linux 主机上遇到了同样的问题,窗口太大,我无法读取 tty 的最后几行。
启动后,我可以将分辨率更改为更大或更小,但它永远不会自动变得大于 800x600。
如果这些参数不起作用,也许你可以设法修改 QEMU VGA bios,如解释的那样这里 (该链接解释了如何添加分辨率,但删除它们应该更简单)
基本上,说明如下:
- 获取源代码
- 编辑文件 roms/vgabios/vbetables-gen.c(仅保留所需的分辨率)
- 现在重新构建 VGA BIOS 二进制映像(首先安装 apt-get install bcc):
-
$ cd roms/vgabios
-
$ 制作 stdvga-bios
- QEMU 的 make install 不会安装您刚刚构建的映像。相反,它将使用随源一起提供的已构建的二进制文件。因此您必须手动安装它:
-
cp VGABIOS-lgpl-latest.stdvga.bin $PREFIX/share/qemu/vgabios-stdvga.bin
然后你将使用以下命令启动虚拟机
-vga 标准