安裝 XWindow


選擇X Server

許多人都以為在 Linux (或 Unix) 裡﹐都要使用文字模式。“沒有友善圖形界面”居然成為某些人拒絕 Linux 的藉口。其實﹐在 Unix 世界裡面﹐早就有圖形界面了﹐最出名的莫過於 XFree86 了﹐人們一般稱之為 X Window。 若論起歷史﹐X Window 比微軟的 Windows 系統還早呢﹗而且﹐在 X Window 裡面﹐可供選擇的界面多得很呢﹐這個概念可不同微軟視窗中換換桌面、顏色或字型那麼簡單哦。

首先﹐XFree86 下面有好幾種 X Server﹐它們分別是配備不同的硬體的。當您將 RedHat 6.0 的CD放進機器並mount好之後﹐然後輸入﹕
ls /mnt/cdrom/RedHat/RPMS/XFree86*

您會看到輸出結果會包括下面的這些 rpm﹕
XFree86-8514-3.3.3.1-53CLE.i386.rpm
XFree86-AGX-3.3.3.1-53CLE.i386.rpm
XFree86-FBDev-3.3.3.1-53CLE.i386.rpm
XFree86-I128-3.3.3.1-53CLE.i386.rpm
XFree86-ISO8859-2-1.0-8.noarch.rpm
XFree86-ISO8859-9-2.1.2-9.noarch.rpm
XFree86-Mach32-3.3.3.1-53CLE.i386.rpm
XFree86-Mach64-3.3.3.1-53CLE.i386.rpm
XFree86-Mach8-3.3.3.1-53CLE.i386.rpm
XFree86-Mono-3.3.3.1-53CLE.i386.rpm
XFree86-P9000-3.3.3.1-53CLE.i386.rpm
XFree86-S3-3.3.3.1-53CLE.i386.rpm
XFree86-S3V-3.3.3.1-53CLE.i386.rpm
XFree86-SVGA-3.3.3.1-53CLE.i386.rpm
XFree86-VGA16-3.3.3.1-53CLE.i386.rpm
XFree86-W32-3.3.3.1-53CLE.i386.rpm

利用這些 rpm 我們就可以安裝不同的 X Server 在機器上(可以同時安裝多個)﹐以適應不同的硬體環境了。一般來說﹐使用 XFree86-SVGA都基本能適用於我們的要求了﹐除非您知道您使用的顯示卡可以被其他的 X Server 所支援。不過﹐對於一些最新的 AGP 顯示卡﹐都比較難安裝﹐雖然使用 XFree86-VGA16 勉強可以看得到圖形﹐但出來的顏色和解析度都醜醜的﹐更別論要完全發揮 3D 功能了。然而﹐在許多討論板和 Linux 資源中心﹐都可以找到安裝某些型號的 AGP 顯示卡的文章。不過﹐由於我沒有安裝 3D 卡的經驗﹐所以在這裡也就略過了。如果您有興趣﹐也可以看看 Linux HOWTO 裡面的﹕3Dfx-HOWTO或許會有所發現的。如果您的卡是 SiS 6326AGP 的話﹐可以參考﹕http://rampages.onramp.net/~slywolf/xf86main.html這篇文章。

雖然一些比較新的顯示卡都暫時沒被內定支援﹐但或許遲下推出新的 XFree86 版本會支援呢。如果真如此﹐您只要到網路上面下載最新的 rpm (如果有的話)回來安裝就是了﹐您根本不需要重新安裝 Linux 系統的。

設定X Window

或許您會很順利的就將 X Server 安裝好﹐但要設定好一個 X Window 通常卻要費盡九牛二虎之力﹐有時候耗費整個星期的時間也設定不好﹐一點不出奇。事實上﹐由於不同的硬體搭配﹐需要的設定都很不相同﹐也很難找到一個放之四海皆宜的安裝法門﹐總離不開不停的反復嘗試。

