歡迎您光臨本站 註冊首頁

如何在Linux下實現設備的配置(下)

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  於辰濤 (scu_yct@263.net)
聯想(北京)電腦公司軟體工程師
2001 年 8 月

本文是《如何在Linux下實現設備的配置》的第二部分,將接著向您介紹窗口系統(XFree86)的配置過程。
6 窗口系統(XFree86)的配置過程
6.1 顯示卡的描述文件介紹(CardDB)
CardDB是X配置程序使用的顯示卡數據文件。在對XFree86進行配置時,配置程序一般都需要讀取其上的內容完成顯示卡的配置。它的內容與使用的XFree86的版本密切相關。一般而言,它保存的位置是在/usr/X11R6/lib/X11/目錄下。現在我們就對XFree86 4.1.0的CardDB文件進行簡單的介紹:

NAME
顯示卡的描述名稱

CHIPSET
描述顯示卡使用的晶元集

SERVER
為了和3.x版本的XFree86向下兼容,由此欄位指定此顯示卡在XFree86 3.x下的X伺服器,例如VGA16,SVGA等。

DRIVER
描述在4.x版本的XFree86下顯示卡的驅動程序模塊。

LINE
設置顯示卡特定的選項信息,這樣的選項信息出現在XF86Config的Device節,對應設備的Option參數。

SEE
是指此顯示卡的配置信息與SEE欄位所制定的顯示卡完全相同,例如

NAME Number Nine GXE64 with S3 Trio64
SEE S3 Trio64 (generic)
表示Number Nine GXE64的顯示卡配置與S3 Trio64 (generic)的配置完全相同。
RAMDAC
RAM直接存取控制的控制晶元型號

DACSPEED
直接存取控制的速度

CLOCKCHIP
此顯示卡的時鐘晶元的

NOCLOCKCHIP
此顯示卡無時鐘晶元

UNSUPPORTED
此類型的顯卡,此版本的XFree86不能提供支持

COMMENT
註釋

例如,對於RIVA TNT顯卡,XFree86 4.1.0中的信息如下:

NAME RIVA TNT
CHIPSET RIVATNT
SERVER SVGA
DRIVER nv
NOCLOCKPROBE


6.2 顯示器信息檢測
顯示器的信息在XFree86系統中時非常重要的,它對應XFree86配置文件的Monitor節。在這一節中包含監視器的水平掃描頻率範圍,垂直掃描頻率範圍,顯示器支持的顯示模式等信息。同樣的,顯示器的自動檢測也就是通過程序自動讀出顯示器的上述信息。它的正確設置對於XFree86能否正常顯示起到很重要的作用。

對於顯示器的信息檢測,要求它必須支持vbe(VESA的BIOS級擴展)。在顯示器支持此擴展時,通過系統實模式下的BIOS調用INT 10H,可以取得顯示器的詳細信息。

可能需要的BIOS子功能調用為:

AH = 0x4F00
獲得關於監視器的VESA的BIOS級擴展信息

AH = 0x4F01
獲得監視器支持的特定顯示模式

AH = 0x4F02
設置當前的視頻模式

AH = 0x4F03
獲得當前的視頻模式

AH = 0x4F04
保存/還原svga顯示方式

AH = 0x4F15
獲得監視器的EDID擴展信息

一般的顯示器使用上述中斷的方式是:先檢查顯示器是否支持VESA的BIOS級擴展,如果顯示器支持BIOS級擴展,就查看顯示器支持的顯示模式,然後獲得顯示器的EDID擴展信息。在讀出的EDID擴展信息中,可以查出顯示器的垂直回掃頻率範圍和水平回掃頻率範圍,也可以計算出顯示器的大小,對於一部分顯示器還可以從此信息中讀出監視器的製造商信息。

由顯示器讀出的信息可以設置XF86Config的Monitor節,對於設置了正確的垂直回掃頻率範圍和水平回掃頻率範圍的顯示器,X自動設置為當前顯示解析度下支持的最高掃描頻率的顯示模式(此顯示模式要求有對應的Modeline)。

