編譯核新的方法及步驟 還有我已解決得已知問題 - Linux

Margaret avatar
By Margaret
at 2009-06-27T01:43

Table of Contents

編譯的時候 本來是輸入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

Tags: Linux

All Comments

Connor avatar
By Connor
at 2009-06-27T03:28
四核心 可以透過 make -j4 這樣來使用多核心
Delia avatar
By Delia
at 2009-06-29T09:21
雙核心用make -j2 這樣可以加速編譯速度
Carol avatar
By Carol
at 2009-07-01T09:43
你好 是在哪裡加入?
Michael avatar
By Michael
at 2009-07-04T08:42
編譯的時候 本來是輸入make 改成用make -jn(n為核心數)
Zora avatar
By Zora
at 2009-07-06T16:57
用 make -j(核心數*2) 會更快
Charlotte avatar
By Charlotte
at 2009-07-08T03:48
這樣會用問題嗎?
Poppy avatar
By Poppy
at 2009-07-11T09:04
我也有更新2.6.30, 但是在建立initrd時我的指令為..

怎樣知道目前執行哪些程式

Daniel avatar
By Daniel
at 2009-06-26T22:08
目有一台webserver,好像中毒或被值入木馬 ,用tcpdump看封包,早上到下午會一直連線 到一個ip,封包傳輸量很大,導致hub上其他 電腦都不能上網,可是到晚上又正常 有沒有什麼方法可以查出目前是在執行哪個 程式或shell script 試過service --s ...

SSH遠端登入

Belly avatar
By Belly
at 2009-06-26T22:04
請問高手大大 小弟實驗室裡目前架了一個linux系統的工作站 遠端是架ssh伺服器 整個流程都是照書本一步一步做 因為不是很了解 所以只能這樣做 目前有個問題是 我們在自己的電腦(windows系統)用pietty遠端登入時 只有自己電腦是固定ip才連的上 浮動ip的就沒辦法遠端連進去 請問高手大 ...

opensuse 台灣社群

Callum avatar
By Callum
at 2009-06-26T20:10
OpenSuse台灣社群正式啟動 (1)opensuse-tw社群頻道建立 #opensuse-tw channel at Freenode 參考 http://zh_tw.opensuse.org/社群/IRC 您可以裝一個 xchat或任何irc用戶端軟 ...

kgdb的安裝與建立

Megan avatar
By Megan
at 2009-06-26T19:26
因為作業關係,要用到kgdb這個工具 但是因為對於Linux不是很了解,參照了以下網址的方法 http://kgdb.linsyssoft.com/downloads/kgdb-2/kgdbquickstart-2.4.pdf 在第1步驟的第5點 patch -p1 andlt; ${BASE_DIR ...

mail relay問題

Lauren avatar
By Lauren
at 2009-06-26T17:18
這是主機140.128.181.9 目前已經因為疑似relay而關閉網路 找了log檔並與對方寄來的log檔比對後 列出兩個(當然不只兩個)類似情況來請教大家 例子一 This is an email abuse report for an email message with the messag ...