1. 安裝編譯相關軟體
code: apt-get build-dep linux-image-xxx
其中xxx可以從apt-catch search linux-image查到,隨便選一個就好了。
2. Download the kernel.
linux-stable stable kernel (from kernel.org)
linux-stable-mm stable -mm patch to the stable kernel (from kernel.org)
linux-stable-prepatch prepatch for the stable kernel (from kernel.org)
linux-stable-snapshot snapshot for the stable kernel (from kernel.org)
code: rsync -avz rsync.ppckernel.org::linux-stable-mm2 ./
或可以自己到www.kernel.org去抓,不過我是喜歡用rsync比較方便。
3. Set up the env-variable.
cflags:
code: export CFLAGS_KERNEL="-mcpu=7450 -O2 -pipe -fno-strict-aliasing -maltivec -mabi=altivec -mpowerpc-gfxopt"
code: export CXXFLAGS_KERNEL="${CFLAGS_KERNEL}"
(可以參考 http://gentoo-wiki.com/Safe_Cflags )
如此可以針對機器最佳化。在此的cflags是針對PowerPC G4,請不要使用,可以到
網站上查詢你的機器。
gcc:
code: export MAKEFLAGS="CC=gcc-3.4"
(因為gcc-4編kernel時,有些裝置會編不起來,所以建議強迫指定用gcc-3.4
當然有些人可以用gcc-4來編是因為他沒有用到相關裝置。)
4. Copy .config from /boot
從boot中拷最新的config檔當範例,然在再修改。
5.
code: make menuconfig
選你要的裝置與modules.
可以參考lsmod, more /proc/cpuinfo等等。
6. 開始編譯
code: make-kpkg clean
code: make-kpkg --initrd --revision=2.6.14-mm2-1 --append-to-version=ibookg4 kernel_image kernel_headers
其中append-to-version是你kernel的特殊套件名稱,你可以自己取啦,避免和
系統的不一樣,那樣同版次的modules才能共存。
而revision是指改版地幾次,如此在同一版次的kernel可以在從新編譯而dpkg系統會認為
是新的,如此升級才會順利唷。
而initrd可有可無,不過若不要的話,你要將fs modules編到kernel裡,而主流是要的。
7. 經過漫長的的等待,在上一個目錄就會生成兩個deb檔,
分別是
code: dpkg -i xxx.deb
code: dpkg -i xxx.deb
好了reboot,享受新的kernel吧。如果有問題,檢查一下lilo, GRUB, yaboot有沒有設對吧!
對了,以上2~6步驟要在root或者在fakeroot下執行唷。而最後當然是要root啦。
蔡東邦 Dung-Bang Tsai
dbtsai@gmail.com
2005/09/21 NCKU, Physics
轉載請把作者附上去吧,並且不要改動文章。
以免有人遇到問題不知道找誰負責^_^
並且歡迎轉寄唷,只要對你學習有幫助的話。
有何建議與錯誤也請E-mail給我唷。我會虛心接受指教的。