我在一台没有显示管理器的Linux机器上。
我只能以标准用户身份登录 tty 会话。我不是机器的管理员。
重新启动并使用 grub 命令或内核参数并不是真正的最佳选择,主要是因为可能有其他用户通过 ssh 登录,或者可能正在运行服务。
内核模式设置未启用,文本看起来更大。我想在不重新启动的情况下设置更好的分辨率。 KMS未启用主要是因为未安装radeon非自由固件。
我想要的只是作为 tty 会话的标准用户更改 tty 分辨率。我只需要支持 vesa 模式。我尝试过dpkg-reconfigure console-setup
但结果并不好。
那么,如何更改 tty 的运行时分辨率呢?一定有办法做到这一点。
答案1
fbset
允许您即时更改控制台分辨率。但是,它需要 root 权限。您可以这样使用它:
fbset -xres 1920 -yres 900
请注意,并非所有随机模式都受支持。它单独适用于每个 tty。当在 VirtualBox 虚拟机中使用时,其窗口会自动更改其大小。但在我的真实硬件上(原始分辨率由 kms 设置),降低分辨率后,图像被粘贴到左上角并更改“活动”区域,保持字体大小相同。
Midnight Commander ( mc
) 是检查结果的良好候选者:它占用所有可用空间,因此您可以查看哪个区域当前处于“活动”状态。
降低分辨率时要小心。例如,您的分辨率为 800x600,然后您运行fbset -xres 1280
(工作正常,变为 1280x600),然后您运行fbset -xres 1270
,它只会破坏您的视频。但是,fbset -xres 1270
在 800x600 时使用效果很好)。
使用带有 efi 固件的 VirtualBox 虚拟机时,更改分辨率有效。但如果您在传统 BIOS 模式下使用它,您将获得ioctl FBIOPUT_VSCREENINFO: invalid argument
.
答案2
如果显示是由帧缓冲区设备控制的,那么fbset
可能就是您正在寻找的命令。
如果虚拟控制台处于 VGA 文本模式,那么SVGATextMode
可能会有所帮助,但它很旧,需要 root,并且无法保护您免受无法使用且可能对显示硬件有害的配置的影响。