但是如果您的顯示器不支持EDID擴展信息,那麼您就只有根據經驗來設置顯示器的垂直回掃頻率範圍和水平回掃頻率範圍。如果設置的範圍高於監視器的實際支持範圍,那麼顯示器會出現黑屏的現象。

對於編程實現,如果您要調用上述bios中斷,那麼必須使用lrmi這個實模式介面,並設置正確的寄存器信息,完成系統調用。具體的檢測顯示器信息的例子,您可以參考Xconfigurator下ddcprobe的源程序,也可以參考Mandrake系統下的ddcxinfos命令的源程序。

6.3 窗口系統的配置過程
要正確的在Linux下配置窗口系統,實際上就是生成正確的XFree86配置文件,這個文件一般保存在/etc/X11/下,在X版本是3.x時,它的文件名為XF86Config,在X版本是4.x時,它的文件名一般為XF86Config-4。在現在的發行版本中,處於硬體兼容性的考慮,他們一般都讓這兩個版本的XFree86包共存。因此,您也可以在/etc/X11目錄下,發現這兩個文件同時存在,這時使用那個文件就要看系統的X伺服器的版本了。

無論是那個版本的XF86Config文件都是由許多節(Section)構成的,但是這些節描述的內容主要包括:鍵盤、滑鼠、顯示器、顯示卡、字體(顏色)等。

在X版本是3.x時,鍵盤和滑鼠的描述分別對應Keyboard和Pointer節。而在X版本是4.x時,鍵盤和滑鼠的描述都對應InputDevice節,只是對應不同的驅動模塊,鍵盤的驅動模塊是keyboard,滑鼠的驅動模塊是mouse。配置這兩節所需要的信息可以從/etc/sysconfig/keyboard和/etc/sysconfig/mouse中獲得,它們的詳細內容,本文的前面章節已作了介紹。

配置顯示器實際上是生成XF86Config文件的Monitor節,需要配置的信息一般包括:水平掃描頻率範圍、垂直掃描頻率範圍、監視器支持的顯示模式、製造商信息。對於支持vbe和edid擴展的顯示器,可以根據從顯示器上讀出的信息設置對應欄位的值。但是如果顯示器不支持上述擴展,則顯示卡的設置必須由用戶手動完成。如果您在配置XFree86時不指定這一節,那麼XFree86會設置顯示模式為640x480,垂直掃描頻率為60hz的方式。不同顯示模式的掃描頻率: 顯示解析度 垂直掃描頻率(Hz) 水平掃描頻率(kHz)
640x480 60 31.50
640x480 72 36.50
640x480 75 37.50
640x480 85 43.27
800x600 60 37.80
800x600 72 48.00
800x600 85 55.84
800x600 100 64.02
1024x768 60 48.40
1024x768 70 56.50
1024x768 76 62.50
1024x768 85 70.24
1024x768 100 80.21
1280x1024 61 64.20
1280x1024 70 74.59
1280x1024 74 78.85
1280x1024 76 81.13
1280x1024 85 91.15
1280x1024 100 107.16
1600x1200 60 75.00
1600x1200 70 87.50
1600x1200 75 93.75
1600x1200 85 105.77
表 6-1

從上表可以看出,您要設置顯示器達到某一解析度,那麼與此相對應,它的掃描頻率範圍也要包含上表中此解析度的最低掃描頻率。如果您的顯示器達不到這個範圍,那麼XWindow將無法正常工作。如果您設置的掃描頻率高於顯示器實際的掃描頻率範圍,由於XFree86會尋找對應解析度下最高掃描頻率進行顯示,所以此時XWindow將極有可能黑屏。

在生成配置腳本時,掃描頻率的範圍也不是越低越好。設置較低的掃描頻率範圍對於部分LCD顯示器就不合適。比如,一部分LCD顯示器在800x600解析度時,最低支持的垂直掃描頻率為70Hz,那麼您這時指定的水平回掃範圍一定要包含48kHz。

在配置完顯示器之後,您就需要生成與顯示卡對應的描述了。這樣的描述信息對應XF86Config文件的Device節。這一節主要描述的顯示卡信息包括:顯示卡對應的X伺服器(X版本在3.x),對應的X設備模塊(X版本為4.x),顯示卡的設備信息(供應商、型號、支持顯存存取方式和顯存大小等),以及此顯示卡支持的設備選項,比如顯示卡是否支持硬體加速、是否支持軟游標等。生成窗口系統的配置過程一般是先由pci的設備標識(檢測過程見)獲得顯示卡的類型,由此在XFree86的配置文件CardDB(這個文件可在/usr/X11R6/lib/X11/目錄下找到)中查得它對應的顯示卡描述,由此信息可以設置此節的描述。

字體和調色板信息描述的是字體和調色板所存放的路徑,您如果新加入字體時,需要在此加入正確的字體路徑。設置字體路徑時,如果指定它為unix:-1,那麼就是說您在啟動X伺服器之前,必須首先啟動字體伺服器xfs,然後由字體伺服器完成字體的訪問請求。

在您正確的設置了上述信息之後,您必須將這些信息存放在Screen節中。這一節描述的是完成顯示對應的顯示卡,顯示器,解析度和預設深度等信息。

最後,您還必須生成ServerLayout節,由它描述整個系統所使用的顯示卡配置節、監視器配置節、滑鼠配置節、鍵盤配置節等信息。

在生成了/etc/X11/XF86Config(XF86Config-4)文件后,您就可以測試一下此配置文件是否正確了。例如,對於XFree86 4.x,生成的配置文件為/etc/X11/XF86Config.test,測試使用如下命令:

XFree86 -xf86config /etc/X11/XF86Config.test :9
-xf86config /etc/X11/XF86Config.test表示使用指定的配置文件啟動X伺服器
:9 表示在終端9上運行X伺服器

一般而言,如果是編程實現X的配置過程的話,則要以子進程的方式(系統調用fork)運行上述命令,在成功啟動X伺服器之後,運行一個小的圖形化程序,讓用戶選擇配置是否成功。

當然,如果您不能得到顯卡的詳細的設備參數的話,您也可以使用probeonly選項獲得顯示卡的詳細信息。例如,對於XFree86 4.x測試使用如下命令:
XFree86 -probeonly :9

對於正常的啟動XFree86之後,系統輸出的信息,您可以通過讀取/var/log/XFree86.x.log獲得。x是指XFree86啟動的終端,一般設置此x為0。

在XF86Config文件配置之後,您可以使用startx啟動XFree86。這個文件會運行您的登錄目錄下的.xinitrc文件來修改X Window系統的初始顯示狀態。這個文件是一個腳本文件。如果這個文件不存在,系統就會默認使用/usr/X11R6/lib/X11/xinit/xinitrc。同時,startx還要查找/etc/X11/X,這個文件是一個鏈接文件,它指向真正的X服務程序,現在這個程序一般都指向Xwrappers,它是對X服務程序的封裝。當然,這個文件也可以直接指向X服務程序XFree86。

6.4 支持FrameBuffer方式的顯卡的配置過程
幀緩衝(FrameBuffer)設備是指一種不帶視頻加速的X11支持設備。啟動此方式的優點主要有三點:其一是在控制台方式工作時,您能設置更大的控制台顯示區,比如設置1024x768解析度大小的控制台;其二是可以在其上啟動XF86_FBDev(對於XFree86 4.x下,使用啟動模塊fbdev);其三是可以在啟動時顯示啟動徽標(一隻胖胖的企鵝)。

在有時顯示卡對應的XFree86驅動程序不能正常工作時,而您又需要比較豐富的色彩時,啟動FrameBuffer往往是必須的選擇。啟動FrameBuffer時,XFree86啟動的解析度由FrameBuffer的啟動模式決定。

能夠啟動FrameBuffer的設備是intel結構下與vesa 2.0標準兼容顯卡的幀緩衝設備,但是現在不能在支持vesa 1.2的顯卡上支持FrameBuffer。這是因為vesa 1.2不支持線性幀緩衝(線性幀緩衝意味著CPU能訪問顯卡的每一位)。您可以下載補丁,以使vesafb支持vesa 1.2的顯卡,比如一些較老的s3系列顯卡。

