X-windows简易设置(转)
1.
什�是 X Window System
1.1
我是否需要�用 X Window System
1.2
X Window 的�展�史
1.3
X Server/X Client/X Window Manager 的��
1.4
X Window �用的流程
2.
� X Server 有�的�定�
2.1
手�修改 xorg.conf 或 XF86Config
2.2
X Font Server (XFS)
2.2
/etc/inittab
2.4
利用 Xorg / XFree86 ��定��的�定�
3.
更新�示卡��程式的�例: NVidia ��程式
4.
��克服
5.
本章����
6.
�考�料
7.
��本文的建�:http://phorum.vbird.org/viewtopic.php?t=23897

什�是 X Window System
在 Unix Like 的系��中,可以利用滑鼠�����行�形化介面的操作,那就是
Graphical User Interface (�� GUI)介面啦!而我�����形介面�� X Window System。
�什��� X 呢?因�就英文字母�看, X 是在 W(indow) 後面,因此,
早期人�就���一版的�窗介面� X �!
事�上, X Window System 不是很容易理解,尤其是我���有接�到�路主�伺服器方面的介�。
不�,��如何,要� X 有一些概念的�,�是得要介�一下他的�作原理才行啊~��筋~
底下�哥�就 X Window 的相�知�作���的介�啊!

我是否需要�用
X Window System
在�始之前,�是得就������明�明。一般��,如果您的 Linux 主�定位�
Network Servers 的�,那�由於 Linux �面的主要的服�的�定�都是 ASCII
�文字的格式�案,相�的容易�定的,所以啊,根本就是不需要 X Window 存在呢!
因� X Window �是 Linux 系��的一���而已啊!
但是�一您的 Linux 主�是用�作�您的 Desktop 桌上��用的,
嘿嘿!那� X Window �您而言,就是相�重要的一�咚咚了!因�我�日常使用的�公室��,
都需要使用到 X Window �形的功能呢!此外,以�哥的例子��,
我之前接�到的�值分析模式,需要利用�形�理�����料�取出�,
所以在那部 Linux 主�上面,我一定需要 X Window 的。此外,由於�理的��有��,
其中一�需要使用到 3D 的加速功能。但 Linux ��的�示卡��程式� 3D 的加速功能有限,
此�,俺就得要重新安��示卡��程式呢!��筋~
回�到主�上面,除了主�的用途�定您是否需要�用 X Window 之外,
主�的『配�』也是您必�要考�的一��定性因素。
因� X Window 如果要美�,可能需要功能���大的 KDE 或 GNOME 等�窗管理�(Window
Manager)的�助,但是����然大物�於系�的要求又很高,
除了 CPU 等�要�,RAM 要足之外,�示卡的等�也不能太差~
所以,早期的主�可能�於 X Window 就�有�法具有很好的效率了。
也就是�,您如果想要玩 X Window 的�,特�需要考�到���:
- �定性:
X Window �是 Linux 上面的一�套件 (或者也可以��服�),
您不能� X Window � Linux 的整合有太高的期望的,�然目前的 X window
已�整合得相�好了。此外,任何程式的��都或多或少�有些臭�,
X �然也不例外。因此,在您的 Linux server 上面�用 X 系�的�,
自然多一�服�的�用,就��生一些不�定性。因此,不是很建�� Internet
�放的伺服器�� X Window 的啦!
Tips:
�哥��始接� Linux (大�是在 1999 年左右)�,
由於不熟,通常都是���他�用 X Window 在我的主�上面的。
不�,那��候的�形介面� Linux kernel 的整合度比�差,
老是��去,是常常造成我其他 Internet 上面的服��法��的原因之一呢!

- 效能:
��怎��,程式在跑�是需要系��源的,所以,多�用了 X 就�造成一些系��源的�耗。
此外,上面也稍稍提到,某些 X 的��是相�耗�系��源的呢!
所以,多起� X 就可能造成您的系�效能的低落哩!

X Window
�展�史
X Window 最早是由 MIT (Massachusetts Institute of Technology) 在 1984 年�展出�的,
他����咚咚� X 。在���年的�展後,到了 1987 年推出 X11 ���秀的版本,
��改良後,再推出了 X11R6 (X11 版本的第 6 次 release 的意思)��版本。
目前我�看到的各大 Linux distributions 均是使用 X11R6 �� X 版本哩!
(所以您才�常常看到您的 Linux 主��面,
怎��有��多的 X11 � X11R6 的目�啊!呵呵!)
X11 �展了一段��後,由社群�起的一��� XFree86 的�� (
http://www.xfree86.org/
)
持�在�� X11R6 的功能性,包括�新硬�的支援以及更多新增的功能等等。
�初定名� XFree86 其�是根� 『 X + Free software + x86
硬� 』而�的呢。早期 Linux 所使用的 X Window 的主要核心都是由 XFree86
����所提供的,因此,我�常常� X server � XFree86 �上等�的�~
而 XFree86 �� X11R6 也有持�在改良,也推出了 version 3 � version 4 ��版本,
目前我�看到的新的 distribution �乎都是使用 version 4 版本,
不�在 2001 年以前的版本,�通常�是使用 XFree86 version 3 的版本呢!
除了 XFree86 ����之外,在 2004 年成立了另一��� X 系�架�的��,那就是
Xorg (
http://www.x.org/
)
����啦!Xorg 是由多���所共同�起的,主要的目的是希望可以持��� X11R6
,使可以� X Window System 更有效率的�用在工程上面。同�, Xorg 也是自由��喔! ^_^
Tips:
基本上,目前我��� X Window system 的,��是 X11R6 ��版本的 X 系�。
而����系���展的除了 XFree86 ��之外,在 2004 年�生的 Xorg
����也� X11R6 ��行����展。
��生������� X11R6 的可能原因��是目的的不同, Xorg
官方�站上面明白的宣示,���主要是希望可以�工程�用更加的有效率~
而我�的 Fedora Core IV 使用的是 Xorg ��所��的 X11R6 版本喔!^_^
此外, XFree86 � Xorg ��他�自己�展的 X11R6 都有版本的�分,
版本的��是不一�的。�例��, XFree86 分� 3.xx � 4.xx 版本,
而 Xorg �� 6.8.xx 等等。


