在Ubuntu底下編deb檔的kernel - Linux

Lauren avatar
By Lauren
at 2006-07-19T23:20

Table of Contents


在Ubuntu底下編deb檔的kernel
1. 安裝編譯相關軟體
code: apt-get build-dep linux-image-386
apt-get install kernel-package
其中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啦。

--
Tags: Linux

All Comments

在 Ubuntu 播放有區碼的 DVD

Yedda avatar
By Yedda
at 2006-07-19T23:18
由於萬惡的八大影業,為了防止盜版影片的流行,所以把DVD區碼分成1到6, 而台灣屬於 區碼3的地方。然而在在Linux底下的播放軟體不能解DVD CSS(版權因素), 所以導致市面 上原版的DVD影片反而在Linux上不能播放,當然這件事早就被造福人群的駭客破解了 ..XD, 以下我是在ubuntu 下操作心 ...

Ubuntu 中無線網路卡的議題

Cara avatar
By Cara
at 2006-07-19T23:16
無線網路卡目前在市面上有三種規格,分別是 802.11b,802.11g 和 802.11a。802.11b 的速度是 11Mbps,而 802.11g 和 802.11a 都是傳輸速度為 54Mbps 的規格。由於 802.11b 和 802.11g 都是採用 2.4GHz 的無線頻段,所以互相可以相容。8 ...

Ubuntu 的歷史

Delia avatar
By Delia
at 2006-07-19T14:28
Ubuntu 的創始人 Mark Shuttleworth 於 1973 年 9 月 18 日在南非出生,他擁有 Cape Town 大學財務和計算機系統學位。Mark Shuttleworth 本人是程式設計師,也是 90 年代 Debian 早期的開發者。早期他設計一些網路安全程式,並且在 1995 年成 ...

各種不同的 Ubuntu 分支

Brianna avatar
By Brianna
at 2006-07-19T14:25
Ubuntu 原先釋出的版本是預設採用 Gnome 這套視窗管理程式,但是在 GNU/Linux 的世 界裏面有許多種的桌面系統,或者因為版本的訴求與某些使用理念不同,所以 Ubuntu 目 前有五種不同的安裝版本可以使用。而這幾種安裝版本的組件庫是採用一樣的,它們可以 採用不同的光碟來安裝,安裝後就是預設為 ...

Ubuntu 各套件庫的意義

Edith avatar
By Edith
at 2006-07-19T14:24
因為 Ubuntu 原生於 Debian, 所以也是對於自由很堅持,因此希望把自由軟體和非自由 軟體拆開來放。有些是因為人力的問題,有些套件是在 Debian 裏面有,但是不被 Ubuntu 官方支援的。所以 Ubuntu 的處理方式是把它們拆成以下四大主要組件庫,類似 Debian 一樣,讓使用者選擇需要。 ...