久々にカーネルをコンパイルしてみた

投稿者: | 2012年9月25日

Debian squeezeをインストールしてみた。で、カーネルが2.6系だったので3.4.11にあげてみる作業をした。
Debianなどパッケージ管理が進んでいる環境では、むかしのようにmake installで/bootにインストールしてうまく動くような時代ではなく、一旦パッケージを作り、それをインストールする形になる。

 # apt-get install kernel-package
 $ tar jxvf linux-source-3.4.11.tar.bz2
 $ cd linux-source-3.4.11
 $ make menuconfig
    $ export CONCURRENCY_LEVEL=2
 $ make-kpkg --initrd
    --rootcmd fakeroot
    --revision=`date '+%Y%m%d'`
    --append_to_version=h2np
    kernel_image modules_image
    kernel_headers

–append_to_versionのオプションは、他のカーネルと区別するために何か目印になる文字は入れておいた方が後々である。

環境変数 CONCURRENCY_LEVEL でコンパイルの並列度を調整することができる。 コア4つあるので、やっぱり1より4の方が速い。
一つ上のディレクトリに

  • linux-image-3.4.1h2np_20120925_amd64.deb
  • linux-header-3.4.11h2np_20120925_amd64.deb

が出来るので、それをルート権限で dpkg -i を使いシステムにインストールする。ブート時にgrubメニューに現れるはず。立ち上げ直したのちには、

$ cat /proc/version

を見て自分がコンパイルしているカーネルで動いているかどうかチェックする。

enjoy!