Linux操作系統(tǒng)的內(nèi)核的編譯命令與更新
Linux操作系統(tǒng)的內(nèi)核編譯過程漫長:先做準(zhǔn)備工作、然后配置,才開始編譯。
編譯有關(guān)的命令有如下幾個(gè):
#make dep
#make clean
#make zImage
#make bzImage
#make modules
#make modules_install
#depmod -a
***個(gè)命令make dep實(shí)際上讀取配置過程生成的配置文件,來創(chuàng)建對(duì)應(yīng)于配置的依賴關(guān)系樹,從而決定哪些需要編譯而那些不需要;第二命令make clean完成刪除前面步驟留下的文件,以避免出現(xiàn)一些錯(cuò)誤;第三個(gè)命令make zImage和第四個(gè)命令make bzImage實(shí)現(xiàn)完全編譯內(nèi)核,二者生成的內(nèi)核都是使用gzip壓縮的,只要使用一個(gè)就夠了,它們的區(qū)別在于使用make bzImage可以生成大一點(diǎn)的內(nèi)核,比如在編譯2.4.0版本的內(nèi)核時(shí)如果使用make zImage命令,那么就會(huì)出現(xiàn)system too big的錯(cuò)誤提示。建議大家使用make bzImage命令。
后面三個(gè)命令只有在你進(jìn)行配置的過程中,在回答Enable loadable module support (CONFIG_MODULES)時(shí)選了"Yes"才是必要的,make modules和make modules_install分別生成相應(yīng)的模塊和把模塊拷貝到需要的目錄中。
嚴(yán)格說來,第七個(gè)命令和編譯過程并沒有關(guān)系,它是生成模塊間的依賴關(guān)系,這樣你啟動(dòng)新內(nèi)核之后,使用modprobe命令加載模塊時(shí)就能正確地定位模塊。
更新
經(jīng)過以上的步驟,我們終于得到了新版本的內(nèi)核。為了能夠使用新版本的內(nèi)核,我們還需要做一些改動(dòng):
#cp /usr/src/linux/System.map /boot/System.map-2.4.0test8
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.0test8
以上這兩個(gè)文件是我們剛才編譯時(shí)新生成的。下面修改/boot下的兩個(gè)鏈接System.map和vmlinuz,使其指向新內(nèi)核的文件:
#cd /boot;rm -f System.map vmlinuz
#ln -s vmlinuz-2.4.0test8 vmlinuz
#ln -s System.map-2.4.0test8 System.map
然后修改/etc/lilo.conf:
#vi /etc/lilo.conf
增加如下一段:
image=/boot/vmlinuz-2.4.0test8
label=linux240
read-only
root=/dev/hda2
其中root=/dev/hda2一行要根據(jù)需要自行加以修改。運(yùn)行:
#/sbin/lilo -v
確認(rèn)對(duì)/etc/lilo.conf的編輯無誤,現(xiàn)在重新啟動(dòng)系統(tǒng):
#shutdown -r now
在機(jī)器重啟后出現(xiàn)LILO時(shí)按TAB鍵,輸入linux240,我們的新內(nèi)核發(fā)揮作用了,好好享受吧
通過上文描述,大家知道了內(nèi)核編譯的麻煩、怎樣更新,希望對(duì)大家有幫助!
【編輯推薦】