Si-Linux Wiki カーネルの再コンパイル手順について。


コンパイルに必要なパッケージのインストール

# apt-get install build-essential kernel-package initramfs-tools libncurses5-dev zlib1g-dev fakeroot

ソースのインストール

# apt-get install linux-source-2.6.26

ソースは/usr/srcに圧縮されたままインストールされる

/usr/src/linux-source-2.6.26.tar.bz2

適当なところにコピーして自分で展開すること

ソースの展開、設定のコピー

$ tar jxf /usr/src/linux-source-2.6.26.tar.bz2
$ cd ~/linux-source-2.6.26
$ cp /boot/config-2.6.26-2-686 ./.config
$ make oldconfig
$ make menuconfig

ソースの修正、パッチ当てなどはこのときにおこなう

参考→カーネル起動ロゴの変更

コンパイル

ソースディレクトリ内でmake-kpkgコマンドを実行する

$ make-kpkg clean
$ make-kpkg --rootcmd fakeroot --append_to_version -hoge1 --revision 0.1piyo --initrd linux-image

linux-image-2.6.26-hoge1_0.1piyo_i386.debがソースのひとつ上のディレクトリに作成される。

make-kpkgのオプション

--rootcmd fakeroot
root権限コマンド実行プログラムの指定
--append_to_version
パッケージ名のサフィックス(この例の場合 -hoge1)
--revision
リビジョン番号(この例の場合 0.1piyo)

パッケージ名のサフィックス

vmlinuz-2.6.26-hoge1
              ~~~~~~

GRUBやdpkgから見える名前に使用される。ハイフンは付与されないので、必要があれば自分で指定する。

リビジョン番号

linux-image-2.6.26-hoge1_0.1piyo_i386.deb
                         ~~~~~~~

リビジョン番号は必ず数字から始める。アンダーラインは自動で付与される。 dpkgではバージョンと表記される。

パッケージのインストール

dpkgコマンドでインストールする。

# dpkg -i linux-image-2.6.26-hoge1_0.1piyo_i386.deb

このときにinitrdが作成される。

# dpkg -l linux-image-2.6.26-hoge1_0.1piyo_i386.deb
||/ 名前                       バージョン    説明
+++-==========================-=============-===================================================
ii  linux-image-2.6.26-hoge1   0.1piyo       Linux kernel binary image for version 2.6.26-hoge1

開発機とターゲット機が異なる場合

とりあえず、開発機にインストールしてしまう。そして、次のファイルをターゲット機にコピーする

/boot/config-2.6.26-hoge1
/boot/vmlinuz-2.6.26-hoge1
/boot/System.map-2.6.26-hoge1
/boot/initrd.img-2.6.26-hoge1
/lib/modules/2.6.26-hoge1/

そのあと、/boot/grub/menu.lstを編集する

title           Debian GNU/Linux, kernel 2.6.26-hoge1
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26-hoge1 root=/dev/sda1 ro quiet
initrd          /boot/initrd.img-2.6.26-hoge1

パッケージ再作成時の注意

パッケージ名のサフィックス、リビジョン番号ともに違うものにする。
リビジョン番号のみの変更も可能だが、changelogをしっかり書く必要がありその上さらにインストール時にもう一手間かかるので、やめた方がよい。

関連

Last-modified: 2010-12-22 (水) 18:18:51 (4871d)