Linux 基礎學習篇 - Mandrake 9

第二十四章、簡易 X-Window 設定 - for Mandrake 9

鳥哥的第一本書籍的主要內容,內容稍微與書籍不太一樣了!

最近更新時間: 2003/02/12

鳥哥的第一本書大約是在 2002 年的年底左右出版的,內容幾乎都是 Linux 基礎學習,一點也沒有談到伺服器的部份!這也是後來的雛型! 不過內容錯誤的地方很多,導致在 2003 年的年底推出了『基礎學習篇增訂版』的內容,大致上就是處理掉一些比較有嚴重錯誤的部份。 不過,因為 Linux 的版本變化非常快速,因此,寫完了這些文件之後,鳥哥還是持續在網站上更新文件內容,導致原本書籍內容的資料與網站資料差異太大! 這個問題直到鳥哥在 2008 年左右才發現!糟糕了!舊版的文件資料已經遺失~覺得相當扼腕~

因此,在底下的文件內容與當初的書籍內容雖然大同小異,不過章節的編排卻是有所不同!再花時間去一個一個處理,似乎也不太符合成本效益! 鳥哥僅是想要將自己以前的文件記錄下來而已,同時將過時的 big5 編碼改回 utf8 編碼,再加上可以支援 RWD 的樣式而已啦! 內容已經不多做編排~因此,如果內容文件你看不懂,那也是應該的! ^_^

建議您前往本站查詢最新版本的 Linux distribution 文章來閱讀,比較不會浪費時間。最新文章請前往鳥站首頁查閱囉!

X-Window的架構