現在支持vesa 2.0的顯卡主要有:
ATI PCI VideoExpression 2MB (max. 1280x1024 @ 8bit)
ATI PCI All-in-Wonder
Matrox Millennium PCI - BIOS v3.0
Matrox Millennium II PCI - BIOS v1.5
Matrox Millennium II AGP - BIOS v1.4
Matrox Millennium G200 AGP - BIOS v1.3
Matrox Mystique & Mystique 220 PCI - BIOS v1.8
Matrox Mystique G200 AGP - BIOS v1.3
Matrox Productiva G100 AGP - BIOS v1.4
All Riva 128 based cards
Diamond Viper V330 PCI 4MB
Genoa Phantom 3D/S3 ViRGE/DX
Hercules Stingray 128/3D with TV output
Hercules Stingray 128/3D without TV output - needs BIOS upgrade (free from
support@hercules.com)
SiS 6326 PCI/AGP 4MB
STB Lightspeed 128 (Nvida Riva 128 based) PCI
STB Velocity 128 (Nvida Riva 128 based) PCI
Jaton Video-58P ET6000 PCI 2MB-4MB (max. 1600x1200 @ 8bit)
Voodoo2 2000




主板集成顯示卡:
Trident Cyber9397
SiS 5598



啟動FrameBuffer必須設置內核的啟動顯示模式,設置這個參數是通過內核參數vga=實現的。比如,設置啟動之後的解析度為640x480下的16位色時,傳遞的參數為vga=785(十進位數)。您也可以在/etc/lilo.conf文件中設置此參數,由lilo傳遞內核參數。

內核支持的FrameBuffer顯示模式如下表: 顯示深度 640x400 640x480 800x600 1024x768 1152x864 1280x1024 1600x1200
4 bits 0x302
8 bits 0x300 0x301 0x303 0x305 0x161 0x307 0x31C
15 bits 0x310 0x313 0x316 0x162 0x319 0x31D
16 bits 0x311 0x314 0x317 0x163 0x31A 0x31E
24 bits 0x312 0x315 0x318 0x31B 0x31F
32 bits 0x164
表 6-2

向內核傳遞vesa選項還包括:
video=vesa:option,多個選項之間可用逗號隔開;

可接受的選項:
ypan
使用vesa保護模式介面顯示,可視屏幕是視頻內存的一個窗口。

pro
快速的整屏卷滾,允許回滾。

kontra
部分卷滾,可產生一些閃動效果。

ywrap
比ypan速度快,但是兼容性差。

redraw
預設使用,通過重繪受影響的屏幕區進行重畫。

vgapal
預設使用,標準的vga調色版寄存器。

pmipal
使用保護模式的調色版介面。

例如,下面的操作設置FrameBuffer設備的顯示:
export FRAMEBUFFER=/dev/fb1
fbset -fb /dev/fb1 -vyres 600
fbset -fb $FRAMEBUFFER 1024x768@60
startx -- :0 -bpp 16 vt06
在虛擬控制終端6以16為顏色深度啟動X伺服器。

如果您要對幀緩衝設備編程,則可以象使用/dev/mem一樣,讀、寫、定位以及mmap()此設備。不同的是,您此時操作的設備內存位於視頻設備內存中。/dev/fb*設備也支持幾種ioctl操作,由此可以獲得或設置設備信息。顏色表的處理使用ioctl()。

6.5 XF86Config文件格式(版本為4.x系列)
6.5.1 文件的基本組成

文件的每節都是由下述的部分組成:

Section "SectionName"
SectionEntry

EndSection
SectionName包括:

Files 文件路徑名
ServerFlags 伺服器標誌
Module 動態模塊載入
InputDevice 輸入設備描述
Device 圖形設備描述
VideoAdaptor Xv視頻卡描述
Monitor 監視器描述
Modes 視頻模式描述
Screen 屏幕配置
ServerLayout 全面的層疊
DRI DRI特定的配置
Vendor 供應商特定的配置

