在Mandrake 9.2上安裝DRBL
在國家電腦中心蕭志榥先生(Steven)的協助住下,我終於成功地在Mandrake
9.2上安裝DRBL,Steven囑咐我要把這個過程寫下來,提供給其他有心安裝DRBL在Mandrake上的朋友參考,拖了很久之後,我終於把它完成了,希望對有心嘗試DRBL的朋友有所助益。如果你還有所疑問或想要給指正的話,也請你mail給我 (supau@ilc.edu.tw),大家相助切磋一下。最後還是要謝謝國家電腦高速中心,沒有你們的協助,我是無法跨入這個領域的。請注意本文件沒有任何擔保,若因本文件而產生任何直接或間接的損失,本文作者不負任何法律及道義上的責任。
宜蘭縣.三民國小.詹勝凱
該 做 的 功 課: Penguinzilla
for RedHat/Fedora/Mandrake
,
特別是這份文件:Penguinzilla
for Redhat (包含8.0,
9, FC1)以及Mandrake
(9.2, 10.0) ,
我使用的是「四步安裝法」 。
取得相關程式:
wget http://drbl.nchc.org.tw/redhat/desktop/download/stable/drbl-setup-current.i386.rpm
一般來說,你是不需要安裝drbl的kernel-source,但是因為我要在系統上跑nVidia的驅動程式,所以我需要安裝drbl的kernel-source。
wget http://download.nvidia.com/XFree86/Linux-x86/1.0-5336/NVIDIA-Linux-x86-1.0-5336-pkg1.run
Server端:
1. 安裝 Mandrake 9.2 作業系統
2. # rpm -ivh drbl-setup-current.i386.rpm
安裝 drbl 程式。
3. # /opt/drbl/setup/drblsrv-mdk -i
這裡有份供你參考的執行過程。
4. # uname -r
你可能看到這樣的回應「2.4.22-10mdk」,這表示要做為server的這台電腦,「這次」開機所使用的的核心(kernel)是「2.4.22-10mdk」。但是我們需要drbl的核心,所以我們需要重新開機,使用drbl的核心。
最簡單的方法,是你在開機選單中,選用drbl的核心開機,而非預設的Mandrake核心。但是這不是長久之計,因為只要server每次開機,你都得乖乖的坐在電腦前,手動選kernel,這實在也累人。
一勞永逸的方法,是執行drakconf,在開機的地方去設定,使drbl-kernel成為預設開機的核心。
選「2422-28drbl」作為預設開機核心,「*」是預設開機的意思。
5. # root
重新開機。
6. # rpm -qa | grep kernel-source
進一步的來看看,系統中我們到底安裝了哪些kernel-source。下上一行指令,你可能得到這樣的回應「kernel-source-2.4.22-10mdk」,這表示系統中僅有Mandrake的kernel-source,沒有drbl的kernel-source,但是因為我們要安裝nVidia的驅動程式,所以需要drbl的kernel-source。
7. # rpm -ivh kernel-source-2.4.22-28drbl.i586.rpm
安裝drbl的kernel-source。
8. # init 3
進入文字模式(安裝nVidia的驅動程式,需要在文字模式中完成)。
9. # chmod 777 NVIDIA-Linux-x86-1.0-5336-pkg1.run
# ./NVIDIA-Linux-x86-1.0-5336-pkg1.run
安裝時,你應該會看到下列的抓圖,並依序執行。
8. # vi /etc/X11/XF86Config-4
修改 /etc/X11/XF86Config-4 ,把其中「nv」改成「nvidia」。
9. # reboot
10. # /opt/drbl/setup/drblpush -i
在server上建置client的檔案系統。這也有份參考的操作過程。
其中做到這個步驟時,就需把client端的電腦接上switch,並打開電源,讓server抓取client網卡的MAC
address。
******************************************************
現在我們可以收集用戶端電腦網卡卡號(MAC Adrees)! 這步驟可以讓您的DRBL環境為用戶端電腦配置固定IP, 如果您沒有用戶端網卡卡號的紀錄檔時,你現在就應該做! 用戶端電腦的網卡卡號(MAC Adrees)將會依照您用戶端電腦開機的順序依序被紀錄下來. 請先將用戶端的電腦設定為由網路開機(etherboot或是PXE), 並依照您想要排列的順序開機! 你是否要收集用戶端的網卡卡號("yes"或是"y" 開始收集, 其他字母略去此步驟)? [y/N] y ******************************************************
10. # vi /etc/inittab
建議server開機進入文字模式,而非圖形介面,這樣一來,至少可以減少server的記憶體使用。一般說來,開完機只用到不到64MB的記憶體。
把「id:5:initdefault:」,改成「id:3:initdefault:」。「5」是圖形介面,「3」是文字模式。
11. # vi /etc/rc.d/rc.local
另外,如果把硬碟的DMA打開,那將可大幅提昇硬碟的讀取速率。在下圖,可以看到未開啟DMA前,硬碟的讀取速度是「7.38 MB/sec」,開啟之後則達到「55.33 MB/sec」,相差到7.5倍,所以建議開啟。
方法是在 /etc/rc.d/rc.local 最後面加上一行 /sbin/hdparm -d1 -c3 -m16 /dev/hda 這樣每次開機後,硬碟的 DMA 就會開啟,不必每次手動設定。 如果您的硬碟機支援 ATA33 可以加上 -X66 這個參數,ATA66則是 -X68,像我的硬碟是 ATA66 那麼完整參數就是 /sbin/hdparm -d1 -X68 -c3 -m16 /dev/hda 。
10及11步驟,並不一定要作,只是作了之後,可以大幅提高系統的效率。
client端:
進入client端的電腦
12. # vi /etc/X11/XF86Config-4
過法同「步驟8」,只是步驟8是在server端作,步驟12是在client端作。
13. # vi /etc/modules.conf
把「alias char-major-195 nvidia」加入 /etc/modules.conf 中。
14. # reboot
重新開機,client端就可以使用,nVidia的驅動程式了。
15. # vi /etc/rc.local
另外client端的光碟機在讀取音樂光碟與VCD都有問題,這時我們需做一點處理。在client那台的/etc/rc.local最後面加上「cd /dev/; ln -fs hdc cdrom」這行。
或者是在client那台機器 # cd /dev # ln -fs hdc cdrom
如果你的音效出不來的話,你可能需要做面的16.、17.步驟。
16. # cp -rf /etc/modules.conf /root 把 /etc/modules.conf 這個檔案備份到 /root 。
這時你在 cat /etc/modules.conf ,可能可以看到下面的回應。
-----------------------------------------
alias char-major-195 nvidia
probeall usb-interface usb-uhci ehci-hcd
-----------------------------------------
因為在執行 alsaconf 時,會清掉 /etc/modules.conf 裡的設定,所以我們需要先把原先 /etc/modules.conf 的設定行備份起來。
17. # alsaconf
你可能可以看到這樣的圖。
17. # vi /etc/modules.conf
把原先在執行 alsaconf 前,在 /etc/modules.conf 看到的部份,加入 /etc/modules.conf 中。
編輯 /etc/modules.conf 後,可能看到的情況,例如:
這時你在 cat /etc/modules.conf ,可能可以看到下面的回應
------------------------------------------------------------------------
# --- BEGIN: Generated by ALSACONF, do not edit. ---
# --- ALSACONF verion 0.9.0 ---
alias char-major-116 snd
alias snd-card-0 snd-intel8x0
alias char-major-14 soundcore
alias sound-slot-0 snd-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
options snd major=116 cards_limit=1
options snd-intel8x0 index=0
# --- END: Generated by ALSACONF, do not edit. ---
alias char-major-195 nvidia
probeall usb-interface usb-uhci ehci-hcd
-----------------------------------------------------------------------
P.S.下面是一些我跟Steven通的mail中,我覺得值得參考的說明:
client的所有設定都是在server的/tftpboot/nodes/192.168.x.x下,以IP來分。其中有etc這個目錄就是。
您可以在執行drblsrv-mdk.sh的時候,問到你 請選取升級套件時欲使用的 apt 伺服器. [0/1/2/3/4/5] 0 -> opensource.nchc.org.tw. (預設) 1 -> drbl.sourceforge.net(僅 DRBL 套件) 及 ayo.freshrpms.net(其餘套件), 2 -> ayo.freshrpms.net 及 opensource.nchc.org.tw. 3 -> 硬碟、光碟或網路檔案系統(NFS)裡的目錄(須包含安裝 DRBL 所需套件) 4 -> 本機的 apt 伺服器(須包含安裝 DRBL 所需套件). 5 -> 手動輸入 apt 伺服器的網址與路徑.
我有非常多台學生的電腦要設定X-window,請問如何快速設定?
我的client有一些硬體在原來的RedHat/Mandrake中並沒有支援,但是可以找到driver,例如NVidia的顯示卡,請問如何讓client端使用?
我在server上新安裝的程式後,要如何讓每台學生的電腦都可以有這個新的程式?
我的電腦不是很慢,可是裝了Penguinzilla之後,開機到"Starting NFS services:"之後就停在那裡很久,不知道為什麼?
我的學生電腦使用USB的滑鼠或是鍵盤,在第一次開機的時候,滑鼠或是鍵盤都不會動.