设置最佳控制台分辨率

Posted: 十二月 14th, 2007 | Author: windrose | Filed under: 文章 | Tags: , | 2 Comments »

我的显示器是22寸LCD宽屏,最佳分辨率为1680×1050。在X Window中没有问题,但在控制台字符界面只用到1024×768,所有字符看起来都是扁扁的。尽管在控制台操作的机会不多,但是既然显示器有这样的能力,还是想尽量让它发挥一下。在网上搜索了一下,发现设置LCD字符界面的最佳分辨率是一个困扰了很多人的问题。

解决问题的关键在于显卡的BIOS之中是否预设了想要设置的显示模式。如果有,在启动时传递 vga=xxx 参数,内核就会调用vesafb模块将控制台设置成xxx所对应的模式,否则就只能用BIOS支持的其他模式代替。有一个叫做vbespy的小工具可以显示显卡BIOS支持的显示模式。下载vbespy的源代码,解开,用make命令编译。编译完成后,在vbespy的源码目录中会生成名为 vbetest 的可执行文件。用root身份运行之,下面是我的显卡显示出来的结果:

# ./vbetest 2>/dev/null
[256] 640×400 (256 color palette)
[257] 640×480 (256 color palette)
[259] 800×600 (256 color palette)
[261] 1024×768 (256 color palette)
[263] 1280×1024 (256 color palette)
[270] 320×200 (5:6:5)
[271] 320×200 (8:8:8)
[273] 640×480 (5:6:5)
[274] 640×480 (8:8:8)
[276] 800×600 (5:6:5)
[277] 800×600 (8:8:8)
[279] 1024×768 (5:6:5)
[280] 1024×768 (8:8:8)
[282] 1280×1024 (5:6:5)
[283] 1280×1024 (8:8:8)
[304] 320×200 (256 color palette)
[305] 320×400 (256 color palette)
[306] 320×400 (5:6:5)
[307] 320×400 (8:8:8)
[308] 320×240 (256 color palette)
[309] 320×240 (5:6:5)
[310] 320×240 (8:8:8)
[317] 640×400 (5:6:5)
[318] 640×400 (8:8:8)
[327] 1400×1050 (256 color palette)
[328] 1400×1050 (5:6:5)
Type a mode number, or ‘q’ to quit – q

方括号[]内是显示模式的数值,后面跟的是分辨率,最后()中是颜色数,5:6:6是64K色,8:8:8是1600万色。上面显示出来的结果,分辨率都是4:3,没有16:10的宽屏显示比例,所以我在字符界面使用最佳分辨率的愿望就此破灭。但是,从中我还是发现可以把控制台的分辨率设得更高一些,最高可以达到 1400×1050@64K色(最后一行)。要注意的是,从vbetest得到的显示模式数值还不能直接作为 vga=xxx 的xxx参数,必须在那个数值上加上512,所以设置1400×1050@64K色就应该用 vga=840 (328+512=840)才行。

设成1400×1050后,尽管屏幕上的字符显示还是有点扁,但起码在垂直方向上已经达到了显示器的最大分辨率,也算是得到一点安慰。


2 Comments on “设置最佳控制台分辨率”

  1. 1 Cherife said at 11:44 上午 on 十二月 21st, 2007:

    我当初一个一个试,828,830,834,笨方法:-(
    最后发现830适合我的1400×1050 LCD。可能跟颜色数支持有关。

  2. 2 quatchix said at 4:52 下午 on 三月 8th, 2010:

    博主您好,我以root身份运行时,显示
    mmap /dev/zero: Permission denied

    请问这是为何呢? 还请您指点。


Leave a Reply