据我所知,有 6 种方法可以更改分辨率
1. 在编译时:更改行
SVGA_MODE= -DSVGA_MODE=NORMAL_VGA
在 /usr/src/linux/Makefile
中。1A. 编译后:使用 rdev -v
- 这是一个糟糕的黑客技巧,但它确实存在。
2. 在启动时:在 lilo 配置文件中放入 vga=ask
,lilo 会询问你想要的视频模式。一旦你知道了,放入 vga=
你的偏好设置。
3. 在运行时:A. 使用 resizecons
命令。(这是一个围绕 VT_RESIZE ioctl 的非常原始的封装器。)B. 使用 SVGATextMode
命令。(这是一个围绕 VT_RESIZE ioctl 的不那么原始的封装器。)
4. 不是 “在控制台上”:在 dosemu
下,或者使用 svgalib 等,你可以更改硬件视频模式,而无需控制台驱动程序意识到这一点。有时这在设置 resizecons
或 SVGATextMode
时很有用:使用 dosemu
和一些 DOS 程序进入所需的视频模式,转储(例如从另一个 VT)所有视频硬件寄存器的内容,并在 resizecons
和 SVGATextMode
要求的初始化中使用它。在某些视频模式进入不可用状态的情况下,启动 dosemu
,依靠 BIOS 设置视频模式,然后杀死 dosemu
(使用 kill -9
),是恢复正常的*最简单*方法。
resizecons
的使用说明
获取 svgalib 并编译程序 restoretextmode
。在所有可能的视频模式下启动你的机器(在 lilo 配置文件中使用 vga=ask
),并将视频硬件寄存器内容写入文件 CxR (C=列, R=行),例如,80x25, 132x44 等。将这些文件放在 /usr/lib/kbd/videomodes
中。现在 resizecons 132x44
将为你更改视频模式(并向所有需要知道此事的进程发送 SIGWINCH 信号,并在必要时加载另一个字体)。
目前,resizecons
只有在有足够的内存同时容纳新旧控制台时才会成功。