核心編譯 (kernel)
2024-07-21 02:36:02
供稿:網友
前言
其實應該在安裝完 linux 之后便開始編譯核心,因為每個人所需要的核心都并不相同!舉個例子來說,你安裝了一個很新的網路卡,但是你的核心并不支援這一種網路卡,那你只好下載比較新的核心來編譯,才能支援你的網路卡!另外, 由于太大的核心對于整體的執行效能會比較慢,所以適當的核心對于你的 Linux 系統之執行效率也是有幫助的!因此,一般的玩家通常在安裝完了 Linux 之后,便開始進行核心的重新編譯工作!
在 study-area 也曾提到:Linux的靈魂所在﹐其實就是其穩定的核心設計。我們可以將之看成是一個架于程式和硬體之間的界面操作系統﹐離開來核心﹐什么東西都用不了。而核心的編譯好壞﹐也會影響到系統的效能﹐甚至﹐一些系統功能(如 ip networking)﹐就必須要編進核心才行。
不過,由于核心的更新速度太快了,假如你一直執著于最新的核心編譯,那肯定會吃不消,所以通常我們的建議就是,除非你有新的需求,否則可以不用經常去更新核心的!
下載新核心
·核心的版本:
要如何知道你的核心版本呢?基本上,你在開機進入 Linux 的 login 畫面時, Redhat 應該就已經告訴你這個主機的核心版本了,不過,假如你要知道你的核心版本的話,可以輸入:
[root@tsai /root]# uname -r 2.2.12-20
上面顯示我們這個 Linux 核心是 2.2.12-20 這個版本。
好啦,那要選擇哪一個核心版本呢?目前你可以看到的核心版本主要有 2.2.X, 2.3.X 及 2.4.X,哪一個才適合你呢?我想,既然我們需要的是穩定版的 Linux ,那自然選擇越穩定的越好啰,那基本上,所有 2.2.X 及 2.4.X 的都是屬于穩定型的核心版本,至于 2.3.X 則是適合開發 Linux 軟體的核心!另外,2.4.X并不是比2.2.X還新的意思,基本上,所有 2.2.X 及 2.3.X 與 2.4.X 都是同時開發的核心,只是因為其支援的程度或者是一些功能方面不完全相同,所以才會分成這些版本!而目前我們所想要使用的應該是 2.2.X 這個版本的系列核心,截至目前為止,這一版的最新核心應該是 2.2.19 這一個,當然,你也可以下載其他的核心!
·核心下載地點:
Linux 核心的下載地點可以在底下的地點找到最新的,當然也可以在臺灣相關的 FTP 站找到你要的核心。
o
http://www.kernel.org/
o
交大資科
o
教育部
另外,你也可以在我這里下載 linux-2.2.19.tar.gz 這個核心版本。基本上,最好是在系統安裝完畢之后馬上就進行核心編譯工作,免得以后每次裝一些特定功能的時候又要花一大輪時間編譯。另外要說明的,由于小弟是以 2.2.18 這一版的核心來做升級的動作,所以以下是以 2.2.18 來做示范!
·核心解壓縮:
下載下來的核心大致上都是 *.tar.gz 這種壓縮檔,所以需要先解壓縮,另外,由于 redhat 預設的編譯核心的目錄是 /usr/src/linux ,所以你要將這個壓縮檔解至這個目錄。不過由于系統原本就有一個 linux 的連結檔在這里,所以你要先取消連結檔。現在假設你的 linux-2.2.18.tar.gz 放在 /root/ 底下,則你可以這樣做:
[root@tsai /root]# cd /usr/src/ [root@tsai src]# rm linux [root@tsai src]# tar -zxvf /root/linux-2.2.18.tar.gz [root@tsai src]# mv linux linux-2.2.18 [root@tsai src]# ln -s linux-2.2.18 linux
·則你的新核心資料放在 linux-2.2.18 這個目錄中,而 linux 則是連結至這個目錄的連結目錄!
開始設定核心的內容
編譯核心有許多方法,這里以視窗介面的方法來說明:
1.進入核心目錄: cd /usr/src/linux
2.開始設定畫面: make menUConfig
3.進入選擇項目:
進入選擇項目之后,你將會在視窗介面中看到很多的選項,請使用方向鍵、空白鍵與 enter 來進行選擇。以下開始你要慢慢的具體挑選,假如有任何問題的話,請具體的看一下每一個選項中的 Help 。另外,假如沒有需要的話,請盡量不要把核心邊的太大!否則效能是會降低的喔!此外,由于很多時候你不曉得需不需要選擇這個項目,那你可以將之編成模組( 的項目),模組是在開機載入時有被載入才可以執行的咚咚!所以并不會使效能方面有太大的問題!
oCode maturity level options:請選擇。這個項目主要在讓你可以接受一些測試的版本的套件。
o PRocessor type and features:請選擇進入,選你的 CPU 形式。
§ Processor family:例如鳥哥的 CPU 為 P-166 則我可以選擇 Pentium/K6/TSC/CyrixIII 這一項!
§ Math emulation:這一項請不要選擇,因為這是用軟體來模擬硬體的計算核心,因為我們的 CPU 都是 P-100 以后的,所以不用選這項!
§ Symmetric multi-processing support:這是是否支援雙CPU 的主機板的選項,你可以選擇也可以不選擇,但假如你使用雙CPU主機板,這個就一定要選擇。
§ 其他保持預設值即可。
o Loadable module support:請選擇,這是用來是否支援模組載入的。
§ Enable loadable module support:請選擇。
§ Set version information on all symbols for modules:不要選,因為我們可能會具有兩種以上的版本的核心,所以這一項不可選擇。
§ Kernel module loader:請選擇。
o General setup:
§ Networkking support:一定要選擇。
§ PCI support:請選擇。
§ Advanced Power management BIOS support:假如您的BIOS支持APM的話﹐請選擇。
§ Power off on shutdown:假如您選擇了上一個﹐也請選擇。
§ 其他,保留預設,或視實際情況設定。 例如我們實驗室的機器需要與 SGI 的機器聯系,所以就多選擇了 SGI Visual Workstation support 這一項。
o Plug and Play support:將之全部選擇。
o Block devices:里面放置了一些晶片組的選項,通常以預設值就可以了,不過,假如你的主機板是最近的版子,例如 VIA 的 82C586 晶片組,哪就必須進來選擇你的晶片組啦!
o Networking options:這是所有項目里面最重要的了,底下的選擇
§ Network firewalls﹐請選擇。
§ Socket Filtering﹐請選擇。
§ TCP/IP networking﹐請選擇。
§ IP: multicasting﹐請選擇。
§ IP: advanced router﹐請選擇。
§ IP: police routing﹐請選擇。
§ IP: verbose route monitoring﹐請選擇。
§ IP: firewalling﹐請選擇。
§ IP: use FWMARK value as routing key﹐請選擇。
§ IP: transparent proxy support﹐請選擇。
§ IP: masquerading﹐請選擇。
§ IP: ICMP masquerading﹐請選擇。
§ IP: masquerading special modules support﹐請選擇。
§ IP: ipautofw masq support﹐請選擇為 Module。
§ IP: ipportfw masq support﹐請選擇為 Module。
§ IP: ip fwmark masq-forwarding support﹐請選擇為 Module。
§ IP: optimize as router not host﹐請選擇。
§ IP: multicast routing﹐請選擇。
§ IP: aliasing support﹐請選擇。
§ IPX: Full internal IPX network﹐假如您的網路有Novell伺服器﹐請選擇。
§ IPX: SPX networking﹐假如您的網路有Novell伺服器﹐請選擇。
§ 其他﹐保留預設﹐或視實際情況設定。
o Telephony Support:保留預設值。
o SCSI support:除非你有 SCSI 的設備,否則可以選擇成為 M 的模組型態。
o Network device support:這個也是很重要的選項,與你的網路卡有關!
§ Dummy net driver support:非常建議選擇。
§ Ethernet (10 or 100Mbit):除非您使用其他的網路形態﹐否則這個一定要選擇。
§ 3 COM cards:除非您的網路卡是這個牌子的﹐否則不選擇。
§ Western Digital/SMC cards:除非您的網路卡是這個牌子的(或兼容)﹐否則不選擇。
§ RealTek 8912/8139 (not 8019/9029!) support:除非您的網路卡是這 8912或8139這兩個確切型號﹐否則不選擇﹐不過﹐也可以選“M”。
§ Other ISA cards:假如您有ISA網卡的話﹐可以選擇。
§ NE2000/NE1000 support:假如您不知道您的網路卡型號﹐這個可以試試選擇。
§ EISA, VLB, PCI and on board controllers:請選擇。
§ PCI NE2000 support:假如您用的是PCI網路卡﹐又不知道型號﹐這個可以試試選擇。
§ EtherEXPressPro/100 support:假如您有此類網卡﹐請選擇。
§ Pocket and protable adaptors:假如您使用PCMCIA網卡﹐可以試試選擇。
§ 基本上在這個選項當中,就是選你有的網路卡的形式就對了!
§ FDDI driver support:假如您沒用使用FDDI﹐請不要選擇。
§ Frame relay DLCI support:假如您沒用使用Frame relay﹐請不要選擇。
§ PPP (point-to-point) support:這個一定要選擇。
§ SLIP (serial line) support:假如您知道您ISP使用SLIP﹐可以選擇。
§ Token Ring driver support:假如您的網路不是這個形態﹐請不要選擇。
§ 至于其他﹐假如確定不使用的﹐就不要選擇﹐假如不確定﹐可以保留預設﹐或將之設成“M”。
o Amateur Radio support :有才選擇,通常不選。
o Ir