X Server / X
Client / Window manager 的��
X Window System �什����秀呢?因�他有相��良的 X Server/X Client ��系�。
什�是 X Server � X Client 呢?X 在��的�候,
就希望可以�到多人���入主�利用�形界面的功能,於是他便�展出��的一�主�架�。
��主�架�可以�使用者在任何一部��以�路的方式��到主��操作�形界面的功能,
是一�相�棒的��呢~不� X Server � X Client 的意����路上的 Server/Client
意�不同喔~底下我�就��一� X Server/X Client 的功能。
X Server 的主要功能 ( 不�是 Xorg 或是 XFree86 都是一� X server 喔!)
就是在管理 X Server 所在主�上面�於�示的硬�配�啦~
例如�示卡、�幕解析度、��形式、滑鼠形式等等。如果以 Linux 上安� X server �例,
您���~咦!�示卡、�幕以及��滑鼠的�定,不是在��的�候,
Linux 系�以 /etc/sysconfig 目�下的 keyboard/mouse 等�定�就�好了�?
呵呵~�是因� X Window 在 Linux �面�能算是『一套很棒的��』,
所以 X Window 有自己的�定�,您必�要��他的�定��定妥�才行。
也就是�, Linux 的�定� X Server 的�定不一定要相同的!
因此,你在 Linux 的 run level 3 想要玩�形介面�,就得要�入 X Window
需要的��程式才行~�之, X Server 的主要功能就是在管理『主�』上面的�示硬����程式。
您����哥一直��一件事情,那就是『 X Server 所在的主�』,�是怎�回事啊?!
��我�不是提到 X Window System 最早是希望可以�到多人��的目的�?!
就是很多人都可以使用 X ����入主�的意思,但是每部���入
Linux 主�的用�端��的硬��不一�啊~���候�然就�法使用 Linux
上面的硬���示�料�~您��吧?!否�您在用�端利用 1MB �示卡���的系�,
可能�示出 Linux 主�的 1024x768x24bit 色彩�解析度�?!�然不行~�吧!?
也就是�:『每部想要�示 X 的主�都需要有 X Server』啦~
所以,您的 Window PC �然也需要 X Server �管理�示介面,��才能�� Linux
主��行�形介面的�通啊!更多的�於用�端��到 Linux 主�端的方法,��考
�哥的 Linux 私房菜--伺服器篇:�端��伺服器
的介��~
X Server �有一�重要的工作,那就是��自�入�置(如��、滑鼠等)的�作告知 X Client,
您�得, X Server 既然是管理�些周�硬�,所以,周�硬�的�作�然是由 X Server �管理的,
但是 X Server 本身�不知道周����些�作�造成什��示上的效果,
因此 X Server ��周���的�些�作行�告知 X Client ,� X Client 去��筋~
前面提到的 X Server 主要是管理�示介面�在�幕上��,同���入�置的行�告知 X Client,
此� X Client 就�依����入�置的行���始�理,最後 X Client �得到『
嗯!���入�置的行���生某��示』,然後����示的�示�料回�� X Server ,
X server 再根� X Client ��的���料�他描�在自己的�幕上,�得到�示的�果。
也就是�, X Client 最重要的工作就是�理�自 X Server 的�作,���作�理成����料,
再��些���料�回� X Server �~
��例子��,�我�在 X Window 的�面中,�滑鼠向右移�,那他是怎�告知 X Server � X Client 的呢?
首先, X server ���到滑鼠的移�,但是他不知道��怎���啊!此�,他�滑鼠的���作告知 X Client,
X Client 就�去�算,�果得到,嘿嘿!其�要�滑鼠指�向右移���位素,然後����果告知 X server ,
接下�,您就�看到 X Server �滑鼠指�向右移��~
��做有什�好�啊?!最大的好�是, X Client 不需要知道 X Server 的硬�配��作�系�!
因� X Client ��就是在�理��的�料而已,本身是不��的。所以,在用�端的 X Server 用的是什�硬�?
用的是哪套作�系�?主�端的 X Client 根本不需要知道~相�的先���秀~�吧! ^_^
整��作流程可以�考下�:用�端用的是什�作�系�在 Linux 主�端是不在乎的!

�一、X Window � X Client 的�通示意�
��好~在 Linux 上的 X Window System 中,X Server � X Client 在同一部 Linux 上面~
真是�好啊~呵呵~好了,接下�再���一下,那�那� Window Manager 又是啥咚咚?
Window Manager 可以�是一�相�特殊的 X client ,他可以提供更多的功能~
包括有:
- 提供�多的控制元素,包括工作列、背景桌面的�定等等;
- 管理��桌面 (virtual desktop);以及
- 提供�窗控制��,�包括�窗的大小、�窗的重��示、�窗的移�、�窗的最小化等等。
��前面提到,X Client 的主要工作是��自 X Server 的�料�理成�����,再回�� X server ,
所以, X client 本身是不知道他在 X Server �中的位置、大小以及其他相���的。
�些�窗位置大小�重��示的功能,�有每��窗上�的��等等,其�就是由 Window manager
所提供的�~
FC4 利用 Xorg ����提供 X server 的核心,同� Xorg 也提供了一���的 Window manager ,
那就是 twm �。不�, twm 的功能�然已�具�了 window manager 最�春的能力,不�,就是太�春~
所以後���的 window manager 大致上都以 KDE 或者是 GNOME �����提供的 window manager
�主�~�����的目的都是要�使用者可以在 Linux 底下使用完整的桌面��能力,
因此�����在 Window manager 底下增加了很多的 X Client ��,而且也加入了很多�公�用��,
��大�接受 Linux ��好�西啊!
那�您知道 X Server / X client / window manager 的��了�?!我�� KDE �例好了,
由於我�要在本�端�� X Window system ,因此,在我�的 FC4 主�上面必�要有 Xorg 的 X server 核心,
��才能�提供�幕的��啊~然後�了��窗管理更方便,於是就加�了 KDE ����的 window manager ,
然後�了�自己的使用更方便,於是就在 KDE 上面加上更多的�用��,包括�入法等等的,
最後就建�出我�的 X Window System �~ ^_^

