?? 206.html
字號:
<tr><td> </td></tr>
<tr><td align=left><i>作者:</i>王波</td></tr>
<tr><td> </td></tr>
<tr><td><font color=white>位于/etc目錄下的XF86Config文件是XFree86的X服務器的配置文件,XF86Setup 或者xf86config在配置完后就將配置信息保存在這個文件中。XFree86也提供了一個配置文件的樣例文件,/usr/X11R6/lib/X11/XF86Config.eg,可以用作參考。很多情況下需要對X的行為進行微調,而并不想重新啟動設置程序重復進行整個設置過程,這樣手工修改配置文件就更為方便。<br><br> 有一些X服務器的參數使用配置程序并不能進行配置,必須在原有XF86Config上手工更改配置文件。<br><br> 下面將以一個簡單的配置文件為例進行簡單介紹XFree86的設置選項。<br><br><br>文件搜尋路徑<br><br>Section "Files"<br> RgbPath "/usr/X11R6/lib/X11/rgb"<br> FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"<br> FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"<br> FontPath "/usr/X11R6/lib/X11/fonts/misc/"<br> FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"<br> FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"<br># FontPath tcp/fontserver:7000<br># ModulePath "/usr/X11R6/lib/modules"<br>EndSection<br> <br> <br><br> 上面是配置文件的第一部分 “Files” ,這個文件部分定義了 X Window使用的搜索文件路徑,如調色板文件的路徑RGBPath,字體路徑FontPath,以及ModulePath用來設置X服務器的動態可加載模塊的路徑。<br><br> 其中字體路徑可以使用多行來設置多個路徑,也可以在一行之內設置多個路徑,路徑之間使用逗號分隔。字體路徑也能定義為網絡上的字體服務器,這需要指定協議、主機名和端口地址,例如tcp/fontserver:7000表示一臺名為fontserver的字體服務器使用tcp端口7000提供字體服務。Unscaled用于修飾表示對這個路徑下的字體不進行縮放處理,處理固定字體可減少系統資源的消耗。使用字體服務器可以讓多個服務器同享字體,從而達到節約磁盤空間的目的。<br><br> 在行首使用符號 “#” ,表示這一行為注釋,并不被X服務器處理。<br><br><br>可加載模塊<br><br># Section "Module"<br># Load "xf86Jstk.so"<br># EndSection<br> <br> <br><br> 如果前面Files部分定義了ModulePath,這個"Module"部分就用來裝載相應路徑下具體的模塊。一般情況下,并不需要使用這個功能,除非是使用了一些非標準的功能,需要可加載模塊的支持,如xf86Jstk.so就是一個游戲桿的驅動程序。<br><br><br>X服務器選項<br><br>Section "ServerFlags"<br># NoTrapSignals<br># DontZap<br># DontZoom<br># DisableVidModeExtension<br># AllowNonLocalXvidtune<br># DisableModInDev<br># AllowNonLocalModInDxev<br>EndSection<br> <br> <br><br> "ServerFlags"部分設置一些X服務器的運行參數,對應于XF86Setup 中的Other選項中所設置的內容,一般不需改變。<br><br> NoTrapSignals選項使得X服務器程序不去處理發送到X服務器的各個信號, 正常情況下不設置這個選項,X服務器應該接收并處理這些信號,當接收到某些信號時就釋放X服務器占用的資源,切換顯示模式并退出X服務器的執行。因此打開這個選項就使得發送到X服務器的信號沒有得到處理,在錯誤不嚴重的情況下,X程序仍將繼續執行而不退出。因此可以用于調試X服務器,觀察X的出錯原因及其影響。<br><br> DontZap選項用于屏蔽Crtl-Alt-BackSpace熱鍵,通常不設置這個選項時,使用者能夠使用這個組合熱鍵退出X服務器。當要將XFree86系統用作公用X終端時,最好使用這個選項屏蔽退出熱鍵,讓用戶使用正常的退出方式退出登錄會話。<br><br> DontZoom這個選項用于屏蔽<Crtl><Alt><小鍵盤 “+” >或< 小鍵盤 “-” >兩個用于動態切換分辨率模式的組合鍵,當然X服務器必須同時設置了多個分辨率模式,這兩個組合鍵才有意義。<br><br> xvidtune能實時改變X服務器的顯示模式,例如調整顯示區域位于顯示器中的位置等。然而一旦針對某個顯示器的顯示模式調整正確之后,就沒有必要動態改變了,因此可以使用DisableVidModeExtension 選項屏蔽xvidtune實時改變顯示模式的能力,以保證顯示器的安全。一般只有本服務器上的 xvidtune可以完成這個操作,在當前X服務器上運行遠程計算機上的xvidtune不允許改變本服務器的狀態。但是,也可以通過設置AllowNonLocalXvidtune選項, 使得非本服務器上的xvidtune也有能力和本地的X服務器進行通信。第二個選項必須在第一個沒有設置的條件下才能設置。為了安全的原因,不應該允許遠程系統上的xvidtune獲得本服務器的硬件設置信息,不要設置這個選項。<br><br> 使用DisableModInDev選項,可以屏蔽客戶程序對輸入設備(鼠標或鍵盤)的動態改變。 而AllowNonLocalModInDxev選項可以許可非本地的程序(xset)能動態改變鍵盤或鼠標的設置。同樣,這兩個選項是沖突的。<br><br><br>鍵盤設置<br><br>Section "Keyboard"<br> Protocol "Standard"<br># Protocol "Xqueue"<br>AutoRepeat 500 5<br># ServerNumLock<br># Xleds 1 2 3<br> LeftAlt Meta<br> RightAlt ModeShift<br> RightCtl Compose<br> ScrollLock ModeLock<br># XkbDisable<br> XkbKeycodes "xfree86"<br> XkbTypes "default"<br> XkbCompat "default"<br> XkbSymbols "us(pc101)"<br> XkbGeometry "pc"<br> XkbRules "xfree86"<br> XkbModel "pc104"<br> XkbLayout "us"<br>EndSection<br> <br> <br><br> "Keyboard"用于定義鍵盤的參數,指定了鍵盤使用的協議、重復率以及對一些功能鍵的重映射。通常在XF86Setup下就可以設置這些選項,而不必手工修改這些設置。<br><br> "Standard"和"Xqueue"是兩種不同的鍵盤協議,一般應該使用Standard協議,Xqueue是一種同時支持鍵盤和鼠標的硬件使用的協議,在個人計算機平臺上很少使用。<br><br> "AutoRepeat"用于定義鍵盤的重復速度,"ServerNumLock"讓X服務器處理 NumLock的狀態,否則是由系統的鍵盤驅動程序處理這個狀態。有些X客戶程序不能從系統鍵盤驅動程序中獲得小鍵盤的情況,此時就需要設置這個選項。”Xleds”允許X程序,如xset,能夠改變鍵盤上三個LED狀態燈NumLock、CapsLock和ScrollLocal的狀態。<br><br> 下面的"LeftAlt"等設置,用于將個人計算機鍵盤上的鍵重新映射為一些傳統Unix 工作站的鍵盤上使用的鍵,如Meta、Compose等,由于傳統X程序大多數是在工作站上開發的,因此這些程序需要這些特殊的功能鍵來完成操作,就需要映射這些鍵的定義以保證兼容性。<br><br> "XkbDisable"選項可以用于屏蔽X服務器對鍵盤的擴展能力, 通常不應該屏蔽這個能力,而不設置這個參數。這樣就可以在設置文件中使用下面的設置選項重新定義鍵盤的類型、排列方式、符號類型、型號、編碼等等。當然一般情況下可以不重新定義這些參數,缺省設置為101 鍵PC鍵盤,適用于絕大多數的情況。<br><br><br>鼠標設置<br><br>Section "Pointer"<br> Protocol "Sysmouse"<br> Device “/dev/sysmouse”<br># Protocol "Microsoft"<br># Device "/dev/ttyd0"<br># BaudRate 1200<br># SampleRate 150<br># Emulate3Buttons<br># Emulate3Timeout 50<br># ChordMiddle<br>EndSection<br> <br> <br><br> "Pointer"部分用于定義鼠標的參數,最重要的內容是定義鼠標的類型和使用的設備文件。對于使用moused來管理鼠標的情況,鼠標配置相當容易,首先在控制臺下設置好鼠標,然后使用/dev/sysmouse作設備文件,Sysmouse作為鼠標類型即可。如果不打算使用moused來管理鼠標,而想直接使用鼠標設備,就需要正確指定鼠標類型及其設備文件。例如最常見的MS兩鍵串口鼠標使用/dev/ttyd0(或ttyd1串口),使用 Microsoft鼠標類型,等等。<br><br> 注意必須保證系統內核識別出所使用的鼠標設備(或者串口設備)。<br><br> 此外,BaudRate與SampleRate參數定義鼠標驅動程序與設備通信的波特率和采樣率,Emulate3Buttons和Emulate3Timeout讓兩鍵鼠標能模擬三鍵鼠標, 然而偽設備Sysmouse的模擬三鍵能力的設置需要在moused的啟動參數中設置,這里的設置是無效的。ChordMiddle與上面參數意義相反,定義按下三鍵鼠標的中間鍵,等價于同時按下左右兩鍵。<br><br><br>顯示器設置<br><br>Section "Monitor"<br> Identifier "Hyundai DeluxScan 15G+"<br> VendorName "Unknown"<br> ModelName "Unknown"<br> HorizSync 30-70<br> VertRefresh 50-150<br># ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace<br># Mode "1024x768i"<br># DotClock 45<br># HTimings 1024 1048 1208 1264<br># VTimings 768 776 784 817<br># Flags "Interlace"<br># EndMode<br># 800x600 @ 72 Hz, 48.0 kHz hsync<br>Modeline "800x600" 50 800 856 976 1040 600 637 643 666 +hsync +vsync<br># 1024x768 @ 70 Hz, 56.5 kHz hsync<br>Modeline "1024x768" 75 1024 1048 1184 1328 768 771 777 806 -hsync -vsync<br># 1280x1024 @ 87 Hz interlaced, 51 kHz hsync<br>Modeline "1280x1024" 80 1280 1296 1512 1568 1024 1025 1037 1165 Interlace<br>EndSection<br> <br> <br><br> "Monitor"部分定義了顯示器的各種屬性,其中前三項設置Identifier 、VendorName、ModelName起到的只是標識顯示器的作用, 如果具備多個顯示器定義選項的時候可以用來區分不同的定義選項,因此這三個設置主要用在配置文件內部,并不重要。 后面的水平同步HorizSync與垂直刷新VertRefresh的數據才是真正定義顯示器屬性的參數,應該與具體的硬件相一致,這將決定顯示器能否工作在具體的顯示模式下。<br><br> ModeLine或Mode定義了具體顯示模式使用的時序等參數,只有在這里定義了相應模式,X服務器才能使用對應的模式,并在各種模式之間動態切換。然而XF86Setup并沒有設置在顯示器的同步頻率范圍內支持的全部模式,因此會需要手工增加所需要的模式。而xf86config能將很多顯示模式都加進設置文件中,其中很多是不必要的,例如320x200等低分辨率,需要手工刪除。此外一個分辨率可能會有多個顯示模式相對應,但不同模式的刷新頻率不同,顯然應該保留一個顯示器支持的非隔行掃描、并具備最高刷新頻率的模式。這些顯示模式受到水平同步和垂直刷新數據的限制,X服務器會在啟動時屏蔽超過前面定義的水平同步和垂直刷新數據范圍的模式,一避免損壞顯示器。<br><br> 顯然,Modeline和Mode選項中的設置數據是一般使用者無法正確設置的,因此就需要從XFree86 的文檔中查詢各種常見的顯示器和及其常用的顯示模式數據,來決定最接近自己顯示器的顯示模式,在復制到自己的設置文件中。XFree86的文檔位于在/usr/X11R6/lib/X11/doc目錄下,Readme.Config和 VideoModes.doc文件描述了各種顯示模式的對應數據,Monitors文件中收集了各種常見顯示器的水平同步和垂直刷新數據。<br><br> 如果沒有定義多個模式,就不能使用X Server提供的動態切換分辨率模式的功能。<br><br><br>顯示卡設置<br><br>Section "Device"<br> Identifier "Generic VGA"<br> VendorName "Unknown"<br> BoardName "Unknown"<br> Chipset "generic"<br># VideoRam 256<br># Clocks 25.2 28.3<br>EndSection<br>Section "Device"<br> Identifier "ViRGE/DX or /GX"<br> VendorName "Unknown"<br> BoardName "Unknown"<br> #VideoRam 2048<br>EndSection<br> <br> <br><br> "Device"部分定義顯示卡設備的參數,同樣Identifier、 VendorName、ModelName起到標識作用,具體設置如使用的芯片、顯示內存等設置應與所使用的硬件相一致,但也可以不配置,留給X服務器自動探測。同樣,也可以定義多個Device設置,某個具體的X服務器程序只使用某個選項中的設置。<br><br> 如果要針對某個顯示卡更改具體參數,除了查閱顯示卡手冊之外,還要閱讀 /usr/X11R6/lib/X11/doc/目錄下的Devices、modeDB.txt和AccelCards等文檔,在其中查找與具體顯示卡相關的數據信息。<br><br><br>屏幕設置<br><br>Section "Screen"<br> Driver "vga16"<br> Device "Generic VGA"<br> Monitor "Hyundai DeluxScan 15G+"<br> Subsection "Display"<br> Modes "640x480"<br> ViewPort 0 0<br> Virtual 800 600<br> EndSubsection<br>EndSection<br>Section "Screen"<br> Driver "accel"<br> Device "ViRGE/DX or /GX"<br> Monitor "Hyundai DeluxScan 15G+"<br> DefaultColorDepth 16<br> Subsection "Display"<br> Depth 24<br> Modes "800x600" "640x480"<br> ViewPort 0 0<br> Virtual 800 600 <br> EndSubsection<br> Subsection "Display"<br> Depth 8<br> Modes "800x600" "640x480"<br> ViewPort 0 0<br> Virtual 800 600 <br> EndSubsection<br> Subsection "Display"<br> Depth 16<br> Modes "1024x768" "800x600" "640x480"<br> ViewPort 0 0<br> Virtual 1024 768<br> EndSubsection<br>EndSection<br> <br> <br><br> “Screen”部分將具體定義X服務器的顯示屬性,以及具體使用的設備和顯示模式。同時可以存在多個Screen部分,而每個screen部分對應一種X服務器。雖然一般情況下都只使用一個X服務器,然而也可能會使用標準VGA模式的X服務器(如使用XF86Setup時),因此一般配置文件中都至少有兩個Screen部分的定義,一個由標準VGA 的X服務器XF86_VGA16使用,在其中的Driver項中指定了vga16類型,另一個Screen 定義由支持更高模式的具備硬件加速能力的顯示卡X服務器使用,如XF86_S3V,Driver 項為accel類型。X服務器根據Driver項的設置來尋找正確的Screen部分設置參數。<br><br> 除了在Driver選項中指定了Screen選項與具體X服務器的聯系之外, 接下來的Device設置選項將指出這個Screen部分(也就是對應的X服務器)使用哪個顯示設備,這個選項的值與設置文件前面定義的某一個Device部分中Identifier值相同,這就將X服務器和指定的顯示設備相聯系起來(會存在多個定義顯示卡設備的Device部分)。同樣,Monitor項將Screen部分與某個Monitor部分描述的顯示器相聯系。<br><br> 在一個Screen部分中也可以定義多個Display子部分,每個Display子部分為對應一種色彩深度的顯示模式設置,顏色深度Depth可以使用的值有8位(256色)、16位偽真彩色、24位真彩色和32位真彩色(實際只用了24位),DefaultColorDepth用于設置缺省使用的色彩深度。X服務器不能動態切換顯示顏色深度,只能在同一個顏色深度下切換不同的顯示模式。這個顏色深度下可供使用的分辨率模式需要使用Modes定義,缺省的分辨率為第一個模式,然后可以使用熱鍵向前或向后切換。<br><br> 動態切換分辨率不影響應用程序的顯示,應用程序的顯示內容也不變,XFree86提供了虛屏能力。虛屏提供了比實際屏幕更大的顯示范圍,例如使用800x600的顯示模式,虛屏的大小可以是1024x768,這樣可以顯示更多的數據,實際屏幕之外的數據可隨鼠標的移動而顯示出來。這樣在切換模式的時候,虛屏的大小卻不變,可以移動鼠標來查看應用程序切換到虛屏之外的部分。缺省情況下,虛屏的大小為最大的分辨率模式,也可以使用Virtual參數定義更大的虛屏。可設置的虛屏大小受顯示卡內存和所顯示的色彩深度限制,色彩深度和虛屏大小的乘積不能超過顯示內存的大小。為了達到最佳效果,還有一些其他考慮。例如加速卡內有自己的處理器進行圖形加速處理,就要使用一些顯存作為緩沖區,因此將所有的顯存都用做虛屏會影響顯示卡的加速處理。<br><br>未完,待續。。。</font></td></tr>
<tr><td> </td></tr>
<tr><td align=right><i>來源:</i><a href="javascript:if(confirm('http://freebsd.online.ha.cn/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://freebsd.online.ha.cn/'" tppabs="http://freebsd.online.ha.cn/">http://freebsd.online.ha.cn/</a></td></tr>
</table>
<p> </p>
<p> </p>
<p> </p>
聲明:本站的文章和軟件是本人從網上收集整理的(除本人的作品之外),所有版權屬于作者,<br>
如有侵犯您的權益,請指出,本站將立即改正,謝謝.
<hr width=500>
<br>
<font color=#ffffff>Copyright 2000 <a href="javascript:if(confirm('http://www.newok.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.newok.com/'" tppabs="http://www.newok.com/" class=t1>www.newok.com</a></font>
</div>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -