Linux 修改文本模式下的分辨率

先说一下别人是怎么修改文本模式下的屏幕分辨率的,随便在网上搜索以下都可以看到好多教程,内容几乎如出一辙,原话是:

 

教程一

Linux字符界面下设置分辨率:

  vi /boot/grub/menu.lst

  | 640x480 800x600 1024x768 1280x1024

  256 | 0x301 0x303 0x305 0x307

  32k | 0x310 0x313 0x316 0x319

  64k | 0x311 0x314 0x317 0x31A

  16M | 0x312 0x315 0x318 0x31B

 

  其实简单的很,就是grub即可,编辑grub.conf

  在kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ rhgb quiet后面加上分辨率的设置:

  kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ vga=791 rhgb quiet

  不同色彩和分辨率所对应的值

  depth-----640x480----800x600----1024x768-----1280x1024

  8bit---------769--------771--------773----------775

  15bit--------784--------787--------790----------793

  16bit--------785--------788--------791----------794

  24bit--------786--------789--------792----------795

 

  好像添加一行vga=0x31?就行了(很久没用lilo了,有点记不起来啦)

  其中0x31?是设定具体分辨率值,可参考一下列表,不要乱设

  1280x1024是0x31a

  1024x768是0x317

  800x600是0x314

  640x480是0x311

 

笔者最近在百度知道里看到一个提问,内容是下面这样的,似乎这位网友解决了分辨率配置的问题,我们也可以参考他的配置思路,看能不能实现文本模式下分辨率的配置。

 

教程二

提问:

在linux用vga=791 选项调文本模式下的分辨时,有时候重启会提示不成功设置到这个模式。但是vga=788 的话,重启没有问题。我要怎么做才能让linux都可以正确设置到vga=791?

我的系统是fedora core 6 内核是2.6.33.3 显卡最高能支持1024x768(85Hz)

问题补充:

谢谢kwydwuf,感觉很接近,有没有工具可以在启动后切换到模式1024x768 (8:8:8)上去?

VBE Version 3.0

NVIDIA

[256] 640x400 (256 color palette)

[257] 640x480 (256 color palette)

[259] 800x600 (256 color palette)

[261] 1024x768 (256 color palette)

[263] 1280x1024 (256 color palette)

[270] 320x200 (5:6:5)

[271] 320x200 (8:8:8)

[273] 640x480 (5:6:5)

[274] 640x480 (8:8:8)

[276] 800x600 (5:6:5)

[277] 800x600 (8:8:8)

[279] 1024x768 (5:6:5)

[280] 1024x768 (8:8:8)

[282] 1280x1024 (5:6:5)

[283] 1280x1024 (8:8:8)

[304] 320x200 (256 color palette)

[305] 320x400 (256 color palette)

[306] 320x400 (5:6:5)

[307] 320x400 (8:8:8)

[308] 320x240 (256 color palette)

[309] 320x240 (5:6:5)

[310] 320x240 (8:8:8)

[317] 640x400 (5:6:5)

[318] 640x400 (8:8:8)

[325] 1600x1200 (256 color palette)

[326] 1600x1200 (5:6:5)

[327] 1400x1050 (256 color palette)

[328] 1400x1050 (5:6:5)

[338] 2048x1536 (8:8:8)

 

网友回答:

# +-------------------------------------------------+

# | 640x480 800x600 1024x768 1280x1024

# ----+--------------------------------------------

# 256 | 0x301=769 0x303=771 0x305=773 0x307=775

# 32K | 0x310=784 0x313=787 0x316=790 0x319=793

# 64K | 0x311=785 0x314=788 0x317=791 0x31A=794

# 16M | 0x312=786 0x315=789 0x318=792 0x31B=795

# +-------------------------------------------------+

 

参考上表, 可能是显卡或使用的framebuffer驱动不支持64K下的 1024x768, 你可以试一下低色率或者高色率下的1024x768 (比如790/792),看看是否能正常工作。另外,不知道fedora下是否有vbetest这个工具,vbetest可以测试显卡支持的分辨率,运行vbetest (以root身份),你会得到类似于如下的输出 (下面的是我机器上的输出)

...

[261] 1024x768 (256 color palette)

[279] 1024x768 (5:6:5)

[280] 1024x768 (8:8:8)

...

 

[xxx]里的xxx就是支持的模式对应的数字,这个xxx加上512就是你用到 vga=nnn 里的数字,比如我要用24位真彩色(8:8:8),就填 280+512 vga=792

 

提问者评价:

虽然没有完美解决,但有所改善。

谢谢!

谢谢其它人的回答(我的标题应该是"修改文本模式下的分辨率")。

 

笔者补充

笔者在上面啰嗦了这么多废话,可我要告诉你们的是,我并没有实现文本模式分辨率的设置,不知道是不是因为我是在虚拟机里面运行Linux操作系统的缘故。也希望有人根据上面教程实现了文本模式分辨率的配置之后能给我提供一些宝贵意见。

不过我在分辨率配置的过程中遇到了一个很头疼的问题,就是我按照第一个教程里面说的修改了/boot/grub/menu.lst文件后,Linux系统无法正常启动了,每次启动显示器都是全黑色连一个字符都不显示,也就是说连文本模式也进不去了,更别提图形界面。出现这种情况多次重启无效,网上也没找到解决办法,我差一点就想重装Linux系统了,不过后来经过我的摸索,这才发现了解决方案。

 

这里我要跟大家分享的是,当分辨率设置出现问题,无法正常启动Linux时该怎么做!

第一步:打开系统时,按f2进入GNU启动引导程序

图1-1 按f2进入引导程序

 

第二步:进入之后可以看到以下提示,按e在引导前编辑命令,我们这时按"e"

图2-1 按"e"编辑引导项

 

第三步:接着我们会进入下面的界面,如果你已经在kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ rhgb quiet后面加上分辨率的设置:kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ vga= 0x317 rhgb quiet那么 线框圈着的引导项下面便会有当时配置的命令。即"kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ vga= 0x317 rhgb quiet",我们可以按"d"键把它移除,然后光标移动到第一行root(hd0,0)按"b"键进行引。这时我们就正常的进入系统啦!别忙着高兴,尽管刚才删除了"kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ vga= 0x317 rhgb quiet"但是这只是这次引导时不加载这一选项,也就是说下次启动还是不正常的。这时,我们要再次把原来的文件修改回初始状态,把当时增加的"kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ vga= 0x317 rhgb quiet"删除即可。

 

图3-1 "d"删除线框下面的引导项,移动光标到第一行按"b"引导

 

图3-2 删除"kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ vga= 0x317 rhgb quiet"并保存

 

你可能感兴趣的:(嵌入式Linux)