为了将嵌入式项目从 ARM 目标移植到 Linux/x86,我必须创建一个 Debian VM(我现在使用 Virtualbox),它以帧缓冲模式启动,分辨率为 640x480。
我使用该systemctl set-default multi-user.target
命令使虚拟机在帧缓冲区上启动,但它似乎无法低于 800x600 分辨率。我能找到的所有教程和指南都与以高分辨率模式启动来宾虚拟机有关,但我找不到任何可以解决我的问题的内容。
我遵循了以下位置的建议https://forums.virtualbox.org/viewtopic.php?f=29&t=83189
edit /etc/default/grub
Uncomment: #GRUB_GFXMODE=640x480
Modify it to required resolution: GRUB_GFXMODE=1024x768
Add the following: GRUB_GFXPAYLOAD_LINUX=keep
Save, exit, and run update-grub
Edit "/etc/modprobe.d/fbdev-blacklist.conf" and add vboxvideo Reboot
使用GRUB_GFXMODE=640x480
并创建/etc/modprobe.d/fbdev-blacklist.conf
文件,但没有结果 - 它始终以 800x600 开始
有人可以帮忙吗?我目前使用的是 Debian 9,如果出现不兼容的情况,可以移至另一个版本。
编辑:根据要求,这里是 #cat /proc/cmdline 的输出:
BOOT_IMAGE=/boot/vmlinuz-4.9.0-11-amd64 root=UUID=5bb1ded6-45a6-4d13-93d8-5f593e66e609 ro quiet
答案1
在 VirtualBox Manager 文件 -> 首选项 -> 显示最大来宾屏幕大小参数可以是自动/无/提示
使用尺寸 None 或具有所需尺寸的提示为我做到了。
仅供参考:GRUB 配置:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
GRUB_GFXMODE= the one you want (1024x768x32 in my case)
GRUB_GFXPAYLOAD_LINUX= keep or the one you want (1024x768x32 in my case)
#GRUB_TERMINAL=console (kept in comment)
答案2
如果这对其他人有任何帮助,我可以通过以下更改以 VGA 模式启动/etc/default/grub
:
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
代替
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
这会启用所有启动消息,并且由于某种原因,还会使控制台保持 VGA 分辨率。我在以下位置找到了一些相关建议https://linuxconfig.org/how-to-increase-tty-console-resolution-on-ubuntu-18-04-server
据我所知,VGA 分辨率可以通过以下任一方式设置
GRUB_GFXMODE=640x480
GRUB_GFXPAYLOAD_LINUX=keep
或者
GRUB_GFXMODE=""
GRUB_GFXPAYLOAD_LINUX=640x480
答案3
添加到/etc/default/grub
GRUB_GFXMODE=640x480
GRUB_GFXPAYLOAD_LINUX=keep
要以普通文本模式启动,请“保留”以保留使用 gfxmode 设置的图形模式