X Window �用的流程
接下�,我���一�,那�您的 Linux 上�的 X Window System 整���流程是如何呢?
假�您是以 run level 3 登入的好了,那�您要如何�入 X Window System 呢?
很��啊!�入 startx 就可以啦~那您知道 startx �行後,您的 Window manager 是 KDE �是 GNOME ?
�是其他的 window manager �?!�有,您的版面�格配置又是如何呢?�些�料放在哪�啊?!
底下我�就��一��~
我�知道了 X Window system 其�就是 X Server + X client 嘛!然後,
�了��窗管理更方便,於是在 X Client �入 window manager 就是了。
不�,�了要�入�些�料,就必�要�取�定��吧!我�知道 Linux
底下每�人都可以�定好�於自己的�境, X Window 也一�,您可以有自己��的 X �面。
但是,如果您是首次登入 X 呢?也就是�,您自己��有建立自己的�� X �面�,
系�又是�哪��你�� X ���面呢?
事�上,�您�入 startx �,�� startx 的作用就是在�您�定好上�提到的�些�作�!
startx 其�只是一� shell script ,他是一�比��和的程式,�主�的�忙使用者建立起他�的 X
所需要引用的�定�而已。您可以自行研究一下 startx �� script 的�容,
�哥在���就 startx 的作用作�介�。
startx 在�行的�候,他�主�的去�找使用者家目�底下的 .xinitrc 及 .xserverrc ����案,
����案分�是:
- ~/.xinitrc 是 X Client 的�定�料�;
- ~/.xserverrc �是 X Server 的�定�料�。
但是您不�得�有����案,如果�有的�,那� startx 就�主�的以系���的�定���用,
����定�分�在 /etc/X11/xinit/xinitrc � /etc/X11/xinit/xserverrc。不�是您自己的
~/.xinitrc 或者是系�的 xinitrc ,反正最後就是�有一� X Client �一� X Server
的�定��被取用,而您家目�下的 .xinitrc � .xserverrc 是具有�先�就是了。
在取得����西之後,接下�就是以 xinit ��程式��行 X Client � X server
的��了!
除此之外, startx 後面�可以接��喔!�些��可以取代 .xinitrc � .xserverrc 的�定。
�例��,您想要�您的 X 色彩深度是 16 bit (色彩深度就是所使用的色彩啦!),那�就可以:
[root@linux ~]# startx [X client option] -- [X server option]
[root@linux ~]# startx -- -depth 16
startx 後面接的��以����『--』隔�,前面的是 X Client 的�定,後面的是 X Server 的�定。
因�色彩深度是� X Server 有�的,所以���然是�在 -- 後面�,於是就成了上面的模�!
由於 startx 後面加的��可以取代��值,因此您就可以使用 16 位元色彩度�入 X �。
事�上,��在�� X 的,就是 xinit �支程式啦~他的�法是:
[root@linux ~]# xinit [client option] -- [server or display option]
那� client option � server option 如何下�呢?其�那��咚咚就是由�� startx 去找出�的啦!
在我�透� startx 找到��的 xinitrc � xserverrc 後,就交� xinit ��行。
在��的情�下 (使用者尚未有 ~/.xinitrc 等�案�),您�入 startx ,
就等於�行 xinit /etc/X11/xinit/xinitrc --
/etc/X11/xinit/xserverrc ��指令一般!���了�?
所以呢,重��然就是 /etc/X11/xinit/ 目�下的 xinitrc � xserverrc ����案的�容是啥�~
底下我�就分���一�����案的主要�容���的方式~
假�您的家目���有 ~/.xinitrc ,�此� X Client �以 /etc/X11/xinit/xinitrc
�作��� X Client 的�� script 。xinitrc ���案��很多其他的�案��引��,
包括 /etc/X11/xinit/xinitrc-common � /etc/X11/xinit/Xclients �有
/etc/sysconfig/desktop 。您可以�考 xinitrc 後去搜�各��案��解彼此的��。
重�是, xinitrc �依�上述�些�案的判� (要注意,每� distributions 他�的
�定�案放置的地�都不太一�~) ,�搜�出要��的 window manager 是哪一�?
�例��,在 FC4 底下, xinitrc ���案��由分析出 /etc/sysconfig/desktop 的�定,
��始�行 startkde 或者是 gnome-session ��� window manager 其中之一。
意思是�,如果您在 /etc/sysconfig/desktop �定是 KDE 的�,那���就�以
KDE ���您的 X Window �。
等一下我��以 KDE 的流程�介�整� X Client 如何��的�程,��目前�指出到��。
而在 X Client �行完�後,接下�,�然就是 X Server 的�程了!
Tips:
不�怎��,�哥�是希望大家可以透�解析 startx �� script 的�容去找到每��案,
再根�分析每��案�找到您 distributions 上面的 X 相��案~
�竟每�版本的 Linux �是有所差�的~