下面﹐我打算用我的 Linux 機器做例子﹐和大家一起經歷一下安裝 X Window 的過程。這裡﹐我也不打算用太高難度的硬體來做例子了﹐免得畫虎不成反類犬啦。

  1. 首先要設定的是mouse﹐如果當初您在安裝的時候已經設定好了的話﹐應該就無需擔心了。不過﹐要是知道您的鼠標類型和接到哪個port 的話﹐也可以打 setup ﹐然後選擇‘Mouse configuation’來設定。

  2. 當 mouse 設定好之後﹐您可輸入 setup 之後選擇﹕ ‘X configuration’
    也可以直接打﹕
    Xconfigurator

  3. 首先﹐您會見到“PCI Probe”畫面﹕
    如果您的顯示卡晶片組能夠被系統偵測到的話﹐在這裡您就看得到了。否則的話﹐恐怕要花的力氣就更多了。無論如何﹐您都要按‘OK’的了。

  4. 接下來﹐您會看到“Monitor Setup”畫面﹕
    如果您的顯示器型號在清單之內﹐可以考慮選擇。不過﹐您也可以用‘Custom’來指定。選好後按‘OK’。

  5. 接下來您會看到“Custom Monitor Setup”這個畫面﹕
    這裡告訴您的是一些使用‘Custom’方法的關鍵設定﹐同時建議您做好設定記錄。按‘OK’就是了。

  6. 在“Custom Monitor Setup (Contiuned)”畫面裡面﹐您必須要為您的顯示熒幕指定好‘水平掃描頻率’﹐您可能參考手冊找到正確的數值。如果找不到或懶得去找(像我)的話﹐可以選擇高一點的解析度﹐除非您的熒幕實在太舊則選擇低數值。這個例子中﹐我選擇‘High Frequency SVGA, 1024x768 @ 70 Hz’:


  7. 然後﹐您得為您的顯示器設定‘垂直掃描頻率’。這又要參考廠家手冊了﹗不想這樣做的話﹐挑最頂上那個最保險。不過﹐我知道我的熒幕可以使用‘50-90’這個範圍﹕


  8. 然後﹐在“Screen Configuration”畫面裡面﹐系統可以對熒幕的解析度和色深進行偵測﹐如果您不清楚您的設定如果﹐到可以選擇‘Probe’。不過﹐在我的經驗裡﹐選擇‘Don't Probe’更保險﹐但您要知道您的硬體配置情況如何﹕


  9. 如果您選擇了‘Don't Probe’的話﹐在‘Video Memory’畫面裡面就得設定好顯示卡的記憶體數量了。雖然我知道我的卡有4MB﹐但過往的測試中﹐最多只能使用到2MB﹐所以我這裡也就選擇了‘2 mb’:


  10. 然後﹐您就會來到“Clockchip Configuration”畫面了﹕
    除非您知道您的顯示卡使用的Clockchip型號(如 S3 Trio 64+ 可以使用‘S3 GenDAC’)﹐否則﹐最好就別使用 Clockchip﹐選擇‘No Clockchip Setting (recomended)’然後按‘OK’。

  11. 接著在‘Probe for clocks’畫面裡面﹐我們可以選擇‘Probe’﹕


  12. 如果您看到‘Clockl Probe failed’畫面﹕
    也就是說系統不能正常的偵測到時鐘數值﹐那麼﹐重來的時候﹐可以在上一步選擇‘Skip’。如果 Probe 出來的‘Color Depth’和‘Resolution’正確的話﹐您可以選擇‘Use Dfault’﹔如果不是﹐您可以選擇‘Let Me Choose’。

  13. 然後在‘Select Video Modes’畫面裡面﹐選擇好正確的色深和解析度﹕
    您一定要確定您的顯示卡和熒幕能夠支持得到您所選的數值。如果您不確定﹐最好從最低(如 8bit﹐640x480)慢慢試上去。

  14. 接下來系統會測試一下設定是否可行﹐您可以在‘Starting X’畫面選擇‘OK’﹔如果不想測試則選擇‘Skip’。通常都應該進行測試的﹐因為如果設定不對還可以‘Back’到以前的步驟重新設定﹕


  15. 接下來的畫面會出現十秒(因為擷取不到該畫面﹐所以這裡欠奉了)﹐如果您能清晰的看到文字﹐應該選擇‘Yes’﹐如果您超過十秒還沒動作﹐就當您看不到文字了﹐那樣系統就會告訴您‘Error’﹐您可以‘Back’回去重新設定﹐也可以選擇‘Quit’退出。

  16. 如果您能看到上一步的文字﹐並且在十秒內按了‘Yes’﹐系統會問您是否想“一開機就直接進入 X Window 界面”﹐如果您喜歡用 X Window﹐那麼按‘Yes’。不過﹐我建議您還是選擇‘No’好了。因為如果您選擇了‘Yes’之後要回到文字模式的話就要費一番功夫才行﹔但我們卻可以隨時從文字模式進入 X Window。

  17. 一切妥當的話﹐只要您輸入:
    startx

    就可以看到美麗的 X Window啦﹗如果您很不幸在 X Window 裡面卡住了﹐要退出來的話﹐可以嘗試按﹕
    Ctrl + Alt + Backspace