在Unix-Like包括Linux等作業底下的圖形界面通常被我們簡稱為X-Window囉,這個X-Window怎麼來的?他目前的版本是怎樣?還有,X-Window主要是主從架構的(Server, Client),那麼這些主從架構是怎麼回事呢?我們底下就來談一談這些東西吧!

  • XFree86 的歷史演進與版本

  • 基本上,X-Window的核心就是 XFree86 這個玩意兒囉,他怎麼來的呢?在早期的Unix世界中,並沒有所謂的圖形界面,所以在一些圖形展示上面有點困擾就是了,後來經過麻省理工學院(MIT)的發展,終於在 1986 年開發出在 Unix 系統上面的 X Window System!並且組織了 XFree86 這個計畫組織來發展這個圖形介面!從此之後,人們才可以在 Unix 作業系統中看到這個美美的圖形化介面(Graphical User Interface, 簡稱GUI)呢!那麼這個 XFree86 組織繼續發展這個介面,到了 1987 年釋出第一版的X11版本,而後陸續發展出更新的版本,在第二版釋出被稱為X11R2,目前的版本則是第六次釋出,稱為X11R6囉!而目前的X11R6版本中,主要依照新舊又被分為較舊的第三版(version 3),以及較新的第四版(version 4)。(註: XFree86 的命名基本上為 X 系統 + Free 軟體 + x86 系統架構 的簡寫囉!)
     
    那麼在 Linux 針對 XFree86 的使用上面情況是怎樣呢,呵呵,在 1994 年第一個 Linux kernel 1.0 的版本當中,就已經支援 XFree86 囉!至於目前在 2002 年之後出版的 Linux distribution 通常都已經換為了version 4了,例如 Mandrake 9.0 及Red Hat 7.2以後版本,這一版支援的顯示卡驅動程式較多,而且也較新啦!不過,在 2001 年以前的Linux版本則主要還是以 version 3 為主呢!
     

  • X server, X client 與 Window manager

  • 大概瞭解一下X-Window的歷史與版本之後,接著下來我們要來談一談,那麼什麼是X server, X client這些個東西,怎麼一個X-Window有這麼多的奇怪的介面,什麼KDE啦還有GNOME啦等等的!
     
    • X server:

    • 基本上,XFree86的主要功能是什麼呢?嗯!那就是管理整個Linux主機上面的關於顯示的硬體配備啦!例如顯示卡、螢幕解析度、鍵盤形式、滑鼠形式等等,咦!那我們在安裝Linux的時候,不是都已經可以將這些資訊設定好了嗎?這裡必須說明的是,X-Window在Linux裡面只是『一個軟體』而已,所以,你在安裝Linux的時候,選擇的鍵盤也好,滑鼠形式也好,都是給Linux這個系統用的,跟X-Window可沒有絕對的關係呢!所以這也就說明啦,你的X-Window要在Linux上面啟動時,還需要載入X-Window需要的驅動程式才行!所以呢,當你以run-level 3進入Linux之後,基本上,X-Window是完全不存在你的系統的記憶體中,而當你輸入startx以啟動X-Window系統時,這個時候Linux才會開始讀入X-Window的驅動程式(大概就是顯示卡驅動程式、螢幕解析度調整等等的設定值)。所以,請注意啦,這個X server就是用來管理Linux主要關於顯示的一些硬體與驅動程式囉!
     
    • X client:

    • 大略知道了X server之後,再來我們要看一看,那麼什麼是X client呢?又沒有網路連線,怎麼會有client這個名詞?其實,X server主要的功能只是在管理顯示的驅動程式與硬體,但是在整個螢幕前面顯示給使用者,並且經由使用者移動滑鼠也好、鍵盤也好,來啟動一些『事件』的動作,以回應給X server,並進一步處理一些資訊,則是需要一些X的軟體來進行,這些關於X的軟體,我們就可以稱為是X client囉!反正,只要是關於一些視窗的行為、顯示在螢幕的行為等等,使用者都是透過X client來告訴X server的啦!那也就是說,『當X server死掉的時候,X client根本就無法動作!』怎麼說呢?因為管理硬體的X server都不動了,利用這個server來進行顯示與事件觸發的X client要怎麼活下去?瞭解了嗎?
     
    • Window manager:

    • 那麼什麼又是『視窗管理員?』說穿了,其實視窗管理員你也可以簡單的將他看做是一個X client啦!這個Window manager主要是做為你跟整個X Window系統的介面,所以,所有的X軟體(就是上面講到的X client)都是他管的!目前最熱門的兩個視窗管理員就是KDE與GNOME囉!
     
    如果我們以KDE來作說明,那麼您應該不難瞭解,主要的硬體驅動還是得要X Window的核心,也就是XFree86這個咚咚沒有問題的驅動之後,然後我們才能進入KDE這個視窗管理員的介面之下進行美美的圖形介面環境工作!萬一哪一天您的X-Window死掉了,你必須要知道的是,你是怎麼讓他死掉的?
     
    • 如果之前還可以進入X-Window,也就是KDE,不過經過當機之後(這裡指的是並沒有重新設定XFree86喔!),導致X-Window無法進入,那麼應該可能就來自於KDE的問題了,這個情況之下,通常刪除自己家目錄之下的.kde這個隱藏目錄後,就可以恢復到最原始的狀態。
     
    • 但是如果一安裝完Linux就一直無法進入X-Window的話,那麼大概就是XFree86這個核心沒有設定好的問題啦!所以我們就必須要設定XFree86呢!
     

  • XFree86 的主要設定檔案

  • 好啦,既然如果曾經進入過X-Window,則可能的問題就會變成是window manager的問題,而不是XFree86的問題,那麼情況應該還容易解決,所以我們不談這個。我們底下要談的是當你的X-Window一直無法正確且成功的啟動時,那麼應該就是硬體設定的問題啦!例如解析度調錯啦、滑鼠格式不對啦、顯示卡的驅動程式不對等等的問題!果真是這些問題的時候,我要如何來重新設定我的XFree86這個核心呢?
     
    剛剛前面提過,我們的XFree86目前有兩個版本,分別是version 3與version 4,那麼怎麼知道我的Linux使用的是哪一個XFree86的版本呢?嗯!就使用:
     
      X –version
     
    來檢查吧!好了,那麼不同版本的設定檔在哪裡?這兩個版本的設定檔分別是:
     
    • version 3:  /etc/X11/XF86Config
    • version 4:  /etc/X11/XF86Config-4
     
    請特別留意他的大小寫呢!上面的可是設定檔喔!所以呢,當我們說『我的X-Window一直無法驅動,我要去修改我的設定檔!』通常指的就是這個檔案啦!目前我們在Linux裡面大多是使用version 4了,因此底下我們將以/etc/X11/XF86Config-4這個檔案來說明呢!請注意,如果您的X-Window本來可以正確無誤的啟動時,表示這個檔案內容是對的,這個時候,『請務必將您的這個設定檔案備份一個!』因為未來如果設定錯誤導致無法進入X-Window時,只要將原本正確的備份檔案覆蓋回來,你的X-Window就救回來了!所以這個檔案真的很重要,請記得一定要備份喔!
     
      cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.bak
     
    底下我們就來談一談,怎麼樣設定我們的XFree86呢?一般而言,如果你要重新設定XFree86的一些細項設定時,最好的步驟是:
     
    1. 如果已經能夠進入X-Window了,那麼就直接以Window manager提供的小工具來設定你的XFree86,例如KDE提供的control center就可以進行這個工作;
    2. 如果沒有辦法進入X-Window了,那麼就使用各家distribution提供的小工具來設定我們的XFree86設定檔;
    3. 如果各家提供的工具還沒有辦法設定好XFree86的話,那麼就必須要使用到XFree86提供的小軟體工具,在指令列模式下面執行的xf86cfg或xf86config囉!
    4. 如果調整的結果您還是不太滿意,那麼就直接手動的來微調/etc/X11/XF86Config-4這個檔案吧!

