.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以下に短縮されたことになる
頻繁にカーネルをビルドする場合、この時間差は大きい
無論、変更するところをモジュール化したりすれば、フルコンパイルは不要だと思うが