Linuxカーネルビルド方法(deb系/Debian)
- ソースパッケージからのビルド
- 最新ソースからのビルド
事前準備
以下のパッケージをインストールする。
$ 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再起動を行い新しいカーネルで起動する。