Linuxカーネルビルド方法(deb系/Debian)

  1. ソースパッケージからのビルド
  2. 最新ソースからのビルド

事前準備

以下のパッケージをインストールする。

$ sudo aptitude install kernel-package libncurses5-dev fakeroot

~/.kernel-pkg.confを準備し、メンテナー情報を設定する。

$ cp /etc/kernel-pkg.conf ~/.kernel-pkg.conf
$ vi ~/.kernel-pkg.conf
maintainer := <メンテナーの名前>
email := <メンテナーのメールアドレス>

/usr/srcでビルド作業ができるように、対象ユーザをsrcグループに追加する。

$ sudo adduser <対象ユーザ> src

ソースパッケージからのビルド

カーネルのソースパッケージをインストールすると、/usr/src以下にlinux-source-2.6.xx.tar.bz2というファイルで用意されるので、ソースを展開する。

$ cd /usr/src
$ tar jxvf linux-source-2.6.26.tar.bz2
$ cd linux-source-2.6.26

現行カーネルのconfigをコピーし、.configを作成する。

$ cp /boot/config-`uname -r` ./.config

menuconfigを使用して、カーネルを設定する。今回は、Debianカーネルパッチの適用を行い、リビジョン番号には日時を使用した。

$ make-kpkg clean
$ REVISION=$(date +%Y%m%d.%H%M)
$ make-kpkg --rootcmd fakeroot --revision $REVISION --added-patches debian --config menuconfig configure

カーネルをビルドする。

$ fakeroot make-kpkg --initrd kernel_image

/usr/src以下にdebパッケージが作成されているので、インストールする。

$ cd ..
$ sudo dpkg -i ./linux-image-2.6.26_20100322.1902_amd64.deb

カーネルパッケージをインストールすると、ブートローダ(GRUB)設定が更新されるので、OS再起動を行い新しいカーネルで起動する。

最新ソースからのビルド

http://www.kernel.org/から最新のカーネルソースをダウンロードし、ソースを展開する。

$ cd /usr/src
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.10.tar.bz2
$ tar jxvf linux-2.6.32.10.tar.bz2
$ cd linux-2.6.32.10

現行カーネルのconfigをコピーし、.configを作成する。

$ cp /boot/config-`uname -r` ./.config

oldconfigを使用して、新たに追加されたパラメータを設定する。

$ make-kpkg clean
$ make oldconfig

menuconfigを使用して、カーネルを設定する。リビジョン番号には日時を使用した。

$ REVISION=$(date +%Y%m%d.%H%M)
$ make-kpkg --rootcmd fakeroot --revision $REVISION --config menuconfig configure

カーネルをビルドする。

$ fakeroot make-kpkg --initrd kernel_image

/usr/src以下にdebパッケージが作成されているので、インストールする。

$ cd ..
$ sudo dpkg -i ./linux-image-2.6.32.10_20100322.2308_amd64.deb

カーネルパッケージをインストールすると、ブートローダ(GRUB)設定が更新されるので、OS再起動を行い新しいカーネルで起動する。