.configファイルの生成方法

Linuxカーネルを構築する上で最も苦労するのは.configを生成するところじゃないだろうか?
make oldconfigでインストール時の.configを使い回すのは楽ちんだが、大量の不要なドライバが入っていてコンパイルに時間がかかる
手動で.configをつくる場合、デバイスドライバを最小限にすることが可能だが、
lspciで計算機上のデバイスを確認して、必要なデバイスドライバを追加していくという地道な作業が必要になる

なんかいい方法ないかなと思って探したらあった
localmodconfig、localyesconfig

実験

.configを使い回す方法とlocalyesconfigで.configを生成する方法を比較する
ちなみにCore2Duo @ 2.8GHz(2コア)を使用しているので並列度を3(コア数+1)としている

まず.configを使い回す場合の時間を測る

$ cd /usr/src/linux-2.6.38
$ cp /boot//boot/config-2.6.38-10-generic .config
$ make oldconfig
$ time make all -j3
make all -j3  4263.93s user 336.31s system 175% cpu 43:41.62 total

timeで計測した時間を見ると、43分?結構かかってるようだ

次にlocalyesconfigを試す

$ make mrproper
$ make localyesconfig
$ time make all -j3
make all -j3  1191.85s user 105.53s system 160% cpu 13:29.48 total

同様に計測した結果13分に短縮されたようだ
1/3以下に短縮されたことになる
頻繁にカーネルをビルドする場合、この時間差は大きい
無論、変更するところをモジュール化したりすれば、フルコンパイルは不要だと思うが