整理了一下Linux內核編譯的方法,原始內核版本爲Linux-2.4.20.8,新內核版本爲Linux-2.4.22,其它內核版本編譯方法類似。 一 準備工作 首先當然是獲得內核了,可以到[url]http://www.kernel.org/[/url]下載。 獲得內核壓縮包後(假設爲linux-2.4.22.tar.gz),先將其複製到/usr/src目錄下,然後轉到/usr/src目錄並進行解壓操作,命令如下(假設當前目錄爲內核包所在目錄) cp linux-2.4.22.tar.gz /usr/src cd /usr/src tar -zxvf linux-2.4.22.tar.gz 二 生成編譯所需要的配置文件 首先進入解壓後的內核文件,命令如下 cd /usr/src/linux-2.4.22 然後輸入make menuconfig,可以調出內核配置界面,在該界面上可以以圖形的方式生成編譯內核所需要的配置文件,非常方便! 下圖是它的主界面 一般選擇默認值即可,即按Esc鍵退出,選擇yes保存設置,如下圖所示: 到此,所有準備工作完畢,下面進入實際編譯階段了。 三 開始編譯 主要包括以下幾步操作。 1.輸入make dep,這行命令的意思是讓系統對內核代碼進行預處理。 2.輸入make bzlmage後開始編譯,可能需要比較長的時間完成該過程,視具體機器性能而定。 3.輸入make modules開始編譯模塊 4.輸入make modules_install開始安裝模塊 5.輸入make install將編譯好的內核進行安裝。 一般來說,以上過程不會遇到什麼異常情況 四.編譯完成 編譯完成後的內核是這個文件 /usr/src/linux-2.4.22/arch/i386/boot/bzlmage 如下所示: 五.修改啓動程序配置以及新內核的啓動 編譯完成後可以進入引導程序(boot loader)的配置文件看看,對於不同的引導程序(LILO和GRUB),其配置文件所在路徑不同。 對於LILO,路徑爲:/etc/lilo.conf 對於GRUB,路徑爲:/boot/grub/menu.lst 本系統爲GRUB引導,因此進入/boot/grub/menu.lst,命令如下 cd /boot/grub vi menu.lst 文件內容如下圖所示: 可見,boot loader已經可以加載兩種版本的內核了,在該文件中可以很容易修改一些信息,如默認加載的內核版本,引導程序停留時間,修改內核在引導界面的名稱等等。 重新啓動機器,可以看到,此時在引導界面可以有兩種版本的內核進行選擇了,如下圖所示。 我們選擇linux-2.4.22,也就是剛剛編譯好的內核,正常進入後可以通過/proc/version文件以確定當前啓動的內核版本確實爲2.4.22,命令如下 cd /proc vi version version文件內容如下: 可見,內核編譯成功! 注: 初次練習時,可以在虛擬機上進行,如VMware (推薦)或者virtual PC, 以免造成系統崩潰。 出自 51CTO.COM博客 |
linux 編譯內核
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.