環境:Fedora 12 內核:linux-2.6.32.2
(為什么選擇Fedora 12,因為12是偶數看起來舒服,且是最新版;同理選擇了linux-2.6.32.2,雖然有最新版2.6.33,但不是偶數,不爽!)
STEP 1:到ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ ,下載[url=/pub/linux/kernel/v2.6/linux-2.6.32.2.tar.gz]linux- 2.6.32.2.tar.gz[/url] STEP 2: 把[url=/pub/linux/kernel/v2.6/linux-2.6.32.2.tar.gz]linux-2.6.32.2.tar.gz[/url]復制到 /usr/src/kernels/ (當然其他任何目錄都可以的)
cp linux-2.6.32.2.tar.gz /usr/src/kernels/
|
STEP 3: 解壓
tar -xzf linux-2.6.32.2.tar.gz
|
STEP 4: 進入linux-2.6.32.2
STEP 5: 配置。如果以前編譯過,那么用make mrproper刪除以前垃圾文件。用make menuconfig啟動配置的圖形界面。因為配置選項很多,短時間根本搞不懂哪些選項是必須的,哪些是可以不要的,所以,最佳的辦法是在一個已經存在的配置文件上面修改。很顯然,Fedora 12 就有現成的一個。把 /boot目錄里面 config-2.6.31.5-127.fc12.i686.PAE復制到/usr/src/kernels/linux-2.6.32.2里面并命名為.config。當執行make menuconfig時,首先尋找.config,如果找到就讀取。否則進入arch目錄里面尋找相應體系結構默認的配置文件。
cp /boot/config-2.6.31.5-127.fc12.i686.PAE /usr/src/kernels/linux-2.6.32.2/.config
make menuconfig
|
STEP 6: 編譯。2.6.32已經是非常高的版本了,所以執行make all,就相當于:make dep(建立相依的屬性關系),make clean(將舊的資料去除掉),make bzImage(開始編譯核心),make modules(開始編譯模塊)
STEP 7:安裝模塊。安裝模塊到/lib/modules/,以后程序運行時從這個目錄加載模塊。
STEP 8: 安裝內核。把make all 生成的vmlinuz和System.map復制到/boot目錄下同時修改grub /boot/grub/menu.lst. 修改menu.lst是自動完成的哦!!不用手動修改。
STEP 9: 重啟Fedora。選擇linux-2.6.32.2啟動。當白色的進度條顯示滿了后,多等會。
附一:我遇到的問題
1. 在make install時報錯,提示我沒有 mkinitrd這個命令。我到/sbin/里面找確實沒有啊。然后我到網上下了一個mkinitrd的軟件包安裝,安裝時又出錯,提示與系統的什么包相沖突。我在網上問了哈高手,然后通過Fedora 的包管理機制,添加了mkinitrd.總算是成功了。弄了很久。
2. 編譯了內核啟動時,白色的顯示條顯示滿了后,要等一段時間。剛開始,我試了很多次,改了很多東西,每次白色條顯示滿了,我等了幾秒,沒反應,就錯誤地以為我編譯的內核不成功。當我弄煩了后,干脆不理它,我搞點其他的,等回到虛擬機時,居然啟動了。一陣狂喜啊!
附二: 感謝 感謝網上的高手給我提示,以后只要我知道我也會毫不吝惜地幫助別人; 感謝chinaunix里面牛人寫的博客,(在參考博客里面),寫得非常之好,仰慕,學習。
參考博客: http://linux.chinaunix.net/ebook/doc/2009/12/07/1147818.shtml Fedora下內核編譯 [第十五期]
http://linux.chinaunix.net/techdoc/develop/2008/12/22/1054372.shtml 編譯內核步驟詳解
http://linux.chinaunix.net/techdoc/system/2008/11/08/1044037.shtml 編譯 Linux2.6 內核總結
|
posted on 2010-03-04 11:30
deercoder 閱讀(2309)
評論(1) 編輯 收藏 引用 所屬分類:
Unix/Linux