使用設定工具:XFdrake, Xconfigurator:

好了,如果你的X-Window本來就沒有問題,那麼底下的資料就可以不要看啦!但是,如果你的X-Window一直怪怪的,那麼底下的設定方式就得給他瞧一瞧!目前使用上面較為方便的,還是以各家distribution提供的小工具來設定我們的/etc/X11/XF86Config-4這個檔案較為方便,而設定的內容不外乎:
  1. 鍵盤的格式;
  2. 滑鼠的格式;
  3. 螢幕的格式,包含解析度、水平、垂直更新頻率等等;
  4. 顯示卡的主要驅動程式,也就是所謂的X server最主要的內容啦!
  5. 顯示的解析度:
上面那個顯示的解析度還得要瞭解一下,我們在設定螢幕的解析度時,指的是『我的螢幕能夠負荷的最高解析度』,而在第五項的顯示的解析度,是我們進入X-Window並且使用Window manager來操作主機之後,那個桌面的支援的解析度啦!因此,第三項螢幕的解析度當然就可以設定的比較高囉!
 
目前最流行的兩套Linux:Mandrake與Red Hat均提供不錯的軟體來設定XF86Config-4,那就是:
  • Mandrake  XFdake
  • Red Hat  Xconfigurator
這兩個套件設定的項目幾乎都是一模一樣啦。好了,請記得備份你的XF86Config-4這個檔案吧。

  • Mandrake : XFdrake

  • 直接在指令列模式中輸入XFdrake開始使用 XFdrake 的 X 設定囉!
     

    • 偵測系統的硬體設定:

    •   
       
      進入XFdrake之後的第一個動作即是在偵測你的主機上面的硬體啦!如果捉到硬體之後,會將你的Linux主機上面的硬體給他顯示在畫面上,如同上圖所示,而且有幾個設定值:
       
      • Graphic Card: 這個顯示目前你的顯示卡晶片;
      • Monitor:   顯示目前你的螢幕廠牌或者選擇自訂(Custom)
      • Resolution:  選擇你的X-Window顯示的解析度
      • Test:   立即測試你的硬體設定
      • Options:   讓你選擇是否開機的時候進入X-Window
      • Quit:   離開XFdrake這個程式!
       
      請注意,在選擇的時候,必須要使用<tab>按鍵,使游標移動到OK之後,才可以進入各細項去選擇呢!
       

    • 顯示卡晶片組的選擇:Graphic Card

    • 在按下了Graphic Card之後,會出現可以選擇晶片組的畫面來,如下圖所示,在下圖中,基本上會有三個欄位,第一個Vendor是說廠商,第二個SIS則是發展的廠商名稱,例如你的顯示卡是Nvidia的,那麼就選擇Nvidia吧!第三個則是這個廠商的支援晶片組!嗯!選擇你的顯示卡吧!我這裡是使用SIS的6326啦!
       
       
      好了,確定了晶片組之後,由於我們的X11目前有兩版,所以必須要先確認一下你的X11版本為何?因為這兩個版本使用的晶片組驅動程式並不相同呀!因此,按下OK之後會出現下面圖示:
       
       
      由於我是使用version 4,所以這裡就選擇XFree 4.2.1囉!選擇了XFree 4.2.1之後,系統會回復到最先前的畫面喔!
       

    • 設定螢幕:Monitor

    • 設定完了顯示卡之後,再來則是設定另外一個很重要的咚咚,就是顯示器,也就是螢幕設定啦!在螢幕的設定當中,首先,你可以選擇程式提供的顯示器的廠牌,如下圖所示,如果你可以找到你的螢幕廠牌的話,那麼直接點選就可以啦!如果找不到的話,那麼就直接選擇Custom吧!
       
       
       
      如果剛剛上面選擇了廠牌的話,那麼程式將會自動設定水平、垂直更新頻率;但是,如果是選擇了Custom的話,那麼就會出現如上的圖示來要求你輸入水平、垂直的更新頻率。這裡請特別留意呢,因為這兩個頻率設定錯誤的話(如果設定得太高了的話)很有可能會造成『螢幕的燒毀』,通常設定水平31-57及垂直50-90應該都不會有問題啦!這裡設定完之後,又會回到最先前的畫面。
       

    • 設定X-Window解析度:Resolution

    • 在按下了Resolution之後,會出現下圖:
       
       
      在螢幕的解析度上面,這個就隨個人的喜好而定了,鳥哥特別喜歡字小小的,桌面大大的,所以比較偏好1024x768這樣的設定值囉!
       

    • 實地測試:Test

    • 再來,如果按下Test之後,XFdrake就會幫我們進行測試工作了!奇怪的是,我做了好幾次,結果都沒有辦法Test成功!真是奇怪?如果在這個畫面中當掉了,不要慌張,按下[Ctrl]+[Alt]+[F1]就會回到原來的畫面,基本上,不Test也沒有關係啦!
       

    • 設定run-level:Options

    • 接著下來則是設定是否開機即啟動X-Window,也就是所謂的run-level 5啦
       
       
      以我為例,因為我的Linux都是拿來當伺服器用的,而且對於X-Window不是很有使用的時機,所以我都是以run-level 3來登入Linux的,自然也就選擇No囉!
       

    • 離開XFdrake:Quit

    • 這樣就設定完畢了!所以選擇離開,這個時候會出現如下的圖示:
       
       
      如果確定一切都沒有問題,就給他按下『Yes』吧!這樣就完成設定了!當然啦,你的/etc/X11/XF86Config-4就被更改囉!
     

  • Red Hat : Xconfiguration

  • 在 Red Hat 裡面也有個 Xconfiguration 來簡單的設定我們的 X Window 的各項設定喔!
     

    • 執行 Xconfigurator :

    • 這個時候會出現一個歡迎畫面,按下 OK 之後,系統會自動去捉顯示卡的晶片組。 如果顯示卡是這一版的 XFree86 有支援的話,那系統就會顯示出你的顯示卡型號,如下圖所示為 S3 的 Trio64v2 晶片:
        
       

    • 設定螢幕與螢幕解析度:

    •  上圖按下 OK 之後會開始去設定顯示器(螢幕),一般我們都用自訂的方法去捉螢幕,所以選擇 Custom 手動設定(第一項),如下圖所示:
        
       
      按下 OK 之後,系統會告訴你一些訊息,再按下 OK 後,就會出現如下的畫面,告訴你應該要選擇哪一個螢幕的解析度,通常我們都會選擇『High Frequency SVGA, 1024x768 @ 70Hz 』那一個選項。
       
       
      上圖按下 OK 之後,就會要求你選擇垂直解析度,通常我們都是選擇第二項,也就是 50-90 那一項即可;
       

    • 顯示卡相關設定: 

    • 再來系統會問你是否要讓 XFree86 自己捉顯示卡相關的資訊?這裡可以按 Probe 也可以按 Don't Probe ,只是,如果你確切的知道你的顯示卡記憶體的大小的話,這裡建議選擇 Don't Probe; 上一步驟選擇 Don't Probe 之後,系統會要你選擇你的記憶體,請依你的顯示卡記憶體實際大小輸入,如果是 S3 Vrige 的話,通常是 1M 或者是 2M 左右吧!
       
      選完了記憶體大小之後,過來是選擇你的記憶時脈晶片,由於我們通常不是很清楚我們的晶片是哪一個,所以這裡只好讓系統自己捉,如下圖,直接選擇 No Clockchip Setting 即可!
       

       

    • 色彩度的設定:

    • 再來則是選擇畫面解析度與色彩量,如下圖所示,一般而言,如果你的 X-Window 一直有問題,這裡可以選擇 8 bit,及 640x480 的最原始設定就好!如果你的 X-Window 沒有問題,可以正常的使用了,而你覺得你想要讓你的色彩最大化,則可以僅選擇 24 bit 及 1024x768 這一項即可!如此一來,你就可以以你最喜歡的解析度與色度進入 X-Window 啦!(注意喔,在 bit 之間以 tab 鍵移動,而以 空白鍵 確定!)
       
       
      接著下來系統告訴你要開始測試 X-Windows 啦,按下 OK 之後系統就開始測試 X-Window!在這個地方要注意一下,如果你的設定不完全,則系統將會回到第三步驟重新再設定,如果你在這一個步驟重複了三次以上仍無法設定成功,那就必須以 xf86config 這支程式設定了!
       
      如果你可以正常的看到一個游標及一個框框告訴你還有10秒鐘的時間可以按確定,那就表示你的 X-Window 可以用啦!這個時候請選擇 OK,然後出現的另一個框框告訴你:『是否要在下次開機的時候以圖形介面登入』,這一步千萬選擇『NO』,因為以 X-Window 為預設的開機介面,個人覺得並不好,因為不但佔用了較多的系統資源,而且,並不會比較好使用!
       
      完成設定了,跳出 Xconfigurator 後,以 startx 進入 X-Window !
