1、檢視linux核心版本
# uname -a
二、配置工作
# cd /usr/src
# tar jvxf linux-2.6.24.tar.bz2
# ln -s linux-2.6.24 linux
6、安裝module-init-tools工具
在/usr/src目錄下,依次執行下列命令:
# tar jvxf module-init-tools-3.2.tar.bz2 (解壓module-init-tools)
# cd module-init-tools-3.2 (由/usr/src目錄進入module-init-tools目錄下)
#./configure --prefix=/
# make moveold
# make all install
#./generate-modprobe.conf /etc/modprobe.conf
8、配置核心選項。
三、編譯工作
ok,繁雜的配置工作完成了,至此,編譯前的準備工作都做好了!
9、開始編譯啦……
在/usr/src/linux-2.6.24目錄下,執行以下命令即可編譯。編譯需要一段時間,給自己倒杯茶耐心等候吧!
# make dep (建立編譯時所需的從屬檔案。注意:如果核心從未編譯過,此步可跳過)
# make clean (清除核心編譯的目標檔案。注意:如果核心從未編譯過,此步可跳過)
# make bzimage (注意大小寫。這一步才是真正編譯核心)
核心編譯成功後,會在/usr/src/linux/arch/i386/boot目錄中生成乙個新核心的映像檔案bzimage。如果用 make zimage編譯,核心很大的話,系統會提示你使用make bzimage命令來編譯,所以我直接用make bzimage來編譯。
# make modules (編譯可載入模組)
# make modules_install (安裝可載入模組)
安裝成功後,系統會在/lib/modules目錄下生成乙個2.6.24子目錄,裡面存放著新核心的所有可載入模組。
# make install (安裝新核心)
注意:make install的時候可能會出現如下錯誤資訊:
no module buslogic found for kernel 2.4.12
mkinitrd failed
此問題一般只出現在scsi硬碟+vmware+redhat架構中,因為buslogic被編譯進了核心而不是乙個module的形式(2.4核心的buslogic模組即使靜態編譯進核心也不行)。解決方式是直接將buslogic.o檔案複製過去:
# cp /usr/src/linux-2.6.18/drivers/scsi/buslogic.o /lib/modules/2.6.18/kernel/drivers/scsi
不過別忘記,複製過後再執行一下make install。
四、啟動新核心
10、將新核心和system.map檔案拷貝到/boot目錄下,依次執行以下命令:
# cp /usr/src/linux-2.6.24/arch/i386/boot/bzimage /boot/vmlinuz-2.6.24
# cp /usr/src/linux-2.6.24/system.map /boot/system.map-2.6.24
# cd /boot (進入boot目錄)
# rm –rf system.map (刪除原來的連線)
# ln –s system.map-2.6.24 system.map (重新建立連線)
11、修改grub啟動管理器
如果沒有錯誤的話, 下面開始修改grub配置檔案(不要告訴我你用的lilo)
在/boot目錄下,執行以下命令:
# new-kernel-pkg --mkinitrd --depmod --install 2.6.24 (這時候你的/boot下會生成乙個initrd-2.4.24.img,並且你的grub.conf檔案也作了相應更改)
# df (檢視根目錄在那個分割槽,下一步要用到。注意,這裡根分割槽不時boot的那個50m的分割槽,而一般是你最大的那個分割槽,也就是「/」,千萬不要搞錯哦。我的為 /dev/hda2)
# vi /grub/grub.conf
進入grub.conf檔案,找到如下資訊:
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title red hat linux (2.6.24)
root (hd0,0)
kernel /vmlinuz-2.6.24 ro root= label=/
initrd /initrd-2.6.24.img
做兩處修改:
(1) 將default=1改為default=0(不改的話也可以,只不過重啟之後會預設進入2.4核心)
(2) 將kernel行的「label=/」換成根目錄所在的分割槽(上一步檢視的就是)
此步很重要,修改錯誤將可能導致進不去系統,我把我修改後的grub.conf檔案列出來,不明之處,可以對照修改:
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title red hat linux (2.6.24)
root (hd0,0)
kernel /vmlinuz-2.6.24 ro root=/dev/hda2
initrd /initrd-2.6.24.img
title red hat linux (2.4.20-8)
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=label=/
initrd /initrd-2.4.20-8.img
編譯 linux 核心
一 準備工作 tpv te0 首先說明,下面帶 號的行都是要輸入的命令列,且本文提到的所有命令列都在終端裡輸入。ixpub技術部落格 rc0p a6zx j 啟動linux系統,並用根使用者登入,進入終端模式下。6i sb w,a0 ixpub技術部落格c gng,y y ixpub技術部落格 k,...
linux編譯核心
red hat linux版本的核心編譯 make j2 編譯 make modules make modules install make install cd boot mkinitramfs o initrd.img 2.6.30.10 2.6.30.10 此項可能不需要 vim boot g...
Linux核心編譯
經過幾天的努力,本人終於把乙個核心編譯成功了,嘿嘿,現在把編譯過程記下來,以後再接再勵,注意 以下的操作都要有root許可權。linux 2.6.36.tar.bz2。2 解壓縮。cd usr src tar xvf home ibm linux 2.6.36.tar.bz2.usr src下就會多...