Linux設(shè)備配置之顯卡配置
Linux下設(shè)備的配置過程是指在檢測(cè)到設(shè)備類型、設(shè)備當(dāng)前工作參數(shù)等信息之后,使用這些信息來配置設(shè)備的驅(qū)動(dòng)程序,工作方式等,(設(shè)備的檢測(cè)過程參見 《如何在Linux下實(shí)現(xiàn)硬件的自動(dòng)檢測(cè)》)。要完成這樣的任務(wù),需要做兩方面的工作:
其一是需要一個(gè)詳盡的設(shè)備信息文件,這個(gè)文件描述了設(shè)備標(biāo)識(shí)、與設(shè)備標(biāo)識(shí)對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序、設(shè)備配置參數(shù)(設(shè)備選項(xiàng))、設(shè)備設(shè)置的詳細(xì)描述、設(shè)備配置方法描述、設(shè)備對(duì)應(yīng)的別名、設(shè)備的主設(shè)備號(hào)等信息。
其二是需要根據(jù)設(shè)備的類型,以及安裝的linux系統(tǒng)版本(不同的Linux發(fā)行版對(duì)于同一設(shè)備的配置腳本文件存在差異),設(shè)置設(shè)備對(duì)應(yīng)的配置腳本文件。
窗口系統(tǒng)(XFree86)的配置過程
1. 顯示卡的描述文件介紹(CardDB)
CardDB是X配置程序使用的顯示卡數(shù)據(jù)文件。在對(duì)XFree86進(jìn)行配置時(shí),配置程序一般都需要讀取其上的內(nèi)容完成顯示卡的配置。它的內(nèi)容與使用的XFree86的版本密切相關(guān)。一般而言,它保存的位置是在/usr/X11R6/lib/X11/目錄下。現(xiàn)在我們就對(duì)XFree86 4.1.0的CardDB文件進(jìn)行簡單的介紹:
NAME
顯示卡的描述名稱
CHIPSET
描述顯示卡使用的芯片集
SERVER
為了和3.x版本的XFree86向下兼容,由此字段指定此顯示卡在XFree86 3.x下的X服務(wù)器,例如VGA16,SVGA等。
DRIVER
描述在4.x版本的XFree86下顯示卡的驅(qū)動(dòng)程序模塊。
LINE
設(shè)置顯示卡特定的選項(xiàng)信息,這樣的選項(xiàng)信息出現(xiàn)在XF86Config的Device節(jié),對(duì)應(yīng)設(shè)備的Option參數(shù)。
SEE
是指此顯示卡的配置信息與SEE字段所制定的顯示卡完全相同,例如
NAME Number Nine GXE64 with S3 Trio64
SEE S3 Trio64 (generic)
表示Number Nine GXE64的顯示卡配置與S3 Trio64 (generic)的配置完全相同。
RAMDAC
RAM直接存取控制的控制芯片型號(hào)
DACSPEED
直接存取控制的速度
CLOCKCHIP
此顯示卡的時(shí)鐘芯片的
NOCLOCKCHIP
此顯示卡無時(shí)鐘芯片
UNSUPPORTED
此類型的顯卡,此版本的XFree86不能提供支持
COMMENT
注釋
例如,對(duì)于RIVA TNT顯卡,XFree86 4.1.0中的信息如下:
NAME RIVA TNT
CHIPSET RIVATNT
SERVER SVGA
DRIVER nv
NOCLOCKPROBE
2. 顯示器信息檢測(cè)
顯示器的信息在XFree86系統(tǒng)中時(shí)非常重要的,它對(duì)應(yīng)XFree86配置文件的Monitor節(jié)。在這一節(jié)中包含監(jiān)視器的水平掃描頻率范圍,垂直掃描頻率范圍,顯示器支持的顯示模式等信息。同樣的,顯示器的自動(dòng)檢測(cè)也就是通過程序自動(dòng)讀出顯示器的上述信息。它的正確設(shè)置對(duì)于XFree86能否正常顯示起到很重要的作用。
對(duì)于顯示器的信息檢測(cè),要求它必須支持vbe(VESA的BIOS級(jí)擴(kuò)展)。在顯示器支持此擴(kuò)展時(shí),通過系統(tǒng)實(shí)模式下的BIOS調(diào)用INT 10H,可以取得顯示器的詳細(xì)信息。
可能需要的BIOS子功能調(diào)用為:
AH = 0x4F00
獲得關(guān)于監(jiān)視器的VESA的BIOS級(jí)擴(kuò)展信息
AH = 0x4F01
獲得監(jiān)視器支持的特定顯示模式
AH = 0x4F02
設(shè)置當(dāng)前的視頻模式
AH = 0x4F03
獲得當(dāng)前的視頻模式
AH = 0x4F04
保存/還原svga顯示方式
AH = 0x4F15
獲得監(jiān)視器的EDID擴(kuò)展信息
一般的顯示器使用上述中斷的方式是:先檢查顯示器是否支持VESA的BIOS級(jí)擴(kuò)展,如果顯示器支持BIOS級(jí)擴(kuò)展,就查看顯示器支持的顯示模式,然后獲得顯示器的EDID擴(kuò)展信息。在讀出的EDID擴(kuò)展信息中,可以查出顯示器的垂直回掃頻率范圍和水平回掃頻率范圍,也可以計(jì)算出顯示器的大小,對(duì)于一部分顯示器還可以從此信息中讀出監(jiān)視器的制造商信息。
由顯示器讀出的信息可以設(shè)置XF86Config的Monitor節(jié),對(duì)于設(shè)置了正確的垂直回掃頻率范圍和水平回掃頻率范圍的顯示器,X自動(dòng)設(shè)置為當(dāng)前顯示分辨率下支持的最高掃描頻率的顯示模式(此顯示模式要求有對(duì)應(yīng)的Modeline)。
但是如果您的顯示器不支持EDID擴(kuò)展信息,那么您就只有根據(jù)經(jīng)驗(yàn)來設(shè)置顯示器的垂直回掃頻率范圍和水平回掃頻率范圍。如果設(shè)置的范圍高于監(jiān)視器的實(shí)際支持范圍,那么顯示器會(huì)出現(xiàn)黑屏的現(xiàn)象。
對(duì)于編程實(shí)現(xiàn),如果您要調(diào)用上述bios中斷,那么必須使用lrmi這個(gè)實(shí)模式接口,并設(shè)置正確的寄存器信息,完成系統(tǒng)調(diào)用。具體的檢測(cè)顯示器信息的例子,您可以參考Xconfigurator下ddcprobe的源程序,也可以參考Mandrake系統(tǒng)下的ddcxinfos命令的源程序。
3. 窗口系統(tǒng)的配置過程
要正確的在linux下配置窗口系統(tǒng),實(shí)際上就是生成正確的XFree86配置文件,這個(gè)文件一般保存在/etc/X11/下,在X版本是3.x時(shí),它的文件名為XF86Config,在X版本是4.x時(shí),它的文件名一般為XF86Config-4。在現(xiàn)在的發(fā)行版本中,處于硬件兼容性的考慮,他們一般都讓這兩個(gè)版本的XFree86包共存。因此,您也可以在/etc/X11目錄下,發(fā)現(xiàn)這兩個(gè)文件同時(shí)存在,這時(shí)使用那個(gè)文件就要看系統(tǒng)的X服務(wù)器的版本了。
無論是那個(gè)版本的XF86Config文件都是由許多節(jié)(Section)構(gòu)成的,但是這些節(jié)描述的內(nèi)容主要包括:鍵盤、鼠標(biāo)、顯示器、顯示卡、字體(顏色)等。
在X版本是3.x時(shí),鍵盤和鼠標(biāo)的描述分別對(duì)應(yīng)Keyboard和Pointer節(jié)。而在X版本是4.x時(shí),鍵盤和鼠標(biāo)的描述都對(duì)應(yīng)InputDevice節(jié),只是對(duì)應(yīng)不同的驅(qū)動(dòng)模塊,鍵盤的驅(qū)動(dòng)模塊是keyboard,鼠標(biāo)的驅(qū)動(dòng)模塊是mouse。配置這兩節(jié)所需要的信息可以從/etc/sysconfig/keyboard和/etc/sysconfig/mouse中獲得,它們的詳細(xì)內(nèi)容,本文的前面章節(jié)已作了介紹。
配置顯示器實(shí)際上是生成XF86Config文件的Monitor節(jié),需要配置的信息一般包括:水平掃描頻率范圍、垂直掃描頻率范圍、監(jiān)視器支持的顯示模式、制造商信息。對(duì)于支持vbe和edid擴(kuò)展的顯示器,可以根據(jù)從顯示器上讀出的信息設(shè)置對(duì)應(yīng)字段的值。但是如果顯示器不支持上述擴(kuò)展,則顯示卡的設(shè)置必須由用戶手動(dòng)完成。如果您在配置XFree86時(shí)不指定這一節(jié),那么XFree86會(huì)設(shè)置顯示模式為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
從上表可以看出,您要設(shè)置顯示器達(dá)到某一分辨率,那么與此相對(duì)應(yīng),它的掃描頻率范圍也要包含上表中此分辨率的最低掃描頻率。如果您的顯示器達(dá)不到這個(gè)范圍,那么XWindow將無法正常工作。如果您設(shè)置的掃描頻率高于顯示器實(shí)際的掃描頻率范圍,由于XFree86會(huì)尋找對(duì)應(yīng)分辨率下最高掃描頻率進(jìn)行顯示,所以此時(shí)XWindow將極有可能黑屏。
在生成配置腳本時(shí),掃描頻率的范圍也不是越低越好。設(shè)置較低的掃描頻率范圍對(duì)于部分LCD顯示器就不合適。比如,一部分LCD顯示器在800x600分辨率時(shí),最低支持的垂直掃描頻率為70Hz,那么您這時(shí)指定的水平回掃范圍一定要包含48kHz。
在配置完顯示器之后,您就需要生成與顯示卡對(duì)應(yīng)的描述了。這樣的描述信息對(duì)應(yīng)XF86Config文件的Device節(jié)。這一節(jié)主要描述的顯示卡信息包括:顯示卡對(duì)應(yīng)的X服務(wù)器(X版本在3.x),對(duì)應(yīng)的X設(shè)備模塊(X版本為4.x),顯示卡的設(shè)備信息(供應(yīng)商、型號(hào)、支持顯存存取方式和顯存大小等),以及此顯示卡支持的設(shè)備選項(xiàng),比如顯示卡是否支持硬件加速、是否支持軟光標(biāo)等。生成窗口系統(tǒng)的配置過程一般是先由pci的設(shè)備標(biāo)識(shí)(檢測(cè)過程見)獲得顯示卡的類型,由此在XFree86的配置文件CardDB(這個(gè)文件可在/usr/X11R6/lib/X11/目錄下找到)中查得它對(duì)應(yīng)的顯示卡描述,由此信息可以設(shè)置此節(jié)的描述。
字體和調(diào)色板信息描述的是字體和調(diào)色板所存放的路徑,您如果新加入字體時(shí),需要在此加入正確的字體路徑。設(shè)置字體路徑時(shí),如果指定它為unix:-1,那么就是說您在啟動(dòng)X服務(wù)器之前,必須首先啟動(dòng)字體服務(wù)器xfs,然后由字體服務(wù)器完成字體的訪問請(qǐng)求。
在您正確的設(shè)置了上述信息之后,您必須將這些信息存放在Screen節(jié)中。這一節(jié)描述的是完成顯示對(duì)應(yīng)的顯示卡,顯示器,分辨率和缺省深度等信息。
最后,您還必須生成ServerLayout節(jié),由它描述整個(gè)系統(tǒng)所使用的顯示卡配置節(jié)、監(jiān)視器配置節(jié)、鼠標(biāo)配置節(jié)、鍵盤配置節(jié)等信息。
在生成了/etc/X11/XF86Config(XF86Config-4)文件后,您就可以測(cè)試一下此配置文件是否正確了。例如,對(duì)于XFree86 4.x,生成的配置文件為/etc/X11/XF86Config.test,測(cè)試使用如下命令:
XFree86 -xf86config /etc/X11/XF86Config.test :9
-xf86config /etc/X11/XF86Config.test表示使用指定的配置文件啟動(dòng)X服務(wù)器
:9 表示在終端9上運(yùn)行X服務(wù)器
一般而言,如果是編程實(shí)現(xiàn)X的配置過程的話,則要以子進(jìn)程的方式(系統(tǒng)調(diào)用fork)運(yùn)行上述命令,在成功啟動(dòng)X服務(wù)器之后,運(yùn)行一個(gè)小的圖形化程序,讓用戶選擇配置是否成功。
當(dāng)然,如果您不能得到顯卡的詳細(xì)的設(shè)備參數(shù)的話,您也可以使用probeonly選項(xiàng)獲得顯示卡的詳細(xì)信息。例如,對(duì)于XFree86 4.x測(cè)試使用如下命令:
XFree86 -probeonly :9
對(duì)于正常的啟動(dòng)XFree86之后,系統(tǒng)輸出的信息,您可以通過讀取/var/log/XFree86.x.log獲得。x是指XFree86啟動(dòng)的終端,一般設(shè)置此x為0。
在XF86Config文件配置之后,您可以使用startx啟動(dòng)XFree86。這個(gè)文件會(huì)運(yùn)行您的登錄目錄下的.xinitrc文件來修改X Window系統(tǒng)的初始顯示狀態(tài)。這個(gè)文件是一個(gè)腳本文件。如果這個(gè)文件不存在,系統(tǒng)就會(huì)默認(rèn)使用/usr/X11R6/lib/X11/xinit/xinitrc。同時(shí),startx還要查找/etc/X11/X,這個(gè)文件是一個(gè)鏈接文件,它指向真正的X服務(wù)程序,現(xiàn)在這個(gè)程序一般都指向Xwrappers,它?嵌訶服務(wù)程序的封裝。當(dāng)然,這個(gè)文件也可以直接指向X服務(wù)程序XFree86。
#p#
4. 支持FrameBuffer方式的顯卡的配置過程
幀緩沖(FrameBuffer)設(shè)備是指一種不帶視頻加速的X11支持設(shè)備。啟動(dòng)此方式的優(yōu)點(diǎn)主要有三點(diǎn):其一是在控制臺(tái)方式工作時(shí),您能設(shè)置更大的控制臺(tái)顯示區(qū),比如設(shè)置1024x768分辨率大小的控制臺(tái);其二是可以在其上啟動(dòng)XF86_FBDev(對(duì)于XFree86 4.x下,使用啟動(dòng)模塊fbdev);其三是可以在啟動(dòng)時(shí)顯示啟動(dòng)徽標(biāo)(一只胖胖的企鵝)。
在有時(shí)顯示卡對(duì)應(yīng)的XFree86驅(qū)動(dòng)程序不能正常工作時(shí),而您又需要比較豐富的色彩時(shí),啟動(dòng)FrameBuffer往往是必須的選擇。啟動(dòng)FrameBuffer時(shí),XFree86啟動(dòng)的分辨率由FrameBuffer的啟動(dòng)模式?jīng)Q定。
能夠啟動(dòng)FrameBuffer的設(shè)備是intel結(jié)構(gòu)下與vesa 2.0標(biāo)準(zhǔn)兼容顯卡的幀緩沖設(shè)備,但是現(xiàn)在不能在支持vesa 1.2的顯卡上支持FrameBuffer。這是因?yàn)関esa 1.2不支持線性幀緩沖(線性幀緩沖意味著CPU能訪問顯卡的每一位)。您可以下載補(bǔ)丁,以使vesafb支持vesa 1.2的顯卡,比如一些較老的s3系列顯卡。
現(xiàn)在支持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
啟動(dòng)FrameBuffer必須設(shè)置內(nèi)核的啟動(dòng)顯示模式,設(shè)置這個(gè)參數(shù)是通過內(nèi)核參數(shù)vga=實(shí)現(xiàn)的。比如,設(shè)置啟動(dòng)之后的分辨率為640x480下的16位色時(shí),傳遞的參數(shù)為vga=785(十進(jìn)制數(shù))。您也可以在/etc/lilo.conf文件中設(shè)置此參數(shù),由lilo傳遞內(nèi)核參數(shù)。
內(nèi)核支持的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
向內(nèi)核傳遞vesa選項(xiàng)還包括:
video=vesa:option,多個(gè)選項(xiàng)之間可用逗號(hào)隔開;
可接受的選項(xiàng):
ypan
使用vesa保護(hù)模式接口顯示,可視屏幕是視頻內(nèi)存的一個(gè)窗口。
pro
快速的整屏卷滾,允許回滾。
kontra
部分卷滾,可產(chǎn)生一些閃動(dòng)效果。
ywrap
比ypan速度快,但是兼容性差。
redraw
缺省使用,通過重繪受影響的屏幕區(qū)進(jìn)行重畫。
vgapal
缺省使用,標(biāo)準(zhǔn)的vga調(diào)色版寄存器。
pmipal
使用保護(hù)模式的調(diào)色版接口。
例如,下面的操作設(shè)置FrameBuffer設(shè)備的顯示:
export FRAMEBUFFER=/dev/fb1
fbset -fb /dev/fb1 -vyres 600
fbset -fb $FRAMEBUFFER 1024x768@60
startx -- :0 -bpp 16 vt06
在虛擬控制終端6以16為顏色深度啟動(dòng)X服務(wù)器。
如果您要對(duì)幀緩沖設(shè)備編程,則可以象使用/dev/mem一樣,讀、寫、定位以及mmap()此設(shè)備。不同的是,您此時(shí)操作的設(shè)備內(nèi)存位于視頻設(shè)備內(nèi)存中。/dev/fb*設(shè)備也支持幾種ioctl操作,由此可以獲得或設(shè)置設(shè)備信息。顏色表的處理使用ioctl()。
5. XF86Config文件格式(版本為4.x系列)
5.1 文件的基本組成
文件的每節(jié)都是由下述的部分組成:
Section "SectionName"
SectionEntry
…
EndSection
SectionName包括:
Files 文件路徑名
ServerFlags 服務(wù)器標(biāo)志
Module 動(dòng)態(tài)模塊加載
InputDevice 輸入設(shè)備描述
Device 圖形設(shè)備描述
VideoAdaptor Xv視頻卡描述
Monitor 監(jiān)視器描述
Modes 視頻模式描述
Screen 屏幕配置
ServerLayout 全面的層疊
DRI DRI特定的配置
Vendor 供應(yīng)商特定的配置
出于向下兼容的目的,下列項(xiàng)雖已廢除但是配置文件仍能識(shí)別。在新的配置文件中,應(yīng)使用新的InputDevice項(xiàng)。
Keyboard 鍵盤配置
Pointer 指針/鼠標(biāo)配置
老的XInput節(jié)已經(jīng)被廢除。
ServerLayout在最高層。它們綁定的輸入輸出設(shè)備會(huì)在這一節(jié)里使用。輸入設(shè)備由InputDevice描述,輸出設(shè)備通常有多個(gè)獨(dú)立的組件組成。多個(gè)組件組成Screen節(jié)。每個(gè)Screen節(jié)將圖形板和監(jiān)視器綁定在一起。顯示卡由Device節(jié)描述,監(jiān)視器由Monitor節(jié)描述。
5.2 Files節(jié)
Files節(jié)指定X服務(wù)器的字體路徑、調(diào)色板路徑和模塊路徑。
* FontPath "path"
設(shè)置字體的查詢路徑。對(duì)于字體服務(wù)器的表示采用下述的形式:
若此節(jié)不指定,則缺省的字體路徑是:
/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顏色數(shù)據(jù)庫的路徑,缺省值為:/usr/X11R6/lib/X11/rgb。
* ModulePath "path"
設(shè)置可加載的X服務(wù)器模塊的查找路徑。
5.3 ServerFlags節(jié)
ServerFlags節(jié)用于指定全局的X服務(wù)器選項(xiàng),在一般情況下這個(gè)部分是空的。
* Option "NoTrapSignals" "boolean"
此選項(xiàng)可以阻止X服務(wù)器捕獲未期待的致命信號(hào)并干凈的退出。X服務(wù)器退出并擦除core文件。
* Option "DontZap" "boolean"
打開此選項(xiàng)之后,可以禁止Ctrl+Alt+Backspace的使用。
* Option "DontZoom" "boolean"
打開此選項(xiàng),可以禁止鍵Ctrl+Alt+Keypad-Plus and Ctrl+Alt+Keypad-Minus來切換視頻模式。
* Option "DisableVidModeExtension" "boolean"
可以用來禁止VidMode擴(kuò)展。
* Option "AllowNonLocalXvidtune" "boolean"
打開允許xvidtune客戶從其他的主機(jī)連接。
* Option "DisableModInDev" "boolean"
關(guān)閉可以禁止XFree86-Misc擴(kuò)展(可用于動(dòng)態(tài)修改輸入設(shè)備的設(shè)置)。
* Option "AllowNonLocalModInDev" "boolean"
允許客戶連接另一臺(tái)主機(jī)并且在運(yùn)行的服務(wù)器上改變鍵盤和鼠標(biāo)的設(shè)置。
* Option "AllowMouseOpenFail" "boolean"
即使鼠標(biāo)設(shè)備不能被打開/初始化也允許X服務(wù)器啟動(dòng)。
* Option "VTInit" "command"
在服務(wù)器所用的VT被打開之后運(yùn)行命令。此命令被傳到"/bin/sh -c",以與此VT設(shè)置的stdin和stdout相同的真正用戶id運(yùn)行。
* Option "VTSysReq" "boolean"
使非SYSV系統(tǒng)的VT能支持SYSV風(fēng)格的切換序列。這意味著在Alt-SysRq之后緊接著功能鍵(Fn)。這阻止X服務(wù)器捕獲用于缺省VT的切換序列鍵(已使客戶能夠存取它們)。
* Option "BlankTime" "time"
設(shè)置黑屏屏保的超時(shí)時(shí)間。time以分鐘為單位,缺省10分鐘。(xset進(jìn)行動(dòng)態(tài)設(shè)置)
* Option "StandbyTime" "time"
* Option "SuspendTime" "time"
* Option "OffTime" "time"
設(shè)置進(jìn)入DPMS的等待狀態(tài)的時(shí)間,這僅適于支持VESA DPMS兼容方式的監(jiān)視器。缺省時(shí)間是20分鐘。(屏幕設(shè)置有DPMS選項(xiàng)設(shè)置)
* Option "Pixmap" "bpp"
設(shè)置象素格式使用深度為24的格式。
* Option "NoPM" "boolean"
禁止電源管理
* Option "Xinerama" "boolean"
使能或禁止XINERAMA擴(kuò)展
5.4 Module節(jié)
此節(jié)用于指定加載的X服務(wù)器模塊。此節(jié)在X服務(wù)器以靜態(tài)方式建立時(shí)是被忽略的。在此節(jié)中加載的模塊一般為X服務(wù)器擴(kuò)展模塊和光柵字體模塊。大多數(shù)其他模塊在需要時(shí)自動(dòng)加載。
Load "modulename"
例如:Type 1光柵字體模塊由下列入口加載:
Load "type1"
SubSection "modulename"
Option "moduleoption"
EndSubSection
5.5 Inputdevice節(jié)
這一節(jié)寫入的信息是從/etc/sysconfig/mouse和/etc/sysconfig/keyboard中讀出的,并且要求兩者的設(shè)置基本保持一致。一般而言,都存在兩種輸入設(shè)備:其一是核心鍵盤,另一是核心指針,指針設(shè)備主要是指鼠標(biāo),但也可以是觸摸屏等其他設(shè)備。
Section "InputDevice"
Identifier "name"
Driver "InputDriver"
options
...
EndSection
* 最常見的InputDriver是"keyboard"和"mouse"。
* Option "CorePointer"
設(shè)備被作為核心指針安裝。系統(tǒng)必須要有一個(gè)核心指針。
* Option "CoreKeyboard"
在這一選項(xiàng)被設(shè)置時(shí),設(shè)備被作為核心鍵盤安裝。系統(tǒng)中有且只有一個(gè)核心鍵盤。
* Option "AlwaysCore" "boolean"
* Option "SendCoreEvents" "boolean"
上面的兩個(gè)選項(xiàng)是等價(jià)的,它引起輸入設(shè)備總是報(bào)告核心事件。它可以用于附加的指針設(shè)備生成核心事件。
* Option "HistorySize" "number"
設(shè)置移動(dòng)歷史的大小,缺省是0。
5.6 Device節(jié)
這一節(jié)描述顯示卡對(duì)應(yīng)的信息,它的內(nèi)容一般從CardDB文件中顯示卡對(duì)應(yīng)的描述中獲得。若此設(shè)備節(jié)被Screen節(jié)引用,則認(rèn)為此節(jié)是可用的。
Section "Device"
Identifier "name"
Driver "driver"
entries
… …
EndSection
* BusID "bus-id"
指定圖形卡的總線位置。對(duì)于PCI/AGP卡,bus-id串具有PCI:bus:device:function的格式。XFree86支持多個(gè)顯示卡的同時(shí)顯示
* Screen number
* VideoRam mem
此選項(xiàng)指定圖形卡的RAM數(shù)量,以KB為單位。X服務(wù)程序會(huì)自動(dòng)探測(cè)顯示卡,所以此字段一般并不需要指定。
* 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個(gè)字段,它們表示一些具體的X配置參數(shù)。一般在配置X服務(wù)器時(shí)無需指定,而由自動(dòng)檢測(cè)決定它們的值。
#p#
5.7 Monitor節(jié)
Monitor節(jié)描述顯示器的信息,至少有一個(gè)顯示器節(jié)。在顯示器支持vbe和edid擴(kuò)展時(shí),它的所有信息都可以從顯示器上讀出。
Section "Monitor"
Identifier "name"
entries
…
EndSection
VendorName "vendor"
顯示器的制造商
ModelName "model"
監(jiān)視器的型號(hào)
HorizSync horizsync-range
監(jiān)視器支持的水平刷新頻率范圍。單位是kHz,缺省范圍是28-33kHz。
VertRefresh vertrefresh-range
監(jiān)視器支持的垂直刷新頻率范圍。單位是Hz,缺省范圍是43-72Hz。
Gamma gamma-value
Gamma red-gamma green-gamma blue-gamma
用于gamma校正,范圍從0.1到10.0,缺省值是1.0。并非所有的驅(qū)動(dòng)程序具有使用此信息的能力。
UseModes "modesection-id"
包括Modes節(jié)稱為modesection-id列出的模式集合。這使得這些模式可用于此顯示器。
Mode "name"
設(shè)置視頻模式的詳細(xì)定義。以EndMode關(guān)鍵字結(jié)束。
DotClock clock
此模式下的點(diǎn)時(shí)鐘速率。
HTimings hdisp hsyncstart hsyncend htotal
指定模式的水平定時(shí)。
VTimings vdisp vsyncstart vsyncend vtotal
指定模式的垂直定時(shí)。
Flags "flag" ...
flag指定模式的選項(xiàng)設(shè)置。"Interlace"設(shè)置模式是交錯(cuò)的。"DoubleScan"指定每個(gè)掃描行是雙次的。"+HSync"和"-HSync"指定HSync信號(hào)的極性。"+VSync"和"-VSync"指定VSync信號(hào)的極性。"Composite"指定復(fù)合同步信號(hào)。"+CSync"和"-CSync"指定復(fù)合同步信號(hào)的極性。
HSkew hskew
指定像素?cái)?shù)
VScan vscan
每根掃描線繪制的次數(shù)。"DoubleScan"加倍這個(gè)值。
ModeLine "name" mode-description
Mode項(xiàng)的緊湊版本。大多數(shù)情況下,X服務(wù)程序內(nèi)含的VESA顯示模式已經(jīng)足夠,您無需另外指定。
5.8 Screen節(jié)
一個(gè)配置文件中可以有多個(gè)Screen節(jié),但至少要有一個(gè)。這一節(jié)表示了顯示卡和監(jiān)視器聯(lián)結(jié)在一起的信息。當(dāng)它出現(xiàn)在ServerLayout中時(shí),這一節(jié)所表示的信息就是激活的,否則系統(tǒng)選擇第一個(gè)出現(xiàn)的Screen節(jié)作為活動(dòng)的。這一節(jié)描述了顯示分辨率,缺省深度等信息。它必須包含至少一個(gè)Display子節(jié),這些子節(jié)提供了與顯示深度相關(guān)的信息。
Section "Screen"
Identifier "name"
Device "devid"
Monitor "monid"
entries
…
SubSection "Display"
entries
…
EndSubSection
…
EndSection
Device "device-id"
指定這一節(jié)所使用的Device節(jié),device-id和Device節(jié)的Identifier相同。
Monitor "monitor-id"
指定這一節(jié)所使用的Monitor描述
VideoAdaptor "xv-id"
指定可選的Xv適配器描述
DefaultDepth depth
指定缺省顯示深度。
DefaultFbBpp bpp
指定缺省時(shí)使用的幀緩沖深度。
Display子節(jié):
SubSection "Display"
Depth depth
entries
…
EndSubSection
Depth depth
指定此節(jié)表示的深度。
FbBpp bpp
指定此節(jié)表示的幀緩沖格式。
Weight red-weight green-weight blue-weight
指定16位顯示時(shí),RGB三種顏色所占的權(quán)重
Virtual xdim ydim
設(shè)置邏輯虛屏的大小,xdim一般要求為8或16的整數(shù)倍。注意:有的驅(qū)動(dòng)程序不允許設(shè)置虛屏。
ViewPort x0 y0
設(shè)置初始顯示的左上角。
Modes "mode-name" ...
設(shè)置此深度下的視頻模式列表。所指定沒個(gè)模式必須被雙引號(hào)括起來。這必須和Monitor節(jié)指定的信息相對(duì)應(yīng),也就是說,Monitor節(jié)指定的掃描頻率范圍一定要包含對(duì)應(yīng)的模式。
Visual "visual-name"
visual-name可用的類型是StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor
Black red green blue
White red green blue
分別可以指定黑色和白色的顏色
5.9 ServerLayout節(jié)
每個(gè)配置文件可以有多個(gè)ServerLayout節(jié),一個(gè)ServerLayout表示多個(gè)Screen和一個(gè)或多個(gè)輸入設(shè)備(InputDevice節(jié))的組合。
Section "ServerLayout"
Identifier "name"
Screen "screen-id"
…
InputDevice "idev-id"
…
options
…
EndSection
Screen screen-num "screen-id" position-information
screen-id是強(qiáng)制的,指定引用的Screen節(jié)
InputDevice "idev-id" "option" ...
idev-id也是強(qiáng)制的,指定被引用的InputDevice節(jié),可以指定多個(gè)選項(xiàng),它們之間由引號(hào)隔開,這些選項(xiàng)也是InputDevice節(jié)支持的,包括:"CorePointer","CoreKeyboard","SendCoreEvents"。
例如,指定兩個(gè)?蟊輳?
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下配置顯卡了,希望對(duì)大家有所幫助。
【編輯推薦】
- 深度討論Linux顯卡驅(qū)動(dòng)很好使
- Linux livna顯卡驅(qū)動(dòng)自動(dòng)選擇最快的源
- NVIDIA Linux顯卡驅(qū)動(dòng)的2010年回顧
- Linux系統(tǒng)下安裝顯卡驅(qū)動(dòng)
- 3.18 集成顯卡惹的禍
- Linux操作系統(tǒng)的內(nèi)核的編譯命令與更新
- Linux服務(wù)器集群系統(tǒng)之可伸縮Web服務(wù)
- Linux、Solaris和FreeBSD的內(nèi)核比較