红联Linux门户
Linux帮助

关于用 framebuffer 驱动,在console 模式下的分辨率的参数及配置

发布时间:2006-08-08 16:48:49来源:红联作者:Vs
写在前面的话:关于这方面的文章太多了,但还是写一个,主要是把大家的写的东西系统一下。为了照顾初学的弟兄。

提要:通过用 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说明文档等;
文章评论

共有 1 条评论

  1. Vs 于 2006-08-08 16:49:24发表:

    补充一下,这种方法只适合老式的vesa设备,现在内核中已经添加了vesa-tng 设备,解决了字符界面下刷新率的问题,推荐使用,见内核说明:

    PHP 代码:

    引用:
    CONFIG_FB_VESA_TNG:

    │ This is the frame buffer device driver for generic VESA 2.0
    │ compliant graphic cards. It is capable of taking advantage of
    │ VBE 3.0 features. With this driver you will be able to adjust
    │ the refresh rate (VBE 3.0 compliant boards only) and change
    │ the graphic mode on-the-fly.

    │ You will also get a boot time penguin logo at no additional cost. Pleas
    │ read .

    │ Symbol: FB_VESA_TNG [=y]
    │ Prompt: vesafb-tng
    │ Defined at drivers/video/Kconfig:509
    │ Depends on: && !X86_64
    Location:
    -> Device Drivers
    -> Graphics support
    -> Support for frame buffer devices (FB [=y])
    -> VESA VGA graphics support (FB_VESA [=y])
    -> VESA driver type ( [=y])
    Selects: FB_MODE_HELPERS




    当使用vesa-tng时,vga参数不再起作用,应使用如下格式

    PHP 代码:

    引用:
    video=vesafb:mtrr,ywrap,pmipal,1024x768-16@85



    含义位1024x768分辨率,16位色,85Hz刷新率