文章詳情頁
設置和修改X-Window的顯示模式
瀏覽:124日期:2024-01-30 15:51:58
許可證:; 本文檔的發布遵循;DGPL,;任何人有權免費獲得,;閱覽,; 轉載和發布本文檔,;不得用于任何形式的商業用途.; 本文檔現在由;Rocky;S.;Lee;進行維護,;任何人可以對; 其中存在的遺漏,;錯誤進行修改和指正.;修改者名單將列于; 本文檔的作者名后.; 簡短說明:; 本文檔的主要目的在于介紹手動配置;Linux;下;XF86;的配置方法,;主要是關; 于如何通過修改;XF86Config;文件調整顯示器在圖形模式下的顯示分辨率和顏色; 深度,;以及如何通過建立符號連接修改;X;Server.;另外提到一些跟圖形界面有關; 的網友常問問題.;文中對于如何使用軟件工具做相應的沒有過多提及,;希望會在; 以后的版本中加入和軟件修改方法之間的聯系和差別.; 本文檔修改版本將在今后進行發布,;關注本文檔的;Linux;用戶可以敬請留意; 以下站點:; 華南木棉;BBS;bbs.gznet.edu.cn; 中國;Linux;論壇;www.linuxforum.net; 西十八;BBS;bbs.x18.scut.edu.cn; 一.;X;Window;工作方式略談; (如果你之關心如何對;X;Widow;進行設置,;可以跳過這一節.;只是理解這一; 節所講的知識對于理解下面的各設置步驟有一定幫助); X;Window;的工作方式跟;Microsoft;Windows;有著本質的不同.;MS;Windows; 的圖形用戶界面;(GUI);是跟系統緊密相聯的.;而;X;Window;則不是,;它實際上是; 在系統核心;(kernel);的上面運行的一個應用程序.; X;Window;的運行分為四層.;最底層的是;X;Server(服務器),;提供圖形界面; 的驅動,;為;X;Window;提供服務.;上面的一層是用于網上通信的網絡協議;--;X; 網絡協議.;這部分使遠程運行;X;Window;成為可能.;只需要在服務器上運行一個; X;Server,;而客戶機;(Client);上運行更上一層的程序,;則可以實現;X;Widow;的; 遠程運行.;再往上的一層是稱作;Xlib;的低層函數接口,;介于網絡和和基礎系統; 于較高層的程序之間.;應用程序的實現是通過調用這一層的函數實現的.;最頂層; 就是管理窗口的窗口管理器了,;也就是一般所說的;WM;(Window;Manager).;在這; 一層的軟件是用戶都比較常接觸的,;比如;fvwm,;AfterStep,;Enlightment;以及; WindowMaker;等等.; 從上面的介紹來看,;X;Window;的運行是一種客戶機/服務器(Client/Server); 的模式,;服務器用于顯示客運的應用程序,;又被稱為顯示服務器(Display;Server); 顯示服務器位于硬件和客戶機之間,;它跟蹤所有來自輸入設備比如鍵盤,;鼠標的; 輸入動作,;經過處理后將其送回客戶機.;這樣,;使用戶甚至可以在;MS;Windows; 的機器上運行;X;Client,;截取并傳送用戶的輸入,;只是將;X;Window;的屏幕輸出; 顯示在用戶的屏幕上.;客戶機的輸入和輸出系統跟;X;服務器之間的通信都是遵守; X;協議的.; 由于本文檔的主要目的在于介紹如何設置,;因此對;X;Window;不再作進一步的; 介紹.;更詳細的資料可以參考有關的;HOWTO,;man;頁等等.; 二.;關于;X;Window;的設置; 1.;X;Server; 在;Linux;下,;這些服務器的程序是存放在;/usr/X11R6/bin/;下面,;并且都由; XF86_;打頭,;一般來說,;會提供單顯;Mono,;標準;VGA;和;SVGA;的驅動,;分; 別命名為:;XF86_Mono,;XF86_VGA16;和;XF86_SVGA,;另外可能還會有;S3;和其他一; 些帶有圖形加速功能的顯卡的驅動.;下面是作者本人機器上運行的;RedHat;Linux; 6.1;中所帶有的;X;Server;驅動:; XF86_3DLabs;XF86_Mono;XF86_I128;XF86_VGA16; XF86_P9000;XF86_8514;XF86_Mach32;XF86_S3; XF86_W32;XF86_AGX;XF86_Mach64;XF86_S3V; XF86_FBDev;XF86_Mach8;XF86_SVGA; 如果你的;/usr/X11R6/bin;下面沒有上面某個文件或者多了某個文件,;不必在; 意,;這主要決定于你的機器的硬件.;其實一般只需要跟自己硬件相配套的驅動即可.; 比如作者正在使用的機器上使用的是;3D;Lab;Permedia;II;的芯片的顯示卡,;因此; 只有;XF86_3DLabs;是有作用的.; 如此之多種類的顯示適配器驅動程序,;系統當然需要一個固定和統一的方法去; 訪問它,;一般說來,;系統是使用一個名為;X;的符號連接去訪問具體的;X;Server;的.; 這個;X;也同樣是存在于;/usr/X11R6/bin/;目錄中,;可以使用如下命令打印他的具; 體指向:; ls;-l;/usr/X11R6/bin/X; 得到的結果如:; lrwxrwxrwx;1;root;root;8;Dec;14;03:40; /usr/X11R6/bin/X;->;XF86_3DLab; 前面的屬性;'lrwxrwxrwx';中第一個字母;l;表示它是一個連接,;在最后由箭頭; 指出它所指向的具體目標.;(這里的換行是為了閱讀的方便); 明白了這個,;在以后需要更換;X;Server;的時候就可以通過改變這個聯系來實現; 了,;具體命令如下:; ln;-sf;/usr/X11R6/bin/X???????;/usr/X11R6/bin/X; 其中問號代表的字母根據具體情況決定.;有些時候,;由于這個連接不正確,;導致; 無法運行;X;Window,;這時可以使它指向;XF86_VGA16,;使用;16;色的;VGA;模式進入; X;Window,;注意如果需要運行;XF86Setup;程序;(是個圖形界面的;X;Window;配置工; 具程序),;那么這個;XF86_VGA16;驅動一定要存在,;這是由于該驅動所提供的顯示模式; 是一般顯示卡和顯示器都支持的,;故該配置程序使用此;X;Server;為驅動.;當用戶的; 顯卡是比較特殊的型號時,;需要裝特定的驅動程序,;也需要作此工作.; 驅動程序的獲得有多種途徑,;一般的;Linux;發行版本都提供了豐富的驅動程序,; 可以滿足大部分要求,;比較特殊的驅動程序,;可以在網上獲得.;當然現在;Linux;對硬; 件的支持還不是很完善,;但這已經超出了本文檔的訪問,;不在作更多的表述.; 2.;顯示模式; 顯示模式包括分辨率,;掃描頻率,;色深等等.;這也是網友在顯示方面提問最多的; 一個問題.;對于現在的顯示卡和顯示器,;一般都可以使用;1024;x;768;x;16;bit;色的; 顯示模式.;當然保險起見,;在使用下面所敘述的方法設置您所使用的顯示模式的時候,; 請確定您的顯示卡和顯示器能夠達到該模式的要求,;否則可能會有損壞硬件的危險.; 在各發行版本中,;都會提供一些設置;X;Window;的工具軟件,;如;Xconfigurator,; XF86Setup,;XF86Config;等等,;這些程序無一例外的是提供了一個修改;X;Window;的; 配置文件;XF86Config;的簡便方法.;當然使用起來比較方便,;但是對于一些需要靈活; 調整的場合就不是非常適合,;需要手動調整配置文件中的參數達到最好效果.;您不必; 一定這樣做,;這里只是介紹這樣一種方法,;使您可以在有疑問的時候方便地解決.; 一般這個文件是存在于;/usr/X11R6/lib/X11/;目錄下,;在;/etc;或者;/etc/X11; 目錄中有它的一個符號連接.;它是一個文本文件,;可以使用;vi;對它進行修改.;下面; 對該文件中各部分的作用做個詳細的介紹.;(如有遺漏,;歡迎提出); 在這個文件中有這樣幾個概念:;段;(Section);和子段;(Subsection).;每個段或; 子段分別給出了不同的參數,;格式分別為:; Section; ......; Endsection; Section; Subsection; ......; Endsubsection; Endsection; 一個完整的配置文件中包含六個段,;分別是;File;(文件),;SeverFlag;(服務器特; 殊標志),;Keyboard;(鍵盤),;Pointer;(指示設備,;一般是鼠標),;Monitor;(監視器),; Device;(顯示適配器,;即顯卡),;Screen;(屏幕設置信息).; File;段:;這一段指示出一些運行;X;Window;所需要的文件的位置,;比如顏色的別; 名文件;rgb.txt;(注意這里是不需要寫出該文件的擴展名),;比如:; RgbPath;'/usr/X11R6/lib/X11/rgb'; 如果您看過;/usr/X11R6/lib/X11/rgb.txt;的內容,;你會很容易的知道它是; 干什么用的.;有了它,;你可以使用;red1;代表;RGB;顏色值;255;0;0;等等.; 接下來是字體文件的路徑,;這里的設置將影響到中文字體的輸出.;這里對路; 徑的設置可以是多個,;例如下面的這樣:; FontPath;'unix/:-1'; FontPath;'/usr/share/zhfont/X11:unscaled'; FontPath;'/usr/share/zhfont/TTF'; FontPath;'/usr/X11R6/lib/X11/fonts/local'; FontPath;'/usr/X11R6/lib/X11/fonts/chinese'; FontPath;'/usr/X11R6/lib/X11/fonts/TTF'; FontPath;'/usr/X11R6/lib/X11/fonts/Type1'; FontPath;'/usr/X11R6/lib/X11/fonts/Speedo'; FontPath;'/usr/X11R6/lib/X11/fonts/misc'; FontPath;'/usr/X11R6/lib/X11/fonts/75dpi'; FontPath;'/usr/X11R6/lib/X11/fonts/100dpi'; 在使用一個字體目錄之前,;需要使用;mkfontdir;命令把一條路徑中的字體; 作個列表,;在該目錄中生成;font.dir;作為對字體的索引,;如:; mkfontdir;/usr/X11Ry/lib/X11/fonts/100dpi; 具體該命令的用法,;請使用;man;命令查看其;man;page;(手冊頁),;或者會; 在本文檔的后續版本中提供詳細的說明.; ServerFlag;段:;這個段指明了一些具體的參數,;如下:; NoTrapSignals;這個標志將使調試信號對;X;Server;不起作用.;調試信; 號會使;X;Server;'轉儲核心',;把內存中有關的;X;Server;的信息存儲; 到硬盤上,;即所謂的;'Core;dump'.;這樣的目的是便于對;X;Server;進; 行調試.; DontZap;這個標志將使;X;Server;收到;'Ctrl;+;Alt;+;Back;Space';鍵; 組合發出的信號時;*不*;停止工作.;當然一般是不建議使用的.; DontZoom;這個標志使;X;Window;不能在各種圖形模式之間進行切換.;X; Window;的缺省狀態是在用戶設定了多組分辨率,;刷新頻率和顏色的組; 合的情況下,;運行;X;Window;的過程中可以通過;Ctrl;+;'+';和;Ctrl;+;'-';兩組鍵的組合在多個圖形模式之間進行動態切換.; Keyboard;段:;這個段指明了;X;Window;環境中所使用的鍵盤映射以及其他一些參; 數.;如下是作者的鍵盤配置:; Section;'Keyboard'; Protocol;'Standard'; AutoRepeat;500;5;#;指定延遲;(delay);和;速率;(rate); #;這里的設定分別為;500;和;0; LeftAlt;Meta; RightAlt;Meta;#;使用左右;Alt;鍵作;Meta;鍵.; #;關于;Meta;鍵,;希望以后能夠補充完整; ScrollLock;Compose; RightCtl;Control; XkbKeycodes;'xfree86'; XkbTypes;'default'; XkbCompat;'default'; XkbSymbols;'us(pc101)'; XkbGeometry;'pc'; XkbRules;'xfree86'; XkbModel;'pc101'; XkbLayout;'us'; EndSection; 這段設置出了;XkbLayout;會影響鍵盤各按鍵的表現以外,;其他都只是一些功; 能上的設置,;沒有太大影響.;在控制臺模式下,;可以通過;Alt;+;F?;在各虛; 擬終端間進行切換,;在;X;Widow;環境下,;必須使用;Ctrl;+;Alt;+;F?;才能; 夠達到這一效果.; 對于本段以及下面的;Pointer;段,;由于本人經驗和所知的限制不能完整地講; 述,;會在不久以后作進一步補充.;并在此向各位表示歉意.; Pointer;段:;如前所述,;這個段是設置鼠標等設備的.;如下舉例是作者的鼠標設; 置:; Section;'Pointer'; Protocol;'PS/2'; Device;'/dev/mouse'; #;下面這兩個參數是一些采用磁技術的鼠標所需要的,;一般注釋掉或者刪除; #;BaudRate;9600; #;SampleRate;150; #;下面的兩個參數是為方便使用雙鍵鼠標的用戶使用三鍵鼠標而設置的; #;當選擇了虛擬三鍵的時候,;可以通過同時點擊鼠標左右鍵完成中鍵的功能; Emulate3Buttons; Emulate3Timeout;50; #;下面這個參數也是為磁金屬鼠標所設定的; #;ChordMiddle; EndSection; Mornitor;段:;這個段的設置需要參考顯示器的用戶手冊,;以便獲得相關的數據,; 防止損壞顯示器.;這個段是我改動最多的,;現舉例描述如下:; Section;'Monitor'; Identifier;'Samsung;SyncMaster;500s/500Ms'; #;監視器標示符,;在下面;Screen;段用作標示; #;這個參數的設置對顯示器的模式沒有直接影響,;只要保證跟后面; #;Screen;段的引用保持一致; VendorName;'Unknown'; #;生產廠家的名稱; ModelName;'Unknown'; #;制造和型號的標示,;并不重要; #;在使用;Xconfigurator;的時候,;如果不提供上述值,;則填寫; #;'Unknown'; #;下面這兩個參數在設置顯示模式上來書哦是比較重要的.; #;HorizSync;是水平掃描頻率,;kHz;為單位.; HorizSync;50-60; #;VertRefresh;是垂直掃描頻率,;Hz;為單位; VertRefresh;80-100; #;上面這兩個參數可以是列舉的形式,;也可以是范圍的形式.; #;比如:;列舉:;75;85;100; #;范圍:;如上所述; #;接下來是模式的描述了,;如果您使用的是;TurboLinux;或者是; #;RedHat;Linux,;下面的模式列表將會非常的完整.;但;Slackware; #;沒有提供完整的列表,;這些數據可以在顯示器的說明書上見到.; #;為節省空間,;這里僅列舉一條; #;800x600;@;85;Hz,;55.84;kHz;hsync; Modeline;'800x600';60.75;800;864;928;1088;600;616;621;657;-HSync;-VSync; #;或者寫成以下形式,;為;Slackware;采用; #;Mode;'800x600'; #;DotClock;45; #;HTimings;1024;1048;1208;1264; #;VTimings;768;776;784;817; #;Flags;'Interlace'; #;EndMode; Endsection; 這里來講講上面的;ModeLine;的涵義.;就象第二種形式所描述的那樣,;這些; 參數是使用;'800x600x85Hz';模式所需要的.;要設置顯示為這種模式,;首先; 要保證水平掃描頻率和垂直掃描頻率要配合好,;即;VertRefresh;的范圍或列; 舉值中要包括;85;Hz,;而;HorizSync;的值需要包括;55.84;kHz.;這些都可以; 通過手工調整.;然后需要看看打點頻率.;有些顯示器有這個參數提供,;而另; 外一些可能檢測不到,;這時需要查看手冊.;打點頻率的值可以不提供,;這點; 在下面會有講述.; 注意,;這里的;'800x600';就是這種模式的標示.;等到下面談到模式的設置順; 序就會清楚;X;Window;是如何設置的了.; Device;段:;這里主要記錄了顯卡的數據,;如下可以看到,;很簡單,;只有顯存的大; 小和顯卡的時鐘頻率.;這個時鐘頻率是用來產生視頻信號,;而顯示器的掃描; 頻率也是根據這個信號產生的.;所以不要為了追求高分辨率和高刷新頻率把; 它調得太高,;否則可能會損傷顯示器.;一般在顯示器的說明書上會有這個值,; 如果沒有,;建議不要超過;50.; Section;'Device'; Identifier;'Generic;VGA'; VendorName;'Unknown'; BoardName;'Unknown'; Chipset;'generic'; #;VideoRam;256; #;Clocks;25.2;28.3; EndSection; 注意:;上面所說的兩個段都可以對多個設備進行描述,;系統會用;Identifier; 的值區分不同的設備.; Screen;段:;X;Window;的顯示模式的選擇就是記錄在這個段中的.;如果是;RedHat; 則會有所有四種;(Mono,;VGA16,;SVGA,;Accelerate);X;Server;的段,;如果; 是;Slackware,;則可能會只有一個段,;就是對應安裝系統的時候指定的顯示; 設備的.; 下面以我使用的;accel;X;Server;說說各字段的涵義.; Section;'Screen'; Driver;'accel'; #;這個不用解釋了吧,;是;Permedia;II;顯卡,;所以使用加速的驅動; #;這里的可能值是'vga2',;'vga16',;'svga',;'accel',;根據自己; #;的實際情況設定.;這里跟;前面講;X;Server;時所說的;X;的連接; #;目標有關系,;我想這不難連接吧.; Device;'3DLabs|Permedia;II;2D+3D'; #;上面制定的顯卡配制,;用;'3DLabs|Permedia;II;2D+3D';作為; #;Identifier;的.;當然我可以使用自己喜歡的名字,;實際這里只是; #;個標記的作用; Monitor;'Samsung;SyncMaster;500s/500Ms'; #;這里的解釋同;Device,;也是使用上面的;Identifier;的設定值; Subsection;'Display'; #;顯示子段,;可以有多個,;分別對應不同的色深,;即下面的;Depth; Depth;16; Modes;'800x600'; #;所取的顯示模式;這個值就是根據前面的;ModeLine;上面; #;的注釋寫的,;可以有多個,;用空格分開; #;這里需要說明的是,;X;Server;先檢查這里的分辨率設置,; #;然后根據這個設置和上面標示的垂直和水平刷新頻率決; #;定使用哪個;ModeLine,;如果在刷新頻率的范圍內有多種; #;Mode;可以選擇,;那么可以通過使用;Ctrl;+;'+'/'-'進; #;行動態切換.; ViewPort;0;0; #;這個是視圖的左上角坐標; #;如果想用虛擬大小的屏幕,;可以在這里加上一句; #Virtual;1024;768; #;這樣的話,;就可以使用大于當前實際屏幕的虛擬屏幕了,; #;屏幕會隨這鼠標的移動而轉換.;當然,;要保證有足夠的; #;顯存才行,;虛擬的屏幕大小要比實際的設定大..; EndSubsection; #;在這下面可以再加上;Depth;分別為;8;和;24;的子段,;格式和上; #;面一樣.; EndSection; 當然,;如果發現所選的設備驅動根實際的硬件設備不相符,;還可以重新安裝; 驅動程序.如何在;Linux;下面安裝軟件,;我想就不再詳細介紹了.;介紹這方; 面知識的資料很多.; 本文檔將繼續更新,;目標是成為一個簡單的;X;Window;入門的手冊.;如果發現有; 錯誤或者遺漏,;請于我聯系.;
標簽:
Windows系統
排行榜
