作者HiJimmy (兩支理性的木魚)
看板Linux
標題[分享] 編譯核新的方法及步驟 還有我已解決得已知問題
時間Sat Jun 27 01:43:06 2009
加速編譯的方法
編譯的時候 本來是輸入make 改成用make -jn(n為核心數)
OS:CentOS 5.3
下載linux-2.6.30.tar.bz2到/usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.bz2
# tar -jxvf linux-2.6.30.tar.bz2
# cd linux-2.6.30
# make mrproper
# make menuconfig
詳細設定可參考鳥哥的LINUX私房菜
# make clean
# make bzImage
# make modules
# make modules_install
# mkinitrd /boot/initrd_2.6.30.img 2.6.30
執行mkinitrd命令時
提示「No module dm-mem-cache found for kernel 2.6.30, aborting.」時
表明該版本的mkinitrd有bug。
解決方法
1.是當使用mkinitrd時,使用–without-dmraid 這個參數
2.是在使用mkinitrd之前,先創建一個noraid文件。創建方法如下:
# echo "DMRAID=no" > /etc/sysconfig/mkinitrd/noraid
# chmod 755 /etc/sysconfig/mkinitrd/noraid
然後再運行mkinitrd命令。
這裡我採用了第一種辦法
# mkinitrd /boot/initrd-2.6.30 2.6.30 --without-dmraid
執行完mkinitrd後,就要在啟動菜單中增加編譯好的內核信息
以便啟動時可以選擇內核版本。
# cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.30
# cp System.map /boot/System.map-2.6.30
# cp /usr/src/linux-2.6.30/System.map /boot/System.map-2.6.30
打開/boot/grub/grub.conf文件,增加以下內容到文件結尾。
# vi /boot/grub/grub.conf
按i進入編輯模式 新增
title CentOS (2.6.30)
root (hd0,0)
kernel /vmlinuz-2.6.30 ro root=LABEL=/
initrd /initrd-2.6.30
按esc離開編輯模式
輸入
:qw
保存,重啟,進行grub的啟動菜單中,選擇」CentOS(2.6.30)」,即可使用編譯好的內核。
=================以下本人尚未測試=============
如果你覺得make modules_install後面的步驟太麻煩的話,就直接用下面的命令讓系統幫你做好了
# make install
下面是運行時的提示信息:
sh /usr/src/linux-2.6.30/arch/x86/boot/install.sh 2.6.30 arch/x86/boot/bzImage System.map "/boot"
WARNING: No module dm-mem-cache found for kernel 2.6.27, continuing anyway
WARNING: No module dm-message found for kernel 2.6.27, continuing anyway
WARNING: No module dm-raid45 found for kernel 2.6.27, continuing anyway
這些只是提示,對系統沒有什麼影響,經本人查閱相關的資料。
可能是內核和mkinitrd的BUG,大家可以參考一下這篇文章
https://bugzilla.redhat.com/show_bug.cgi?id=488991
通過給內核打dm-raid45這個補丁,可以解決掉「WARNING: No module dm-raid45 found for kernel 2.6.29.4, continuing anyway」這個提示
http://people.redhat.com/~heinzm/sw/dm/dm-raid45/
至於其他的兩個沒有仍然找不到解決的辦法,希望大家知道的,給我留言!
謝謝!
======================================
參考資料:
http://www.linuxidc.com/Linux/2009-06/20448.htm
鳥哥私房菜
終於編完了
不過還是有些地方有問題.....
等我解決了再說吧
無線網路卡問題依舊存在
驅動程式真難搞
核心都重編了還是不行
http://wireless.kernel.org/en/users/Drivers/p54
都照網頁做了還是不行
我一定要成功= =
推 dreamroyc:四核心 可以透過 make -j4 這樣來使用多核心 06/27 01:54
→ dreamroyc:雙核心用make -j2 這樣可以加速編譯速度 06/27 01:55
→ HiJimmy:你好 是在哪裡加入? 06/27 01:56
推 dreamroyc:編譯的時候 本來是輸入make 改成用make -jn(n為核心數) 06/27 01:58
※ 編輯: HiJimmy 來自: 140.122.33.141 (06/27 02:19)
推 lisztbach:用 make -j(核心數*2) 會更快 06/28 10:45
→ HiJimmy:這樣會用問題嗎? 06/28 18:39
推 eleghost:我也有更新2.6.30, 但是在建立initrd時我的指令為.. 07/08 21:05