很簡單吧,這就是使用工具軟體來設定的方法。底下我們來提一提,那麼正統的設定XFree86該怎麼玩?

使用XFree86提供的工具設定:xf86cfg, xf86config

基本上,XFree86 已經提供了兩支相當好用的程式來幫我們設定 XF86Config-4 了!那就是 xf86cfg 及 xf86config 這兩個!
 
那個 xf86cfg 會自動的偵測我們的主機資訊,並且直接將新的 XF86Config.new 檔案放置在設定者的家目錄之下,相當的方便!只要使用者在啟動 X-Window 之前,將自己家目錄的 XF86Config.new 複製到 /etc/X11/XF86Config-4 這個檔案,那麼就完成設定啦!但是,由於 xf86cfg 主要是自動幫我們捉取資料的,除非您使用 man xf86cfg 來查詢他的參數,否則常常無法捉到自己喜歡的模式!使用的方法是直接在指令列模式下,下達 xf86cfg 即可!
 
相對於 xf86cfg 的主動偵測資料,這個 xf86config 則顯的較為老態龍鍾,因為他的所有設定都需要使用者給予呢!包括鍵盤、滑鼠、螢幕、解析度等等的問題。不過,因為他都是經由使用者設定的,所以自然也就有辦法直接提供使用者一個喜好的環境設定囉!底下我們就針對 xf86config 來談一談吧!
 
