老看到有人在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
首先明确一下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