Ict-innovation/LPI/106.1
考生應能夠安裝和配置 X11。
關鍵知識領域
- 驗證影片卡和顯示器是否受 X 伺服器支援。
- 瞭解 X 字型伺服器。
- 對 X 視窗配置檔案的基本理解和知識。
X 視窗系統是作為麻省理工學院雅典娜專案的顯示元件開發的。它是 UNIX 的圖形環境。Linux 的 X 視窗系統基於 X 視窗版本 11 釋出 6(通常稱為X11R6).
的免費可分發移植。xfree86適用於 80386/80486 和奔騰處理器系列。自從最初移植以來,Xfree86 已經移植到其他計算平臺,包括 System V/386 和 386BSD。
上圖顯示了 X11R6 伺服器的元件。“部分”名稱指的是XF86Config配置檔案(在下一節中介紹)中的配置部分。
伺服器頂部描繪的兩個客戶端被稱為x-應用程式(例如 xclock 或 xterm)。視窗管理器也是客戶端。視窗管理器在其他 x-應用程式客戶端周圍新增“視窗”功能,允許諸如視窗拖動、焦點、圖示化等功能。
| 通知 |
| X11R6 伺服器獨立於在它之上執行的客戶端。客戶端使用特定配置檔案或全域性檔案進行配置,這些檔案通常稱為 Xdefaults 或 Xresources。X 伺服器配置檔案只配置元件,例如字型伺服器和字型目錄、滑鼠、鍵盤、顯示器解析度和顏色深度。 |
Xfree86 軟體提供的兩個配置實用程式是XF86Setup和xf86config指令碼。其他供應商有特定的實用程式,例如
Xconfigurator、redhat-config-xfree86(RedHat)
XFdrake (Mandrake)
sax(Suse)
伺服器配置完成後,可以使用xvidtune.
更改顯示器的水平和垂直設定。XF86Config 所有上述配置實用程式都將建立和編輯配置檔案。此檔案在啟動時由 X 伺服器讀取,並決定其行為。此檔案通常位於 /etc/X11 目錄中,其完整路徑為.
/etc/X11/XF86Config
- 配置檔案中有 11 個配置部分,它們列在下面
- ServerFlags
- Module
- InputDevice
- Device
- VideoAdapter
- Monitor
- Modes
- Screen
- ServerLayout
- DRI
| 通知 |
| Vendor |
過時的部分名稱Keyboard 和 Pointer 仍然出於相容性原因而被識別,新的部分名稱現在是InputDevice第一個部分之一是“Files”部分。該FontPath關鍵字告訴從本地目錄還是從字型伺服器獲取字型。該RgbPath
關鍵字用於指示用於將顏色名稱對映到 RGB 符號的 rgb 文字檔案的完整路徑
Section “Files”
FontPath “/path/to/fonts/dir/”
FontPath “trans/hostname: port”
RgbPath "/path/to/rgb"
EndSection
其中 trans 是傳輸型別 unix,hostname 是字型伺服器的完全限定域名,port 是要連線的埠,通常是埠 7100。
示例
FontPath “unix/:7100”# 本地字型伺服器
FontPath “unix/myfontserver.mydomain.com:7100”
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled,/usr/X11R6/lib/X11/fonts/75dpi:unscaled,/usr/X11R6/lib/X11/fonts/100dpi:unscaled,/usr/X11R6/lib/X11/fonts/misc/" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/psaux" Option "ZAxisMapping" "4 5" EndSection Section "Monitor" Identifier "Primary Monitor" VendorName "Unknown" ModelName "Unknown" HorizSync 31.5-37.9 VertRefresh 55-90 Modeline "800x600" 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync EndSection Section "Device" Identifier "Primary Card" VendorName "Unknown" BoardName "None" VideoRam 2048 EndSection Section "Screen" Driver "Accel" Device "Primary Card" Monitor "Primary Monitor" DefaultColorDepth 24 BlankTime 0 SuspendTime 0 OffTime 0 SubSection "Display" Depth 24 Modes "800x600" EndSubSection SubSection "Display" Depth 32 Modes "800x600"
下面是一個示例 XF86Config 檔案
控制 X 客戶端設定字型和顏色
X 客戶端使用 .Xresources 或 .Xdefaults 檔案進行配置。這些檔案儲存在使用者的 home 目錄中。預設情況下它不會自動建立,因為每個程式都提供系統範圍的預設設定。
xterm_color*background: Black xterm_color*foreground: Wheat xterm_color*cursorColor: Orchid xterm_color*reverseVideo: false xterm_color*scrollBar: true xterm_color*saveLines: 5000 xterm_color*reverseWrap: true xterm_color*font: fixed xterm_color.geometry: 80x25+20+20 xterm_color*fullCursor: true xterm_color*scrollTtyOutput: off xterm_color*scrollKey: on term_color*VT100.Translations: #override\n\ <KeyPress>Prior : scroll-back(1,page)\n\ <KeyPress>Next : scroll-forw(1,page) xterm_color*titleBar: false
下面是 .Xresources 的摘錄
這些指令中的每一項都是系統預設指令,描述了客戶端的顯示方式。每行都包含客戶端名稱,後跟一個星號和 X 視窗引數。透過仔細配置 .Xresources 檔案,使用者可以定義每次啟動客戶端時的外觀。
DISPLAY 變數啟動 x-應用程式(或 X 客戶端)時,它需要知道要執行哪個 X 伺服器。X 伺服器被稱為顯示器。例如,您啟動的第一個 X 伺服器(例如使用startx
啟動)被稱為 :0 ,第二個被稱為 :1,依此類推。主機 192.168.1.99 上執行的第一個 X 伺服器(或顯示器)被稱為 192.168.1.99:0大多數本機 X 客戶端,如 xterm或xclock
都有一個 -display 開關,可用於設定顯示器。但最簡單的方法是設定名為 DISPLAY 的環境變數!
| 以下兩條命令等效 |
| xclock -display 192.168.1.99:0 |
DISPLAY=192.168.1.99:0 xclock 但是,主機 192.168.1.99 上的 X 伺服器將不允許此 x-應用程式執行。在遠端主機(192.168.1.99)上啟動 X 伺服器的使用者需要執行 xhost
命令。此工具可以有選擇地將主機新增到訪問控制列表或從列表中刪除主機。
| 示例:允許主機 192.168.1.7 上的遠端 x-應用程式在本地伺服器上執行 xhost + 192.168.1.7 |
| 通知 |
| 192.168.1.7 被新增到訪問控制列表中但是,主機 192.168.1.99 上的 X 伺服器將不允許此 x-應用程式執行。在遠端主機(192.168.1.99)上啟動 X 伺服器的使用者需要執行該機制必須與xauth (不屬於 LPI 目標)一起使用。為了使來自 192.168.1.7 的遠端 x-客戶端在我們本地伺服器上執行,我們仍然需要在本地主機上執行以下命令 xauth extract - $DISPLAY | ssh 192.168.1.7 xauth merge - |
(假設使用者名稱相同,並且 $DISPLAY 中包含的主機名可以解析)
啟動 X
X 會話可以使用兩種方法啟動
方法 1:從命令列,登入到虛擬終端後,使用者使用名為 startx 的指令碼啟動 X 伺服器
方法 2:正在執行的顯示管理器使用圖形登入提示使用者,這可用於特定執行級別(在 RedHat 型別發行版中,這是 執行級別 5)。
從命令列
startx 指令碼啟動 xinit。xinit 指令碼有兩個主要引數:(a)X 伺服器和(b)xinitrc 指令碼。xinitrc 指令碼將獲取(讀取)Xresourses 檔案(控制 x-應用程式)和 Xclients 檔案(選擇視窗管理器)。因此,我們可以跟蹤如下所示的啟動序列
startx --> xinit --> X -> xinitrc -> Xclients
排查 X 客戶端問題
偶爾,X 客戶端無法正常終止,留下殭屍程序。殭屍程序是指其父程序已終止,但無法清除對子程序的引用。當子程序的父程序退出,而子程序仍在執行時,這通常可以透過執行 ps 來識別,這將顯示子程序由 PID 1(init)擁有。應殺死這些程序,因為它們可能正在使用 CPU 資源。殺死此類程序需要使用者是擁有該程序的使用者,或為 root 使用者。可能需要使用 –9 選項才能真正殺死這些程序。
選擇視窗管理器通常稱為桌面的區域在 X Window 世界中也稱為螢幕。它涵蓋了顯示器顯示的整個區域。根視窗是螢幕的背景,通常用於顯示顏色或圖片。視窗管理器提供使用者和 X 伺服器之間的介面。沒有視窗管理器幾乎不可能使用 X,因為它提供了標題欄和用於操作顯示的熟悉按鈕。
有關可用視窗管理器的資訊,請訪問視窗管理器網站 http://www.PliG.org/xwinman。這些視窗管理器的許多 Linux 版本都可以在 ftp://metalab.unc.edu/pub/Linux/X11/window-managers 找到。
除了不同的視窗管理器之外,還有各種桌面環境,其中最常見的是 KDE、GNOME 和 XFCE。
以下是整合視窗管理器的簡短列表
- Enlightenment
- fvwm
- icewm
- amiWM
- mlvwm
- dfm
- olwm
- olvwm
- mwm
以下是已使用檔案、術語和實用程式的部分列表。
- /etc/X11/xorg.conf
- 但是,主機 192.168.1.99 上的 X 伺服器將不允許此 x-應用程式執行。在遠端主機(192.168.1.99)上啟動 X 伺服器的使用者需要執行
- DISPLAY
- xwininfo
- xdpyinfo
- X
