操作環境:RHEL 5.1
一、准備工作
1、獲取內核 http://www.kernel.org/
2、解壓縮內核文件,進入解壓後內核源代碼目錄,切換至root用戶
tar -xzvf linux-2.6.39.4.tar.bz2
cd /mnt/hgfs/linux-2.6.39.4
su root
二、內核編譯
3、內核清理:清理源代碼中的*.o等生成文件,獲得純淨的內核。 直接官網上下載的代碼可免去該步驟。
make distclean
4、內核配置
拷貝當前運行內核的配置文件:cp /boot/config-2.6.18-53.el5 ./.config
運行配置,make menuconfig ARCH=x86
按需配置後保存退出,配置選項參考網上資源。
【注1】默認各種架構的配置文件在arch/[cpu]/configs文件夾下;運行時終端要保證窗口足夠大能容納menu界面
【注2】關於make menuconfig 選項中“*”“M”“ ”3個符號的含義:
“*”—— a.c->a.o->生成uImage 包含編譯和鏈接過程。最後生成內核文件
“M”—— b.c->a.o 只包含編譯過程
“ ”—— d.c->不變化
5、內核編譯:只編譯配置時選擇為“*”的選項
make zImage (<512K)
make bzImage (>512K)
編譯好的內核位於arch/<cpu>/boot/目錄下
6、內核模塊編譯:編譯配置時選擇“M”的選項
make modules
7、安裝內核模塊
make modules_install
將編譯好的內核模塊拷貝到系統/lib/modules下
8、制作init ramdisk
mkinitrd initrd-$version $version
initrd-$version表示制作的init ramdisk的名稱,制作完後保存在內核根目錄。
其中$version通過查詢/lib/modules獲得,表示內核版本號,此處為2.6.39.4。