1、下載內核源代碼
相關閱讀:Linux 內核 3.2.6 發布 http://www.linuxidc.com/Linux/2012-02/54248.htm
2、進入Linux內核源碼所在的目錄(cd Linux內核),解壓該內核代碼到/usr/src下:
sudo tar -xjvf linux-2.6.34.tar.bz2 -C /usr/src
3、進入Linux內核源碼解壓後的目錄/usr/src/linux-2.6.34(cd /usr/src/linux-2.6.34)
4、sudo make mrproper 淨化解壓後的源代碼,清除.config文件
5、sudo make menuconfig 對內核選項進行配置
cp /usr/src/linux-headers-2.6.32-21-generic/.config /usr/src/linux-2.6.34
接著cd /usr/src/linux-2.6.34進入內核所在目錄,再次輸入sudo make menuconfig就好了
6、對於配置可選擇General Setup或者選擇其他的自定義選項,注意主菜單最後有兩項:
load a kernel configuration…
save a kernel configuration…
先選第一項load ….,意思是,利用當前的內核配置詳單來設置將要編譯的內核,然後選save這一項保存,最後退出配置界面。
7、sudo make dep 建立模塊間的依賴信息
8、sudo make clean 刪除配置時留下的一些不用的文件
(7、8兩步可能對於一些PC沒有作用)
9、sudo make bzImage 編譯內核,內核較小時可以用make zImage
10、sudo make modules 編譯內核模塊
當然,在編譯內核時,可通過make-j<n>來加速內核的編譯,n一般等於CPU數量的兩倍。單核,n=2;雙核,n=4.即執行 sudo make -j4就可以編譯了!
11、sudo make modules_install 安裝內核模塊
12、sudo make install 安裝內核
13、cd / 後在終端輸入:sudo mkinitramfs 2.6.34 -o /boot/initrd.img-2.6.34-generic
14、到此為止,構建內核完畢,第十二步把內核映象和System.map拷貝到/boot/下
#sudo cp /usr/src/linux-2.6.34/arch/i386/boot/bzImage /boot/vmlinuz-2.6.34-generic
#sudo cp System.map /boot/System.map-KERNEL_VERSION
#sudo ln -s /boot/System.map-KERNEL_VERSION /boot/System.map
15、
(1)修改grub配置文件
在終端輸入:sudo update-grub2,就會把剛才編譯的內核加入了Grub;(此時就可以重啟了,重啟後在Grub啟動項裡多了Ubuntu, Linux 2.6.34-generic)
若還需修改(在Ubuntu10.04中沒有采用menu.lst,而是用的grub.cfg(/boot/grub/)),則修改 grub.cfg就可以了,
在終端中輸入:sudo gedit /boot/grub/grub.cfg 用root賬戶進入grub.cfg並編輯
(或用sudo chmod +w /boot/grub/grub.cfg改變grub.cfg的權限後在進行編輯)
如將Grub中的menuentry "Ubuntu, Linux 2.6.34-generic"{...}修改為menuentry "Ubuntu, Linux 2.6.34-liqiong"{...}(Linux 2.6.34-generic是我們剛才編譯的內核)
(2)修改default變量
在/boot/grub/grub.cfg中,設置set default="【某個數字】"(設置Grub啟動項裡的默認啟動項)
在Grub啟動項裡,從0數起,我的XP在第10項,所以set default="10",即XP就是默認的啟動項了。
最後重啟一切都OK了!