[root @test root]# xf86config
Step 1: 準備備份與是否進行?
This program will create a basic XF86Config file, based on menu selections you make.
Before continuing with this program, make sure you know what video card
you have, and preferably also the chipset it uses and the amount of video
memory on your video card. SuperProbe may be able to help with this.
Press enter to continue, or ctrl-c to abort.   <==這裡按下Enter開始設定

Step 2: 設定滑鼠:
First specify a mouse protocol type. Choose one from the following list:
 1.  Microsoft compatible (2-button protocol)
 2.  Mouse Systems (3-button protocol)
 3.  Bus Mouse
 4.  PS/2 Mouse
 5.  Logitech Mouse (serial, old type, Logitech protocol)
 6.  Logitech MouseMan (Microsoft compatible)
 7.  MM Series
 8.  MM HitTablet
 9.  Microsoft IntelliMouse
Enter a protocol number: 4  <==主要是2或4,目前大多使用ps/2滑鼠,所以選4就對了!

Do you want to enable Emulate3Buttons? n <==是否模擬三鍵?我們已經是三鍵,當然不模擬!

Now give the full device name that the mouse is connected to, for example
/dev/tty00. Just pressing enter will use the default, /dev/mouse.
Mouse device:  <==這裡要設定滑鼠的裝置代號,通常使用預設值即可,所以按下Enter!

Step 3: 設定鍵盤格式:
  1  Generic 101-key PC
  2  Generic 102-key (Intl) PC
  3  Generic 104-key PC
  4  Generic 105-key (Intl) PC
  5  Dell 101-key PC
  6  Everex STEPnote
  7  Keytronic FlexPro
  8  Microsoft Natural
Enter a number to choose the keyboard.
<==選擇鍵盤的形式,如果不知道你的鍵盤格式,選擇 1 或 3 即可!

  1  U.S. English
  2  U.S. English w/ ISO9995-3
  3  U.S. English w/ deadkeys
  4  Albanian
Enter a number to choose the country.
Press enter for the next page
1   <==選擇鍵盤按鍵,我們鍵盤上面有的是英文呀!所以當然選擇 1 英文按鍵!

Please enter a variant name for 'us' layout. Or just press enter
for default variant
  <==選擇這個鍵盤的名稱,預設稱為 us ,不用搞特殊,Enter即可!

Please answer the following question with either 'y' or 'n'.
Do you want to select additional XKB options (group switcher,
group indicator, etc.)? n  <==是否需要額外的XKB選項,不需要啦!按 n !

Step 4:設定螢幕
Now we want to set the specifications of the monitor. 
The valid range for horizontal sync and vertical sync should be documented
in the manual of your monitor. If in doubt, check the monitor database
/usr/X11R6/lib/X11/doc/Monitors to see if your monitor is there.
Press enter to continue, or ctrl-c to abort.  <==準備設定螢幕,按Enter開始

    hsync in kHz; monitor type with characteristic modes
 1  31.5; Standard VGA, 640x480 @ 60 Hz
 2  31.5 - 35.1; Super VGA, 800x600 @ 56 Hz
 3  31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600)
 4  31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz
 5  31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz
 6  31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz
 7  31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz
 8  31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz
 9  31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz
10  31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz
11  Enter your own horizontal sync range
Enter your choice (1-11): 7 <==目前的螢幕選擇 7 應該都吃的下啦!
當然,如果你的螢幕比較好,可以考慮選擇 8~10 的選擇!

the number that counts is the high one (e.g. 87 Hz rather than 43 Hz).
 1  50-70
 2  50-90
 3  50-100
 4  40-150
 5  Enter your own vertical sync range