好了﹐如果您夠幸運完成上面的所有步驟﹐真要恭喜您了﹗別看我在這裡例子裡面選這按那的好像一點都不難﹐但事實上﹐要當初要找出選擇什麼﹐按哪個鍵卻花費了不少時間呢﹗如果您發現您的 X Window 老設定不來﹐別喪氣﹐好多人都不能一次搞定呢。對於 X 系統﹐一直都是設定 Linux 的一個難題﹐卻也沒有什麼捷徑﹐只能靠多嘗試了。

xf86config 和 XF86Config

上面所教的設定 X Window 的方法叫 “Xconfigurator”﹐好像只有 RedHat Linux 才有這個程式。如果您用其他套件的話﹐可以使用“XF86Setup”或“xf86config”這兩個程式。前者非常好用和直觀﹐因為是圖形界面的﹐這裡也不就多費唇舌了﹐如果您想使用它﹐可以將XFree86-XF86Setup-3.3.3.1-53CLE.i386.rpm裝起來﹐然後輸入 XF86Setup 就可以了。不過 xf86config 卻不是那麼好用﹐下面就讓我們用一個最陽春的組合( S3 Trio64+ 顯示卡配搭 640x480熒幕)來看看xf86config 是怎麼使用的。之所以使用個組合﹐完全是因為成功的機會大﹐如果您想看看 X Window 是怎麼個模樣﹐用這個組合保證您不會失望就是了。

  1. 在文字模式下面輸入﹕
    xf86config

  2. 然後在第一個畫面裡面﹐最後一行應該是這樣的﹕
    Press enter to continue, or ctrl-c to abort.
    我們按‘ Enter ’就是了。使用 xf86config 有一個不好的地方是﹕如果設定錯了﹐沒有機會回到上一步的。如果您在設定過程中發現輸入錯了﹐可以按 ‘Ctrl + c’鍵終止程式﹐然後重新再來。
  3. 然後是要您選擇好鼠標類型﹐因為我用的是 PS/2 鼠標﹐所以在“Enter a protocol number: ”那裡輸入 ‘4’ 。
  4. 然後會問您是否需要“三鍵模擬模式”﹐除非您有此特殊需要﹐否則見到“Do you want to enable Emulate3Buttons? ”後輸入‘n’就是了。
  5. 接著問的是鼠標設備位置﹐除非您更改過系統﹐否則見到“Mouse device:”的時候﹐直接按‘Enter’即可。
  6. 接著問您要不要“XKEYBOARD 模式”﹐這其實沒什麼重要﹐我們看到“Do you want to use XKB﹖”的時候輸入‘y’就是了。
  7. 然後再按一次‘Enter’繼續。
  8. 選擇好您的鍵盤型號﹐這裡我們選擇‘1’。
  9. 然後再按一次‘Enter’繼續。
  10. 接下來是選擇顯示器的“水平掃描頻率”﹐這裡我們選擇‘2’﹐即﹕“31.5 - 35.1; Super VGA, 800x600 @ 56 Hz”。
  11. 接下來是選擇顯示器的“垂直掃描頻率”﹐這裡我們選擇‘1’﹐即﹕“50-70”。
  12. 當您看到“Enter an identifier for your monitor definition:”的時候﹐您可以為您的顯示器做些註解﹐否則﹐一連按三下‘Enter’就是了。
  13. 然後系統會問您是否要看一看顯示卡的資料庫﹐當然要啦﹐所以我們看到“Do you want to look at the card database?”的時候輸入‘y’。
  14. 然後我們就一直的按‘Enter’往下翻頁﹐直到找到自己的型號為止﹐如果錯過了﹐還是一直按‘Enter’等它繞一圈回來。這裡我們找到我們的卡﹕“457 S3 Trio64V+ (generic)”。我們需要的前面的數字﹐然後我們輸入“457”再按‘Enter’。
  15. 系統會顯示出您所做的選擇﹐按‘Enter’繼續就是了。
  16. 然後﹐系統要我們選擇一個 X Sserver 類型﹐既然我們已經找到我們的卡了﹐所以當看到“Which one of these screen types do you intend to run by default (1-5)?”的時候輸入‘5’﹐即﹕“Choose the server from the card definition, XF86_S3. ”。
  17. 然後系統會問您是否要為設定檔建立 link﹐當您看到“Do you want me to set the symbolic link?”的時候輸入‘y’。
  18. 然後系統要您輸入顯示卡的記憶體數量﹐雖然我知道我的卡有 2MB﹐但我這裡輸入 1MB 就可以了﹐所以選擇‘3’﹐即﹕“1024K”。
  19. 接著系統會問您是否要為顯示卡做些註解﹐如果您不想花時間﹐一連按三下‘Enter’就是了。
  20. 然後系統問您是否要指定RAMDAC類型﹐這裡我們選擇‘9’﹐即﹕“S3 GenDAC (86C708) (autodetected)”。如果您不知道該怎麼選擇﹐可以按‘q’離開。
  21. 既然我們已經選擇了 RAMDAC﹐那麼接著我們就得設定好 clock chip﹐這裡我們選擇‘6’﹐即﹕“S3 GenDAC (86C708) and ICS5300 (autodetected)”。如果您不知道怎麼選擇﹐直接按‘Enter’就可以跳過。
  22. 再按一次‘Enter’繼續。
  23. 接著我們得為熒幕選擇色深﹐這裡我們選擇‘2’﹐即﹕“16bpp (32K/64K colors)﹐也就是 16bit color了”。
  24. 然後我們得選擇解析度﹐這裡我們選擇‘2’﹐即﹕“640x480”。
  25. 然後系統會問您是否需要虛擬熒幕(它可以顯示出比實體熒幕要大的畫面)。如果您覺得好玩的話﹐可以選擇的。不過﹐我個人覺得並不那麼好玩﹐所以當看到“Do you want a virtual screen that is larger than the physical screen?”的時候輸入‘n’。
  26. 當一切都設定好了﹐我們這裡選擇‘5’﹐即﹕“The modes are OK, continue.”。如果您後悔了﹐想改變為其他的色深和解析都﹐那麼可以選擇其他號碼繼續。
  27. 然後系統會問您是否要保存設定﹐當然啦﹗要不我們花這麼多時間在這裡幹嘛﹖所以當看到“Shall I write it to /etc/X11/XF86Config﹖”的時候輸入‘y’。