在上面的步�中,我��看到 xinitrc 引入了 /etc/sysconfig/desktop 的�定,
已取得系���的 window manager 之後,接下��是正�的分析� window manager 是否存在,
若存在�����,若不存在�以其他存在的 window manager �����。
因此,即使您 /etc/sysconfig/desktop �定��,系��是�以��的可能存在的 window manager
�����的。
如果是以 KDE ���的�,系�就�主�去搜� startkde ���行�。其� startkde 也只是一� script,
他包含了很多 KDE 需要的�定�料,��的 KDE 相���考 KDE 的官方�站�~
如果您去查� /etc/X11/xinit/ 目�的�,���,根本就�有 xserverrc ���案啊!
那我家目�也�有 .xserverrc ,���候系��怎�做呢?其���只是�行 xinit 的�候,
系�的�� X Client � X Server 的�容是��的:
xinit xterm -geometry +1+1 -n login -display :0 -- X :0
那� xterm 是 X �窗底下的���端�,後面�接一�『 -display :0 』
表示�����端�是��在第 :0 ��示介面的意思。而我���的 X server 程式就是 X 啦!
其� X 就是 Xorg 或 XFree86 的���,亦即是 X Server 的主程式�!
所以我��� X �挺��的~直接�行 X 而已。如果��以上面的�容���您的 X window �,
您就��� tty7 有�面了!只是.....很�~因�我���有�� window manager 啊!
在�� X Server �,�去�取 X Server 的�定�,在 Xorg 使用的是 /etc/X11/xorg.conf ��,
至於 XFree86 �是使用 /etc/X11/XF86Config (注意大小�) ���定�。�����定�的�容,
我��在下�小�介�。反正 X Server �取�定�如果一切 OK 就�在 tty7 �利���~
而���行的 X Client 就�����料�送� X Server 呢!最�您就能看到漂亮的 X �~
不�要注意的是,如果您的 xinitrc �定��面有��的 x client 很多的�候,千�注意�除了最後一�
window manager 或 X Client 之外,都放到背景�面去�行啊!�例��,像底下��:
xclock -geometry 100x100-5+5 &
xterm -geometry 80x50-50+150 &
exec /usr/X11R6/bin/twm
意思就是�,我��了 X ,�且同��� xclock / xterm / twm �三� X clients 喔!
如此一�,您登入 X 就有�三�咚咚可以使用了!如果忘�加上 & 的符�,那就.....
��系�等待啊,而�法一次就登入 X 呢!
最後我�知道,透� startx 可以取得 X Client � X Server 的相��定�料,亦即 xinitrc � xserverrc ����案。
����案可以� xinit �支程式���我�的 X Window ,而透� xinitrc 可以�定需要��的 window manager
是哪一�,至於透� xserverrc �能�解 X Server 使用的是那�主程式。通通�用後,就可以得到我�的 X �。
更多的 xinit 用法可以�考 man xinit ,而 X 的用法� man X �~
另外,其� X Server 是���至少一� port ��� X client 的要求的,那就是��的 port 6000 �。
不�,我�的 X 其�是很有�性的,可以�有多� port ���不同 X Client 的需求,
�也是未�我��到伺服器架�� VNC (Virtual Network Computing) 伺服器的特色。
但是在 X Window System 的�境下,我�� port 6000 �第 0 ��示介面,亦即� hostname:0 ,
那� hostname 通常可以不�,所以就成了 :0 即可。
那���的 X �面是放在哪一��端� (tty) 呢?在��的情�下,第一���的 X
(不�是��在第�� port number) 是在 tty7 ,亦即按下 [ctrl]+[Alt]+[F7] 那��面。
而起�的第二� X (注意到了吧!可以有多� X 同���在您的系�上呢) ���在 tty8 亦即
[ctrl]+[Alt]+[F8] 那��面呢!很神奇吧! ^_^
因�主�上的 X 有多�,因此,�我�在�� X Server / Client �,
��都要�明� X Server / Client 主要是提供或接受�自哪� display 的 port number 才行。
如果您的 X ��在 :1 �,那就是 port 6001 啦!
好了,我�可以��� X Server � X client 的架��做���的��喔!
底下�些�作您必�先以 run level 3 登入,�且�定主�上面已�安�了 X Window System ,
�且您必�要在主�前面,不可以 ssh 之�的��程式�入做底下的�作啊!
另外,如果是 FC4 的使用者,�得� xfs 服���喔!
1. 先���第一� X 在 :0 �面中:
[root@linux ~]# X :0 &
# X 是大�,那� :0 是�在一起的,至於 & �是放到背景去�行。
# 此�可以使用 netstat -tulnp 查看看有�有那� port 6000 出�啊!
# 另外,此�系��主�的跳到第一��形介面�端�,亦即 tty7 上喔!
# 所以如果一切�利的�,您��可以看到一� X 的滑鼠游�可以�您移�了。
# ��面就是 X Server ��的�面�!��的,而且�有什� client 可以用啊!
# 接下�,�按下 [ctrl]+[alt]+[F1] 回到��下�指令的�端�:
2. �入��可以在 X �中�行的���端�
[root@linux ~]# xterm -display :0 &
# 那� xterm 是必�要在 X 底下才能��行的�端�介面。
# 加入的�� -display �是指出�� xterm 要在那� display 使用的。
# 此��按下 [ctrl]+[alt]+[F7] 去到 X �面中,您���多了一��端��~
# 不�,可惜的是,您�法看到�端�的��、也�法移��端�,
# �然也�法�整�端�的大小啊!我�回到��的 tty1 然後:
[root@linux ~]# xterm -display :0 &
# 又多一��端�,去到 tty7 查�一下。唉~�有多出一��端�啊?
# �是因����端�重�了~我�又�法移��端�,所以只看到一�。
3. �入可以管理的 window manager
[root@linux ~]# twm -display :0 &
# 回到 tty1 後,用最��的 twm ���窗管理��管理我�的 X 吧!
# �入之後,去到 tty7 看看,用滑鼠移�一下�端�看看?可以移�了吧?
# 也可以�小放大�窗�~同�也出�了��提示�~也看到���端�啦!
# �在�於知道�窗管理�的重要性了吧? ^_^
4. 增加另一� X 在系�中
[root@linux ~]# X :1 &
# 如果您又重��行一次 X 的�,那��次的 X �示就�出�在 tty8 底下,
# 那再�入一次呢?亦即 X :2 & 呢?很��啊! tty9 也有 X 出��~�害吧!
5. �所有��建立的 X 相�工作全部�掉!
[root@linux ~]# kill %6
[root@linux ~]# kill %5
[root@linux ~]# kill %4
[root@linux ~]# kill %3
[root@linux ~]# kill %2
[root@linux ~]# kill %1
很有趣的一�小��吧~透�����,您���� X 使用的 port ,
� Window manager 及 tty7 以後的�端介面使用方式有比�清楚的�解~加油!