出於向下兼容的目的,下列項雖已廢除但是配置文件仍能識別。在新的配置文件中,應使用新的InputDevice項。
Keyboard 鍵盤配置
Pointer 指針/滑鼠配置
老的XInput節已經被廢除。

ServerLayout在最高層。它們綁定的輸入輸出設備會在這一節里使用。輸入設備由InputDevice描述,輸出設備通常有多個獨立的組件組成。多個組件組成Screen節。每個Screen節將圖形板和監視器綁定在一起。顯示卡由Device節描述,監視器由Monitor節描述。

6.5.2 Files節
Files節指定X伺服器的字體路徑、調色板路徑和模塊路徑。

FontPath "path"
設置字體的查詢路徑。對於字體伺服器的表示採用下述的形式:
/:
指定與字體伺服器連接的傳輸類型(unix,tcp)。
若此節不指定,則預設的字體路徑是:
/usr/X11R6/lib/X11/fonts/misc/
/usr/X11R6/lib/X11/fonts/Speedo/
/usr/X11R6/lib/X11/fonts/Type1/
/usr/X11R6/lib/X11/fonts/CID/
/usr/X11R6/lib/X11/fonts/75dpi/
/usr/X11R6/lib/X11/fonts/100dpi/
一般而言,推薦的字體路徑是:
/usr/X11R6/lib/X11/fonts/local/
/usr/X11R6/lib/X11/fonts/misc/
/usr/X11R6/lib/X11/fonts/75dpi/:unscaled
/usr/X11R6/lib/X11/fonts/100dpi/:unscaled
/usr/X11R6/lib/X11/fonts/Type1/
/usr/X11R6/lib/X11/fonts/CID/
/usr/X11R6/lib/X11/fonts/Speedo/
/usr/X11R6/lib/X11/fonts/75dpi/
/usr/X11R6/lib/X11/fonts/100dpi/
RGBPath "path"
rgb顏色資料庫的路徑,預設值為:/usr/X11R6/lib/X11/rgb。
ModulePath "path"
設置可載入的X伺服器模塊的查找路徑。
6.5.3 ServerFlags節
ServerFlags節用於指定全局的X伺服器選項,在一般情況下這個部分是空的。

Option "NoTrapSignals" "boolean"
此選項可以阻止X伺服器捕獲未期待的致命信號並乾淨的退出。X伺服器退出並擦除core文件。
Option "DontZap" "boolean"
打開此選項之後,可以禁止Ctrl+Alt+Backspace的使用。
Option "DontZoom" "boolean"
打開此選項,可以禁止鍵Ctrl+Alt+Keypad-Plus and Ctrl+Alt+Keypad-Minus來切換視頻模式。
Option "DisableVidModeExtension" "boolean"
可以用來禁止VidMode擴展。
Option "AllowNonLocalXvidtune" "boolean"
打開允許xvidtune客戶從其他的主機連接。
Option "DisableModInDev" "boolean"
關閉可以禁止XFree86-Misc擴展(可用於動態修改輸入設備的設置)。
Option "AllowNonLocalModInDev" "boolean"
允許客戶連接另一台主機並且在運行的伺服器上改變鍵盤和滑鼠的設置。
Option "AllowMouseOpenFail" "boolean"
即使滑鼠設備不能被打開/初始化也允許X伺服器啟動。
Option "VTInit" "command"
在伺服器所用的VT被打開之後運行命令。此命令被傳到"/bin/sh -c",以與此VT設置的stdin和stdout相同的真正用戶id運行。
Option "VTSysReq" "boolean"
使非SYSV系統的VT能支持SYSV風格的切換序列。這意味著在Alt-SysRq之後緊接著功能鍵(Fn)。這阻止X伺服器捕獲用於預設VT的切換序列鍵(已使客戶能夠存取它們)。
Option "BlankTime" "time"
設置黑屏屏保的超時時間。time以分鐘為單位,預設10分鐘。(xset進行動態設置)
Option "StandbyTime" "time"
Option "SuspendTime" "time"
Option "OffTime" "time"
設置進入DPMS的等待狀態的時間,這僅適於支持VESA DPMS兼容方式的監視器。預設時間是20分鐘。(屏幕設置有DPMS選項設置)
Option "Pixmap" "bpp"
設置象素格式使用深度為24的格式。
Option "NoPM" "boolean"
禁止電源管理
Option "Xinerama" "boolean"
使能或禁止XINERAMA擴展
6.5.4 Module節
此節用於指定載入的X伺服器模塊。此節在X伺服器以靜態方式建立時是被忽略的。在此節中載入的模塊一般為X伺服器擴展模塊和光柵字體模塊。大多數其他模塊在需要時自動載入。

