# pkg install xorg
This translation may be out of date. To help with the translations please access the FreeBSD translations instance .
使用 bsdinstall 安裝 FreeBSD 並不會自動安裝圖型化使用者介面。本章將說明如何安裝並設定 Xorg,該應用程式提供開放源碼的 X Window 系統來提供圖型化環境。接著會說明如何找到並安裝桌面環境或視窗管理程式。
|
偏好安裝時會自動設定 Xorg 並且在安裝過程提供視窗管理程式選項的使用者請參考 http://www.trueos.org/ 網站。 |
更多有關 Xorg 支援影像硬體資訊,請參考 x.org 網站。
讀完這章,您將了解:
組成 X Window 系統的各種元件以及它們是如何相互運作。
如何安裝並設定 Xorg。
如何安裝並設定各種視窗管理程式與桌面環境。
如何在 Xorg 上使用 TrueType™ 字型。
如何設定系統以使用圖形化登入 (XDM)。
在開始閱讀這章之前,您需要:
了解如何依照 安裝應用程式:套件與 Port 說明安裝其他第三方軟體。
雖然 X 各元件的所有細節及運作方式,並不是必須要知道的。 但對它們有些基本概念會更容易上手。
X 最初設計是以網路為中心,採用 "client-server" 架構。在此架構下 "X 伺服器" 在有鍵盤、螢幕、滑鼠的電腦上運作。該伺服器負責的工作包含管理顯示、處理來自鍵盤、滑鼠的輸入及來自其他設備 (如平板或或影像投影機) 的輸入或輸出。這點可能會讓人感到困惑,因為 X 使用的術語與一般的認知剛好相反。 一般認知會以為 "X 伺服器" 是要在最強悍的主機上執行,而 "X 客戶端" 才是在桌機上面執行,實際上卻是相反。
每個 X 應用程式,如 XTerm、Firefox 都是 "客戶端"。 客戶端會傳訊息到伺服器,例如:"請在這些座標畫一個視窗",接著伺服器會傳回訊息,如:"使用者剛點選了確定按鈕"。
在家庭或小型辦公室環境,通常 X 伺服器跟 X 客戶端都是在同一台電腦上執行。也可以在比較慢的電腦上執行 X 伺服器, 並在比較強、比較貴的系統上執行 X 應用程式。 在這種情景,X 客戶端與伺服器之間的溝通就需透過網路來進行。
X 並不規定螢幕上的視窗該長什麼樣、要如何移動滑鼠指標、 要用什麼鍵來在視窗切換、每個視窗的標題列長相,及是否該有關閉按鈕,等等。事實上,X 把這部分交給所謂的視窗管理程式來管理。可用的 視窗管理程式有很多種 ,每一種視窗管理程式都提供不同的使用介面風格:有些支援虛擬桌面,有些允許自訂組合鍵來管理桌面,有些有 "開始" 鈕,有些則是可更換佈景主題,可自行安裝新的佈景主題以更換外觀。 視窗管理程式可在 Port 套件集的 x11-wm 分類找到。
每個視窗管理程式也各有其不同的設定機制,有些需要手動修改設定檔, 而有的則可透過圖型化工具來完成大部分的設定工作。
KDE 與 GNOME 會被稱作桌面環境是因為包含了完整常用桌面作業的應用程式,這些應用程式可能包含文書軟體、網頁瀏覽器及遊戲。
視窗管理程式負責滑鼠指標的聚焦政策。 聚焦政策指的是如何決定使用中及接收鍵盤輸入的視窗。
通常較為人熟悉的聚焦政策叫做 "click-to-focus",這個模式中,滑鼠點選到的視窗便會處於作用中 (Active) 的狀態。在 "focus-follows-mouse" 模式滑鼠指標所在的視窗便是作用中的視窗,只要把滑鼠移到其他視窗就可以改變作用中的視窗,若滑鼠移到根視窗 (Root Window),則會聚焦在根視窗。在 "sloppy-focus" 模式,既使滑鼠移到根視窗,仍然會聚焦在最後聚焦的視窗上,此模式只有當滑鼠進入新的視窗時才會聚焦於該視窗,而非離開目前視窗時。"click-to-focus" 模式用滑鼠點擊來決定作用中的視窗,且該視窗會被置頂到所有其他視窗之前,即使滑鼠移到其他視窗,所有的鍵盤輸入仍會由該視窗所接收。
不同的視窗管理程式支援不同的聚焦模式,全部都支援 click-to-focus 且其中大部份支援其他模式,請查看視窗管理程式的說明文件來了解可用的聚焦模式。
視窗元件指的是在所有在使用者介面上可被點選或操作的項目,這包括按鈕、核選方塊、單選按鈕、圖示及清單。 視窗元件工具包 (Widget toolkit) 是指用來建立圖型化應用程式的一系列的視窗元件。目前有數個有名的視窗元件工具包,包含 KDE 所使用的 Qt、GNOME 所使用的 GTK+。 因此應用程式會依其開發時所選用的視窗元件工具包而有不同的外觀。
在 FreeBSD,Xorg 可透過套件或 Port 來安裝。
使用 Binary 套件的安裝速度較快,但可用的自訂選項較少:
# pkg install xorg
要從 Port 套件集編譯與安裝:
# cd /usr/ports/x11/xorg
# make install clean
兩種安裝方式皆可完整安裝 Xorg 系統,對大多數使用者較建議使用 Binary 套件安裝。
較精簡版本的 X 系統適合給有經驗的使用者使用,可至 x11/xorg-minimal 取得。這個版本就不會安裝大多數的文件、函數庫以及應用程式,而部份應用程式會需要這些額外的元件才能運作。
Xorg 支援大多數常見的顯示卡、鍵盤以及指標裝置。
|
顯示卡、顯示器以及輸入裝置會自動偵測,無須任何手動設置。除非自動設置失敗,否則請勿建立
xorg.conf
或執行
|
若 Xorg 曾經在電腦使用過,可先將現有的設定檔重新命名或移除:
# mv /etc/X11/xorg.conf ~/xorg.conf.etc
# mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc
加入要執行 Xorg 的使用者到
video
或
wheel
群組,以便在可用時能開啟 3D 加速。要加入使用者
jru
到任一個可用的群組:
# pw groupmod video -m jru || pw groupmod wheel -m jru
預設內含 TWM 視窗管理程式,啟動 Xorg 時便會啟動該視窗管理程式:
% startx
在部份較舊版的 FreeBSD,在切換回文字 Console 前系統 Console 必須設為 vt(4) 才可正常運作,請參考 核心模式設定 (Kernel Mode Setting, KMS) 。
要存取
/dev/dri
需要允許顯示卡的 3D 加速功能,這通常只需要將要執行 X 的使用者加入
video
或
wheel
群組。此處使用
pw(8)
來將使用者
slurms
加入
video
群組,若沒有
video
則會加入
wheel
群組:
# pw groupmod video -m slurms || pw groupmod wheel -m slurms
當電腦顯示從 Console 切換到高螢幕解析度供 X 使用時,必須設定影像輸出 模式 。最近版本的 Xorg 使用了核心內部的系統來讓切換模式更有效率。較舊版的 FreeBSD 使用的 sc(4) 並不知到 KMS 系統的存在,這會導致關閉 X 之後即始仍在運作但系統 Console 卻呈現空白。較新版的 vt(4) Console 可避免這個問題。
加入此行到 /boot/loader.conf 來開啟 vt(4) :
kern.vty=vt
通常不需要做手動設置,除非自動設置無法運作,否則請不要手動建立設定檔。
由於最近 FreeBSD 版本所做的變更,現在可以使用由 Port 或套件所提供的繪圖驅動程式,所以使用者可以使用下列來自 graphics/drm-kmod 的驅動程式。
大多數使用 Intel KMS 驅動程式的 Intel 顯示卡支援 2D 與 3D 加速。
驅動程式名稱:
i915kms
大多數使用 Radeon KMS 驅動程式的舊 AMD 顯示卡支援 2D 與 3D 加速。
驅動程式名稱:
radeonkms
大多數使用 AMD KMS 驅動程式的新 AMD 顯示卡支援 2D 與 3D 加速。
驅動程式名稱:
amdgpu
3D 加速在大多數 Intel™ 顯示晶片都有支援,最新到 Ivy Bridge (HD Graphics 2500, 4000, 及 P4000) 包含 Iron Lake (HD Graphics) 與 Sandy Bridge (HD Graphics 2000)。
驅動程式名稱:
intel
Radeon 顯示卡支援 2D 及 3D 加速,最新到 HD6000 系列。
驅動程式名稱:
radeon
有數個 NVIDIA 驅動程式可於 Port 套件集中的 x11 分類取得,請安裝其中與顯示卡相符的驅動程式。
部份筆記型電腦加入了額外繪圖處理單元到那些內建晶片組或處理。 Optimus 結合了 Intel™ 及 NVIDIA 的硬體, Switchable Graphics 或 Hybrid Graphics 則是結合了 Intel™ 或 AMD™ 處理器與 AMD™ Radeon GPU。
這些混合繪圖系統的實作方式均不同,FreeBSD 的 Xorg 尚無法驅動所有的混合繪圖系統版本。
部份電腦提供了 BIOS 的選項可以關閉其中一個繪圖介面卡或選擇 discrete 模式,可用使用其中一種標準顯示卡驅動程式來驅動。例如,有時關閉 Optimus 系統中的 NVIDIA GPU 是可能讓 Intel™ 顯示晶片可用 Intel™ 驅動程式驅動。
BIOS 設定會依電腦的型號有所不同,在某些情況下,可以同時開啟兩個 GPU,而在建立的設定檔中的
Device
節只使用主要的 GPU 便能讓系統運作。
較不常見的顯示卡驅動程式可在 Port 套件集的 x11-drivers 目錄找到。
若沒有特定的驅動程式可以支援顯示卡,仍可能可用 x11-drivers/xf86-video-vesa 驅動程式來驅動。該驅動程式可使用 x11/xorg 安裝,也可使用 x11-drivers/xf86-video-vesa 手動安裝。當沒有指定驅動程式時 Xorg 會嘗試使用這個驅動程式來驅動顯示卡。
x11-drivers/xf86-video-scfb 也是不特定顯示卡的驅動程式,可在許多 UEFI 及 ARM™ 的電腦上運作。
要在設定檔設定使用 Intel™ 驅動程式:
/usr/local/etc/X11/xorg.conf.d/driver-intel.conf
Section "Device" Identifier "Card0" Driver "intel" # BusID "PCI:1:0:0" EndSection
若有多張顯示卡,可取消註解
BusID
identifier 然後設定為想要的顯示卡,顯示卡的 Bus ID 清單可以使用
pciconf -lv | grep -B3 display
取得。
要在設定檔設定使用 Radeon 驅動程式:
/usr/local/etc/X11/xorg.conf.d/driver-radeon.conf
Section "Device" Identifier "Card0" Driver "radeon" EndSection
要在設定檔設定使用 VESA 驅動程式:
/usr/local/etc/X11/xorg.conf.d/driver-vesa.conf
Section "Device" Identifier "Card0" Driver "vesa" EndSection
要設定 UEFI 或 ARM™ 電腦使用
scfb
驅動程式:
scfb
影像驅動程式
/usr/local/etc/X11/xorg.conf.d/driver-scfb.conf
Section "Device" Identifier "Card0" Driver "scfb" EndSection
幾乎所有顯示器都支援延伸顯示辨識資料標準 (Extended Display Identification Data, EDID),Xorg 會使用 EDID 與顯示器通訊並偵測支援的解析度與更新頻率,然後選擇最適合的設定組合使用該顯示器。
其他顯示器支援的解析度可透過在設定檔中設定想要的解析度來選擇,或者在 X 伺服器啟動之後使用 xrandr(1) 。
執行 xrandr(1) 不加任何參數可檢查影像輸出及已偵測到的顯示器模式清單:
% xrandr
Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192
DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm
1920x1200 59.95*+
1600x1200 60.00
1280x1024 85.02 75.02 60.02
1280x960 60.00
1152x864 75.00
1024x768 85.00 75.08 70.07 60.00
832x624 74.55
800x600 75.00 60.32
640x480 75.00 60.00
720x400 70.08
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
這個結果顯示
DVI-0
輸出被用來顯示解析度為 1920x1200 像素於更新頻率約 60 Hz 的畫面,未有顯示器連接到
DisplayPort-0
與
HDMI-0
接頭。
可使用 xrandr(1) 來選擇任何其他的顯示模式。例如要切換為 1280x1024 於 60 Hz:
% xrandr --mode 1280x1024 --rate 60
在筆記型電腦使用外部顯示輸出到投影機是常見的作業。
不同裝置間輸出接頭的類型與數量也不同,給每個輸出的名稱在不同驅動程式間也不同。在某些驅動程式稱為
HDMI-1
的輸出在其他驅動程式則可能稱為
HDMI1
。因此第一個步驟是執行
xrandr(1)
列出所有可用的輸出:
% xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
1366x768 60.04*+
1024x768 60.00
800x600 60.32 56.25
640x480 59.94
VGA1 connected (normal left inverted right x axis y axis)
1280x1024 60.02 + 75.02
1280x960 60.00
1152x864 75.00
1024x768 75.08 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 60.00
720x400 70.08
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
已找到四個輸出:內建面板的
LVDS1
,外接的
VGA1
,
HDMI1
以及
DP1
接頭。
投影機已連接至
VGA1
輸出,現在使用
xrandr(1)
來設定該輸出到投影機 (原始解析度) 並加入額外的空間到桌面的右側:
% xrandr --output VGA1 --auto --right-of LVDS1
--auto
會選擇使用 EDID 偵測到的解析度與更新頻率。若未正確偵測解析度,可替換
--auto
為
--mode
然後給予固定值。例如大部份的投影機可使用 1024x768 解析度為,則可設定
--mode 1024x768
。
xrandr(1) 通常會在 .xinitrc 執行以在 X 啟動時設定適合的模式。
在設定檔設定螢幕解析度為 1024x768:
/usr/local/etc/X11/xorg.conf.d/screen-resolution.conf
Section "Screen" Identifier "Screen0" Device "Card0" SubSection "Display" Modes "1024x768" EndSubSection EndSection
少數顯示器沒有 EDID,可設定
HorizSync
及
VertRefresh
為顯示器支援的頻率範圍。
/usr/local/etc/X11/xorg.conf.d/monitor0-freq.conf
Section "Monitor" Identifier "Monitor0" HorizSync 30-83 # kHz VertRefresh 50-76 # Hz EndSection
鍵盤上標準按鍵的位置稱做 配置 (Layout) 。配置與其他可調整的參數列於 xkeyboard-config(7) 。
預設為 United States 配置,要選擇其他的配置可在
InputClass
設定
XkbLayout
與
XkbVariant
選項。這會套用所有符合該類別的輸入裝置。
這個例子選擇 French 鍵盤配置使用
oss
變體。
/usr/local/etc/X11/xorg.conf.d/keyboard-fr-oss.conf
Section "InputClass" Identifier "KeyboardDefaults" Driver "keyboard" MatchIsKeyboard "on" Option "XkbLayout" "fr" Option "XkbVariant" "oss" EndSection
X 可以使用組合鍵來關閉,預設並未設定組合鍵,因為該組合鍵與部份應用程式的鍵盤指令衝突。要開啟這個選項需要更改鍵盤
InputDevice
節:
/usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf
Section "InputClass" Identifier "KeyboardDefaults" Driver "keyboard" MatchIsKeyboard "on" Option "XkbOptions" "terminate:ctrl_alt_bksp" EndSection
有許多滑鼠參數可使用設定選項來調整,請參考 mousedrv(4) 來取得完整清單。
在某些情況 Xorg 的自動設定無法在特定硬體上運作,或需要使用不同的設定。針對這些情況會建立自訂的設定檔。
|
非必要請勿手動建立設定檔,非必要的手動設置會造成運作不正常。 |
設定檔可由 Xorg 根據偵測到的硬體產生,這個檔案對一開始自訂設定很有幫助。
產生 xorg.conf :
# Xorg -configure
設定檔會儲存至 /root/xorg.conf.new ,做任何需要的更改,然後使用以下指令測試該檔案:
# Xorg -config /root/xorg.conf.new
在新設定檔調整與測試過後,便可分開成較小的檔案放置到正常的位置 /usr/local/etc/X11/xorg.conf.d/ 。
由於 Xorg 內建的預設字型用在典型的桌面出版應用程式並不是很理想,大字型會呈現鋸齒狀邊緣,看起來很不專業,小字型幾乎完全看不清楚。不過,這裡有幾個免費高品質的 Type1 (PostScript™) 字型可用,且能容易的在 Xorg 使用。例如,URW 字型集 (Times Roman™, Helvetica™, Palatino™ 及其他)。 Freefont 字型集 ( x11-fonts/freefonts ) 包含了更多的字型,但其中大部分是給圖形軟體如 GIMP 所使用的字型,並不能完全作為螢幕字型使用。此外,Xorg 可以簡單的設定使用 TrueType™ 字型。更多有關本主題的詳細資訊,請參考 X(7) 操作手冊或 TrueType™ 字型 。
要由 Binary 套件安裝上述的 Type1 字型集可執行以下指令:
# pkg install urwfonts
或由 Port 套件集編譯,可執行以下指令:
# cd /usr/ports/x11-fonts/urwfonts
# make install clean
同樣的安裝方式也適用 Freefont 或其他字型集。要讓 X 伺服器偵測到這些新安裝的字型,可加入適當的設定到 X 伺服器設定檔 ( /etc/X11/xorg.conf ),內容為:
FontPath "/usr/local/shared/fonts/urwfonts/"
或者在 X session 的指令列執行:
% xset fp+ /usr/local/shared/fonts/urwfonts
% xset fp rehash
這樣便可,但在 X session 關閉時將會失效,除非將該設定加入啟動檔 (一般的
startx
session 可在
~/.xinitrc
設定,若透過圖型化登入管理程式如 XDM 登入時則在
~/.xsession
設定)。第三種方式是使用新
/usr/local/etc/fonts/local.conf
,如
反鋸齒字型
的示範。
Xorg 內建支援繪製 TrueType™ 字型,目前有兩個模組可以支援這項功能。在本例中使用 freetype 模組,由於此模組與其他字型繪製後端較為一致。要開啟 freetype 模組只需要將下行加入到
/etc/X11/xorg.conf
中的
"Module"
section。
Load "freetype"
現在要建立一個儲存 TrueType™ 字型的目錄 (例如,
/usr/local/shared/fonts/TrueType
) 然後複製所有 TrueType™ 字型到這個目錄。要注意 TrueType™ 字型並無法直接取自 Apple™Mac™,Xorg 使用的字型必須為 UNIX™/MS-DOS™/Windows™ 的格式。檔案複製到讓目錄之後,使用 mkfontscale 來建立
fonts.dir
來讓 X 字型繪製程式知道安裝了新的檔案。
mkfontscale
可用套件的方式安裝:
# pkg install mkfontscale
然後在目錄中建立 X 字型檔的索引:
# cd /usr/local/shared/fonts/TrueType
# mkfontscale
接著加入 TrueType™ 目錄到字型路徑。這個動作與 Type1 字型 中所介紹的方式相同:
% xset fp+ /usr/local/shared/fonts/TrueType
% xset fp rehash
或直接加入
FontPath
一行到
xorg.conf
。
現在 Gimp, Apache OpenOffice 以及其他 X 應用程式應可以辨識到已安裝的 TrueType™ 字型。極小的字型 (以高解析度在網頁中顯示的文字) 與極大的字型 (在 StarOffice™ 中) 現在會看起來比較像樣了。
所有可在 /usr/local/shared/fonts/ 及 ~/.fonts/ 找到的 Xorg 字型均可在 Xft-aware 的應用程式使用反鋸齒的效果。大多最近的應用程式均為 Xft-aware 的,包括 KDE, GNOME 以及 Firefox。
要控制那一些字型要做反鋸齒或設定反鋸齒的屬性,需建立 /usr/local/etc/fonts/local.conf 檔案 (若檔案存在則編輯)。在這個檔案中可以調整 Xft 字型系統的數項進階功能,本章節僅介紹部份簡單的項目,要取得進一步資訊,請參考 fonts-conf(5) 。
這個檔案必須使用 XML 格式,小心文字大小寫,且要確定所有標籤均有正常結尾。檔案的開頭使用常見的 XML 檔首,接著為 DOCTYPE 定義,然後是
<fontconfig>
標籤:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
如同前面所提到的,所有在 /usr/local/shared/fonts/ 與 ~/.fonts/ 的字型均可在 Xft-aware 的應用程式做反鋸齒效果,若您想要加入除了上兩者以外的目錄,可加入如下行設定到 /usr/local/etc/fonts/local.conf :
<dir>/path/to/my/fonts</dir>
加入新字型及額外的新字型目錄之後,需重新建立字型快取:
# fc-cache -f
反鋸齒效果會讓文字的邊緣變模糊,這會讓非常小的文字更能閱讀且去除大型文字的 "鋸齒",但套用在一般的文字可能會造成眼睛的疲勞。要排除小於 14 點的字型大小使用反鋸齒效果,可加入這些行:
<match target="font"> <test name="size" compare="less"> <double>14</double> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> <match target="font"> <test name="pixelsize" compare="less" qual="any"> <double>14</double> </test> <edit mode="assign" name="antialias"> <bool>false</bool> </edit> </match>
反鋸齒所產生的間距對於部份等寬字型並不合適,尤其是在使用 KDE 時會成為一個問題。可能的修正方式是強制這類字型的間距為 100,可加入以下行:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>fixed</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> <match target="pattern" name="family"> <test qual="any" name="family"> <string>console</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match>
(這會設定等寬字型的其他常用名稱為
"mono"
),然後加入:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>mono</string> </test> <edit name="spacing" mode="assign"> <int>100</int> </edit> </match>
部份字型,如 Helvetica,在使用反鋸齒時可能會發生問題,通常會呈現像垂直切成兩半的字型,最差還可能會導致應用程式當掉。要避免這個問題,可考慮加入以下設定到 local.conf :
<match target="pattern" name="family"> <test qual="any" name="family"> <string>Helvetica</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match>
編輯
local.conf
完之後,請確認有使用
</fontconfig>
標籤結尾,若沒有使用會讓所做的更改被忽略。
使用者可透過建立自己的 ~/.config/fontconfig/fonts.conf 來加入個人化的設定,此檔案使用與上述說明相同的 XML 格式。
最後一點:若有使用 LCD 螢幕,可能會想要使用子像素取樣 (Sub-pixel sampling),這基本上會分開處理 (水平分隔) 紅、綠、藍色彩組成來提高垂直解析度,結果可能是無法預料的。要開啟這個功能,加入下行到 local.conf 的任一處:
<match target="font"> <test qual="all" name="rgba"> <const>unknown</const> </test> <edit name="rgba" mode="assign"> <const>rgb</const> </edit> </match>
|
依據不同的顯示器類型可能會需要將
|
Xorg 提供了 X 顯示管理程式 (X Display Manager, XDM),可用來做登入階段的管理。XDM 提供了一個圖型化的介面來選擇要連結的顯示伺服器以及輸入認証資訊 (登入與密碼)。
本節將示範如何設定 FreeBSD 的 X 顯示管理程式。部份桌面環境會提供自己的圖型化登入管理程式,請參考 GNOME 取得如何設定 GNOME 顯示管理程式 (GNOME Display Manager) 的操作方式以及 KDE 取得如何設定 KDE 顯示管理程式 (KDE Display Manager) 的操作方式。
要安裝 XDM 可使用 x11/xdm 套件或 Port。安裝完成之後,可設定 XDM 在開機時執行,只需編輯 /etc/ttys 中的此項目:
ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure
更改關 (
off
) 為開 (
on
) 然後儲存編輯。在此項目中的
ttyv8
代表 XDM 會在第 9 個虛擬終端機執行。
XDM 的設定目錄位於 /usr/local/etc/X11/xdm 。此目錄中包含數個可用來更改 XDM 行為與外觀的檔案以及在 XDM 執行時用來設定桌面的一些 Script 及程式, XDM 設定檔 摘要了每個檔案的功能。這些檔案正確的語法與用法在 xdm(1) 有說明。
| 檔案 | 說明 |
|---|---|
|
Xaccess |
連線到 XDM 所需的通訊協定稱做 X 顯示管理程式連線通訊協定 (X Display Manager Connection Protocol, XDMCP),此檔案為客戶端認証規則,用來控制來自遠端機器的 XDMCP 連線。預設此檔案並不允許任何遠端的客戶端連線。 |
|
Xresources |
此檔案控制 XDM 顯示選擇器及登入畫面的外觀。預設的設定簡單的矩形登入視窗,上方用較大的字型顯示機器的主機名稱,並在下方顯示 "Login:" 與 "Password:" 提示。此檔案的格式與 Xorg 說明文件中說明的 app-defaults 檔相同。 |
|
Xservers |
登入選擇時在選擇器上要提供的本地及遠端顯示清單。 |
|
Xsession |
預設的登入階段 Script,使用者登入之後由 XDM 執行。這會指向使用者自訂的登入階段 Script 於 ~/.xsession 。 |
|
Xsetup_ * |
用來在顯示選擇器與登入介面之前自動執行應用程式的 Script。每一個顯示各有一個 Script,名稱為
Xsetup_*
,其中
|
|
xdm-config |
用來設定所有在此機器上執行的顯示的全域設定檔。 |
|
xdm-errors |
內含由伺服器程式產生的錯誤訊息,若 XDM 嘗試啟動的顯示沒有回應,可查看此檔案來取得錯誤訊息。以登入階段為基礎,這些訊息也同樣會寫入至使用者的 ~/.xsession-errors 。 |
|
xdm-pid |
XDM 的執行程序 ID。 |
預設只有同系統的使用者可以使用 XDM 登入。要開啟讓其他系統的使用者可連線到顯示伺服器,需編輯存取控制規則及開啟連線傾聽程式。
要設定 XDM 傾聽任何遠端的連線,在
/usr/local/etc/X11/xdm/xdm-config
中的
DisplayManager.requestPort
行前加上
!
來註解該行:
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0
儲存編輯並重新啟動 XDM,要限制遠端存取,請看 /usr/local/etc/X11/xdm/Xaccess 中的範例項目,並參考 xdm(1) 取得進一步資訊。
本節將介紹如何在 FreeBSD 系統安裝三種熱門的桌面環境。一套桌面環境的範圍可從簡單的視窗管理程式到完整的桌面應用程式集。有上百套的桌面環境可在 Port 套件集的 x11-wm 分類取得。
GNOME 是一個擁有友善使用者介面的的桌面環境,它包括用於啟動應用程式和顯示狀態的面板、一系列工具與應用程序及一套可讓應用程式更容易進行合作、相互一致的協定。更多有關 FreeBSD GNOME 的訊息可在 https://www.FreeBSD.org/gnome 取得,該網站包含了有關在 FreeBSD 安裝、設定和管理 GNOME 的額外文件。
這套桌面環境可以從套件安裝:
# pkg install gnome3
也可使用以下指令從 Port 編譯 GNOME,GNOME 是一套大型的應用程式,即使在速度較快的電腦上,也會需要花費一些時間編譯。
# cd /usr/ports/x11/gnome3
# make install clean
GNOME 需要掛載 /proc 。加入下行到 /etc/fstab 讓系統啟動時會自動掛載這個檔案系統:
proc /proc procfs rw 0 0
GNOME 使用了 D-Bus 以及 HAL 的 Message bus 與 Hardware abstraction。這兩個應用程式會隨著 GNOME 的相依一併自動安裝,但需要在 /etc/rc.conf 開啟,這樣在系統開機時才會啟動:
dbus_enable="YES" hald_enable="YES"
安裝完之後,需設定讓 Xorg 啟動 GNOME。最簡單的方法是開啟 GNOME Display Manager, GDM,該程式已做為 GNOME 套件或 Port 的一部份安裝了,可加入下行到 /etc/rc.conf 來開啟:
gdm_enable="YES"
通常也會需要啟動所有的 GNOME 服務,可加入下行到 /etc/rc.conf :
gnome_enable="YES"
GDM 則會在系統開機時自動啟動。
第二種啟動 GNOME 的方法是在設定完
~/.xinitrc
後在指令列輸入
startx
。若這個檔案已經存在,替換啟動目前視窗管理程式的那一行,改為啟動
/usr/local/bin/gnome-session
。若檔案不存在,則使用以下指令建立一個:
% echo "exec /usr/local/bin/gnome-session" > ~/.xinitrc
第三種方法是使用 XDM 做為顯示管理程式,在這個方法需要建立一個可執行的 ~/.xsession :
% echo "exec /usr/local/bin/gnome-session" > ~/.xsession
KDE 是另一套易於使用的桌面環境。這個桌面環境提供了一致外觀的應用程式、標準化的選單和工具列、組合鍵、配色方案、國際化與集中、對話框導向的桌面設定。更多有關 KDE 可在 http://www.kde.org/ 取得。要取得 FreeBSD 特定的資訊,則可參考 http://freebsd.kde.org 。
要安裝 KDE 套件,請輸入:
# pkg install x11/kde5
或者要使用 KDE Port 編譯,可使用以下指令,採用 Port 方式安裝會有選單可以選擇要安裝的元件。KDE 是一個大型的應用程式,即使在較快的電腦上仍需要花費一段時間來編譯。
# cd /usr/ports/x11/kde5
# make install clean
KDE 需要掛載 /proc 。加入下行到 /etc/fstab 讓系統啟動時會自動掛載這個檔案系統:
proc /proc procfs rw 0 0
KDE 使用了 D-Bus 以及 HAL 的 Message bus 與 Hardware abstraction。這兩個應用程式會隨著 KDE 的相依一併自動安裝,但需要在 /etc/rc.conf 開啟,這樣在系統開機時才會啟動:
dbus_enable="YES" hald_enable="YES"
自 KDE Plasma 5 開始,KDE Display Manager, KDM 便停止開發,可能的替代方案為 SDDM,要安裝該套件可輸入:
# pkg install x11/sddm
加入下行到 /etc/rc.conf :
sddm_enable="YES"
第二種執行 KDE 的方法是在在指令列輸入
startx
。要採用這個方式,需要加入下行到
~/.xinitrc
:
exec ck-launch-session startkde
第三種啟動 KDE 的方式是透過 XDM,要使用這個方法需要建立一個可執行的 ~/.xsession 如下:
% echo "exec ck-launch-session startkde" > ~/.xsession
啟動 KDE 之後,請參考內建的說明系統來取得更多有關如何使用各種選單及應用程式的資訊。
Xfce 是以 GNOME 使用的 GTK +工具包做為基礎所開發的桌面環境,但是它更輕巧且提供了一種簡單、高效、易於使用的桌面。它可完全自訂設定、附有選單、Applet 及應用程式啟動器的主面板、提供檔案管理程式和音效管理程式並且可設定主題。由於它是快速、輕巧、高效的桌面環境,因此它非常適合有記憶體限制的較舊或較慢機器。更多有關 Xfce 的資訊可至 http://www.xfce.org 取得。
要安裝 Xfce 套件:
# pkg install xfce
或者使用 Port 編譯:
# cd /usr/ports/x11-wm/xfce4
# make install clean
Xfce 使用了 D-Bus 作為 Message bus,由於是 Xfce 的相依,因此會自動安裝,但仍要在 /etc/rc.conf 中開啟該程式才會在系統開機時啟動:
dbus_enable="YES"
不像 GNOME 或 KDE,Xfce 並沒有自己的登入管理程式,要能用
startx
指令列啟動 Xfce 之前需先加入其項目到
~/.xinitrc
:
% echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xinitrc
另一種方式是使用 XDM,要設定這個方式需建立一個可執行的 ~/.xsession :
% echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xsession
要令使用桌面電腦更令人愉快的方法是用炫麗的 3D 效果。
安裝 Compiz Fusion 套件非常簡單,但設定該套件需要一些未在 Port 說明文件中說明的步驟。
桌面特效需要使用相當程度的顯示卡,對於以 nVidia 為基礎的顯示卡,需要使用專用的驅動程序來取得較佳的性能。其他顯示卡的使用可以跳過這一節,並繼續 xorg.conf 設定。
要知道需要那一種 nVidia 驅動程式可以查看 FAQ 中與此主題相關的問題 。
知道您的顯示卡要使用那種驅動程式才是正確的之後,接下來的安裝程序跟安裝其他套件一樣簡單。
例如,要安裝最新的驅動程式:
# pkg install x11/nvidia-driver
驅動程式會建立一個需要在系統啟動時載入的核心模組,加入下行到 /boot/loader.conf :
nvidia_load="YES"
|
要立即載入核心模組到執行中的核心可以下
|
核心模組載入之後,您只需要更改 xorg.conf 的其中一行來開啟專用的驅動程式:
找到 /etc/X11/xorg.conf 中的下行:
Driver "nv"
然後更改該行為:
Driver "nvidia"
如往常般啟動 GUI,您應該會看到 nVidia 的啟動畫面,其他東西應如往常般運作。
要開啟 Compiz Fusion 需要修改 /etc/X11/xorg.conf :
加入以下 Section 來開啟合成特效:
Section "Extensions"
Option "Composite" "Enable"
EndSection
找到 "Screen" section,長的應該如下所示:
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
...
然後加入以下兩行 (在"Monitor" 之後):
DefaultDepth 24 Option "AddARGBGLXVisuals" "True"
找到您欲使用的螢幕解析度所在的 "Subsection",例如,您想要使用 1280x1024,則找到如下所示的 Section。若想要使用的解析度不在任何 Subsection 之中,您可以手動加入對應的項目:
SubSection "Display"
Viewport 0 0
Modes "1280x1024"
EndSubSection
桌面合成需要 24 bit 的色彩深度,更改上述 Subsection 為:
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024"
EndSubSection
最後確認在 "Module" section 中已經載入 "glx" 與 "extmod" 模組:
Section "Module"
Load "extmod"
Load "glx"
...
前面所述的動作可以執行 x11/nvidia-xconfig 來自動完成 (使用 root):
# nvidia-xconfig --add-argb-glx-visuals
# nvidia-xconfig --composite
# nvidia-xconfig --depth=24
安裝 Compiz Fusion 如同安裝其他套件一樣簡單:
# pkg install x11-wm/compiz-fusion
安裝完成之後,開啟您的圖型化桌面,然後在終端機的畫面輸入以下指令 (使用一般使用者):
% compiz --replace --sm-disable --ignore-desktop-hints ccp &
% emerald --replace &
由於您的視窗管理程式 (例如:Metacity,若您使用 GNOME) 會被替換成 Compiz Fusion,您的螢幕會閃爍幾秒。而 Emerald 會處理視窗的裝飾 (例如:關閉、最小化、最大化按鈕、標題列及其他相關)。
您或許可以將這些指令改寫成較小的 Script 然後在啟動時自動執行 (加到 GNOME 桌面的 "Sessions" 中):
#! /bin/sh compiz --replace --sm-disable --ignore-desktop-hints ccp & emerald --replace &
儲存這個 Script 到您的家目錄所在位置,例如 start-compiz ,然後讓該檔案可以執行:
% chmod +x ~/start-compiz
接著使用 GUI 將該檔案加入啟動程式 (位於 GNOME 桌面的系統 , 偏好設定 , 工作階段 )。
要選擇所想使用的特效與相關設定,可執行 (一樣使用一般使用者) Compiz Config 設定管理程式 Compiz Config Settings Manager:
% ccsm
|
在 GNOME 中,也可在系統 , 偏好設定 選單中找到。 |
若您在編譯時選擇了 "gconf support",您便可使用
gconf-editor
在
apps/compiz
下查看設定。
若滑鼠無法使用,您將需要做第一次設定方可繼續。在最近的 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="utf-8"?>
<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 下指令來做同樣的設定:
/usr/local/shared/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
i810
繪圖晶片組
要設定 Intel™ i810 整合晶片組需要使用 agpgart AGP 程式介面來控制 Xorg 驅動該顯示卡。請參考 agp(4) 驅動程式操作手冊來取得更多詳細資訊。
這也可讓您可以設定任何其他繪圖卡的硬體。注意,在未編譯 agp(4) 到核心的系統,並無法使用 kldload(8) 來載入該模組,因此驅動程式必須在開機時便在核心啟動,所以需要透過編譯或使用 /boot/loader.conf 來載入。
此章節會需要有一些進階的設定知識,若嘗試使用上述的標準設定工具仍無法產生可運作的設定,在日誌檔中應有足夠的資訊可運用來讓顯示卡運作。在此會需要使用文字編輯器。
目前使用寬螢幕 (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。
您可能忘記在
/etc/X11/xorg.conf
中的設定。請重新檢查這個檔案,特別是
DefaultDepth
及
AddARGBGLXVisuals
指令項。
若您檢查 /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。
最後修改於 : February 18, 2025 由 Fernando Apesteguía