大家都说好记性不如烂blog

博客园 首页 新随笔 联系 订阅 管理

  老看到有人在BBS上问关于X Server配置的问题, 这也许是安装linux的一个难点 问题吧, 稍微总结了一下, 写了这个"攻略", 希望X Server没配好的网友都能看一下, 希望不会再有最新显卡只能用320x200之类的问题 icon_smile.gif 都是很初步的介绍

  首先明确一下X Server的概念, 由于X这个Server/Client关系与通常的有点不一样, 老有网友搞不清楚. 简单地说, 所谓X Server, 指的就是负责接收键盘鼠标输入和负责屏幕输出的程序, 它的作用是屏蔽硬件差别, 提供一个设备无关的接口, 而与Server对应的就是client了. 在MS Windows中是没有这个概念的, X采用了这种结构后也许效率上受点影响, 但却带来了network-transparent的好处, 就是说X Server/Client互相独立, 可以在本地, 也可在网络上不同地方, 这就有了MS Win一直难以实现的远程GUI界面功能. 前面的文章已经介绍了, 现在linux主要就有3种X Server, 下面针对其配置方法简单地说一下其特点和配置方法(我推荐用AccelerateX 4.1).

  1. XFree86 http://www.xfree86.org

  假如你对你的显卡了解很清楚, 可以直接开始, 要不然最好先用SuperProbe测一下你的显卡的芯片, 把型号稍微记一下, 省得呆会儿麻烦. 假如你的显卡很新的话,最好用最新版本的(当前3.3.2), 这个对新显卡支持得好一些. XFree86的好处是各种distribution一般都带, 还有好多不同OS的版本, 可以在安装时就装上配置

  我想说一下X11和XFree86的关系, 现在的X Window System由The OpenGroup负责开发(X11R6.4), X11R6主要由X11的库和sample X11 clients组成, 而XFree86主要就是开发i386上的X Server(与硬件相关的). 但在它们distribute时都集成在一起了,如X11R6.4带了XFree86 3.3的Server, 而XFree86中也把X11R6的lib/clients集成在一起了

  XFree86 Servers基本上就是分XF86_Mono(单色), XF86_VGA16(16色VGA), XF86_SVGA(256色或更多), XF86_Accel(加速卡, 如Mach*, S3*等)等几类. XFree86 Server的特点就是一个很大的ELF文件(2M左右), /usr/X11R6/bin下以XF86_打头的就是了, 然后一般是将X做个符号连接到你当前的X Server上.

  XFree86的配置有这几个(注意大小写):

  (1) 基于命令行的xf86config

  这个东西是纯命令行的, 一般安装X时都会装上, 按其提示一步步走就可以了但由于没有Back功能, 选错了只好重来, 不太方便 icon_sad.gif

  (2) 图形界面的XF86Setup

  XF86Setup是个GUI的配置工具, 第一次开始时需要VGA16 Server(你总得有个default X Server才能有GUI吧?), 比xf86config稍微好用一些, 好歹是GUI的

  (3) 基于dialog的Xconfigurator

  假如你用RedHat的话, 还有一个文本方式下基于对话框的也不错, 就是Xconfigurator这个东西挺方便的, 安装RedHat时就是用它配的, 因此实际上你已经用过了

  这些工具实际上的作用就是生成一个Server的配置文件XF86Config. 其实关键是要支持你的显卡硬件, 这个通了, XF86Config就好办了, 改改总能对的. 要注意这个文件存放的地方, RedHat是/etc/X11/XF86Config, Debian/Slackware是/etc/XF86Config. 它的结构也是很清楚的, 就是搞得有点太复杂了, 你也可以手工编辑它来修改. 如你想改Virtual Screen, 那就查Virtual(vi下/Virtual), 然后找到与你的Server对应的Virtual改了就行了, 还有分辨率什么的, 都可手动改

  另外提一下X Server的几个hot key: Ctrl_Alt_+/- 可以动态改变分辨率, 但颜色位数好象没法改, 用X -bpp 15/16/24 等参数来指定X Server的颜色数若你用startx的话就这样 startx -- -bpp 16/24 (startx调用的是xinit, --后面的是传给Server的参数) Ctrl_Alt_BackSpace可以立即退出X.

  2. Accelerated X 4.1 http://www.xig.com

  假如你的显卡特新(如AGP), 那XFree86也许就不行了, 用Accelerated X 4.1吧, 这是个很不错的commercial X Server, 但已经有crack了. 它的最大好处在于其网页上不断地会有最新显卡的updates, 而且都是可以免费download的! 我把一些download下来了,需要的网友可拿去试试. 它的安装就比XFree86简单多了, 解开tgz, 看一下README,运行安装程序, 输入serial就OK了, 十分方便.

  AX的程序装在/usr/X11R6/lib/X11/AccleratedX 下面, 它很模块化的, 显卡, 显示器,键盘, 鼠标几部分, 不象XFree86那样搞成一个大的ELF文件. 另外它的两个可执行文件/usr/X11R6/bin/下面: Xaccel(Server) Xsetup(配置程序)

  它的config文件放在/etc/Xaccel.ini中, 只有很短的几行, 比XF86Config清晰简单多了运行Xsetup时可加参数-text/graphics来分别进文本/GUI配置环境, 不加参数它检测是否有/etc/Xaccel.ini来进不同环境.

  3. MetroLink X Server http://www.metrolink.com

  MetroX Server在Official的RedHat和InfoMagic的CD中是带的, 安装时可以选择安装它或XFree86 Server. 程序都装在/usr/X11R6/lib/X11/Metro下面, 也是模块化的.但这个Metro X Server感觉没有AX 4.1支持的显卡新, 但也有它的用处(如我的老S3 868在AX 4.1上只有256色, 而用MetroX就有16bit色了 *_*)

  可执行文件 /usr/X11R6/bin/下面: Xmetro(Server) configX(配置程序)那个configX是个Motif界面的GUI配置程序, 会自动启动VGA方式的Xmetro Server来运行

  [目录]

  --------------------------------------------------------------------------------

  XF86Config

  配置Xwindow可以用工具来配置,也可以用手工配置。工具有图形界面的Xconfigure和文本界面的xf86config。手工配置为修改配置文件/etc/X11/XF86Config。在这个文件中,#表示注释,也就是这项不起作用。

  这个文件的结构为:

  Section "Section Name"

  Subsection "Subsection Name"

  EndSubsection

  EndSection

  下面简单介绍一下每个Section的配置方法。

  Section "Files"

  指定一些文件的路径,一般用的有:

  RgbPath

  指定RGB数据库文件的路径.一般为/usr/X11R6/lib/X11/rgb

  FontPath

  指定字体文件的路径及相应选项(常见的有是否允许放缩),同时也可以直接从字体服务器来获取字体,如RH现在的做法

  Section "ServerFlags"

  其中一般有三项:

  NoTrapSignals

  跟调试有关,我们一般不用他。

  DontZap

  是否允许ctrl+alt+backspace键退出xwindows,加上#后表允许。

  DontZoom

  是否允许ctrl+alt+数字键盘上的+或-改变屏幕的分辨率。

  Section "Keyboard"

  定义键盘类型,一般不需要修改。

  Section "Pointer"

  定义鼠标类型。

  Protocol

  为鼠标类型,一般有Microsoft,PS/2,MouseSystem等,根据你自己的鼠标类型而定。Device为鼠标的设备,为/dev/mouse,这是一个符号

  链接,一般指向/dev/ttyS0(即DOS的COM1),或者为/dev/ttyS1(COM2)等。

  Emulate3Buttons

  是否模拟3键鼠标,如果是的话,则两键鼠标可以用左右键同时按下的方法来模拟中键。两键鼠标可以用左右键同时按下的方法来模拟中键。

  Emulate3Timeout timeout

  是指在多长的间隔内按下两键则模拟中键。

  Section "Monitor"

  指你的显示器的类型。

  Identifier

  在后头Screen节中要用到,Section节中根据这个Identifier来识别显示器。

  VendorName

  显示器的制造商。

  ModelName

  显示器的型号。

  HorizSync

  水平扫描频率范围(单位:kHZ)。

  VertRefresh

  垂直扫描频率范围(单位:HZ)。

  以上两项要根据你的显示器手册而定,设置不正确的话,有可能烧掉显示器。如果不知道的话,可以用从小到大试

  验的方法找到正确的范围,但一定要小心,发现不正常,立刻用ctrl+alt+backspace退出。一般HorizSync的范围为31.5-31.75左右,VertRefresh为50-70左右,也有能达到100的。

  Modeline

  显示的模式

  其中有很多行,即很多种模式,会自动选择一种最好的模式进入,因此,不必把其它不需要的模式,比如640x480删掉。

  格式为:Modeline "类型名称" 类型描述其中类型描述分为4个部分,前3个部分是必须有的。第一个部分为1个数字,是你的显示器的时钟频率,第2个部分包括4个数字,第一个为水平的象素个数,其它3个数为水平扫描的起始和结束范围。第3个部分同第2个部分,只是确定的是垂直的内容。第4个部分为Interlace,DoubleScan,±HSync,±VSync,±CSync,Composite和HSkew。DoubleScan说明每行都要扫描两遍。这些一般都用的不多。

  Section "Device"

  显卡的类型。

  Section "Screen"

  对于每个X的服务器,如XF86_VGA16,XF86_SVGA,XF86_FBDev等,指定它们的配置。

  在启动X时,运行的是哪个X服务器,由文件/etc/X11/X决定。这个文件是一个符号链接。如果你想用XF86_SVGA来启动你的Xwindow的话,就把这个文件指向/usr/X11R6/bin/XF86_SVGA。在这个Section中,Driver指的是这个Section是针对哪个服务器的。Device和Monitor为使用哪个显示器和显卡。里头一般有SubSetion "Display",设置显示时的一些参数。Depth指颜色深度,8,15,16等。Modes指使用哪种显示模式。"640x480","800x600"等。ViewPort指进入后,真实屏幕在虚屏上的位置。

  要了解更详细的关于XF86Config的配置信息,可以在提示符下输入如下命令:

  #man XF86Config

posted on 2010-12-10 15:11  leqiangw  阅读(1663)  评论(0编辑  收藏  举报