這兩天幫一同學折騰HIP,需要重新編譯內核。現在把編譯配置內核的過程記錄下來。
操作系統:Ubuntu 10.04
步驟:
1 下載所需的內核包,解壓到/usr/src/下;
2 cd到內核源碼根目錄下,運行make mrproper,清理上次編譯的結果文件以及配置文件;[可選]
3 進入到內核源碼根目錄下,運行make oldconfig,讓內核按常用配置生成;
- 這裡面還有其他一些選項,如defconfig,是默認配置
4 運行make menuconfig (需要ncurses軟件包),這是在菜單模式下進行內核配置,可以選擇將其編譯built-in(設置為*)或是內核模塊(設置為M);
- 還有其他的菜單配置,如xconfig
5 確認依賴性make dep; [可選]
6 編譯內核映像文件,make bzImage,這步大約耗時0.5~1小時;
7 編譯內核模塊,之前選擇為內核模塊的組件現在被編譯,執行make modules;
8 安裝內核模塊,執行make modules_install,這步就是把編譯好的內核模塊放到/lib/modules/內核版本號/下,以便於新內核啟動後加載對應的內核模塊;
9 建立要載入的內核映像文件,這步是把編好的內核放到/boot目錄下,執行mkinitramfs -o /boot/initrd-linux2.6.XX.img 2.6.XX;
10 安裝內核,執行make install,將內核相關的文件全部復制到/boot下;
11 最後一步,配置grub,使系統從新的內核引導。一般來說,這步因系統而異,在ubuntu10.04中需要修改/boot/grub/grub.cfg(以前的版本是修改menu.lst),語法規則很好懂,一看便知。
需要注意的是,有時候改完了未必加載成功,可能仍然需要把系統根目錄(即/)下的兩個軟鏈接vmlinuz和initrd.img一並修改為/boot下對應的新內核映像文件,才可以成功加載。