當你覺得所有必要的功能被添加或按需做成模塊後,可以試著運行如下指令:
#make dev;make clean;make zlmage;
若系統最後提示新的內核存在於/usr/src/Linux/arch/i386/boot中則表示編譯內核成功
若是提示“內核太大了”等內容時,可以接著鍵入
#make bzlmage 以生成一個壓縮的核,通常這樣做就行了。
隨後就是安裝模組了
make modules
make modules_install
#depmod -a (為模塊建立正確的依賴關系 )
通過察看/etc/lilo.conf 來知道你的Linux用哪個目錄的那個文件作為image目錄。
例如: image = /boot/vmlinuz
將 /usr/src/linux/System.map 復制到 /boot 目錄中。
將 /usr/src/linux/arch/i386/boot/zImage(或bzImage)新核心制到 /boot 目錄中,
執行Lilo後以新核心重啟你的計算機。
技巧提示:保留舊的核心
你在未能證實新核心可以穩定運行之前保留舊的核心是個好主意。推薦的做法是:
在解壓新核心之前將/usr/src下的linux 更名。(如改為linux.old),然後創建一新空目錄,
如linux2.2.14
然後用ln -s linux2.2.14 linux為其創建一個linux的符號鏈接。
之後再解壓原始代碼包,這樣做的好處是在你以後的核心更新中,只要簡單地更新符號鏈接就可以了,並且永遠是有效的/usr/src/linux目錄名。
在將新核心復制到/boot之前為其取一個代表性的可記憶的新核心名,如取成vmlinuz.ppp.2.2.14
然後編輯 /etc/lilo.conf,修改後的 lilo.conf 如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt timeout=50
default=linux
image=/boot/vmlinuz
label=linux
root=/dev/hda1 read-only
image=/boot/vmlinuz-2.2.14
label=linux214
root=/dev/hda1 read-only
other=/dev/hda2
label=dos
table=/dev/hda
別忘了執行#lilo ,然後系統提示以下信息:
Added linux * Added linux214 Added dos
#reboot
當執行lilo命令時,系統將加入另一個新的可引導的核心,若你在系統引導(即出現lilo時)忘了新核心的名字,可以用按tab鍵來顯示所有可啟動的項,由Label定義.
ok,現在你就已經多了一種選擇了,這樣當新核心不能引導或不正常時可以隨時用舊核心。
推薦您使用英文原版的Rad Hat6.2發行套件,因為用它來敲敲打打我的核心很是得力。但相對來說,那些標榜xx核心漢化技術,世界第一的所謂中文linux套件,在重編譯核心時都會或多或少的遇上麻煩。對於它們,我只取其可取之處,如獨立的中文處理包。
(關於核心的更多信息可以參見第6節中的相關文檔)
安裝、配置和啟動pppd軟件包
通常現行的linux發行版中都包含了pppd軟件包,如果你沒有這些包或你想用另一類的pppd工具包,推薦你下載和使用mgetty軟件包,該軟件支持數據和傳真功能。而Linux自帶的getty不支持傳真功能。它可以在freesoft.cei.gov.cn 上取得,現以mgetty為例,作具體說明。
注意:對於不同的PPP軟件包,其具體配置存在著一些差異,通常的做法是,查看相應的手冊頁或Readme文檔。
驗證mgetty軟件包:
如果你在相應目錄下找不到文件如/sbin/mgetty, /etc/mgetty+sendfax/login.config,則你需要安裝 mgetty RPM包。
配置mgetty軟件包:
現假設你用COM1與COM2來接收外來的拔號,其上各外掛一只Acer 56 Surf Modem。對Modem的配置可以參見“小資料:LINUX下如何配置MODEM”。同樣假設現已將其設為自動駁接外線呼叫。
1、在/etc/inittab文件中加入以下二行:
s0:345:respawn:/sbin/mgetty -a -m "" ATS0=1 OK -D -x 3 ttyS0 vt100
s1:345:respawn:/sbin/mgetty -a -m "" ATS0=1 OK -D -x 3 ttyS1 vt100
參數說明:
id:runlevel:action:/sbin/mgetty [options] line [speed [term [lined]]] .
上句中各種參數以‘:'來分隔。各參數的具體意義為:
345:指明它是在哪一個runlevel下調用該行,一般23足夠了,也可以寫成2345.
runlevel 2 : 不帶NFS支持的多用戶模式
runlevel 3 : 普通的多用戶模式
選項 -a: 波特率自動適配.
-m: 傳送給串口設備/dev/ttyS0的初始化字符串,這裡的是AT命令,設置modem在震鈴一次後,接通. mgetty等待設備/dev/ttyS0返回的OK字符串,進入下一步處理.
ttyS0: linux中對串口定義的設備文件名:/dev/ttyS0 對應COM1; /dev/ttyS1 對應COM2;
vt100設置終端的類型
然後,運行 /sbin/init q 讓改動生效。
2、配置mgetty的配置文件:
在/etc/mgetty+sendfax/login.config文件中,去掉含有AutoPPP的一行的行頭的注釋. /AutoPPP/ - a_ppp /etc/ppp/ppplogin
其中: /AutoPPP/是登錄與/dev/ttyS0相連的mgetty生成終端的用戶的終端名, a_ppp 是基於/dev/ttyS0的物理連接上的PPP連接的連接名.
3、修改/etc/ppp/ppplogin 文件:
/etc/ppp/ppplogin 是登錄以後自動運行的腳本(script)文件,例如:
#!/bin/sh
if [-f /etc/ppp/options.$TTY];
then exec /usr/sbin/pppd
else
exec /usr/sbin/ppd -detach
fi
或者只需簡單的添加以下的行到/etc/ppp/ppplogin中:
#!/bin/sh
/usr/sbin/pppd auth -chap +pap login
注:參數login表示用/etc/passwd中的用戶名和密碼進行PAP認證.
而如果你不需要在撥入後做用戶名和密碼驗證,只要去掉參數auth即可。
然後保存文件,且給它執行權限 :
chmod +x /etc/ppp/ppplogin
4、現在改動/etc/ppp/options 文件,象下面:
-detach
modem
lock
crtscts
asyncmap 0
netmask 255.255.255.0
proxyarp
mtu 296
mru 296
ms-dns 192.168.10.25
注:192.168.10.25 是我的LAN上的一台DNS服務器,192.168是通常的LAN設置,至於采用10.25而非0.1則是因為10.25是我的生日,這樣對我來說好記些且有自已的個性標志。如你沒有可不設,你可以給撥入用戶自動分配DNS。
附注:mtu/mru 兩行設定建立PPP連接後,傳輸的包的尺寸,這裡用296(256+40),也可以設為552(512+40),40代表空的沒有任何數據的包的大小,設為比較小的值是為了假如一個PPPD進程建立後要傳輸很大的文件,可降低每個包的尺寸,以防其它的進程速度變慢,盡管減少了傳輸的每個包的尺寸,但不影響總體傳輸的速度。你也可以不設這兩行。
5、創建另外兩個文件/etc/ppp/options.ttyS0 和 /etc/ppp/options.ttyS1
(後綴與相應的串口對應,為每一個串口定義不同的PPP連接參數):
剛開始可以在每個文件中各自加入以下的行, 其它的都注釋掉.等調試通過後,再根據需要加入相應的參數.
# more options.ttyS0
192.168.10.3:192.168.10.242
# more options.ttyS1
192.168.10.3:192.168.10.243
注:192.168.10.3是我這台Linux 服務器的IP地址,
而192.168.10.242和192.168.10.243是我指定給撥入用戶的兩個PPP地址。
現提供一個僅供參考的配置文件:
# more options.ttyS0
asyncmap 0 netmask 255.255.255.0 #Local IP : Remote IP 192.168.1.100:192.168.1.101 lock noauth crtscts modem -detach debug proxyarp
6、至於/etc/ppp/pap-secrets,你可以加入下面的行:
* * "" 192.168.10.242 * * "" 192.168.10.243
到此為止, 設置完成。
濺了這麼多的口沫,聽起來似乎很煩,其實在實際操作中,只要三下五除二,一下子就搞定了。
呵呵,祝你好運。
啟動pppd軟件包
只要您成功地安裝與設置了PPP包後,要啟動PPPD只要在任意時刻鍵入pppd就行了。我通常是在機器啟動時就啟動它。
現以TurboLinux中文版4.0為例做個簡單說明:
#turboservice
只要選中pppd一項,你就可以讓機器在下次啟動時自動運行pppd服務了。
對於RH及與其兼容的發行版本來說,這個命令就是使用setup,然後選用“系統服務”一項。
我不知道為什麼會使用不同的命令名! :-(
小結:
在mgetty中的一些重要的相關文件:
/sbin/mgetty
而192.168.10.242和192.168.10.243是我指定給撥入用戶的兩個PPP地址。
現提供一個僅供參考的配置文件:
# more options.ttyS0
asyncmap 0 netmask 255.255.255.0 #Local IP : Remote IP 192.168.1.100:192.168.1.101 lock noauth crtscts modem -detach debug proxyarp
6、至於/etc/ppp/pap-secrets,你可以加入下面的行:
* * "" 192.168.10.242 * * "" 192.168.10.243
到此為止, 設置完成。
濺了這麼多的口沫,聽起來似乎很煩,其實在實際操作中,只要三下五除二,一下子就搞定了。
呵呵,祝你好運。
啟動pppd軟件包
只要您成功地安裝與設置了PPP包後,要啟動PPPD只要在任意時刻鍵入pppd就行了。我通常是在機器啟動時就啟動它。
現以TurboLinux中文版4.0為例做個簡單說明:
#turboservice
只要選中pppd一項,你就可以讓機器在下次啟動時自動運行pppd服務了。
對於RH及與其兼容的發行版本來說,這個命令就是使用setup,然後選用“系統服務”一項。
我不知道為什麼會使用不同的命令名! :-(
小結:
在mgetty中的一些重要的相關文件:
/sbin/mgetty