5.9. 疑難排解

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

Option "AutoAddDevices" "false"

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

注意:

如同前面有說明過,hald Daemon 預設會自動偵測您的鍵盤,因此您的鍵盤配置或型號可能不正確,桌面環境如 GNOME, KDEXfce 會提供設定鍵盤的工具。即使如此,還是有可能透過 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.logXorg.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 中的設定。請重新檢查這個檔案,特別是 DefaultDepthAddARGBGLXVisuals 指令項。

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。

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

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

關於本文件的問題,請洽詢 <doc@FreeBSD.org>。