第一步:下載內核源碼:
wgethttp://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.gz
然後解壓進入到解壓後的目錄
# tar -zxvf linux-2.6.29.tar.gz
# cd /usr/src/linux-2.6.29
第二步:開始編譯
清理以前的編譯痕跡如果內核源碼是剛解壓縮出來的,可以跳過這一步,否則執行以下兩條命令:
1
2
make mrproper
make clean
設置內核編譯選項命令如下:
1
2
cp /boot/config-xx.xx.xx. .config
make menuconfig
執行該命令需要ncurses庫,如果執行出錯則執行如下命令安裝ncurses:
1
yum install ncurses-devel
編譯內核壓縮鏡像1
make bzImage
編譯會生成bzImage文件,對應於/boot目錄下的vmlinuz文件,是壓縮過的內核文件。啟動加載時將該文件解壓縮到內存中之後才能執行操作系統。
編譯內核模塊1
make modules
內核在運行過程中,除需要內核文件之外,還需要加載一些外圍模塊(例如驅動程序)等才能運行。
安裝內核模塊1
make modules_install
安裝上一步中編譯的內核模塊,一般都會安裝到/lib/modules目錄下。
安裝內核1
make install
這句命令很簡單,它會在/boot目錄下生成vmlinux/System.map兩個文件,並且在/boot/grub目錄中生成menu.lst文件。有關menu.lst文件的修改方法請Google一下。
注:要是遇到找不到內核模塊的錯誤,執行以下兩個命令
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.29.1cp System.map /boot/System.map-2.6.29.1
啟動新的內核修改/boot/grub/menu.lst文件,將新生成的默認啟動項修改為剛生成的啟動項,重啟即可:
1
reboot