如何*限制* QEMU 上的屏幕分辨率?

如何*限制* QEMU 上的屏幕分辨率?

如果我们有一个 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 标准

相关内容