Debian 7.6(wheezy)でLinuxカーネル 3.16.1をビルド

Debian(i686)の環境でLinuxカーネル 3.16.1をビルドしました。
自分用にも、作業過程をメモ。

作業環境

$ cat /etc/debian_version 
7.6
$ uname -a
Linux dyna 3.2.0-4-686-pae #1 SMP Debian 3.2.60-1+deb7u3 i686 GNU/Linux

作業過程

ダウンロードから.config生成まで
$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.1.tar.xz
$ tar Jxf linux-3.16.1.tar.xz
$ cd linux-3.16.1/
$ make mrproper
$ cp /boot/config-3.2.0-4-686-pae .config
$ make olddefconfig
$ make menuconfig
  => 「menuconfigの有効/無効項目について」を参照
menuconfigの有効/無効項目について

有効化した項目

  • General setup
    • Kernel .config support
    • Enable access to .config through /proc/config.gz
  • Kernel hacking
    • Tracers
      • Kernel Function Tracer
      • Trace max stack
      • Trace syscalls
    • Kernel debugging
      • Compile-time checks and compiler options
        • Compile the kernel with debug info


無効化した項目

  • Processor type and features
    • Build a relocatable kernel
ビルド(一般的な方法)
$ time make -j2
...
real    102m45.072s
user    88m36.864s
sys     6m49.334s
  • bzImageとかビルド後の生成物が欲しいだけのとき
  • マシンへインストールするなら、後述の「debパッケージとして作成」のやり方のほうが、インストールしやすい
  • (2014/12/20 追記)-jオプションで指定している「2」は並列数です(今さらながらですが、コメントいただいた情報を追記します)
ビルド(debパッケージとして作成)
$ export CONCURRENCY_LEVEL=2
$ sudo time make-kpkg --initrd --revision=20140817 kernel_image kernel_headers

timeでの計測が不要なら以下で十分

$ sudo CONCURRENCY_LEVEL=2 make-kpkg --initrd --revision=20140817 kernel_image kernel_headers


インストールは以下のように行う

$ cd ../
$ sudo dpkg -i linux-image-3.16.1_20140817_i386.deb linux-headers-3.16.1_20140817_i386.deb