Load "modulename"
例如:Type 1光柵字體模塊由下列入口載入:

Load "type1"

SubSection "modulename"
Option "moduleoption"
EndSubSection

6.5.5 Inputdevice節
這一節寫入的信息是從/etc/sysconfig/mouse和/etc/sysconfig/keyboard中讀出的,並且要求兩者的設置基本保持一致。一般而言,都存在兩種輸入設備:其一是核心鍵盤,另一是核心指針,指針設備主要是指滑鼠,但也可以是觸摸屏等其他設備。

Section "InputDevice"
Identifier "name"
Driver "InputDriver"
options
...
EndSection
最常見的InputDriver是"keyboard"和"mouse"。
Option "CorePointer"
設備被作為核心指針安裝。系統必須要有一個核心指針。
Option "CoreKeyboard"
在這一選項被設置時,設備被作為核心鍵盤安裝。系統中有且只有一個核心鍵盤。
Option "AlwaysCore" "boolean"
Option "SendCoreEvents" "boolean"
上面的兩個選項是等價的,它引起輸入設備總是報告核心事件。它可以用於附加的指針設備生成核心事件。
Option "HistorySize" "number"
設置移動歷史的大小,預設是0。
6.5.6 Device節
這一節描述顯示卡對應的信息,它的內容一般從CardDB文件中顯示卡對應的描述中獲得。若此設備節被Screen節引用,則認為此節是可用的。

Section "Device"
Identifier "name"
Driver "driver"
entries
… …
EndSection
BusID "bus-id"
指定圖形卡的匯流排位置。對於PCI/AGP卡,bus-id串具有PCI:bus:device:function的格式。XFree86支持多個顯示卡的同時顯示
Screen number
VideoRam mem
此選項指定圖形卡的RAM數量,以KB為單位。X服務程序會自動探測顯示卡,所以此欄位一般並不需要指定。
Chipset "chipset"
圖形卡上的晶元組類型。
Ramdac "ramdac-type"
DacSpeed speed
DacSpeed speed-8 speed-16 speed-24 speed-32
ClockChip "clockchip-type"
BiosBase baseaddress
MemBase baseaddress
IOBase baseaddress
ChipID id
ChipRev rev
TextClockFreq freq
以上10個欄位,它們表示一些具體的X配置參數。一般在配置X伺服器時無需指定,而由自動檢測決定它們的值。

6.5.7 Monitor節
Monitor節描述顯示器的信息,至少有一個顯示器節。在顯示器支持vbe和edid擴展時,它的所有信息都可以從顯示器上讀出。

Section "Monitor"
Identifier "name"
entries

EndSection
VendorName "vendor"
顯示器的製造商

ModelName "model"
監視器的型號

HorizSync horizsync-range
監視器支持的水平刷新頻率範圍。單位是kHz,預設範圍是28-33kHz。

VertRefresh vertrefresh-range
監視器支持的垂直刷新頻率範圍。單位是Hz,預設範圍是43-72Hz。

Gamma gamma-value
Gamma red-gamma green-gamma blue-gamma
用於gamma校正,範圍從0.1到10.0,預設值是1.0。並非所有的驅動程序具有使用此信息的能力。

UseModes "modesection-id"
包括Modes節稱為modesection-id列出的模式集合。這使得這些模式可用於此顯示器。

Mode "name"
設置視頻模式的詳細定義。以EndMode關鍵字結束。

DotClock clock
此模式下的點時鐘速率。

HTimings hdisp hsyncstart hsyncend htotal
指定模式的水平定時。

