kernel 2.6.0 編譯方法

來源:互聯網
上載者:User

編譯前準備
1)下載一份核心原始碼,我下的是linux-2.6.7.tar.bz2,你可在如下地址下載它或者是更新的版本.
http://kernel.org/pub/linux/kernel/v2.6/
2) 下載最新版本的module-init-tools( "module-init-tools-3.0.tar.gz" and "modutils-2.4.21-23.src.rpm")
http://www.kernel.org/pub/linux/kernel/people/rusty/modules/module-init-tools-3.0.tar.gz
http://www.kernel.org/pub/linux/kernel/people/rusty/modules/modutils-2.4.21-23.src.rpm
3)安裝module-init-tools. 它會替代depmod [/sbin/depmod]和其他工具.
tar -zxvf module-init-tools-3.0.tar.gz
cd module-init-tools-3.0
./configure --prefix=/sbin
make
make install
./generate-modprobe.conf /etc/modprobe.conf
4)安裝modutils-2.4.21-23.src.rpm. 你可能會看到"user rusty and group rusty not existing"的警告. 沒關係,你只需強制安裝就是了.如果你不對Redhat 9和Redhat 8做這幾步, 你將會在"make modules_install"這一步時出現問題.
rpm -i modutils-2.4.21-23.src.rpm
rpmbuild -bb /usr/src/redhat/SPECS/modutils.spec
rpm -Fi /usr/src/redhat/RPMS/i386/modutils-2.4.21-23.i386.rpm

以上軟體 如果實在找不到,可以給我發Email索取。
編譯:

2.6.0 的編譯方法已經簡潔了很多,下面的辦法假設你的現有系統上已經具備了所有操作所需要的東西(絕大多數系統預設都已經提供)

1.下載
在 http://www.kernel.org/pub/linux/kernel/v2.6/ 下載 linux-2.6.0.tar.bz2
選擇 bz2 的原因就是壓縮比高,節約點時間 。

2.解壓

代碼:
# cd /usr/src# tar xvjpf [$NEW-KERNEL-PATH]/linux-2.6.0.tar.bz2


$NEW-KERNEL-PATH 就是你剛才將新核心下載到的路徑,以下操作都在 /usr/src 目錄下完成

3.配置代碼:

# make mrproper# make menuconfig


make mrproper 是清理代碼樹的動作,保證原始碼是乾淨的
make menuconfig 如果失敗,很可能是 ncurses 庫沒有裝,可以用 make xconfig 或者 make config 來替代

4.編譯代碼:

# make


如果不放心,也可以用舊的命令:make bzImage && make modules 。

5.安裝代碼:

# make install


如果不放心,也可以用 cp [$bzImage-PATH]/bzImage /boot/vmlinuz-2.6.0 && cp System.map /boot/System.map-2.6.0 來替代
另外, make modules_install 也一樣還可以用。
不過,建議在沒有 make clean 之前,如果增加了新的模組,可以直接 make menuconfig && make moduels && make modules_install,不需要全部重新來過

6.檢驗代碼:

# ls /boot


如果看到了 vmlinuz-2.6.0 和 System.map-2.6.0 ,那麼恭喜你,成功了!
如果你是用 make install 安裝的,還會看到個 config-2.6.0 檔案

7.清理代碼:

make clean


如果你以後還要利用這次編譯的成果,也可以省略這一步,如果你想直接刪除原始碼目錄,也可以省略這一步。

8.修改 grub

在 grub 的設定檔中進行修改,增加新核心的支援。建議保留舊核心的項目,避免編譯失敗後痛哭流涕 。
通常 grub 設定檔在下面三個地方(根據發行版的不同):
/etc/grub.conf
/boot/grub/menu.lst
/boot/grub/grub.conf
根據你的實際情況來修改。
修改參照下面:
代碼:

title Kernel 2.6.0root (hd0,0)kernel /vmlinuz-2.6.0 ro root=/dev/hda1


將 (hd0,0) 和 /dev/hda1 換成你的實際資訊,如果重新啟動後出現 kernel panic 錯誤或者顯示應該修改 init 資訊,則基本都是 kernel 語句錯誤。

8.其他

如果你的 kernel 支援記憶體鏡像,就用 mkinitrd 命令製作一個鏡像檔案,然後拷貝到 /boot 路徑下。通常在 redhat 的 /boot 下有一個 initrd-2.6.0.img 就是這麼做的,呵呵。不過這個步驟似乎並非必要,而且很多發行版預設不提供
mkinitrd 命令。就算你真的非要這麼做,也要記得在 make menu 的時候記得選擇核心鏡像 ram image,並且不能安裝為模組,否則 initrd 就不會運作。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.