?? [轉]經驗之談 -- 設置和修改 x window 的顯示模式.txt
字號:
作者:Batman
日期:00-1-19 19:57:13
====================================================
文 檔 名: 經驗之談 -- 設置和修改 X Window 的顯示模式
作 者: Rocky S. Lee
E - mail: coolrocky@21cn.com
發布日期: 2000 年 1 月 5 日
====================================================
許可證:
本文檔的發布遵循 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 段: 這個段指明了一些具體的參數, 如下:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -