Linux Kernelをビルドする

環境: Ubuntu 11.04 (VMWare fusion)

準備

$ sudo apt-get install build-essential
$ sudo apt-get install kernel-package libncurses-dev ncurses-dev libqt3-mt-dev

ソースを用意する

$ sudo apt-get install linux-source-2.6.38

$ cd /usr/src
$ sudo tar xvfj linux-source-2.6.38.tar.bz2
$ cd linux-source-2.6.38

バグフィックス

via https://bugs.launchpad.net/ubuntu/+source/linux/+bug/505420

$ ln -s /usr/src/linux-source-2.6.38/ubuntu /ubuntu

config

いったん設定初期化してから設定画面を立ち上げる。

$ sudo make mrproper
$ sudo make menuconfig
変更するconfig

Core i7 の 4coreでこんな感じの設定にしてみた。

Processor type and features:

Processor family > Core 2/newer Xeon
Maximum number of CPUs > 8
Preemption Model > Preemptible Kernel(Low-Latency Desktop)
Timer frequency >1000Hz
現在の設定をそのまま使うとき
$ sudo cp /boot/config-2.6.35-24-server .config
$ sudo make oldconfig

カーネルバージョンを変える

Makefileの4行目を書き換える

EXTRAVERSION=.3 

コンパイル

revisionは数値のみ指定できるみたい。適当に日付を指定。

$ make-kpkg clean
$ make-kpkg -j8 --initrd --revision=yyyymmdd kernel_image kernel_headers

20~30分かかりました。

インストール

$ dpkg -i ../linux-image-2.6.38_yyyymmdd_amd64.deb

再起動して完了。