Enter your choice: 2  <==目前螢幕選擇 2 也應該都沒有問題啦!

You must now enter a few identification/description strings, namely an
identifier, a vendor name, and a model name. Just pressing enter will fill
in default names.
The strings are free-form, spaces are allowed.
Enter an identifier for your monitor definition: MyMonitor<==這裡要寫一下你的螢幕的代號,
隨便寫沒有關係啦!因為這個是在XF86Config裡面的代號而已!

Step 5: 設定顯示卡
Do you want to look at the card database? y <==是否要選擇顯示卡?當然是要囉!

468  SiS 5597                                          SiS5597
469  SiS 5598                                          SIS5598
470  SiS 620                                           SIS620
471  SiS 6326                                          SiS6326
472  SiS SG86C201                                      SIS86C201
Enter a number to choose the corresponding card definition.
Press enter for the next page, q to continue configuration.
471<==這裡接著下來會讓你選擇你的顯示卡資料,由於我們的資料庫相當龐大,所以
      如果該頁沒有你要的資料時,可以按下Enter到下一頁去選擇!那麼如果你的廠商
      是比較小牌的怎麼辦?沒關係,果真如此,那麼選擇不同廠商但是同樣晶片的
      資料就可以了!由於我是使用Sis 6326,所以就選擇471這個號碼囉!

Your selected card definition:
Identifier: SiS 6326
Chipset:    SiS6326
Driver:     sis
Do NOT probe clocks or use any Clocks line.
Press enter to continue, or ctrl-c to abort.  <==這裡再按Enter即可!

How much video memory do you have on your video card:
 1  256K
 2  512K
 3  1024K
 4  2048K
 5  4096K
 6  Other
Enter your choice: 6 <==設定你的顯示卡記憶體,目前的主流已經提升到 64MB了,
                        所以自然要選擇 6 來自定了!記得 RAM 的算法:
                        32M = 32*1024= 32768K 才對喔!

Amount of video memory in Kbytes: 1024 <==我的卡只有 1M 而已….

The strings are free-form, spaces are allowed.
Enter an identifier for your video card definition:  <==這裡按下 Enter 使用預設值即可!

Step 6:設定螢幕解析度:
"640x480" "800x600" "1024x768" for 8-bit
"640x480" "800x600" for 16-bit
"640x480" for 24-bit

Modes that cannot be supported due to monitor or clock constraints will
be automatically skipped by the server.

 1  Change the modes for 8-bit (256 colors)
 2  Change the modes for 16-bit (32K/64K colors)
 3  Change the modes for 24-bit (24-bit color)
 4  The modes are OK, continue.

Enter your choice: <==預設的情況下會有上面的那些模式,那麼我通常喜歡一種模式而已,
                         所以就按下 3 來修改該模式,設定為我喜歡的 1024x768 那個模式。

Select modes from the following list:
 1  "640x400"
 2  "640x480"
 3  "800x600"
 4  "1024x768"
 5  "1280x1024"
 6  "320x200"
 7  "320x240"
 8  "400x300"
 9  "1152x864"
 a  "1600x1200"
 b  "1800x1400"
 c  "512x384"
Please type the digits corresponding to the modes that you want to select.
For example, 432 selects "1024x768" "800x600" "640x480", with a
default mode of 1024x768.

Which modes? <==選擇我要的呦!

Please answer the following question with either 'y' or 'n'.
Do you want a virtual screen that is larger than the physical screen? n
上面的設定在說明,是否需要虛擬桌面?我才不要呢!所以選擇 n 囉!

 1  Change the modes for 8-bit (256 colors)
 2  Change the modes for 16-bit (32K/64K colors)
 3  Change the modes for 24-bit (24-bit color)
 4  The modes are OK, continue.

Enter your choice:  4  <==這樣就 OK 了!

Please specify which color depth you want to use by default:

  1  1 bit (monochrome)
  2  4 bits (16 colors)
  3  8 bits (256 colors)
  4  16 bits (65536 colors)
  5  24 bits (16 million colors)
Enter a number to choose the default depth.
<==預設是哪一個色彩度登入呢?選擇你要的喔!我要的是 5 那個色彩度!

Step 7: 寫入設定檔
Shall I write it to /etc/X11/XF86Config? y <==勇敢一點!給他 y 寫入吧!反正已經備份了!

 
這樣就設定完成了,但是比較麻煩的是,這個指令在設定XF86Config,所以你必需將他複製成為XF86Config-4才可以呢!然後就可以測試一下X-Window是否成功囉!

手動修改XFree86設定檔

好了,既然知道前面幾個咚咚都是在設定XF86Config-4這個檔案,那麼我們豈不是也可以自行去修改這個檔案呢?說的好!沒錯!所以我們就來修修改改這個檔案吧!首先,這個檔案裡面將很多的段落分成這種模樣:
 
