14.2. X 組態最佳化

X.Org 是一個由「開放原始碼」(Open Source) 實作的 X Window System。它是由 X.Org Foundation 進一步發展而來,該組織還負責開發 X Window System 的新技術與標準。

為了使可用的硬體,包括滑鼠、圖形卡、監視器以及鍵盤發揮最大效能,可以透過手動組態來達到最佳化。以下說明最佳化的一些層面。如需 X Window System 組態的詳細資訊,請參閱目錄 /usr/share/doc/packages/Xorg 中的各個檔案以及 man xorg.conf

[Warning]警告

進行 X Window System 組態時請務必小心。在完成組態之前,絕對不可以啟動 X Window System。錯誤的組態會對硬體造成無法挽回的損害 (固定頻率的監視器特別是如此)。本書的作者以及 SUSE Linux 無法對可能的損害負起任何責任。本資訊是仔細研究的結果,但不保證提及的所有方法都正確以及不會損害您的硬體。

SaX 和 xorgconfig 程式將建立 xorg.conf 檔,預設的存放位置是 /etc/X11。這是 X Window System 的主要組態檔。請在此處找出和您的圖形卡、滑鼠以及監視器相關的所有設定。

下列段落會描述組態檔 /etc/X11/xorg.conf 的結構。它由多個段落組成,每一個都會處理組態的某個層面。每一個段落以關鍵字 Section <指定> 開始,並以 EndSection 結束。段落包含下列格式:

Section designation
  entry 1
  entry 2
  entry n
EndSection
 

提供的段落類型列出在 表格 14.1, "/etc/X11/xorg.conf 中的段落" 中。

表格 14.1. /etc/X11/xorg.conf 中的段落

類型

意義

Files (檔案)

這個段落描述字型與 RGB 顏色表的使用路徑。

ServerFlags (伺服器標誌)

一般切換設定於此。

InputDevice (輸入設備)

輸入設備,例如,鍵盤和特殊輸入設備 (觸控板、搖桿等) 都是在這個段落設定。這個段落含有 Driver (磁碟機) 的重要參數以及定義 Protocol (通訊協定)Device (設備) 的選項。

Monitor (顯示器)

描述使用的顯示器。這個段落的個別元素是名稱 (將在 Screen (螢幕) 定義中討論)、bandwidth (頻寬) 以及同步頻率限制 (HorizSync (水平同步)VertRefresh (垂直更新))。設定值以 MHz、kHz 和 Hz 提供。通常,伺服器會拒絕和監視器規格不對應的模式行。這樣可以防止不小心將太高的頻率送往顯示器。

Modes (模式)

特定螢幕解析度的 modeline (模式行) 參數儲存於此。這些參數可以由 SaX2 依據使用者給定的值計算,通常不需要變更。如果您要連接固定頻率監視器,現在可以手動變更。請在位於 /usr/share/doc/howto/en/html/XFree86-Video-Timings-HOWTO 的 HOWTO 檔中,找出每一個個別數值的意義之詳細資料。

Device (設備)

這各段落定義特定圖形卡。它是以本身描述名稱敘述。

Screen (螢幕)

這個段落將 Monitor (螢幕)Device (裝置) 組合成 X.Org 的必需設定。在 Display (顯示) 子段落中,指定虛擬畫面的大小 (Virtual (虛擬)),ViewPort (檢視埠)Modes (模式) 可與該畫面一起使用。

ServerLayout (伺服器配置)

這個段落定義單一或多重顯示的組態。這個段落連結輸入裝置 InputDevice (輸入裝置) 和顯示設備 Screen (螢幕)

Monitor (顯示器)Device (設備)Screen (螢幕) 將在以下詳細說明。如需其他段落的進一步資訊,請參閱 X.Orgxorg.conf 的手冊頁。

xorg.conf 中可能有多個不同的 Monitor (顯示器)Device (設備) 段落。也可能有多個 Screen (螢幕) 段落。下列 ServerLayout (伺服器配置) 段落決定使用哪一個。

14.2.1. 螢幕段落

螢幕段落是由顯示器和設備段落組成,已決定要使用的解析度和色彩深度。螢幕段落可能如同 範例 14.1, "/etc/X11/xorg.conf 檔的螢幕段落" 一般。

範例 14.1. /etc/X11/xorg.conf 檔的螢幕段落


Section "Screen"
  DefaultDepth  16
  SubSection "Display"
    Depth       16
    Modes       "1152x864" "1024x768" "800x600"
    Virtual     1152x864
  EndSubSection
  SubSection "Display"
    Depth       24
    Modes       "1280x1024"
  EndSubSection
  SubSection "Display"
    Depth       32
    Modes "640x480"
  EndSubSection
  SubSection "Display"
    Depth        8
    Modes       "1280x1024"
  EndSubSection
  Device        "Device[0]"
  Identifier    "Screen[0]"
  Monitor       "Monitor[0]"
EndSection

Identifier (識別碼) 行 (此處為 Screen[0]) 對這個段落提供一個定義的名稱,以便對下列 ServerLayout (伺服器配置) 段落提供唯一性參照。Device (設備)Monitor (顯示器) 行指定屬於這個定義的圖形卡和顯示器。它們透過本身對應的名稱或識別碼Device (設備) 以及 Monitor (顯示器) 段落連結。以下詳細討論這些段落。