VTimings vdisp vsyncstart vsyncend vtotal
指定模式的垂直定時。

Flags "flag" ...
flag指定模式的選項設置。"Interlace"設置模式是交錯的。"DoubleScan"指定每個掃描行是雙次的。"+HSync"和"-HSync"指定HSync信號的極性。"+VSync"和"-VSync"指定VSync信號的極性。"Composite"指定複合同步信號。"+CSync"和"-CSync"指定複合同步信號的極性。

HSkew hskew
指定像素數

VScan vscan
每根掃描線繪製的次數。"DoubleScan"加倍這個值。

ModeLine "name" mode-description
Mode項的緊湊版本。大多數情況下,X服務程序內含的VESA顯示模式已經足夠,您無需另外指定。

6.5.8 Screen節
一個配置文件中可以有多個Screen節,但至少要有一個。這一節表示了顯示卡和監視器聯結在一起的信息。當它出現在ServerLayout中時,這一節所表示的信息就是激活的,否則系統選擇第一個出現的Screen節作為活動的。這一節描述了顯示解析度,預設深度等信息。它必須包含至少一個Display子節,這些子節提供了與顯示深度相關的信息。

Section "Screen"
Identifier "name"
Device "devid"
Monitor "monid"
entries

SubSection "Display"
entries

EndSubSection

EndSection
Device "device-id"
指定這一節所使用的Device節,device-id和Device節的Identifier相同。

Monitor "monitor-id"
指定這一節所使用的Monitor描述

VideoAdaptor "xv-id"
指定可選的Xv適配器描述

DefaultDepth depth
指定預設顯示深度。

DefaultFbBpp bpp
指定預設時使用的幀緩衝深度。

Display子節:

SubSection "Display"
Depth depth
entries

EndSubSection
Depth depth
指定此節表示的深度。

FbBpp bpp
指定此節表示的幀緩衝格式。

Weight red-weight green-weight blue-weight
指定16位顯示時,RGB三種顏色所佔的權重

Virtual xdim ydim
設置邏輯虛屏的大小,xdim一般要求為8或16的整數倍。注意:有的驅動程序不允許設置虛屏。

ViewPort x0 y0
設置初始顯示的左上角。

Modes "mode-name" ...
設置此深度下的視頻模式列表。所指定沒個模式必須被雙引號括起來。這必須和Monitor節指定的信息相對應,也就是說,Monitor節指定的掃描頻率範圍一定要包含對應的模式。

Visual "visual-name"
visual-name可用的類型是StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor

Black red green blue

White red green blue
分別可以指定黑色和白色的顏色

6.5.9 ServerLayout節
每個配置文件可以有多個ServerLayout節,一個ServerLayout表示多個Screen和一個或多個輸入設備(InputDevice節)的組合。

Section "ServerLayout"
Identifier "name"
Screen "screen-id"

InputDevice "idev-id"

options

EndSection
Screen screen-num "screen-id" position-information

screen-id是強制的,指定引用的Screen節
InputDevice "idev-id" "option" ...
idev-id也是強制的,指定被引用的InputDevice節,可以指定多個選項,它們之間由引號隔開,這些選項也是InputDevice節支持的,包括:"CorePointer","CoreKeyboard","SendCoreEvents"。

例如,指定兩個滑鼠:

Section "ServerLayout"
Identifier "Layout 1"
Screen "MGA 1"
Screen "MGA 2" RightOf "MGA 1"
InputDevice "Keyboard 1" "CoreKeyboard"
InputDevice "Mouse 1" "CorePointer"
InputDevice "Mouse 2" "SendCoreEvents"
Option "BlankTime" "5"
EndSection


作者簡介
於辰濤,聯想(北京)電腦公司軟體工程師。目前主要從事Linux系統安裝程序的開發工作,主要研究興趣是操作系統的工作機制和開發底層系統程序。您可以通過電子郵件 scu_yct@263.net 跟他聯繫。


[火星人 ] 如何在Linux下實現設備的配置(下)已經有806次圍觀

http://coctec.com/docs/service/show-post-73813.html