Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103643681
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-02 15:22:52

文章分类:

  当我们用Linux的桌面环境的时候,有时屏幕发生偏移或分辩率太低,解决办法总共有两个,一个是安装显示卡的以驱动,另一个方法是通过xorg-x11软件包所提供的工具 gtf 来调整。

  一、显示设置的管理工具

  在Fedora 中,显示器和显示卡的配置工具是 system-config-display,存在于软件包system-config-display中,如果您没有这个命令或者在菜单上找不到这个工具,您可以自行安装。

    [beinan@localhost ~]# rpm -q system-config-display

    system-config-display-1.0.29-1

  如果没有上面的提示,你可以通过软件包管理工具 system-config-packages 来安装此软件。或者从光盘映像中找出此包安装。

    [beinan@localhost ~]# rpm -ivh system-config-display*

  调用方法:

    

    [beinan@localhost ~]# system-config-display

   

  或

    [beinan@localhost ~]# /usr/bin/system-config-display

  这个工具比较简单,我们根据自己机器的配置就能配置得起来。值得注意的是如果您用液晶显示器,一定要选择LCD的。

  二、显示卡驱动

  显示卡的驱动能提供更强的功能,比如支持3D功能等。另外屏幕的分辨率等问题,都与显示卡是否有驱动有关。在系统默认安装的状况下,显示卡的驱动都是不支持3D的。我们要让系统支持3D,必须得有显示卡驱动。

  遗憾的是并不是所有的显示卡都有官方发布的类Unix系统的驱动,目前看来NVidia显示卡官方支持要强。ATI部份显示卡能得到官方的支持,据AIT的官方的说明文档得知,显示卡版本必须高于8500的才有官方驱动可用。

  如果您用的是Fedora Core 4.0 ,应该在线升级显示卡驱动,请参考 《apt+synaptic 为Fedora core 4.0 中安装Nvida芯片显示卡及Ati 卡显示驱动》。

  我们可以用官方提供的显示卡图形调节工具来调整显示属性。极为简单,点鼠标完成,和Windows类似。安装完成ATI和NVIDIA驱动后,在菜单上有图形的配置工具,自己找找看。

  如果您用Intel 855集成显示卡,可以参考《Intel 集在显卡分辨率调整工具 855resolution》

  三、非NVidia 和ATI显示卡或者并未被ATI厂家支持的桌面显示问题的处理

  如果您通过 system-config-display 并不能解决您的显示方面的问题,比如屏幕偏移,分辨率上不去等问题。我们可以用gtf 工具来尝试。

  1、gtf工具来自哪个软件包。

  gtf 是来自软件包 xorg-x11,一般的情况下,如果您安装了桌面环境,就有这个工具。系统大多是默认安装的。

  2、什么是gtf 。

  gtf - calculate VESA GTF mode lines 中文的意思是计算显示设备VESA驱动GTF模式命令行工具。

  什么是gtf?gtf(generalized timing formula),一般程序时间,定义了产生画面所需要的时间,包括了诸如画面刷新率等),另外gtf也是显示设备的一个工业标准。通过GTF则可以自动调节屏幕尺寸。

  我们通过gtf 工具计算显示器屏幕尺寸、分辨率,然后我们把计算出来的值插入到 xorg.conf配置文件中,就能达到自动调节屏幕的显示尺寸、位置 及分辨率。

  3、gtf的用法。

    gtf h-resolution v-resolution refresh

     [-v|--verbose] [-f|--fbmode] [-x|--xorgmode]

  举例:我的显示器支持1024x768 ,能达到85HZ,在X模式下。

    [beinan@localhost ~]# /usr/X11R6/bin/gtf 1024 768 85 -x

     # 1024x768 @ 85.00 Hz (GTF) hsync: 68.60 kHz; pclk: 94.39 MHz

     Modeline "1024x768_85.00"

     94.39 1024 1088 1200 1376 768 769 772 807 -HSync +Vsync

  把上面的输出的信息中Modeline一行,插入到/etc/X11/xorg.conf配置文件中的显示器(Monitor)配置那段中。加入后类似。

    Section "Monitor"

        Identifier "Monitor0"

        VendorName "Monitor Vendor"

        ModelName "LCD Panel 1280x1024"

        HorizSync 31.5 - 67.0

        VertRefresh 50.0 - 75.0

        Option "dpms"

        Modeline "1024x768_85.00"

        94.39 1024 1088 1200 1376 768 769 772 807

        -HSync +Vsync

        EndSection

  改动后,重启X。重新进入桌面模式。

  4、 xdpyinfo工具。

  我们通过gtf 工具调整了显示器的属性,我们通过观察一般就知道是不是可行了。比如屏幕不闪动的过于厉害。显示区域处于显示屏正中等。但我们还有一个测试工具xdpyinfo 来测试我们的调整 。

    xdpyinfo - display information utility for X (用于X的显示信息测试工具)。

    [beinan@localhost ~]$ /usr/X11R6/bin/xdpyinfo

  通过这个输出,我们能查看到很多信息,最重要的有如下一段。

    default screen number: 0

    number of screens: 1

    screen #0:

    dimensions: 1024x768 pixels (302x232 millimeters)

    resolution: 86x84 dots per inch

    depths (7): 24, 1, 4, 8, 15, 16, 32

    root window id: 0x3f

    depth of root window: 24 planes

  我们可以在 xorg.conf中定义多个显示屏幕,比如 1024x768;800x600等。显示屏的定义的标识符号序列从0开始,以此类推。其实定义好一个就足够用。默认的一般就行。如果我们自己调整,把1024x768类似的加入到screen 中色深为24那段的 Modes 行中。然后把默认色深设置为24就好。

    Section "Screen"

        Identifier "Screen0"

        Device "Videocard0"

        Monitor "Monitor0"

        DefaultDepth 24

        SubSection "Display"

            Viewport 0 0

            Depth 16

            Modes "800x600" "640x480"

        EndSubSection

        SubSection "Display"

            Viewport 0 0

            Depth 24

            Modes "1280x1024" "1152x864" "1152x768"

            "1024x768" "800x600" "640x480"

         EndSubSection

         EndSection

  其实上面的一段,我们足可以把色深为16的那段删除或者下面的一段每行前面加#号注掉。因为我们用的是 24的。

    SubSection "Display"

         Viewport 0 0

         Depth 16

         Modes "800x600" "640x480"

         EndSubSection

  如果我们只有把 DefaultDepth 24 中的24改为16时,这段才起作用。

阅读(420) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~