提要:通过用 framebuffer 驱动,让console模式看上去更舒服一些;
正文;
在console模式(也就上文本显示,也是text模式),说直接一点,就是全屏是黑色的,象DOS那样的界面的,在桌面环境下,按CTRL+ALT+F2 或者F3 等,就进入console模式了。就是完全文本命令操作的那种非图形桌面环境。
用 framebuffer 驱动及配置,主要是能让text模式下找到更适合的观感。
一、让console 模式下分辨率起作用的主要配置文件是 lilo.conf 或者 grub.conf , lilo.conf 是lilo系统引导管理器的配置文件,如果您用这个来引导系统,就要配置 lilo.conf文件;grub.conf 是另一个系统引导管理器grub的配置文件。这两个系统引导管理器,其作用是一样的,只是实现的方法不太一样。这两个管理器不能同时使用。
二、framebuffer console的参数如下,主要是分辨率;
引用:# Colours 640x480 800x600 1024x768 1280x1024 1600x1200
# --------+---------------------------------------------
# 256 | 769 771 773 775 796
# 32,768 | 784 787 790 793 797
# 65,536 | 785 788 791 794 798
# 16.8M | 786 789 792 795 799
如果看不懂上面的这个,就看下面的这个,对照着看吧
引用:# Normal VGA console
# vga = normal
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
三、配置[对于大多数Linux发行版,如果您是用系统自带的内核,内核是支持 framebuffer 驱动的。您可以用直接用下面的方法来做]
1.对于grub系统引导管理器的配置方法;
如果您用 grub来引导,要修改 /etc/grub.conf 或者 /boot/grub/menu.lst ,其实这两个文件都是一样的,因为 grub.conf 是 menu.lst的链接。
比如我没有修改过的grub.conf 是这样的:
说明一下:我的机器目前安装了三个操作系统,一个是xp 另一个是Fedora core 4.0 ,还有一个是 Slackware 10.1
代码:
引用:default=1
timeout=5
splashimage=(hd0,7)/boot/grub/splash.xpm.gz
#hiddenmenu
title Fedora Core (2.6.11-1.1369_FC4)
root (hd0,7)
kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/1 rhgb quiet
initrd /boot/initrd-2.6.11-1.1369_FC4.img
title Slack
root (hd0,8)
kernel /boot/vmlinuz ro root=/dev/hda9
title WinXp
rootnoverify (hd0,0)
chainloader +1
我们要参照上面的参数表,对照看着在您要改变的 Linux 的 console分辨率的那个 kernel 一行的后面加上 vga=xxx ,这里的 xxx,就是通过上面的参数表中查出来的。
比如我是 15寸的液晶显示器,我看看一下 1024x768x256是不是适合,所以我就在 kernel 那行的后面打一个空格后,加上了 vga=773
代码:
引用:default=1
timeout=5
splashimage=(hd0,7)/boot/grub/splash.xpm.gz
#hiddenmenu
title Fedora Core (2.6.11-1.1369_FC4)
root (hd0,7)
kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/1 rhgb quiet vga=773
initrd /boot/initrd-2.6.11-1.1369_FC4.img
title Slack
root (hd0,8)
kernel /boot/vmlinuz ro root=/dev/hda9 vga=773
title WinXp
rootnoverify (hd0,0)
chainloader +1
这样改过保存后,重启系统,进入相应的 Linux ,就知道是不是起作用了。比如发现 vga=773对我来说有点不适合。可以再找上面的参数来改一下就行了。
2.对于 lilo引导管理器的配置方法;
我们要改 /etc/lilo.conf这个文件 ;lilo的配置比较简单,因为vga=xxx是独立的一行。并且lilo.conf中有详细的配置参数,也就是我上面列出的那些,就是来自 lilo.conf的。想打开哪个参数,就把vga=xxx前面的#号去掉就行,当然不能同时打开多个。
注意的是:如果改了lilo.conf后,得执行 lilo -v
四、对于自编译内核的,需要注意以下几点。
1.在编内核时,要选中如下的选项;以加入 framebuffer 驱动的支持;
引用:[*] VGA text console[*] Video mode selection support[*] Support for frame buffer devices (EXPERIMENTAL)[*] VESA VGA graphics console[*] Advanced low level driver options
<*> 8 bpp packed pixels support
<*> 16 bpp packed pixels support
<*> 24 bpp packed pixels support
<*> 32 bpp packed pixels support
<*> VGA characters/attributes support[*] Select compiled-in fonts[*] VGA 8x8 font[*] VGA 8x16 font
2,我们还要知道自己所用的显示卡,也有 framebuffer的驱动,所以也要一并选中,比如
引用:<*> nVidia Framebuffer Support
<*> ATI Radeon display support
在查看内核选项是,用 shift键+?号的组合键,就能看到详细情况;
后记:我对 framebuffer原理不明白,以我的水平也根本懂不了;我写的东西可能在句法中不通或者说是一点也不对。我只能以我应用的来说明,仅此而已;一切都是为了应用;
请弟兄们补充和订正,谢谢~
参考资料:
lilo说明文档,内核说明文档;grub说明文档等;
Vs 于 2006-08-08 16:49:24发表:
补充一下,这种方法只适合老式的vesa设备,现在内核中已经添加了vesa-tng 设备,解决了字符界面下刷新率的问题,推荐使用,见内核说明:
PHP 代码:
当使用vesa-tng时,vga参数不再起作用,应使用如下格式
PHP 代码:
含义位1024x768分辨率,16位色,85Hz刷新率