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
- Compile-time checks and compiler options
- Tracers
無効化した項目
ビルド(一般的な方法)
$ 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