5.9. 疑難排解
前一頁 | 章 5. X Window 系統 | 下一頁

## 5.9. 疑難排解

若滑鼠無法使用，您將需要做第一次設定方可繼續。在最近的 Xorg 版本，使用自動偵測裝置會忽略在 `xorg.conf` 中的 `InputDevice` section。要採用舊的方式，需在此檔案加入下行到 `ServerLayout` 或 `ServerFlags` section：

    Option "AutoAddDevices" "false"

輸入裝置便可如先前版本一樣設定，連同其他所需的選項 (如：切換鍵盤配置)。

### 注意:

如同前面有說明過，hald Daemon 預設會自動偵測您的鍵盤，因此您的鍵盤配置或型號可能不正確，桌面環境如 GNOME, KDE 或 Xfce 會提供設定鍵盤的工具。即使如此，還是有可能透過 setxkbmap(1) 工具或 hald 的設定規則的協助來直接設定鍵盤屬性。

舉例來說，若有人想要使用 PC 102 鍵的鍵盤，採用法語 (French) 配置，我們便需要建立一個給 hald 的鍵盤設定檔，名稱為 `x11-input.fdi`，然後儲存到 `/usr/local/etc/hal/fdi/policy` 目錄。這個檔案中應要有以下幾行：

    <?xml version="1.0" encoding="iso-8859-1"?>
    <deviceinfo version="0.2">
      <device>
        <match key="info.capabilities" contains="input.keyboard">
    	  <merge key="input.x11_options.XkbModel" type="string">pc102</merge>
    	  <merge key="input.x11_options.XkbLayout" type="string">fr</merge>
        </match>
      </device>
    </deviceinfo>

若這個檔案已經存在，只需要複製並貼上您的檔案中有關鍵盤設定的那幾行。

您會需要重新啟動您的機器來讓 hald 讀取這個檔案。

也是可以從 X 終端機或 Script 下指令來做同樣的設定：

    % setxkbmap -model pc102 -layout fr

`/usr/local/share/X11/xkb/rules/base.lst` 中列出了各種可用的鍵盤、配置與設定。

現在可以開始調整 `xorg.conf.new` 設定檔，在文字編輯器如 emacs(1) 或 ee(1) 開啟該設定檔。若顯示器是不支援自動偵測同步頻率 (Sync frequency) 的舊或特殊的型號，同步頻率的設定可以手動加到 `xorg.conf.new` 的 `"Monitor"` section：

    Section "Monitor"
    	Identifier   "Monitor0"
    	VendorName   "Monitor Vendor"
    	ModelName    "Monitor Model"
    	HorizSync    30-107
    	VertRefresh  48-120
    EndSection

多數顯示器都支援自動偵測同步頻率，並不需要手動設定這些數值。對於那些不支援自動偵測的顯示器，請輸入由製造商提供的數值來避免損壞顯示器。

X 允許在支援的顯示器使用 DPMS (Energy Star) 功能，xset(1) 程式可以控制逾時並可強制待機 (Standby)、暫停 (Suspend) 或關閉 (Off) 模式。若您想要為您的顯示器開啟 DPMS 功能，您需要加入下行到顯示器 (Monitor) 的 Section：

    Option       "DPMS"

在編輯器還未關閉 `xorg.conf.new` 設定檔前，選擇想要使用的預設解析度及色彩深度。這些項目可在 `"Screen"` section 定義：

    Section "Screen"
    	Identifier "Screen0"
    	Device     "Card0"
    	Monitor    "Monitor0"
    	DefaultDepth 24
    	SubSection "Display"
    		Viewport  0 0
    		Depth     24
    		Modes     "1024x768"
    	EndSubSection
    EndSection

`DefaultDepth` 關鍵字代表預設執行要使用的色彩深度，這個設定可以被 Xorg(1) 的指令列參數 `-depth` 覆蓋。`Modes` 關鍵字代表執行要使用的解析度，注意，只有 VESA 標準模式才支援目標系統的繪圖硬體來定義解析度。在上述的例子中，預設使用的色彩深度為每像素 24 bit，這個色彩深度可用的解析度為 1024 x 768 像素。

最後，儲存設定檔並使用測試模式來測試上述的設定。

### 注意:

有一個工具可以協助您診斷問題，那就是 Xorg 日誌檔。該日誌檔中記錄了 Xorg 連接的每個裝置的資訊。Xorg 記錄檔名稱的格式為 `/var/log/Xorg.0.log`，確切的記錄檔名會可能從 `Xorg.0.log` 到 `Xorg.8.log` 以此類推。

若一且運作正常，設定檔需要安裝到 Xorg(1) 會尋找的常用設定檔位置，通常是 `/etc/X11/xorg.conf` 或 `/usr/local/etc/X11/xorg.conf`。

    # cp xorg.conf.new /etc/X11/xorg.conf

現在已經完成了 Xorg 的設定程序。Xorg 現在可以使用 startx(1) 工具啟動。Xorg 伺服器也可以使用 xdm(1) 來啟動。