如果伺服器未以特定的色彩深度啟動的話,請使用 DefaultDepth (預設深度) 設定來選取伺服器使用的色彩深度。每一個色彩深度有一個 Display (顯示器) 子段落。關鍵字 Depth (深度) 指定這個子段落的有效色彩深度。Depth (深度) 的可用值有 8、15、16 和 24。不是所有的 X 伺服器模組都支援所有這些值。

色彩深度之後,是一組 Modes (模式) 段落中設定的解析度清單。X 伺服器將由左而右檢查這個清單。對於每一個解析度,X 伺服器會在 Modes (模式) 段落搜尋適合的 Modeline (模式行)Modeline (模式行) 同時由顯示器與圖形卡的功能決定。Monitor (顯示器) 設定值將決定 Modeline (模式行) 的結果。

第一個找到的解析度是 Default mode (預設模式)。按 Ctrl-Alt-+ (數字鍵盤) 可以切換到清單中右邊的下一個解析度。按 Ctrl-Alt- (數字鍵盤) 可以向左切換。您可以在 X 執行中變更解析度。

Display (顯示器) 子段落最後一行的 Depth 16 (深度 16) 指虛擬螢幕的大小。虛擬螢幕可能的最大大小由圖形卡上安裝的記憶體數量以及所要的色彩深度決定,而不是顯示器的最大解析度。因為目前的圖形卡都附有大量的視訊記憶體,您可以建立非常大的虛擬桌面。不過,如果將大部份的視訊記憶體用於虛擬桌面,將可能無法使用 3D 功能。例如,如果卡上有 16 MB 視訊 RAM,虛擬螢幕可用佔用 4096x4096 像素,8 位元色彩探度。不過,特別是加速卡,不建議將所有記憶體用於虛擬螢幕,因為卡上的這個記憶體還要用於各種字型與圖形的快取處理。

14.2.2. 設備段落

設備段落描述特定的圖形卡。xorg.conf 中的設備項目數沒有限制,但每一個設的名稱要使用關鍵字 Identifier (識別碼) 來區別。有一個適用規則 -- 如果您安裝多張圖形卡 -- 段落將只依序編號。第一個稱為 Device[0] (設備[0]),第二個稱為 Device[1] (設備[1]),以下類推。以下檔案顯示一個使用 Matrox Millennium PCI 圖形卡的電腦,其 Device (設備) 段落的例外情況:

Section "Device"
  BoardName     "MGA2064W"
  BusID         "0:19:0"
  Driver        "mga"
  Identifier    "Device[0]"
  VendorName    "Matrox"
  Option        "sw_cursor"
EndSection

如果您使用 SaX2 進行組態,設備段落看起來應該和上述範例類似。Driver (驅動程式)BusID (匯流排 ID) 都由電腦中安裝的硬體決定,並由 SaX2 自動偵測。BusID (匯流排 ID) 定義安裝圖形卡的 PCI 或 AGP 插槽。這個值和指令 lspci 顯示的 ID 相符。X 伺服器需要十進位格式的詳細資料,但 lspci 以十六進位格式顯示這些值。

您可以使用Driver (驅動程式)參數來指定此圖形卡要使用的驅動程式。如果是 Matrox Millennium 圖形卡,驅動程式模組稱為 mga。X 伺服器會在定義於 drivers 子目錄的 Files 段落中的 ModulePath 中搜尋。在標準安裝中,這是目錄 /usr/X11R6/lib/modules/drivers。名稱會附加 _drv.o,因此,如果是 mga 驅動程式,將載入驅動動程式檔案 mga_drv.o

X 伺服器或驅動程式的行為可以透過附加的選項來操作。設備段落中的選項 sw_cursor 便是一個範例。它可以關閉硬體滑鼠游標並描述使用軟體的滑鼠指標。視驅動程式模組而定,各有不同的各種選項,可以在 /usr/X11R6/lib/X11/doc 目錄內驅種程式模組的描述檔案中找到它們。通常,也可以在手冊頁找到有效的選項 (man xorg.confman X.Org)。

14.2.3. 顯示器和模式段落

Device (設備) 段落類似,Monitor (顯示器)Modes (模式) 段落分別描述一個顯示器。組態檔 /etc/X11/xorg.conf 可以含有沒有個數限制的 Monitor (顯示器) 段落。伺服器配置段落指定相關的 Monitor (顯示器) 段落。

顯示器定義應該由有經驗的使用者進行設定。模式行是 Monitor (顯示器) 段落的重要組成部份。模式行可設定對應解析度的水平與垂直計時。顯示器的內容,特別是容許頻率,儲存在 Monitor (顯示器) 段落中。

[Warning]警告

除非您對顯示器與圖形卡功能有深度的瞭解,否則請不要變更模式行,以免造成顯示器嚴重損害。

想自行開發顯示器描述的人員,應該非常熟悉 /usr/X11/lib/X11/doc 說明文件的內容。特別值得一提的是涵蓋視訊模式的段落。該段落詳細說明硬體功能以及如何建立模式行。

在今天,需要手動指定模式行的的情況非常少見。如果您使用先進的多頻顯示器,依規則,X 伺服器可以透過 DDC 直接從顯示器讀取容許頻率以及最佳解析度值,如 SaX2 組態段落中的說明那樣。如果因某種原因而不適用,請使用 X 伺服器內附的一種 VESA 模式。這樣幾乎所有的圖形卡與顯示器組合都可以運作。