� X Server 有�的�定�
�前面的�明�看,我�知道一� X 能不能�用,其�� X Server 有很大的��的。因� X Server ��的是整��面的描�,
所以�有成功�� X Server 的�,即使有�� X Client 也�法����示出�啊。所以,底下我�就�� X Server
的�定��做���的�明,好�大家可以成功的�� X Window System 啊。
基本上, X Server 管理的是�示卡、�幕解析度、滑鼠按���等等,尤其是�示卡晶片的��,真是重要啊。
此外,�有�示的字�也是 X Server 管理的一�。基本上, X 的�定�都是��放置在 /etc/X11 目�下,
而相�的�示模�或上面提到的��模�,�主要放置在 /usr/X11R6 底下。
比�重要的是字型��晶片�,她�主要放置在:
- 字型: /usr/X11R6/lib/X11/fonts
- �示晶片: /usr/X11R6/lib/modules/drivers
在 FC4 底下,我�可以透� chkfontpath ��指令�取得目前系�有的字型�案目�。
�些都要透�一��一的�定����,那就是 X server 的�定�啦。不� XFree86 � Xorg �����的�定��名不同,
�然�容是差不多,不�,�是要�分辨一下才行。

手�修改 xorg.conf 或 XF86Config
其�想要知道你的系��面 X Server 到底�自哪���,最��的方法就是利用 X ��指令�取得版本啦。
您必�以 root 的身分�行下列指令:
[root@linux ~]# X -version
X Window System Version 6.8.2
Release Date: 9 February 2005
X Protocol Version 11, Revision 0, Release 6.8.2
Build Operating System: Linux 2.6.9-1.906_ELsmp i686 [ELF]
Current Operating System: Linux linux.dmtsai.tw 2.6.12-1.1387_FC4
Build Date: 02 June 2005
Build Host: tweety.build.redhat.com
Before reporting problems, check http://wiki.X.Org
to make sure that you have the latest version.
有看到 http://wiki.X.Org 吧?那就是 Xorg ��的�站�。此�我�知道�定�就是
/etc/X11/xorg.conf 。
如果您的 X 是 XFree86 的�,那��定�就�是在 /etc/X11/XF86Config
(注意大小�) ��喔!
我�的 FC4 使用的是 Xorg ��所提供的 X11,所以我�的�定�就�在 /etc/X11/xorg.conf 。
接下�,我�要做的就只是修改 xorg.conf ���案而已。之前各大 distribution 提供的例如
xf86config, Xconfigurator 之�的��也都是在修改���定�而已。所以,我�就直接手��查����案吧。
Tips:
其� xorg.conf � XF86Config ����定�的�容�乎一模一�,所以,即使您的 X
是 XFree86 的�,同�可以�用底下的�明喔。

注意一下,在修改���案之前,�必����案�她�份下�,免的改�了甚��西,�致� X server
都�法��的��啊。���案的�容是分成��段落的,每�段落以 Section �始,以 EndSection �束,
�面含有� Section (段落) 的相��定值,例如:
Section “section name”
……..
……..
EndSection
至於常�的 section name 主要有:
要取用的那��目值的�定�。
好了,直接�看看���案的�容吧!�哥我的�示卡是 NVidia 的早期的 GeForce2 MX
的卡,那我的 xorg.conf �容是��的:
[root@linux ~]# cd /etc/X11
[root@linux X11]# cp -a xorg.conf xorg.conf.back
[root@linux X11]# vi xorg.conf
Section "Module"
Load "dbe"
Load "extmod"
Load "fbdevhw"
Load "glx"
Load "record"
Load "freetype"
Load "type1"
Load "dri"
EndSection
# 上面�些模�是 X Server ���,希望能��外�得的相�支援的模�。
# �於更多模�可以搜�一下 /usr/X11R6/lib/modules/extensions/ ��目�,
# �喜�以 X �窗登入�端主�的朋友��, FC4 提供的�� vnc.so 模�可是
# 相�的有趣喔!��考
�哥的 Linux 私房菜伺服器篇--�端登入伺服器
的介�呢
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
# ��玩意�是��的���定�料,重�在於 XkbLayout 那一�,
# 如果�有��的�,我�台�地���都是使用美式����按�的,
# 但是 SuSE �是使用德�����按�,��老是�生��,呵呵,所以,
# 如果你的��老是按出不�的字元,修改��成� us 吧!
# 特�注意到 Identifier 那一�,那�是在�明,我����的�定�,
# 被定��名�是 Keyboard0 的意思,��名�最後�被用於 ServerLayout 中
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "yes"
EndSection
# ���主要在定�滑鼠。�哥用 ps2 滑鼠,所以��是��的模�。
# 如果您使用的是 usb 滑鼠,��可能就不�是跟我一�的情�了。
# 比�有趣的是那� Emulate3Buttons ,意思是模�三�,
# 如果您的滑鼠本身就有三按�,��就不要�定啊
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "unix/:7100"
EndSection
# 我�的 X Server 很重要的一�就是必�要有字型,
# �� Files 的�目就是在�定字型的地方。�然啦,您的主�本�就必�
# 要有字型�才行。一般字型�就是放置在 /usr/X11R6/lib/X11/fonts。
# 那� Rgb 是�色彩有�的�目。
# 基本上,如果我�要填� 100dpi 的字型,可以��做:
# FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
# �所有需要的字型都重�以上面�一行填�即可。但是, FC4 有更好的方法,
# 那就是利用 X Font Server, xfs �� daemon ��一管理,因此,
# 上面的�定值就�只剩下 "unit/:7100" 而已,那�明的是,我�的 xfs
# 服�是��在 unix socket 7100 那��料��上面。
# 也因�如此,所以我�在�� X server 之前,�必要先�� xfs 才行啊,
# 否� X �告知我��,找不到 font 呢。相�的��我�在下一���明。
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "ADI GD910T"
DisplaySize 370 280
HorizSync 30.0 - 80.0
VertRefresh 50.0 - 100.0
Option "dpms"
EndSection
# �幕的�定�有一�地方要注意,那就是垂直�水平的更新�率。
# 在上面的 HorizSync � VerRefresh 的�定上,要注意,不要�定太高,
# 以�哥的�定�例,我��有�定很高喔,��玩意��更新�率有�。
# �定太高的�,���� monitor ��呢,要很注意啊。
Section "Device"
Identifier "Videocard0"
Driver "nv"
VendorName "Videocard vendor"
BoardName "NVIDIA GeForce 4 (generic)"
EndSection
# �地方重要了,�就是�示卡的晶片模��入的�定�域。
# 因��哥的�示卡是 NVidia 的,所以就使用 Xorg ��提供的 nv 模�,
# 那�模�就是� NVidia 用的啦。更多的�示晶片模�可以�考底下��目�:
# /usr/X11R6/lib/modules/drivers/
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 16
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768" "800x600"
EndSubSection
EndSection
# 那� screen 是甚��西啊? 其�就是��幕有�的
# 解析度啦、色彩深度啦等等的,�有一���色彩深度 (DefaultDepth)。
# 您���,在 screen �面�有一� subsection "display" �吧?
# 那�是段落�的段落,也就是�,screen �面�可以�定多��示�目,
# 以上面的段落��,我的 screen (�幕) �可以�� 16bit � 24bit (Depth)
# 色彩度��定解析度 (Modes) 呢。而��的情�就是 16 bit 色度
# (看的是 DefaultDepth 那��目啊!)
# 以�哥��,我本人比�喜� 16bit 色彩深度� 1024x768 的解析度,因此,
# �哥常常在����定一� subsection "display" 而已,�容有�像:
# SubSection "Display"
# Viewport 0 0
# Depth 16
# Modes "1024x768"
# EndSubSection
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
# 我�上面�定了��多的�目之後,最後整� X Server 要用的�目,
# 就通通一骨�的�他�入��就是了,包括��、滑鼠以及�幕啊。
上面�定完�之後,就等於�整� X Server �定妥�了,很��吧。
如果您想要更新其他的例如�示晶片的模�的�,就得要去硬���商的�站下�原始����才行。
�定完�之後,您就可以�� X Server 是看看�。基本上,如果您的 Files 那��目用的是直接�入字型的路�,
那就不需要�� XFS (X Font Server),如果是使用 font server �,就要先�� xfs :
[root@linux ~]# /etc/init.d/xfs start
[root@linux ~]# startx
�然,您也可以利用 init 5 ��指令直接切�到�形介面的登入��看看�。

X Font Server (XFS)
我���上面提到了要�� X Server �,根�的�定�是 /etc/X11/xorg.conf ,
但是在���定��面�於字型的�定可以使用 X Font Server ��一管理。那�
xfs 的�定�又在哪�呢?�就涉及了字型�放置的地�了。
我�知道目前的字型放置在哪�呢?就是 /usr/X11R6/lib/X11/fonts/ ��目�下的其他目�。
而�一管理 xfs 的��程序是在 /etc/init.d/xfs ,分析其中的 script �果知道�定�在
/etc/X11/fs/config ,查��案�容��:
[root@linux ~]# vi /etc/X11/fs/config
# allow a max of 10 clients to connect to this font server
client-limit = 10
# when a font server reaches its limit, start up a new one
clone-self = on
# where to look for fonts
catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled,
/usr/X11R6/lib/X11/fonts/Type1,
/usr/share/fonts/default/Type1,
,
/usr/share/fonts/zh_CN/TrueType,
/usr/share/fonts/zh_TW/TrueType
# in 12 points, decipoints
default-point-size = 120
# 100 x 100 and 75 x 75
default-resolutions = 75,75,100,100
# use lazy loading on 16 bit (usually Asian) fonts
deferglyphs = 16
# how to log errors
use-syslog = on
# don't listen to TCP ports by default for security reasons
no-listen = tcp
上面���案的�定重�在 catalogue 那��定�目�中。
您可以使用 chkfontpath ��指令�列出目前支援的字型�案,也可以直接修改呢!
而您如果�想要使用其他的特殊按�,�可以��使用 xmodmap 哩!

/etc/inittab
我�由前面知道 run level 5 可以主�的�入 X �窗系�,
而修改 run level 的�定�料可以查� /etc/inittab �的����:
[root@linux ~]# vi /etc/inittab
id:3:initdefault:
.....(略)......
x:5:once:/etc/X11/prefdm -nodaemon
看到了�?那� id ��的�目就是�������的 run level �定值,
至於那� x ��的�定�目,�是在�明如果以 run level 5 ���,
需要�外�行的程式,就是 /etc/X11/prefdm ��程式�。
��分析一下 prefdm �案,�容其�也只是要藉由 /etc/sysconfig/desktop
���定��分析出���行的 Window manager �!

利用 Xorg / XFree86
��定��的�定�
我�在上面提到了�於手�修改 xorg.conf �� X Server 的�定�。但是,
如果我�於我的系��的所有相�硬�都不知道的�候,也不�得如何主�建立���案�,
有�有比�快速的方法可以�建立出���定�呢? 是有的,同�也是 Xorg 的功能之一,
藉由� Xorg 以��的所有模�去�行整�系�的探索 (probe) 後,先主���建立一��春的 X Server
�定�,然後您再藉由���手�修改�修����定�呢。如何�行呢? 您必�以 root 的身分�行才行:
[root@linux ~]# Xorg -configure
# 此� X �主�的以�建的模��行系�硬�的探索,
# ��最後的�果�出到 /root/xorg.conf.new ���案�面去。
整��程很��,就是利用 Xorg -configure 而已,如果是 XFree86 的�,同�可以使用
XFree86 -configure �建立起自己的�定�。而以 Xorg 建立的�定��是 /root/xorg.conf.new
���名,你可以在 run level 3 的�境下,�入:
[root@linux ~]# X -config /root/xorg.conf.new
���一下���定�是否能���呢? 如果�入上面指令後,可以在 tty7 看到�面的�,
表示���定�就��可以�� X Server �。果真如此的�,您就可以����案覆�成
/etc/X11/xorg.conf ,�且在自己手�手�微��面的�定值吧。