Section “section name”
……..
……..
EndSection
 
開頭由 Section 接著該段落的內容項目,然後結束以 EndSection 來結束,我們直接在檔案內容進行說明吧!請參考一下底下的內容囉:
 
[root @test X11]# vi /etc/X11/XF86Config-4
Section "Module"
        Load  "dbe"
        Load  "dri"
        Load  "extmod"
        Load  "glx"
        Load  "record"
        Load  "xie"
        Load  "freetype"
        Load  "type1"
        Load "v4l"
EndSection
上面的資料在載入驅動X-Window的時候,需要的模組項目!通常這些項目都給他載入進去吧!另外,模組的資料可以在/usr/X11R6/lib/modules這個目錄中找到!

Section "Device"
        Identifier  "Card0"
        Driver      "nv"
        VendorName  "NVidia"
        BoardName   "GeForce2 MX"
        BusID       "PCI:1:0:0"
        Option "X-KXCONFIG-VideoRam" "32768"
        Option "X-KXCONFIG-MaxClock" "350"
EndSection
這個項目在設定你的顯示卡驅動程式!以我的卡為例,這個例子中,使用的是 Geforce 2 MX,
所以當然就是使用 nv 這個預設的 Nvidia 驅動程式啦!還有Option裡面的VideoRam設定的是顯示卡記憶體容量,記得填對!至於其他的項目就沒有這麼重要!

Section "Files"
        RgbPath "/usr/X11R6/lib/X11/rgb"
        FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
        FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
        FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
        FontPath "/usr/X11R6/lib/X11/fonts/Type1"
        FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
        FontPath "/usr/X11R6/lib/X11/fonts/ghostscript"
EndSection
這個項目在設定字型與顏色,那個RgbPath是設定色彩,而FontPath則是設定字型的地方!
這裡告訴我們另一個資訊,那就是字型通常是擺在/usr/X11R6/lib/X11/fonts裡面喔!

Section "ServerFlags"
        Option "AllowMouseOpenFail" “false”
EndSection
這裡可以設定X-Window的另一個整體化參數!上面那個 AllowMouseOpenFail 的設定中,
若設定為 “false” 那麼沒有找到並驅動滑鼠,就不能登入X-Window囉!

Section "InputDevice"
        Driver          "keyboard"
        Identifier      "keyboard"
        Option          "XkbRules"      "xfree86"
        Option          "XkbModel"      "pc104"
        Option          "XkbLayout"     "us_group3"
EndSection
Section "InputDevice"
        Driver          "mouse"
        Identifier      "mouse"
        Option          "Protocol"      "IMPS/2"
        Option          "Device"        "/dev/psaux"
        Option "ZAxisMapping"  "4 5"
EndSection
這個是在設定周邊輸入介面,有鍵盤及滑鼠兩種設定,注意上面黑體的地方,keyboard設定的是鍵盤的格式(XkbModel與 XkbLayout),而滑鼠則是設定介面(Protocol)較為重要!

Section "ServerLayout"
        Identifier      "Default layout"
        Screen          0 "Screen0" 0 0
        InputDevice     "mouse" "CorePointer"
        InputDevice     "usbmice" "SendCoreEvents"
        InputDevice     "keyboard" "CoreKeyboard"
EndSection
這個地方在設定整個畫面的輸出呢!重點在 Screen 那個項目的設定喔!那個 0 0 指的是桌面左上角為 0 0 的意思!

Section "Monitor"
        Identifier "Generic Monitor"
        VendorName "Typical Monitors"
        ModelName "1280x1024, 60Hz"
        HorizSync 31-64
        VertRefresh 50-90
        ModeLine "1024x768/70Hz" 75    1024 1048 1184 1328   768  771  777  806 -HSync -VSync
        ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
EndSection
這個項目則是設定螢幕的細項,包括解析度、更新頻率等等的設定值喔!

Section "Screen"
    Identifier  "Screen0"
    Device      "Card0"
    Monitor     "Generic Monitor"
    DefaultDepth 16
    Subsection "Display"
        Depth       32
        Modes "1024x768/70Hz" "640x480"
                Virtual 0 0
    EndSubsection
    Subsection "Display"
        Depth       24
        Modes "1024x768/70Hz" "640x480"
                Virtual 0 0
    EndSubsection
    Subsection "Display"
        Depth       8
        Modes "1024x768/70Hz" "640x480"
                Virtual 0 0
    EndSubsection
    Subsection "Display"
        Depth       16
        Modes "1024x768/70Hz"
                Virtual 0 0
    EndSubsection
