Debian提供のソースパッケージを利用する
kernelを再構築するには、Debianが提供しているソースパッケージを使用する方法と、オリジナルのkernelソースを使用する方法の二つがあります。
この項では、Debianが提供しているソースパッケージを利用する方法を紹介します。
コンパイル環境を整える
どちらの場合もkernelをソースからコンパイルすることになりますので、コンパイル環境を依存するライブラリをインストールします。
Debianでは非常に簡単です。
# apt-get build-dep linux-source-2.6.18
これで必要なものはすべてインストールされます。
ソースの入手と展開
まず、ソースパッケージをaptで手に入れます。
$apt-get install kernel-package linux-source-2.6.18
ここで、linux-source-以降の部分はkernelのバージョンを示しています。
apt-cache searchなどで好みのバージョンを探してインストールしてください。
Debian提供のkernelソースはオリジナルより若干古いものです。
(これは、安定性その他のことを考慮した結果だと思います)
次に、ダウンロードしたソースパッケージを展開します。
/usr/srcにソースパッケージのtarballがダウンロードされていると思いますので、/usr/srcにcdして、展開します。
$ cd /usr/src $ tar xjvf linux-source-2.6.18
tarのオプションは
- x: ファイルの抽出
- j: bzip2ファイルの展開
- v: 進捗をコンソールに表示
- f: ファイルを指定する
です。これらを連結して、xjvfを与えています。
kernelの設定
次に、kernelコンパイルに関する設定を行います。
以前コンパイルしたことがある場合は、そのときのconfigファイルをコピーして、次のコマンドを実行します。
これで、以前にコンパイルしたconfigファイルの設定が適用されます。
# make oldconfig
そうでない場合、またはデフォルトのオプションから設定を行いたい場合は、次のコマンドを実行します。
# make menuconfig
このコマンドはコンソールから階層メニューを使用して、kernel設定を行います。
GUIで行いたい場合は、次のコマンドですが、qt3ライブラリが必要になります。
おそらく、必要なqt3のライブラリはソースパッケージをapt-getしたときに、推奨パッケージとして示されているはずです。
# make xconfig
個人的なオススメは、framebufferを有効にして、起動時にtuxを表示させることです。
最後に設定ファイルを確認してみましょう。
$ pager .config
kernelのコンパイルとインストール
いよいよkernelをコンパイルします。
rootになるか、sudo、fakerootを使いましょう。
$ su # make-kpkg clean # make-kpkg --initrd kernel-image --revision=custom.0.1
make-kpkg cleanを忘れないようにしましょう。
以前にコンパイルしたものが残っていたりすると、おかしなことになります。
次のコマンドのオプションはそれぞれ以下のとおりです。
- --initrd : イニシャルルートディスクを作成する。
- --revision=* : kernelのリビジョンを*に設定する。
何もエラーが発生せずに無事コンパイルが終わった場合、/usr/srcにkernel-image-*.debというパッケージファイルが作成されているはずです。
これをdpkgを使ってインストールします。
# dpkg -i kernel-image-*
以上で終了です。grubの設定も自動で行われます。
念のため間違った設定がされていないか、/boot/grub/menu.lstを確認して再起動しましょう。
kernel.orgのソースを使用する
ここでは、2.6.19.2をソースからコンパイルした手順を記します。
ソースのダウンロードと展開
kernel.orgからソースを手に入れます。
wgetでもbrowserからでもお好みでどうぞ。
kernelのソースパッケージは50MBほどあります。
できればミラーサーバなどを使ったほうがいいかもしれません。
ダウンロードし終えたら、Debianソースパッケージと同様に展開します。
展開するディレクトリは、ここでは/usr/srcであると仮定しておきます。
/usr/src/linux-2.6.19.2とかいうディレクトリが作成されているはずです。
kernelのコンパイル設定
# make mrproper # make menuconfig
kernelのコンパイル
# make # make install # make modules_install または # make && make install && make modules_install
# cd /boot # mkinitrd -o initrd-2.6.19.2.img 2.6.19.2.custom
grubの設定変更
# nano /boot/grub/menu.lst