- 論壇徽章:
- 0
|
前段時間在學習自己編譯kernel,在網上找到一篇文章很不錯,轉貼過來也許對需要的人有點用處。
提要:在Kernel 2.6x和以前的版本的編譯方法有點區(qū)別,所以就簡單的把編譯過程寫出來,主要是幫助初學Linux的兄弟。
Kernle 2.6x 編譯比較簡單,最適合我等菜鳥!
本文是以Redhat為例,內版本是2.6.0-test8
一、下載
http://www.kernel.org
二、解壓
1.把下載好的內核放到/usr/src目錄中,比如我下載的是linux-2.6.0-test8.tar.bz2
#mv linux-2.6.0-test8.tar.bz2 /usr/src
#tar jxvf linux-2.6.0-test8.tar.bz2
2.進入相應的目錄編譯和安裝,進入內核選項設置
#cd linux-2.6.0-test8
#make mrproper
#make menuconfig
進入內核選項卡,M是以模快方式編譯,*是直接編入內核
至于哪些要編入內核,哪些要編譯成模塊。在文章管理器和基礎討論區(qū)的帖子中都有,自己試著找一找。另外內核中的doc也有相應的文檔
3.編譯和安裝內核
#make
#sudo make install
這個過程是編譯和安裝內核的過程,系統(tǒng)自動為我們做了哪些事?
1]系統(tǒng)會在/usr/src/linux/arch/i386/boot/目錄中產生bzImage,并把bzImage復制為vmlinuz-2.6.0-test8到/boot目錄中,并創(chuàng)建議vmlinuz-2.6.0-test8的鏈接vmlinuz;
2]在/boot目錄中,系統(tǒng)會產生System.map-2.6.0-test8,以及創(chuàng)建它的鏈接System.map;
3]在/boot目錄中,自動生為initrd-2.6.0-test8.img;
4]修改/etc/grub.conf 文件,加入了新內核的啟動項。
[注]經大熊寶寶兄的提示,怕初學的弟兄不明白這個過程,所以就把這個過程詳細的寫出來,所以我也做了補充。以上的四點都是系統(tǒng)自動安裝內核時所做的任務。查看一下/boot目錄中的文件以及/etc/grub.conf就明白了。這一點和以往2.4.x不一樣的地方。做個比喻就是2.4.x還是半自動的,上面的東西要執(zhí)行好多個命令,而在2.6.x中,一步就到位,是全自動的!
4.編譯和安裝?
#make modules
#make modules_install
5.設置/etc/grub.conf,我不用lilo,更確切的來說,我不太懂,所以只能說Grub的設置辦法。
為什么要設置這個呢?其實在編譯和安裝內核的過程中,系統(tǒng)已經自動把新內核的啟動項直接添加到了/etc/grub.conf中。當我們不對/etc/grub.conf進行改動,直接啟用新內核會發(fā)現VFS錯誤之類的提示。
下面的是我安裝后新內核后,沒有改動過的/etc/grub.conf
title Fedora Core (2.6.0-test
root (hd0,7)
kernel /boot/vmlinuz-2.6.0-test8 ro root=LABEL=/
initrd /boot/initrd-2.6.0-test8.img
title Fedora Core (2.4.22-1.2061.nptl)
lock
root (hd0,7)
kernel /boot/vmlinuz-2.4.22-1.2061.nptl ro root=LABEL=/
initrd /boot/initrd-2.4.22-1.2061.nptl.img
改動后的就是
title Fedora Core (2.6.0-test
root (hd0,7)
kernel /boot/vmlinuz-2.6.0-test8 ro root=/dev/hda8
initrd /boot/initrd-2.6.0-test8.img
title Fedora Core (2.4.22-1.2061.nptl)
lock
root (hd0,7)
kernel /boot/vmlinuz-2.4.22-1.2061.nptl ro root=LABEL=/
initrd /boot/initrd-2.4.22-1.2061.nptl.img
對比改動過的/etc/grub.conf,我們不難發(fā)現,我們在新內核2.x中,指定root的根分區(qū)所在的位置時,沒有用標簽LABEL=/,而是用的是真正的分區(qū)位置。
請對Linux不太熟的弟兄,不要照搬我的分區(qū)設置。如果想知道這方面的,在基礎討論區(qū)中,有關于GRUB和分區(qū)訪問的文章,在文章管理器中也有。
最后還有一點就是如果顯示卡原來安裝過驅動,就要在新內核中重新安裝。比如我用的是NVIDIA的顯卡,我下載的是LinuxSir.Org的下載區(qū)中,哈兄提供的打過補丁的NVIDIA的驅動。裝上就OK了。 |
|