Linux SVGATextMode命令

历史说明:SVGATextMode是一个较古老的工具,用于在文本模式下控制Super VGA显卡的显示参数。在现代Linux发行版中,此命令可能已被弃用或不可用,主要用于老式系统和特定的服务器环境。
功能说明:SVGATextMode命令用于设置SVGA显卡在文本模式下的参数,包括分辨率、刷新率和字体设置等,主要用在控制台环境下优化文本显示效果。

命令语法

语法格式
SVGATextMode [选项] [模式]

命令参数

参数 说明
-q, --quiet 静默模式,减少输出信息
-c, --current 显示当前模式设置
-t, --test 测试模式而不实际应用设置
-l, --list 列出可用的显示模式
-m, --mode 模式 指定要设置的显示模式
-f, --font 字体 指定控制台字体
-r, --resolution 分辨率 指定显示分辨率
-h, --help 显示帮助信息
-v, --version 显示版本信息

使用示例

1. 列出可用的显示模式 常用
示例
# 显示系统支持的所有SVGA文本模式
SVGATextMode -l

# 显示示例输出:
# Available modes:
# 80x25    - Standard 80x25 text mode
# 80x30    - Extended 80x30 mode
# 80x34    - Extended 80x34 mode
# 80x50    - Extended 80x50 mode
# 80x60    - Extended 80x60 mode
# 132x25   - Wide 132x25 mode
# 132x30   - Wide 132x30 mode
# 132x34   - Wide 132x34 mode
# 132x50   - Wide 132x50 mode
# 132x60   - Wide 132x60 mode
2. 查看当前模式设置
示例
# 显示当前的SVGA文本模式设置
SVGATextMode -c

# 或者使用:
SVGATextMode --current

# 示例输出:
# Current mode: 80x25
# Resolution: 720x400
# Refresh rate: 70 Hz
# Font: 8x16
3. 切换显示模式
示例
# 切换到80x50文本模式
SVGATextMode 80x50

# 或者使用-m参数指定模式
SVGATextMode -m 132x25

# 切换到132x60模式(宽屏文本模式)
SVGATextMode 132x60
4. 同时设置模式和字体
示例
# 设置132x25模式并使用特定字体
SVGATextMode -m 132x25 -f 8x8

# 切换到80x34模式并指定字体文件
SVGATextMode 80x34 -f /usr/share/consolefonts/Uni2-TerminusBold.psf
5. 测试模式而不实际应用 安全
# 测试132x50模式是否可用
SVGATextMode -t 132x50

# 如果系统支持该模式,会显示:
# Testing mode: 132x50
# Result: Mode is supported and can be applied.

# 如果不支持,会显示错误信息
# Error: Mode 132x50 is not supported by your hardware.
6. 静默模式切换
# 静默切换到80x30模式
SVGATextMode -q 80x30

# 静默测试模式
SVGATextMode -tq 132x34

模式配置文件

SVGATextMode可以使用模式配置文件来定义复杂的显示参数:

/etc/svgatextmode.conf 示例
# SVGATextMode 配置文件示例
# 格式:模式名称 宽度x高度 时钟参数 水平时序 垂直时序 标志

# 标准VGA模式
"80x25"    720 400 28 72 128 2 2 22 2
"80x30"    720 480 28 72 128 2 2 22 2
"80x34"    720 544 28 72 128 2 2 22 2

# 扩展模式
"80x50"    720 800 28 72 128 2 2 22 2
"80x60"    720 960 28 72 128 2 2 22 2

# 宽屏模式
"132x25"   1188 400 28 72 128 2 2 22 2
"132x30"   1188 480 28 72 128 2 2 22 2
"132x50"   1188 800 28 72 128 2 2 22 2

# 高分辨率文本模式
"132x60"   1188 960 28 72 128 2 2 22 2

硬件兼容性

显卡类型 支持程度 备注
VESA兼容SVGA显卡 完全支持 大多数标准SVGA显卡
Cirrus Logic显卡 支持 Cirrus Logic系列
S3系列显卡 部分支持 某些型号可能有限制
现代集成显卡 不推荐 建议使用fbset或其他工具
VMware/VirtualBox虚拟显卡 有限支持 依赖虚拟机设置

注意事项

重要注意事项:
  • 过时工具:SVGATextMode是较老的工具,现代Linux发行版可能不再包含此命令
  • 硬件限制:只对特定的SVGA显卡有效,现代显卡可能不支持
  • 系统影响:错误的设置可能导致控制台无法正常显示
  • 替代方案:对于现代系统,建议使用fbsetsetfontconsole-tools
  • 安全操作:建议先使用-t参数测试模式再实际应用

替代方案

fbset

设置帧缓冲区设备参数,支持更现代的硬件:

fbset -xres 1024 -yres 768
fbset -depth 16
setfont

设置控制台字体,控制文本显示大小:

setfont /usr/share/consolefonts/Uni2-TerminusBold.psf
setfont -d  # 恢复默认字体
console-tools

控制台工具包,提供全面的控制台管理:

sudo dpkg-reconfigure console-setup
setupcon  # 配置控制台
kbd_mode

设置键盘和终端模式:

kbd_mode -u  # 设置为Unicode模式
kbd_mode -s  # 设置为扫描码模式

常见问题

A: SVGATextMode是一个较老的工具,在现代Linux发行版中可能默认不安装。如果需要,可以尝试安装sysvinit-utilssvgalib包。但建议使用更现代的替代工具如fbset

A: 可以通过重启系统或重新加载显卡驱动程序来恢复。也可以使用默认模式设置:
SVGATextMode 80x25
# 或者重启控制台
sudo systemctl restart getty@tty1

A: 主要支持老的SVGA兼容显卡,如:
  • Trident系列显卡
  • Cirrus Logic显卡
  • 部分S3显卡
  • 标准VESA兼容显卡
  • 注意:现代的NVIDIA、AMD、Intel集成显卡可能不支持