這樣﹐您打 startx 看看就知道設定是否生效了。

現在﹐我們知道可以用 Xconfigurator、XF86Setup 以及 xf86config 來設定 X Window。但事實上﹐無論您用哪一個程式來設定 X Window﹐它們最終的目的是幫助您修改一個檔案而已。這檔案就是 XF86Config 了﹐您可以在 /etc/X11/ 目錄下面找到它﹐它有一個 link 在 /usr/X11R6/lib/X11/ 下面。只要您懂得如何修改這個檔案的話﹐那麼剛才用來設定 X Window 的程式都可以不用了。不過﹐修改這個檔案可真的不容易啦﹐如果您真的想碰它﹐最好做一個先備份。

在XF86Config這個檔案裡面﹐您需要注意的主要有三個 section ﹕monitor、device 和 screen。

在 monitor 那個 section裡﹐光一看那一行行的數字﹐我可是敬而遠之了。怕怕啦﹐最好不要碰﹐還是讓 Xconfigurator來設好了。

至於 device section 嘛﹐好像還有點 meaning ﹐倒可以弄弄的。拿我們剛才用 Xconfigurator 設定的樣板來看﹐我們應該看到有這樣的一些句子﹕
Section "Device"
    Identifier  "MagicGraph NM2160"
    VendorName  "Unknown"
    BoardName   "Unknown"
    #VideoRam    2048
