您现在的位置: 万盛学电脑网 >> 操作系统 >> Linux教程 >> 正文

设置和修改X

作者:佚名    责任编辑:admin    更新时间:2022-06-22

class="22304"> 许可证:;

本文档的发布遵循;DGPL,;任何人有权免费获得,;阅览,;
转载和发布本文档,;不得用于任何形式的商业用途.;

本文档现在由;Rocky;S.;Lee;进行维护,;任何人可以对;
其中存在的遗漏,;错误进行修改和指正.;修改者名单将列于;
本文档的作者名后.;


简短说明:;

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

本文档修改版本将在今后进行发布,;关注本文档的;Linux;用户可以敬请留意;
以下站点:;

华南木棉;BBS;bbs.gznet.edu.cn;
中国;Linux;论坛;www.linuxforum.net;
西十八;BBS;bbs.x18.scut.edu.cn;

一.;X;Window;工作方式略谈;

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

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

X;Window;的运行分为四层.;最底层的是;X;Server(服务器),;提供图形界面;
的驱动,;为;X;Window;提供服务.;上面的一层是用于网上通信的网络协议;--;X;
网络协议.;这部分使远程运行;X;Window;成为可能.;只需要在服务器上运行一个;
X;Server,;而客户机;(Client);上运行更上一层的程序,;则可以实现;X;Widow;的;
远程运行.;再往上的一层是称作;Xlib;的低层函数接口,;介于网络和和基础系统;
于较高层的程序之间.;应用程序的实现是通过调用这一层的函数实现的.;最顶层;
就是管理窗口的窗口管理器了,;也就是一般所说的;WM;(Window;Manager).;在这;
一层的软件是用户都比较常接触的,;比如;fvwm,;AfterStep,;Enlightment;以及;
WindowMaker;等等.;

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

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

二.;关于;X;Window;的设置;

1.;X;Server;

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

XF86_3DLabs;XF86_Mono;XF86_I128;XF86_VGA16;
XF86_P9000;XF86_8514;XF86_Mach32;XF86_S3;
XF86_W32;XF86_AGX;XF86_Mach64;XF86_S3V;
XF86_FBDev;XF86_Mach8;XF86_SVGA;

如果你的;/usr/X11R6/bin;下面没有上面某个文件或者多了某个文件,;不必在;
意,;这主要决定于你的机器的硬件.;其实一般只需要跟自己硬件相配套的驱动即可.;
比如作者正在使用的机器上使用的是;3D;Lab;Permedia;II;的芯片的显示卡,;因此;
只有;XF86_3DLabs;是有作用的.;

如此之多种类的显示适配器驱动程序,;系统当然需要一个固定和统一的方法去;
访问它,;一般说来,;系统是使用一个名为;X;的符号连接去访问具体的;X;Server;的.;
这个;X;也同样是存在于;/usr/X11R6/bin/;目录中,;可以使用如下命令打印他的具;
体指向:;

ls;-l;/usr/X11R6/bin/X;

得到的结果如:;

lrwxrwxrwx;1;root;root;8;Dec;14;03:40;
/usr/X11R6/bin/X;->;XF86_3DLab;

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

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

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

其中问号代表的字母根据具体情况决定.;有些时候,;由于这个连接不正确,;导致;
无法运行;X;Window,;这时可以使它指向;XF86_VGA16,;使用;16;色的;VGA;模式进入;
X;Window,;注意如果需要运行;XF86Setup;程序;(是个图形界面的;X;Window;配置工;
具程序),;那么这个;XF86_VGA16;驱动一定要存在,;这是由于该驱动所提供的显示模式;
是一般显示卡和显示器都支持的,;故该配置程序使用此;X;Server;为驱动.;当用户的;
显卡是比较特殊的型号时,;需要装特定的驱动程序,;也需要作此工作.;

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

2.;显示模式;

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

在各发行版本中,;都会提供一些设置;X;Window;的工具软件,;如;Xconfigurator,;
XF86Setup,;XF86Config;等等,;这些程序无一例外的是提供了一个修改;X;Window;的;
配置文件;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;段:;这一段指示出一些运行;X;Window;所需要的文件的位置,;比如颜色的别;
名文件;rgb.txt;(注意这里是不需要写出该文件的扩展名),;比如:;

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

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

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

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;命令查看其;man;page;(手册页),;或者会;
在本文档的后续版本中提供详细的说明.;

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

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

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

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