更新�示卡��程式的�例:
NVidia ��程式
在很多情�下,您的 X Server 可能需要���示卡晶片做�升�的。�例��,
您��的�示卡是最新的,但是 X Server 的��模���有支援。又或者您所需要的某些�示晶片功能中,
��的 X Server 的模���法提供。�得�哥在研究所所�行的研究中,有一�工作是需要在 Linux
伺服器上面�用一��形�理��,����然是自由��,不�,它需要 X Server 的 GLX 功能的支援,
我���室的 NVidia 是有支援�功能的,偏偏��的 X server 的 nv 模��不提供�功能,
所以�哥就得到 NVidia 官方�站下�最新的��程式啦......
在��,�哥以�下最流行的�示晶片�造商之一的 NVidia ��略�明一下升�晶片模� (或者�是��程式)
的��流程,希望�大家能有��助啊。
既然要更新��程式,�然要到硬���商的�站下��。
您可以到底下的�站去下���程式。
在上面��的框框中,由左至右依序��{Graphics Driver} {Geforce and TNT2} {Linux IA32}
要注意的是,因��哥的�示卡是 GeForce 系列的卡,而我的作�系� FC4 �硬�搭配,
其�是 32 位元,那� IA32 亦即是 32 位元的作�系�。至於 Linux AMD64 � Linux IA64
�分�代表 AMD 64 位元的硬�以及其他 64 位元的作�系�。��完�後按下 Go 按�,
就��入�明�面。�面就�有��程式的下���。
在����中,��有很多的��,您��要看一看的,�面�有教您如何如何正�的安����,
以及�生�����如呵解�的方案喔。
在�模�下�之後,您���他�不是一� RPM �案。根� NVidia 的�法,
因��非所有的 distribution 都是使用 RPM 作�套件管理的,所以她�就取消了��的 RPM 方式,
改以一�步�就完成的方式��予��安��案。
其�整�安�很��,直接�行�下��案就好了!
下�的�案名���是: NVIDIA-Linux-x86-{version}-pkg1.run
他是一�含有原始�的 shell script ,既然是 Shell script ,直接安�它就好啦!
[root@linux ~]# sh NVIDIA-Linux-x86-1.0-7667-pkg1.run
# �程�出�一�授��明,��� Accept �目即可,
# 而接下��出�一�找不到相�核心介面的�明,他�要去 NVidia 下���的介面。
# 此�可以��不要,那�程式就��始自�����程式的主核心�.
���候程式�� Nvidia 的��程式放置在 /usr/X11R6/lib/modules/drivers/nvidia_drv.o
而且更新了 GLX ��模�在 /usr/X11R6/lib/modules/extensions/libglx.so.1.0.7667 。
�且同��安� NVidia 的 nvidia-bug-report.sh, nvidia-installer, nvidia-settings
等工具程式。比�直得注意的是 nvidia-installer �支程式,他�可以�忙�上更新哩~
[root@linux ~]# nvidia-installer --update
# ���作在�行�上更新的作�
[root@linux ~]# nvidia-installer --uninstall
# ���作在解安� NVidia 的模�
呵呵,真是方便,未�要升�到更新的�示卡��程式,
直接利用 nvidia-installer 的功能即可。更多��的用法可以�考 nvidia-installer -h 的�明。
接下�就是要� X Server 去直接�取��安�的模�了,所以,修改一下 xorg.conf �!
[root@linux ~]# vi /etc/X11/xorg.conf
# 在 Section "Device" 的�示卡晶片段落�,修改 driver �。
# Driver "nv"
Driver "nvidia"
# �原先的 nv 模�改成 nvidia 模�喔
# 在 Section "Module" 的地方,取消一些��的模�,改以 NVidia 的��功能。
Load "glx"
# 上面�一段如果不存在,就手�建立吧
# Load "dri"
# Load "GLCore"
# 如果有出� Load dri � GLCore ,��他�解掉。
到此�止,就已�您的系�安�上最新的 NVidia 的�示卡��程式�。
好�,那您就���看看新的�示卡晶片的功能吧。
而如果有什�疑�的�,查�一下 /var/log/nvidia ��的登��看看吧! ^_^