EndSection
重點來了!這個就是設定你進入X-Window的時候,顯示的解析度囉!預設有支援的項目都會寫進來,但是,像比較龜毛的我,就是不喜歡有這麼多的項目存在,所以我可以將上面的資料,只剩下粗體字,其他的都刪除,那麼進入X-Window就只有一種顯示模式!比較方便啦!當然囉,你也可以藉由修改DefaultDepth那個項目來控制登入X-Window時的設定值囉!

 
這樣就設定完成啦!而如果你曾經選錯了『虛擬桌面,Virtual desktop』時,那麼就修改Section Screen 那個項目,將裡面的 Virtual 改成 0 0 即可囉!一般而言,我們在設定X-Window時,通常會先以各家Linux distribution提供的軟體來設定,如果不能成功,就改以xf86cfg來自動設定,還不能成功,就以xf86config來設定,再不成功,唉~只好使用手動的方式修改設定檔囉!

啟動X-Window

好了,設定好了XF86Config-4之後,自然就是要啟動X-Window試試看囉!那麼該如何啟動X-Window呢?如果在開機流程簡介那一篇有仔細的瞧過的話,應該會知道,我們的開機進入模式有多種,但是基本上正常登入則有run-level 3的文字介面登入及run-level 5的圖形介面登入!如果是run-level 5的話,那麼表示您目前應該已經是在X-Window的環境下了,如果是在run-level 3要轉到X-Window的畫面下,那麼就直接給他:
startx
就可以啦!這個時候就會主動的來將我們剛剛設定的內容給他驅動看看,如果可以的話,自然就會進入視窗桌面囉!如果不能進入,再次的給他設定吧! ^_^

更新顯示卡驅動程式範例:以 Geforce2 MX 說明

那麼萬一我的顯示卡並不被我的XFree86所支援呢?例如最新的Geforce4這些晶片組的顯示卡?沒有關係,能不能驅動硬體是跟硬體發展的廠商有關係的,所以只要硬體開發商能夠提供驅動程式的話,那麼自然就可以沒有問題的給他驅動囉!底下我們以目前最常見的Nvidia的顯示卡來進行說明,讓大家瞭解一下如何更新這個驅動程式吧!

  • 下載最新的驅動程式:

  • 既然要更新驅動程式,自然要到硬體開發商的網站去下載囉!底下列出Nvida的網址,您可以前往下載最新的驅動程式囉!我是使用SRPM下載到我的系統當中,然後藉由編譯來完成安裝的!所以建議您也下載SRPM來玩玩吧!
       
    註:至少要兩個檔案,檔名為:
     
      NVIDIA_GLX-xxxx.src.rpm
      NVIDIA_kernel-xxxx.src.rpm
     
    那個xxxx顯示的是版本,這兩個檔案的版本必需一致才行!
     

  • 編譯並安裝驅動程式:

  • 好了,開始來編譯一下我們的SRPM囉!並且安裝他們啦!
     
    [root @test root]# rpm --rebuild NVIDIA_kernel-1.0-3123.src.rpm
    [root @test root]# rpm --rebuild NVIDIA_GLX-1.0-3123.src.rpm
    這個時候會在/usr/src/RPM/RPMS/i586多兩個檔案,好了,將他裝上

    [root @test root]# rpm -ivh /usr/src/RPM/RPMS/i586/NVIDIA_kernel-1.0-3123.i586.rpm
    [root @test root]# rpm -ivh /usr/src/RPM/RPMS/i586/NVIDIA_GLX-1.0-3123.i586.rpm

     
    安裝的過程當中會有一些錯誤訊息顯示,不過不要僅,那個是正常的!在安裝好了之後,會在/usr/X11R6/lib/modules/drivers多一個名為nvidia_drv.o的檔案,那個就是我們要的驅動程式啦!
     

  • 手動加入驅動程式於設定檔中

  • 如果您原先就可以使用X-Window,那麼就直接手動的修改/etc/X11/XF86Config-4這個檔案,如果原先就無法使用X-Window的話,那麼請重新以xf86config設定一下你的XFree86,然後在修改底下的資料:
     
    [root @test root]# vi /etc/X11/XF86Config-4
    1. 載入 GLX 模組:
    尋找 Section “Module” 確定底下這一行存在,若不存在,請自行加入:
        Load "glx"
    同時尋找底下兩行:
            Load  "dri"
            Load  "GLcore"
    這兩行若存在的話,請刪除,若不存在,就沒有關係!

    2. 載入驅動核心程式
    尋找Section "Device" 應該會有這一行:
            Driver "nv"   (或者其他的名稱!)
    將他修改為如下的樣子:
            Driver “nvidia”

     
    這樣就修訂完成了!趕快重新啟動X-Window試試看!
修改歷史:
  • 2003/02/12:第一次完成
伺服器篇文件
各版本彙整說明
CentOS 6.x