2011年4月29日金曜日

Ubuntuでkernelをcompileする

Ubuntuでkernelをcompileする
リビルドするとか、リコンパイルするとか、再構築とか言ったりもする。




カーネルをコンパイルする準備

作業ディレクトリの作成
$ mkdir kernel_src
$ cd ~/kernel_src

カーネルソースのダウンロード
http://www.kernel.org/pub/linux/kernel/v2.6/
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.gz

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.gz
ソースサイズ約90M

解凍する
$ tar zxvf linux-2.6.38.tar.gz
$ cd linux-2.6.38

現在実行中のカーネルとおなじ設定にするためコンフィグファイルをコピー
$ cp -vi /boot/config-`uname -r` .config

さらにカーネルをカスタマイズする
$ make menuconfig

保存して終了

コンパイル環境の設定
dual coreなら以下のようにする
$ export CONCURRENCY_LEVEL=2

設定する数字の一般的なルールは、プロセッサコア+1にする

カーネルをコンパイル


コンパイル
$ make-kpkg clean
$ fakeroot make-kpkg --initrd kernel-image kernel-headers
これだと、コンパイルに費やした時間がわからない

$ make-kpkg clean
$ time fakeroot make-kpkg --initrd kernel-image kernel-headers
コンパイルに費やした時間を計測する


環境
Ubuntu 10.04 on VMWare Fusion3
メモリ1024M
ディスク空き容量16G

ホスト側OS XでYouTubeを見ながらコンパイル
ホストCPU CoreDuo 3GHz

経過時間
real 112m24.390s
user 64m12.710s
sys 19m12.090s

成果物のサイズ
79,017個のアイテム、サイズは 6.1 GB

コンパイルには10G位、空き容量が必要っぽい
空き容量7Gだと、コンパイル中に警告が出る


カーネルとヘッダーのインストール


カーネルとヘッダーのインストール
$ cd ~/kernel_src
$ sudo dpkg -i linux-headers-2.6.38_2.6.38-10.00.Custom_amd64.deb
$ sudo dpkg -i linux-image-2.6.38_2.6.38-10.00.Custom_amd64.deb

再起動後、使用されているカーネルを確認する
$ uname -a


カーネルとヘッダーを削除


インストールされている名前を確認
$ dpkg -l | grep linux-image

削除
$ sudo dpkg -r linux-headers-2.6.38
$ sudo dpkg -r linux-image-2.6.38

パージで消せばリストに情報が残らない
$ sudo dpkg --purge linux-headers-2.6.38
$ sudo dpkg --purge linux-image-2.6.38


参考

How to compile a kernel on Ubuntu 10.04 ~ Linux Tweaking - http://linuxtweaking.blogspot.com
http://linuxtweaking.blogspot.com/2010/05/how-to-compile-kernel-on-ubuntu-1004.html

How to compile a kernel from kernel.org in Ubuntu 10.04 LTS ~ Linux Tweaking - http://linuxtweaking.blogspot.com
http://linuxtweaking.blogspot.com/2011/02/how-to-compile-kernel-from-kernelorg-in.html

0 コメント: