在 Solaris 系统中调整显示器分辨率时,不同硬件平台所使用的指令差异显著——X86 架构通常使用 kdmconfig,而 SPARC 架构则需要借助 fbconfig。当图形界面无法正常配置时,通过命令行解决成了最可靠的方式。下面以 SPARC 机器为例,逐步详解操作流程,希望能为遇到类似困扰的朋友提供实用参考。
先摸清显卡的底细
动手前,必须确认两件事:系统内安装了几块显卡,以及每块显卡的具体型号。常用的检测命令包括 ffbconfig、fbconfig、m64config——不过具体选用哪一个,取决于显卡的类型。
先浏览系统中有哪些显卡设备:
# cd /dev/fbs; ls -l
接着可以通过 fbconfig -list 列出所有显卡及其对应的配置程序:
# fbconfig -list
Device-Filename Specific Config Program
--------------- -----------------------
/dev/fbs/m640 SUNWm64_config
/dev/fbs/ifb0 SUNWifb_config
这一步会返回类似上面的信息,明确显示每块显卡的设备路径以及需要调用的配置工具。
查清楚显卡支持哪些分辨率
知道了设备路径之后,就可以查询该显卡所支持的分辨率模式。以 /dev/fbs/ifb0 为例:
# fbconfig -dev /dev/fbs/ifb0 -res \?
Valid values for -res option are:
NONE
1024x768x60
1024x768x70
1024x768x75
1024x768x77
1024x800x84 [1]
……(还有其他分辨率)
在命令末尾加上 \?,系统就会列出所有兼容的模式——注意反斜杠用于转义问号,防止 Shell 误解。
看看当前到底用的什么分辨率
很多时候,你可能记不清当前使用的是 800×600 还是 1024×768。没关系,借助 -prconf 参数就能调出完整的硬件配置信息:
# fbconfig -dev /dev/fbs/ifb0 -prconf
--- Hardware Configuration for /dev/fbs/ifb0 ---
Type: Expert3D-Lite
PROM Information: @(#)ifblite.fth 1.14 00/10/23 SMI
EDID Data: A vailable - EDID version 1 revision 1
Monitor type: Sun P/N 365-1396 S/N 9925KW1260
Monitor possible resolutions: 1024x768x60, 1024x768x70, 1024x768x75,
1024x768x77, 1152x900x66, 1152x900x76, 640x480x60
Current resolution setting: 800x600x75
Sla ve Mode: Disabled
Video Memory Total: 33554432
Video Memory Used: 7782400
……
输出内容非常详尽——显卡型号、显存容量、显示器支持的全部分辨率列表,以及当前应用的分辨率,一目了然。其中 Current resolution setting 字段即为当前的显示设置。
动手改分辨率
有了前面的信息,修改操作就变得简单了。以将当前分辨率从 800×600×75 切换为 640×480×60 为例:
bash-3.00# fbconfig -dev /dev/fbs/ifb0 -res 640x480x60
执行完这条指令后,无需重启机器——只需退出当前会话并重新登录(logout/login)即可生效。更直接的方法是按下 Ctrl+Alt+Backspace 重启 X 服务。
为了确认修改是否成功,可以再次运行 -prconf:
bash-3.00# fbconfig -dev /dev/fbs/ifb0 -prconf
--- Hardware Configuration for /dev/fb/ifb0 ---
……
Current resolution setting: 640x480x60
当看到 Current resolution setting 已变为刚刚设定的数值,即表示配置成功。
这里有一点需要留意:如果显示器不支持你指定的刷新率,命令虽然不会报错,但实际显示效果可能会异常。因此,最好事先确认显示器究竟支持哪些模式,切勿为了图快而直接使用不匹配的参数。
