| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
許多人都以為在 Linux (或 Unix) 裡﹐都要使用文字模式。“沒有友善圖形界面”居然成為某些人拒絕 Linux 的借口。其實﹐在 Unix 世界裡面﹐早就有圖形界面了﹐我們在 Linux 所使用的 X 系統是 XFree86 ﹐人們一般稱之為 X Window。 若論起歷史﹐X Window 比微軟的 Windows 系統還早呢﹗而且﹐在 X Window 裡面﹐可供選擇的界面多得很﹐這個概念可不同微軟視窗中換換桌面、顏色或字型那麼簡單哦。 首先﹐XFree86 是一個 network-based 的 client/server 架構。您有好幾種 X Server 可以供您選擇﹐它們分別配備不同的硬體。當您將 RedHat 7.1 的 CD2 放進機器並 mount 好之後﹐然後輸入﹕
您會看到輸出結果會包括下面的這些 rpm﹕
以上這些套件﹐大部份是各種 X server ﹐我們可以選擇安裝不同的 X server 在機器上﹐也可以同時安裝多個 X server﹐以適應不同的硬體環境。然而﹐在設定 X 的時候﹐要求您非常了解系統的硬體資訊﹐尤其是顯示卡和熒幕。您最好能參考下表﹐填上所有您能夠獲得的資訊﹕
一些比較新的顯示卡都暫時沒被內定支援﹐要設定起來可真是件非常棘手的事情。如果真的設定不起來﹐我建議您暫時放棄﹐或換張確定可以支援的顯示卡。又或者﹐期待日後新版的 XFree86 版本會支援﹐當然是沒人敢保證的啦。如果真如此﹐您只要到網路上面下載最新的 X server (如果有 rpm 更好)回來安裝就是了﹐您根本不需要重新安裝 Linux 系統的。 用 RPM 來安裝 X Server ﹐應該不會很困難的﹐除非您碰到 library 相關的問題﹐不過﹐您最好當成這是 RPM 的最佳鍛煉機會 ^_^ 然而﹐假如您不了解硬體資訊﹐或是硬體太新而暫時沒有現成的支援﹐要設定好一個 X Window 通常卻要費盡九牛二虎之力﹐有時候耗費整個星期的時間也設定不好﹐實不出奇。事實上﹐由於不同的硬體搭配﹐需要的設定也大相徑庭﹐也很難找到一個放之四海皆宜的安裝法門﹐總離不開不停的反復嘗試就是了。 下面﹐我打算用我的 Linux 機器做例子﹐和大家一起看看安裝 X Window 的過程。這裡﹐我也不打算用太新的硬體來做例子了﹐免得畫虎不成反類犬啦。
Okay﹐假如一切妥當的話﹐只要您輸入:
然後﹐就可以看到美麗的 X Window 啦﹗如果您很不幸在 X Window 裡面卡住了﹐可以在任何時候嘗試按﹕
好了﹐如果您夠幸運進入 X window﹐真要恭喜您了﹗別看我在這裡例子裡面選這按那的好像一點都不難﹐但事實上﹐當初要找出選擇什麼﹐按哪個鍵卻花費了不少時間呢﹗如果您發現您的 X Window 老設定不來﹐別喪氣﹐好多人都不能一次搞定呢。關於 X 系統的設定﹐一直都是 Linux 的一個難題﹐卻也沒有什麼捷徑﹐只能靠多嘗試了。 上面所教的 X Window 設定方法叫 “Xconfigurator”﹐好像只有 RedHat Linux 才有這個程式。如果您用其他套件的話﹐可以使用“XF86Setup”或“xf86config”這兩個程式。前者非常好用和直觀﹐因為是圖形界面的﹐這裡也不就多費唇舌了﹐如果您想使用它﹐可以找 XFree86-XF86Setup-xxx.xxx.xxx.rpm 回來裝﹐然後輸入 XF86Setup 就可以了。雖然 xf86config 不是那麼好用﹐但基本上都能在各發行套件中找得到。下面就讓我們用一個最陽春的組合( S3 Trio64+ 顯示卡配搭 640x480 熒幕)來看看 xf86config 是怎麼使用的。之所以使用個組合﹐完全是因為成功的機會大﹐如果您想看看 X Window 是怎麼個模樣﹐用這個組合保證您不會失望就是了。
然後﹐您打 startx 看看就知道設定是否生效了。 現在﹐我們知道可以用 Xconfigurator、XF86Setup 以及 xf86config 來設定 X Window。但事實上﹐無論您用哪一個程式來設定 X Window﹐它們最終的目的是幫助您修改一個檔案而已。這檔案就是 XF86Config-4 了﹐如果這個檔不存在﹐或是在舊版本中﹐則是 XF86Config。您可以在 /etc/X11/ 目錄下面找到它。只要您懂得如何修改這個檔案的話﹐那麼剛才用來設定 X Window 的程式都可以不用了。不過﹐修改這個檔案可真的一點也不容易啦﹐如果您真的想碰它﹐最好做一個先備份。 在 XF86Config-4 這個檔案裡面﹐您需要注意的地方主要有三個 section ﹕monitor、device 和 screen。 拿我們剛才用 Xconfigurator 設定的樣板來看﹐我們應該在 monitor 那個 section 裡看到有這樣的一些句子﹕
比較剛纔我們在 Xconfigurator 所偵測到的數值﹐應該不難理解吧。 關於 device 的部份﹐則如下﹕
事實上﹐您可以在這個檔案中定義多個相同的 section﹐但這些 section 只有在後面的 screen 中有使用到才有意義。這裡我們看到有兩個 device 的定義﹐分別使用 tdfx 和 fbdev 的 driver﹐前者會在後面的 screen 中使用。而 fbdev 通常可以讓您在找不到顯示卡驅動程式的時候﹐以 frame buffer 的形式來執行圖像程式﹐不過我這裡不討論如何設定 FB 了﹐請自行參考 HOWTO 文件吧。 在其它顯示卡的設定中﹐您甚至還可以看到額外的一些 “Option” 設定﹐如果您知道怎麼設定﹐可以一一修正過來的﹐尤其您要弄一些新卡的時候﹐常要手動的修改這些設定﹐但您必須參考說明文件進行。 再來看 screen 這個 section﹐您應該會看到諸如這樣的敘述﹕
在這裡﹐‘Device’和‘Monitor’都要聯係到前面所設定的 Identifier 名稱(它們必須要一致)。至於其他的設定﹐則可以再行設定。有時候﹐您發現您設定的色深和解析度都不生效﹐可以考慮到這裡將那些您不想要的‘Subsection’註解掉就可以了。 一旦您的 X Window 能正確的跑起來﹐我強烈建議您為這個設定檔做一個備份。
這樣就可以進入 vmware 的 X 世界了﹗註﹕這些修改不要錯誤的在真實主機上面設定哦。 不過﹐我發現如果重新啟動 vmware 的話﹐要先跑一次 Xconfigurator﹐再修改 XF86Config-4 才行﹐我不知道是什麼原因﹐但我會將這個檔備份起來﹐然後 copy 回去就好。 至此﹐只要我們輸入 startx 就可以進入 X Window 了。同時﹐我們也知道有好幾種 X Server 可以在 Linux 裡面跑﹐相對而言﹐我們當然也有各種不同的 X Client 可以使用。在 X 系統的 client 端通常稱為 Windows Manager。RedHat 7.1 的預設 Windows Manage 會是 KDE2 (K Desktop Environment)。然而事實上﹐您除了 KDE 之外﹐還有許多 WM 可以選擇﹐例如 Gnome、AfterStep、Fvwm95 等等﹕
這裡﹐我不詳細講述怎麼安裝 wm 了﹐您可以到網路上找到一大堆 wm 的 rpm 回來安裝。如果您想輸入 startx 後進指定的 WM﹐您可以修改自己 home 目錄的 ~/.xinitrc 檔案(如果此檔案不存在的話﹐自行建立吧)。下面是這個檔案的範例﹕
但是﹐在 RedHat 系統上﹐還有一個更簡單辦法哦﹐您只要執行下面命令就可以切換 WM 了﹕
換句話說﹐您只要將 /etc/sysconfig/desktop 裡面的 KDE 換成 GNOME 或其它 WM 名稱﹐然後打 startx 就可以了﹗這是在使用者 home 目錄中沒有 .xinitrc 檔案時所有使用的預設值。也同時影響到後面提到的 Display Manager 的選擇。 嘿﹗還不趕快試試看您喜歡哪一個 WM ﹖ 不同的 WM 在工具安排和版面設置上都有很大差別。通常﹐像 KDE 和 Gnome 這些漂亮的界面﹐都非常吃記憶體﹐這當然會導致整體效能的損失。但如果您換成 WindowMaker 或是 Fvwm95 之類的﹐則會迅速得多。我建議您不妨多嘗試一些不同的 WM﹐然後找出最適合自己習慣和環境的版本來用。 到這裡﹐相信大家已經知道什麼是 X server 什麼是 X Client 了﹐也假設您已經選擇好自己喜歡的 Window Manager。當您進入 X Window 之後﹐其操作界面都差不多﹐用慣了 Windows 的朋友﹐應該不會難適應的。因為我個人很少用 X ﹐ 所以我這裡就不介紹 X Window 的具體設定了。 如果要結束 X Window﹐只要從左下方的按鍵開始選擇 Logout 就可以回到文字界面﹐也可以在任何時候按 Ctrl + Alt + Backspace 終止整個 X window 進程(這在 X 有問題的時候非常好用)。假如您已經在 X Window 裡面的話﹐您也可以隨時切換到文字界面去哦。因為 Linux 是真正的多人多工系統﹐在同一時間裡面﹐他允許您透過多個界面登陸系統。我們通常稱這樣的操作界面為 console。您只要按著 Ctrl + Alt + F# 就可以隨意切換您的 console ﹐其中的 F# 在 RedHat 上面通常是 F1 - F6 之間﹐而 F7 則保留給 X 顯示使用(唯一的)﹐它必須建立在 F1-F6 其中任何一個 console 上面。也就是說﹐在任何時候﹐您都可以在 F1 到 F6 之間切換 console﹐但同一時間內﹐只能從其中的一個 F# 進入 F7 。假如 F7 目前已經被其它 F# 聯係在一起﹐那您必須等當前的 X window 結束之後才能使用﹐先搶先贏就是了。 要從一個 console 進入 X window﹐直接輸入 startx 就可以了﹐然後當前的界面會自動切換到 F7 去。當您從 X window 退出的時候﹐則自動回到原來的 console 界面去。不過﹐在任何時候﹐您都可以按 Ctrl + Alt + F# 進行 console 切換啦。 再回到我們以前在第二章“開機與關機”裡面提到的 Run Level﹐您會知道 X window 其實是跑在 RunLevel 5 上面的﹐而 RunLevel 3 則是一般的 console 。您可以在 /etc/inittab 這個檔案裡面﹐修改下面的句子﹕
將 id: 後面的數字改為預設的 RunLevel﹐那麼在下次系統開機的時候﹐就自動進入您指定的界面中了。假如您設定為 5 ﹐那麼下次的登錄畫面則不是普通的文字 console﹐而會換成預設的 Display Manager 。 嗯﹖或許您會問﹕Display Manager 是什麼﹖簡單的說﹐就是管理 X client 的程式。不如﹐按下面的步驟來實作體驗一下吧。 確保您的預設 RunLevel 是 3 ﹐然後退出 X window 回到 console 中﹐也就是將 F7 釋放出來。然後輸入﹕
然後﹐您的所看到的就是 Display Manager 啦﹗基本上﹐DM 會詢問您的帳號和密碼﹐只有通過後才讓您進入 Window Manager。目前這個 xdm 就是這麼簡單﹐但如果您用其它 DM 的話﹐則會提供更多的選擇﹐例如﹐讓您選擇 X Server 、Window Manager﹐重新啟動 X server 、等等。 不過﹐如果您一旦啟動了 xdm﹐當您退出 X window 的時候﹐將不會切會文字界面﹐而是回到 xdm 的界面﹐就算您按 Ctrl+Alt+Backspace 也一樣﹗那您要怎麼擺脫可惡的 xdm 呢﹖不難啦﹐當您在 xdm 界面的時候﹐按 Ctrl+Alt+F# 切換到其它 console﹐然後輸入﹕
這樣就回到您啟動 xdm 的 console 了。現在﹐再請您輸入﹕
哦﹐這個比 xdm 漂亮多了﹗它是 KDE 提供的 DM 啦﹐檢查看看您有哪些功能可以使用﹖完成後再到其它 console 將 kdm 砍掉﹐然後再輸入﹕
或許﹐您已經猜到這個 DM 是 Gnome 提供的吧。沒錯﹗只是功能和選項和 kdm 有些分別而已。至於 RunLevel 5 的預設 DM﹐則取決於 /etc/sysconfig/desktop 所指定的 WM﹕如果是 KDE﹐那麼就是 kdm﹔如果是 GNOME﹐則是 gdm。 當我們認識了 Display Manager 之後﹐再讓我們看看 X 裡面的 Desktop 吧。 現在﹐先讓我們進入任何一個 Window Manager﹐比方說 KDE 好了﹐您會發現在底下的工具欄中間部份﹐分別有著 1、2、3、4 這四個圖標﹕
他們都是 X 裡面的 Desktop 號碼﹐預設上您是在第一個 Desktop 上面﹐所以數字 1 是反亮的。現在﹐請您按工具欄左邊第三個按鈕﹕
這樣會開出一個 terminal 視窗﹐也就在 KDE 裡面的 konsole。這時候請您按 Desktop 上的數字 3﹐您會發現剛纔開啟的 konsole 不見了﹗哈哈﹐事實上﹐並不是不見了﹐而是您跑到另外一個 Desktop 中的緣故。如果您再仔細的回去看 Desktop 1 的圖標﹐您會隱約看到剛纔打開的視窗位置﹕
當您再點回 Desktop 1 ﹐您就發現原來的 konsole 還在那裡啦~~~ ^_^ 如果您想將一個視窗顯示在所有的 Desktop 上面﹐您可以將視窗左上角的標題欄中第二個圖標按下﹐也就是那個長得像一個圖釘模樣的﹕。
然後﹐您再仔細看看底下工具欄中的 Desktop 圖標﹐這個視窗會出現在所有的號碼上﹔如果再按一些那個圖釘圖標將之復原﹐那麼視窗只顯示在原本的 Desktop 中。
嗯﹐如果您直接從 Microsoft 的 Windows Desktop 轉換過來﹐或許覺得這很新鮮吧﹗而事實上﹐令您更驚訝的還在後面呢﹗ 在這裡﹐我假設您的網路已經設定好了(假設 IP 為 192.168.100.23)﹐同時可以連線到同一網路的另外一台機器上(假設它的 IP 是 192.168.100.24)。如果您不知道如何設定網路﹐可以參考“Linux Servers”之第一章“網路設定”。當然﹐您也可以暫時到這裡結束這本章﹐等日後架設好自己的網路之後﹐才回來這裡繼續。 首先﹐我們進入另外那台機器上的 X window﹐開啟一個 konsole﹐然後執行﹕
完成後﹐回到您當前的機器上﹐執行﹕
您應該看到結果是“:0.0”﹐這是告訴您當前的顯示在本機的第一個 Display 的第一個 Screen 上面。事實上﹐我在前面已經提到過﹕X 系統是一個 network-based 的 client/server 結構。您所架設的 X server 可以服務網路上任何一台 X client﹐而在那些 client 上﹐您還可以設定多個 Display (不同的輸入設備)﹐之後還可以設定不同的 Screen (不同的熒幕)﹐而在 Screen 中也可以指定不同的 window (視窗)。這些設定都是可以改變﹐或另外指定的﹐比方說﹐您可以改變當前的 Display 設定﹕
這樣﹐您後面所執行的 X 程式﹐都將顯示在 192.168.100.24 那台主機的第一個 Display 的第一個 Screen 上面。現在﹐您可以執行﹕
再下來﹐將您眼睛移到 192.168.100.24 那台機器上﹐您會發現剛纔啟動的 konsole 竟然可以開在另外一台機器上﹗太神奇了吧﹖Jack﹗而且﹐您可以完全在那台機器上操作它哦~~ 如果您要將顯示改回本機端﹐那麼再執行如下命令就可以了﹕
不過﹐您還是可以用 -display 參數來指定視窗開在哪裡啦﹐大多數的 X 程式都支援這個參數﹕
接下來﹐讓我們再玩些更好玩的 X 設定。 先回到自己的機器上﹐退出 X window﹐並且備份好如下檔案﹕/etc/X11/gdm/gdm.conf ﹐然後編輯它﹐修改如下部份﹕
然後將 gdm 跑起來﹕
再來﹐將您的操作轉移到 192.168.100.24 那台機器上﹐然後退出 X window﹐但保持著 "xhost +" 的狀態。然後執行﹕
請問您發現什麼﹖如果一切順利﹐您是在 192.168.100.24 這個 X client 連上了 192.168.100.23 的 X server﹗這情形就像 telnet 一樣﹕您的熒幕、鍵盤、滑鼠在 client 這邊﹐然而您所登錄的系統卻在 server 那邊。呵呵~~~ 這樣玩法﹐甚至可以跨平臺的﹐也就是說﹐如果您設定得宜﹐甚至可以在 Microsfot Windows 上面跑 X client ﹗如果您有興趣﹐可以抓 x-win 這個程式回來安裝(到網路上找 x-win511.exe )﹐以及 dm_x511a.zip 這支 patch 回來一起安裝在 Windows 的機器上﹐那就可以讓您連進 Linux 的 X Server 上了﹕ ![]() 更甚者﹐如果您架設有 Microsoft 的 Terminal Server﹐也同樣可以在 Linux 上面跑 Terminal Server 的 Client 哦﹗嗯﹐具體的設定我就不知道了﹐但可以告訴您我的確看過成功的例子。或者﹐您可以到網路上搜索一下 VNC 和 RDP 的文件。 怎樣﹖X 系統是否很引人入勝呢﹗呵﹐還不止這些啦~~~ 下面﹐再介紹一個好玩的東西﹕xmx 。 或許﹐您在電腦補習班上面都接觸過教學廣播系統吧﹐那些通常都是用硬體來實現的。假如您用 Linux 教學的話﹐只要網路接通了﹐用 X 就可以進行廣播教學而無須任何額外的硬體設備哦﹗有興趣嗎﹖您先到這個網站看看吧﹕http://www.cs.brown.edu/software/xmx/ 假如您有興趣﹐不妨參考如下步驟來玩玩看﹕
有經驗的朋友應該不難看出我前面這些步驟錯漏百出﹐而且效果上也不盡完美﹐例如不能全熒幕顯示、不能在當前的 window manager 中執行、等等。不過﹐礙於能力所限﹐僅提供這些經驗給大家參考。希望能起到拋磚引玉的效果﹐等真正的 X 高手幫忙改良吧。 嘿﹐別誤會哦﹗我這裡可不是要教您如何為系統進行中文化﹐而是簡單的讓您能用 netscape 瀏覽中文網頁而已。 中文化一直是項非常龐大的工程﹐您有興趣的話﹐到 CLE 的網站 逛逛。現在﹐您只需 點這裡 將需要的檔案抓回去﹐然後按如下步驟安裝﹕
沒錯﹗就這麼簡單 ^_^ ![]() 到這裡﹐您或許會問我﹕上面那些 X window 的圖片是怎麼抓下來的啊﹖ 好吧﹐好人做到底﹐下面就教您一個在 X window 裡面抓圖的法門﹕ 1) 以 root 身份修改 script (我暫時取名為 grapic)﹕
2) 將 script 存於 /usr/bin 裡面﹐並加上執行權限﹕
3) 回到普通用戶身份並進入 X window﹐(我這裡用 KDE2)﹐然後開一個 terminal﹐並輸入 grapic ﹐選擇一個視窗(可以是 termial 自己)﹐確定沒有任何錯誤信息﹐並能在 ~pics/ 目錄裡找到抓下來的圖檔。 4) 然後在 desktop 上按右鍵﹐並選擇﹕'Create New' --> 'Link To Application ...' 5) 在 'General' 裡面﹐將程式名稱改為 grapic﹐同時為自己選一個喜歡的 icon。 6) 在 'Execute' 裡面的 'Command' 欄位填上﹕ /usr/bin/grapic 。 7) 按 OK 完成(不必修改其它)。 8) 將 Desktop 上面的 grapic 圖標擺好﹐點選它就能使用了﹗ 9) 如果要抓最大視窗(或任何當前視窗)﹐那可以按 KDE 工具列的最左邊的“OK”開始﹐然後選擇 'Run Command...' ﹐ 輸入 grapic 即可。 這樣﹐您只要用 X window 裡面的 Gimp 就可以打開 ~/pics 裡面的圖檔進行編輯了。不過﹐我發現用上面方法抓到的視窗﹐會沒有邊框﹐抱歉﹐我不知道為什麼。假如您已經習慣使用 Gimp 的話﹐其實它本身就具備 Screen Shot 功能讓您抓取 X window 或整個 Desktop 的畫面﹐您點選 File 然後 Acquire 就可以找到。 如果您用 KDE 的話﹐它本身也帶有一隻抓圖程式 KSnapshot ﹐您可以從 Start --> Graphics 找到它。不過﹐最方便還是幫它建立一個快捷鍵﹐步驟如下﹕ 日後﹐當您要抓當前視窗的時候﹐只要按著 Alt + PrintScreen 兩個鍵﹐就會彈出 KSnapshot 的視窗﹐然後按一下 Grab 按鈕﹐再點選當前視窗就可以抓下來﹐然後輸入路徑﹐並按 Save 按鈕就能將圖片以 png 格式存取起來了。非常方便哦﹗ ![]() 至於其它的 X 工具非常多﹐留給您自己慢慢發掘吧﹗
www.study-area.org © 2001 Netman 網中人Last Updated: November 03, 2001 |