#    Chipset    "NM2160"
#    IOBase     0xfea00000
#    MemBase    0xfd000000
#    VideoRam   2048
#    DacSpeed   90
#    Option     "linear"
#    Option     "nolinear"
#    Option     "sw_cursor"
#    Option     "hw_cursor"
#    Option     "no_accel"
#    Option     "intern_disp"
#    Option     "extern_disp"
#    Option     "mmio"
#    Option     "no_mmio"
#    Option     "lcd_center"
#    Option     "no_stretch"
    # Insert Clocks lines here if appropriate
EndSection

那些被 “#”註解起來的行是會被忽略的。只是有點不明白的是﹐當初我明明選擇了 2MB 的記憶體﹐不知道因何也被註解起來了﹐可能是改用了自動偵測了吧﹖至於其他的 Option﹐如果您知道怎麼設定﹐可以一一修正過來的﹐尤其您要弄一些新卡(AGP)﹐常要手動的修改這些設定。至於其他的 device﹐您可以不用管﹐除非您在下面的 screen section 裡面使用到了。

再來看 screen 這個 section﹐您也應該會看到諸如這樣的敘述﹕
Section "Screen"
    Driver      "accel"
    Device      "MagicGraph NM2160"
    Monitor     "My Monitor"
    Subsection "Display"
        Depth       16
        Modes       "1024x768"
        ViewPort    0 0
    EndSubsection
EndSection 

在這裡﹐‘Device’和‘Monitor’都要聯係到檔案前面所設定的名稱(它們要一致)。至於其他的設定﹐則可以再行設定。有時候﹐您發現您設定的色深和解析度都不生效﹐可以考慮到這裡將那些您不想要的‘Subsection’註解掉就可以了。

選擇WM

至此﹐只要我們輸入 startx 就可以進入 X Window 了﹐RedHat 6.0 預設的情況下﹐您看到的 Windows Manage 會是 Gnome。然而事實上﹐您除了 Gnome 之外﹐還有許多 WM 可以選擇﹐例如 KDE、AfterStep、Fvwm95 等等。如果您想輸入 startx 後進入您自選的 WM﹐您可以修改家目錄的這個檔案﹕‘~/.xinitrc ’(如果此檔案不存在的話﹐自行建立吧)。下面是這個檔案的範例﹕
#!/bin/bash
#
# File name: .xinitrc
#
#exec /etc/X11/xinit/Xclients GNOME
exec /etc/X11/xinit/Xclients KDE
#exec /etc/X11/xinit/Xclients WINDOWMAKER
#exec /etc/X11/xinit/Xclients Fvwm95
#exec /etc/X11/xinit/Xclients FvwmMWM
#exec /etc/X11/xinit/Xclients icewm-light

您要做的只是將您要選擇的 wm 前面的“#”拿掉﹐然後將其他的 wm 註解起來就可以了。不過﹐上面這個 script 只適用於CLE版本﹐如果您使用其它版的話﹐將您的 .xinitrc 改成這樣﹕
#!/bin/bash
#
# File Name: .xinitrc
#
#exec gnome-session
exec startkde
#exec /usr/X11R6/bin/RunWM --AfterStep
#exec /usr/X11R6/bin/RunWM --WindowMaker
#exec /usr/X11R6/bin/RunWM --Fvwm95
#exec /usr/X11R6/bin/RunWM --FvwmMWM
#exec /usr/X11R6/bin/RunWM --icewm-light

我們知道有好幾種 X Server 可以在 Linux 裡面跑﹐那麼各種不同的 WM 就是不同 X Client 了。這裡﹐我不詳細講述怎麼安裝 wm 了﹐您除了用 ~/.xinitrc 來指定預設 WM 之外﹐最保險的還是修改 /etc/X11/xinit/Xclients 這個檔案了﹐只要將您最喜歡的 WM 排在前面就是了。

還有一個簡單辦法哦﹐您只要執行下面命令就可以切換 WM 了﹕
echo "KDE" > /etc/sysconfig/desktop

您只要將 KDE 換成 GNOME 或其它 WM 名稱﹐然後打 startx 就可以了﹗

試試看~~~ 看您喜歡哪一個 WM ﹖

 

 


© 2000 Netman 網中人
Last Updated: May 17, 2000