### 5.9.1. 設定 Intel® `i810` 繪圖晶片組

要設定 Intel® i810 整合晶片組需要使用 `agpgart` AGP 程式介面來控制 Xorg 驅動該顯示卡。請參考 agp(4) 驅動程式操作手冊來取得更多詳細資訊。

這也可讓您可以設定任何其他繪圖卡的硬體。注意，在未編譯 agp(4) 到核心的系統，並無法使用 kldload(8) 來載入該模組，因此驅動程式必須在開機時便在核心啟動，所以需要透過編譯或使用 `/boot/loader.conf` 來載入。

### 5.9.2. 加入寬螢幕平板顯示器到設定檔

此章節會需要有一些進階的設定知識，若嘗試使用上述的標準設定工具仍無法產生可運作的設定，在日誌檔中應有足夠的資訊可運用來讓顯示卡運作。在此會需要使用文字編輯器。

目前使用寬螢幕 (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, et.al.) 格式支援的 16:10 及 10:9 格式或其他的寬高比可會有問題。例如一些 16:10 寬高比常見的螢幕解析度：

- 2560x1600

- 1920x1200

- 1680x1050

- 1440x900

- 1280x800

在某些時候，可以簡單的將這些要使用的解析度以 `Mode` 加入到 Section "Screen"：

    Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    DefaultDepth 24
    SubSection "Display"
    	Viewport  0 0
    	Depth     24
    	Modes     "1680x1050"
    EndSubSection
    EndSection

Xorg 能夠從寬螢幕設定取得解析度資訊 (透過 I2C/DDC)，因此能夠知道螢幕能處理的頻率及解析度。

若驅動程式中不存在那些螢幕能處理的 `ModeLines`，則需要給 Xorg 一點提示。透過 `/var/log/Xorg.0.log` 可以取得足夠的資訊來手動建立可運作的 `ModeLine`。只需要在日誌檔中找到類似以下的訊息：

    (II) MGA(0): Supported additional Video Mode:
    (II) MGA(0): clock: 146.2 MHz   Image Size:  433 x 271 mm
    (II) MGA(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_border: 0
    (II) MGA(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_border: 0
    (II) MGA(0): Ranges: V min: 48  V max: 85 Hz, H min: 30  H max: 94 kHz, PixClock max 170 MHz

這些資訊稱作 EDID 資訊，使用 EDIT 資訊建立 `ModeLine` 只需要將數據使用正確的順序放入：

    ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>

將資訊放入之後，本例中 `Section "Monitor"` 中的 `ModeLine` 會看起來像這樣：

    Section "Monitor"
    Identifier      "Monitor1"
    VendorName      "Bigname"
    ModelName       "BestModel"
    ModeLine        "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
    Option          "DPMS"
    EndSection

便完成編輯的步驟，接著需要在您的寬螢幕顯示器啟動 X。

### 5.9.3. Compiz Fusion 疑難排解

5.9.3.1. 我已經安裝了 Compiz Fusion，但在執行了您所提到的指令後，我的視窗的標題列與按鈕便消失了。是那裡有問題?
5.9.3.2. 當我執行指令來啟動 Compiz Fusion，X 伺服器便當掉了，然後我又返回 Console。是那裡有問題?

5.9.3.1. | 我已經安裝了 Compiz Fusion，但在執行了您所提到的指令後，我的視窗的標題列與按鈕便消失了。是那裡有問題?
| 您可能忘記在 `/etc/X11/xorg.conf` 中的設定。請重新檢查這個檔案，特別是 `DefaultDepth` 及 `AddARGBGLXVisuals` 指令項。
5.9.3.2. | 當我執行指令來啟動 Compiz Fusion，X 伺服器便當掉了，然後我又返回 Console。是那裡有問題?

若您檢查 `/var/log/Xorg.0.log`，您可能可以找到當 X 啟動時所發生的錯誤訊息。最常發生的錯誤會是：

    (EE) NVIDIA(0):     Failed to initialize the GLX module; please check in your X
    (EE) NVIDIA(0):     log file that the GLX module has been loaded in your X
    (EE) NVIDIA(0):     server, and that the module is the NVIDIA GLX module.  If
    (EE) NVIDIA(0):     you continue to encounter problems, Please try
    (EE) NVIDIA(0):     reinstalling the NVIDIA driver.

會發生這個情形通常是因為您升級了 Xorg，您需要重新安裝 x11/nvidia-driver 套件來重新編譯 glx。

前一頁 | 上一層 | 下一頁
5.8. 安裝 Compiz Fusion | 起始頁 | 部 II. 一般作業

本文及其他文件，可由此下載： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。

若有 FreeBSD 方面疑問，請先閱讀 FreeBSD 相關文件，如不能解決的話，再洽詢 <questions@FreeBSD.org>。
關於本文件的問題，請洽詢 <doc@FreeBSD.org>。