��克服
- 以前可以�入 X Window System ,而我�有做�甚��外的行�,不�,最近��法�入 X Window 了,�怎��?
最可能�生的原因是因�您在�行某些�作�� KDE 的���跑掉了,
如果�有甚�重要的�定��,建�您可以�您家目�下的 ~/.kde 或者是 ~/.fonts ,
或者是 GNOME 在您家目�下的 ~/.gnome* 目��他移除,�系�自��您建立一�全新的�定��看看。
- 我老是�有�法�� X Window System ,不知道原因出在哪�呢?
出���的��最麻�,要一�一�去�查���。首先,如果您使用的是 Xorg 的�,
先查�一下 /var/log/Xorg.0.log ��登��的��,他�乎�告知您所有 X Server �生的��,
�由���案的告知,您��可以克服大部分的 X Server 的困�。接下�的 X Client ��,
可以查� /var/log/kdm.log 等其他� X Client ��有�的登��。
而如果是�法了解 X Server 的��,那�建�您使用 Xorg -configure 建立一�全新的�定�後,
再逐一修改比�您所�定的��,以了解���生的原因�。
- 我的 X Server ��,使用 KDE 或 GNOME 都�法更新或�整�幕解析度及更新�率,�如何是好?
�生����的原因很多,不�,基本上都是� X Server 有�,而不是 KDE 或 GNOME 的��呢。
您��要�查 xorg.conf 或 XF86Config ����案,找到� Screen 有�的 Section ,
查�一下是否 display 那� subsection 只有一��定值?果真如此的�,�然您就�法�整解析度了。
�手�增加其他解析度�色彩度即可。另外,如果�部分�有��,那就可能是出�在�示晶片模�的��了。
或者需要到晶片��商的�站上面下�最新的��程式�安�,��可以解�您的��。
�然,也可以到 /var/log/Xorg.0.log 或 /var/log/XFree86.0.log (看各 distributions 的�定) 查����。
- 如何�行 X Window System 的中文化?
基本上,中文化��都是在 KDE 或者是 GNOME 上面的�示��才�。��有一篇 FreeBSD 的文章:
FreeBSD Chinese How-to (http://www.douzhe.com/docs/freebsd_howto/index.html)
�然是 FreeBSD 的系�,不�,很有可�之�。

本章����
( 要看答案��滑鼠移�到『答:』底下的空白�,按下左�圈�空白�即可察看 )
- 如何在 Linux 主��入 X Window System ?
如果是在 run level 3 ,可以使用 startx �入,至於 run level 5 ,�直接�入
tty7 即可�入 X Window 系��面。
- 利用 startx 可以在 run level 3 的�境下�入 X Window 系�。�� startx 的主要功能?
其�整� X 系�的����是由 xinit ��指令所��的。但 xinit 需要 X Client � X Server
的相���,以提供�入 X Window System 的���硬�管理,例如 xinit xinitrc -- xserverrc 等。
startx 即是在判�使用者是否有自己的 ~/.xinitrc 及 ~/.xserverrc 的 script,
若有�直接取用,若��到 /etc/X11/xinit 底下取用。
- 如何知道您系��中 X 系�的版本���?
最��可以利用 root 的身份下� X -version 即可知道!
- 要�解�何 X 系�可以允�不同硬�、主�、作�系�之�的�通,需要知道 X server / X client 的相�知�。
�� X Server / X client / Window manager 的主要用途功能?
X Server 主要���幕的��,以及周��入�置如滑鼠、��等�料的收集,�回�� X Client ;
X Client 主要���料的�算,收到�自 X Server 的�料後,加以�算得到�形的��,�回�� X Server,
� X server 自行���形。至於 Window manager 是一�比�特殊的 X Client ,他可以管理更多控制元素,
最重要的地方�是在於�窗的大小、重�、移�等等的功能。
- 如何重新�� X
最��在 X Window System 下,直接按下 [alt]+[ctrl]+[backspace - ��明 ~/.xinitrc ���案的用途?
�我�要�� X �,必�要�� X Client ��端。�� ~/.xinitrc 即是在客制化自己的 X Client ,
您可以在���案��入您自己的 X Client 。若�此�案,���以 /etc/X11/xinit/xinitrc 替代。
- 我在 FC4 的系�中,��使用 KDE 登入 X 。但我想要改以 GNOME 登入,�怎��?
最��的作法,直接修改 /etc/sysconfig/desktop �的�定值即可。
但如果你不是 root �法修���案�,
亦可以在自己的家目��考 /etc/X11/xinit/xinitrc 的�容自行�作 ~/.xinitrc �案�修改!
- X Server 的 port ���放在?
X port ���放在 port 6000 ,而且�此一�示� :0
- Linux 主�是否可以有��以上的 X
是的!可以!第一� X 通常在 tty7 ,第二�在 tty8 ,第三�在 tty9 ,依序�推。
第��是以��的�序�定�,�非 :0 , :1 的意思~特�分清楚。
- X Server 的�定�若不是 xorg.conf 就是 XF86Config 。
在��案中, Section Files �嘛用的?
相�重要!是�定�示字型用的。而字型一般放置目�在 /usr/X11R6/lib/X11/fonts/ �中。
- 我��我的 X 系���所�入的字母老是打不出我所需要的�字,可能原因�如何修�?
��是��符���表跑掉了。可以修改 xorg.conf 或 XF86Config �案�,
�於 Keyboard 的 Option XkbLayout �目,�他改� us 即可!
- �我的系��有安� GNOME 及 KDE �� X Widnow Manager ,我原本是以 KDE ���的 WM,
若想改� GNOME �,��如何修改 (假�在 FC4 的�境下)?
每� distributions 的修改方式都不太一�,以 FC4 �例,修改 /etc/sysconfig/desktop
�部,成� GNOME 即可!而 SuSE 可以修改 /etc/sysconfig/windowmanager !

�考�料
- 王垠先生� X Window 的介�
http://learn.tsinghua.edu.cn/homepage/2001315450/x.html
- X.org 官方�站
http://www.x.org/
�面有很多不�的文件可以�考喔! - XFree86 官方�站
http://www.xfree86.org/
- 一篇� X Window system �多��的文章
http://linux.xab.ac.cn/bbs/read.php?tid=352
- man Xorg
- man startx
- man xinit
- �於 FC4 的�形介面登入�,�生的一些 tty �面困�:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161242
��的��,就是 Intel 的�示卡� G550 的�示卡硬�在 FC4 的���程中,
可能�法�����示卡做比�好的�理,�致 tty1 ~ tty7 都�有�西跑出�。
可以� FC3 的���案 /usr/X11R6/lib/modules/libvgahw.a ��到 FC4 底下的相同�案去,
重新��後,��可以克服����。��案可以在底下取得:
ftp://people.redhat.com/mharris/libvgahw.a
2003/02/12:第一次完成
2005/06/29:��的文章移�到
��
。如果您需要�版的 xf86config
�相�的工具,��前往��文章查�!
2005/07/11:��了�多的��,�主�的�定�重�改了改,�於完成一些��的 X ��!
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/17928/showart_143155.html
西门子冰洗在华06年可能首次出现亏损
周五家电 永乐大低价 还是晚下手为强
关于NetBIOS知识
nis服务器
以淘汰��安� Linux 做�伺服器分享 ADSL 的��
温习压缩与解压缩命令Tar
�案的���打包
�易 DHCP 伺服器�定
linux系统管理员讲义(7)
�易 Mail Server 架� -- Postfix �定
免责声明:
1、本文系本网编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
2、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容
1、本文系本网编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
2、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容
Linux下的安全工具[摘录]
linux各种服务器的架设
邮件服务器运行原理
Linux ���身份管理二
教你�: Slackware 8.1 Linux + Gaga
鸟哥教简易SAMBA服务设定(续)
LINUX各文件的含义(个人学习笔记)
LINUX各文件的含义(个人学习笔记)
crontab命令
防火��ShoreWall使用方法
X Window 程式设计入门(1)
中糖集团收购酒鬼酒事宜收官
电风扇“鸡肋”变“鸡腿”上演热销戏
fuse-convmvfs 0.2 released!
如何进入到嵌入式系统开发行业
洗衣机能效标识贴标启动双桶无一级品
ST啤酒花:关于重组进展情况公告
linux内核配置系统分析
青岛啤酒营销管理总部崔虹在答辩