当前位置:操作系统 > Unix/Linux >>

如何手动设置和修改X-Window的显示模式

本文档的发布遵循DGPL,任何人有权免费获得,阅览,转载和发布本文档,不得用于任何形式的商业用途.本文档现在由RockyS.Lee进行维护,任何人可以对其中存在的遗漏,错误进行修改和指正.修改者名单将列于本文档的作者名后.

  简短说明:

  本文档的主要目的在于介绍手动配置Linux下XF86的配置方法,主要是关于如何通过修改XF86Config文件调整显示器在图形模式下的显示分辨率和颜色深度,以及如何通过建立符号连接修改XServer.另外提到一些跟图形界面有关的网友常问问题.文中对于如何使用软件工具做相应的没有过多提及,希望会在以后的版本中加入和软件修改方法之间的联系和差别.

  一.XWindow工作方式略谈

  (如果你之关心如何对XWidow进行设置,可以跳过这一节.只是理解这一节所讲的知识对于理解下面的各设置步骤有一定帮助)

  XWindow的工作方式跟MicrosoftWindows有着本质的不同.MSWindows的图形用户界面(GUI)是跟系统紧密相联的.而XWindow则不是,它实际上是在系统核心(kernel)的上面运行的一个应用程序.

  XWindow的运行分为四层.最底层的是XServer(服务器),提供图形界面的驱动,为XWindow提供服务.上面的一层是用于网上通信的网络协议--X网络协议.这部分使远程运行XWindow成为可能.只需要在服务器上运行一个XServer,而客户机(Client)上运行更上一层的程序,则可以实现XWidow的远程运行.再往上的一层是称作Xlib的低层函数接口,介于网络和和基础系统于较高层的程序之间.应用程序的实现是通过调用这一层的函数实现的.

  最顶层就是管理窗口的窗口管理器了,也就是一般所说的WM(WindowManager).在这一层的软件是用户都比较常接触的,比如fvwm,AfterStep,Enlightment以及WindowMaker等等.

  

  从上面的介绍来看,XWindow的运行是一种客户机/服务器(Client/Server)的模式,服务器用于显示客运的应用程序,又被称为显示服务器(DisplayServer)显示服务器位于硬件和客户机之间,它跟踪所有来自输入设备比如键盘,鼠标的输入动作,经过处理后将其送回客户机.这样,使用户甚至可以在MSWindows的机器上运行XClient,截取并传送用户的输入,只是将XWindow的屏幕输出显示在用户的屏幕上.客户机的输入和输出系统跟X服务器之间的通信都是遵守X协议的.

  由于本文档的主要目的在于介绍如何设置,因此对XWindow不再作进一步的介绍.更详细的资料可以参考有关的HOWTO,man页等等.

  二.关于XWindow的设置

  1.XServer

  在Linux下,这些服务器的程序是存放在/usr/X11R6/bin/下面,并且都由XF86_打头,一般来说,会提供单显Mono,标准VGA和SVGA的驱动,分别命名为:XF86_Mono,XF86_VGA16和XF86_SVGA,另外可能还会有S3和其他一些带有图形加速功能的显卡的驱动.下面是作者本人机器上运行的RedHatLinux6.1中所带有的XServer驱动:

  XF86_3DLabsXF86_MonoXF86_I128XF86_VGA16

  XF86_P9000XF86_8514XF86_Mach32XF86_S3

  XF86_W32XF86_AGXXF86_Mach64XF86_S3V

  XF86_FBDevXF86_Mach8XF86_SVGA

  如果你的/usr/X11R6/bin下面没有上面某个文件或者多了某个文件,不必在意,这主要决定于你的机器的硬件.其实一般只需要跟自己硬件相配套的驱动即可.

  比如作者正在使用的机器上使用的是3DLabPermediaII的芯片的显示卡,因此只有XF86_3DLabs是有作用的.

  如此之多种类的显示适配器驱动程序,系统当然需要一个固定和统一的方法去访问它,一般说来,系统是使用一个名为X的符号连接去访问具体的XServer的.

  

  这个X也同样是存在于/usr/X11R6/bin/目录中,可以使用如下命令打印他的具体指向:

  ls-l/usr/X11R6/bin/X

  得到的结果如:

  lrwxrwxrwx1rootroot8Dec1403:40

  /usr/X11R6/bin/X->XF86_3DLab

  前面的属性"lrwxrwxrwx"中第一个字母l表示它是一个连接,在最后由箭头指出它所指向的具体目标.(这里的换行是为了阅读的方便)

  明白了这个,在以后需要更换XServer的时候就可以通过改变这个联系来实现了,具体命令如下:

  ln-sf/usr/X11R6/bin/X???????/usr/X11R6/bin/X

  其中问号代表的字母根据具体情况决定.有些时候,由于这个连接不正确,导致无法运行XWindow,这时可以使它指向XF86_VGA16,使用16色的VGA模式进入XWindow,注意如果需要运行XF86Setup程序(是个图形界面的XWindow配置工具程序),那么这个XF86_VGA16驱动一定要存在,这是由于该驱动所提供的显示模式

  是一般显示卡和显示器都支持的,故该配置程序使用此XServer为驱动.当用户的显卡是比较特殊的型号时,需要装特定的驱动程序,也需要作此工作.

  驱动程序的获得有多种途径,一般的Linux发行版本都提供了丰富的驱动程序,可以满足大部分要求,比较特殊的驱动程序,可以在网上获得.当然现在Linux对硬件的支持还不是很完善,但这已经超出了本文档的访问,不在作更多的表述.

  2.显示模式

  显示模式包括分辨率,扫描频率,色深等等.这也是网友在显示方面提问最多的一个问题.对于现在的显示卡和显示器,一般都可以使用1024x768x16bit色的显示模式.当然保险起见,在使用下面所叙述的方法设置您所使用的显示模式的时候,请确定您的显示卡和显示器能够达到该模式的要求,否则可能会有损坏硬件的危险.

  在各发行版本中,都会提供一些设置XWindow的工具软件,如Xconfigurator,XF86Setup,XF86Config等等,这些程序无一例外的是提供了一个修改XWindow的配置文件XF86Config的简便方法.当然使用起来比较方便,但是对于一些需要灵活调整的场合就不是非常适合,需要手动调整配置文件中的参数达到最好效果.您不必一定这样做,这里只是介绍这样一种方法,使您可以在有疑问的时候方便地解决.

  

  一般这个文件是存在于/usr/X11R6/lib/X11/目录下,在/etc或者/etc/X11目录中有它的一个符号连接.它是一个文本文件,可以使用vi对它进行修改.下面对该文件中各部分的作用做个详细的介绍.(如有遗漏,欢迎提出)

  在这个文件中有这样几个概念:段(Section)和子段(Subsection).每个段或子段分别给出了不同的参数,格式分别为:

  Section

  ......

  Endsection

  Section

  Subsection

  ......

  Endsubsection

  Endsection

  一个完整的配置文件中包含六个段,分别是File(文件),SeverFlag(服务器特殊标志),Keyboard(键盘),Pointer(指示设备,一般是鼠标),Monitor(监视器),Device(显示适配器,即显卡),Screen(屏幕设置信息).

  File段:这一段指示出一些运行XWindow所需要的文件的位置,比如颜色的别名文件rgb.txt(注意这里是不需要写出该文件的扩展名),比如:

  RgbPath"/usr/X11R6/lib/X11/rgb"

  如果您看过/usr/X11R6/lib/X11/rgb.txt的内容,你会很容易的知道它是干什么用的.有了它,你可以使用red1代表RGB颜色值25500等等.

  接下来是字体文件的路径,这里的设置将影响到中文字体的输出.这里对路径的设置可以是多个,例如下面的这样:

  FontPath"unix/:-1"

  FontPath"/usr/share/zhfont/X11:unscaled"

  FontPath"/usr/share/zhfont/TTF"

  FontPath"/usr/X11R6/lib/X11/fonts/local"

  FontPath"/usr/X11R6/lib/X11/fonts/chinese"

  FontPath"/usr/X11R6/lib/X11/fonts/TTF"

  FontPath"/usr/X11R6/lib/X11/fonts/Type1"

  FontPath"/usr/X11R6/lib/X11/fonts/Speedo"

  FontPath"/usr/X11R6/lib/X11/fonts/misc"

  

  FontPath"/usr/X11R6/lib/X11/fonts/75dpi"

  FontPath"/usr/X11R6/lib/X11/fonts/100dpi"

  在使用一个字体目录之前,需要使用mkfontdir命令把一条路径中的字体作个列表,在该目录中生成font.dir作为对字体的索引,如:

  mkfontdir/usr/X11Ry/lib/X11/fonts/100dpi

  具体该命令的用法,请使用man命令查看其manpage(手册页),或者会在本文档的后续版本中提供详细的说明.

  ServerFlag段:这个段指明了一些具体的参数,如下:

  NoTrapSignals这个标志将使调试信号对XServer不起作用.调试信号会使XServer"转储核心",把内存中有关的XServer的信息存储到硬盘上,即所谓的"Coredump".这样的目的是便于对XServer进行调试.

  DontZap 这个标志将使 X Server 收到 "Ctrl + Alt + Back Space" 键组合发出的信号时 *不* 停止工作. 当然一般是不建议使用的.

  DontZoom 这个标志使 X Window 不能在各种图形模式之间进行切换. X-Window 的缺省状态是在用户设定了多组分辨率, 刷新频率和颜色的组

  合的情况下, 运行 X Window 的过程中可以通过 Ctrl + '+' 和 Ctrl + '-' 两组键的组合在多个图形模式之间进行动态切换.

  Keyboard 段: 这个段指明了 X Window 环境中所使用的键盘映射以及其他一些参数. 如下是作者的键盘配置:

  Section "Keyboard"

  Protocol "Standard"

  AutoRepeat 50
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,