8.4. 新しいカーネルのコンパイル
前のページ | 第8章 次のステップとそれから | 次のページ

## 8.4. 新しいカーネルのコンパイル

新しいカーネルをコンパイルしようとする動機はなんでしょう? Debian では、標準で入っているカーネルで多くの機能をサポートしてい るので、ほとんどその必要はありません。しかし、以下のような目的のためには、 新しいカーネルをコンパイルすることは有益です。

- 特殊なハードウェアを使ったり、 標準カーネルとハードウェアとの競合を回避するため

- APM や SMP など、 既存のカーネルがサポートしていないハードウェアや機能を利用するため

- 使わないドライバを取り除くことでカーネルを最適化し、 起動にかかる時間を短くするため

- (ネットワークでのファイアウォール機能など) デフォルトのカーネルでサポートされていない機能を利用するため

- 最新のカーネルや開発版のカーネルを使用するため

- 目新しいことをして友達を感心させるため

### 8.4.1. カーネルイメージの管理

カーネルのコンパイルを恐がらないでください。楽しく、かつ役に立つ作業です。

Debian 流にカーネルをコンパイルするのに必要なパッケージは、 `kernel-package`、 `kernel-source-2.4.27` (この文書を執筆している 時点で最も新しいバージョンです)、`fakeroot`、あとは 多分すでにインストール済みのパッケージがいくつか、です (完全な一覧については `/usr/share/doc/kernel-package/README.gz` を ご覧ください)。

この方法はカーネルソースから .deb を作り、また非標準のモジュールが あれば、作成したカーネルに依存した .deb も同時に作ります。 これはカーネルイメージの管理には良い方法で、 `/boot` にカーネル、System.map、 ビルドに使った設定ファイルの記録を保存します。

必ずしも「Debian 流」にカーネルをコンパイルする必要は ありません。しかし、カーネルの管理にもパッケージング システムを用いるほうが、実際に安全で簡単です。実は `kernel-source-2.4.27` ではなく、Linus が 配付しているカーネルソースをそのまま利用することもできますが、その場合でも `kernel-package` を用いてコンパイルしてください。

`kernel-package` の利用に必要な文書すべては、 `/usr/share/doc/kernel-package` ディレクトリにあります。 そのため、この節では簡単な解説のみを行います。

ここでは、バージョン 2.4.27 のカーネルソースが `/usr/local/src` にあると仮定します。 まずは root アカウントで `/usr/local/src` ディレクトリを作成し、そのディレクトリの所有者を、通常使う root ではない アカウントに変更してください。続いて通常のアカウントで、 カーネルソースを展開するディレクトリに 移動 (`cd /usr/local/src`) し、カーネルソースを 展開 (`tar xjf /usr/src/kernel-source-2.4.27.tar.bz2`) してから、 そのディレクトリに移動 (`cd kernel-source-2.4.27/`) します。

次にカーネルコンパイルの設定を行います。X11 のインストールおよび設定が 済んでいて、X11 を実行中の場合は `make xconfig` を、 そうでない場合は `make menuconfig` を実行します (後者では `ncurses-dev` がインストールされている必要があります)。 オンラインヘルプを時間をかけて読み、注意深く選択してください。 一般的に、迷った場合はそのデバイスドライバ (イーサネットカードや、 SCSI コントローラなどの周辺機器を制御するソフトウェア) を入れた方が よいでしょう。なお注意していただきたいのですが、 特定のハードウェアに関係のないその他のオプションで、 よく理解できないものはデフォルトの値のままにしておいてください。 また、"Loadable module support" にある "Kernel module loader" (デフォルトでは選択されていません) は忘れずに選択してください。 さもないと、Debian のインストールに問題が生じることもあります。

続いてソースツリーをクリアし、`kernel-package` のパラメータを リセットします。これには、`make-kpkg clean` を実行してください。

さあ、カーネルをコンパイルしましょう。 `fakeroot make-kpkg --revision=custom.1.0 kernel_image` を実行してください。バージョン番号 ``1.0'' は自由に変えられます。この番号は、 構築したカーネルを後から確認できるようにするためのものだからです。 同様に、``custom'' の箇所にもお好みのキーワード (例えばホスト名など) を 使うことができます。マシンのパワーにもよりますが、カーネルのコンパイルには かなり時間がかかります。

一旦コンパイルが完了すれば、他のパッケージと同じように、そのカスタムカーネルを インストールできます。root アカウントで `dpkg -i ../kernel-image-2.4.27-`subarchitecture`_custom.1.0_hppa.deb` を実行してください。`subarchitecture` は、 カーネルのオプションで設定された 任意のサブアーキテクチャを表しています。 また `dpkg -i kernel-image...` とすると、カーネルと一緒に 役に立つ補助的なファイルもいくつかインストールされます。例えば カーネルの問題をデバッグするのに役立つ `System.map` や、 現行のカーネルの設定が記録されている `/boot/config-2.4.27` などが適切にインストールされます。 さらに、新たに作成された `kernel-image-2.4.27` パッケージは、 自動的にあなたのプラットフォームのブートローダを設定してくれますので、 ブートローダを再度実行する必要はありません。 なお、モジュールパッケージを作成した場合、例えば PCMCIA がある場合は、 同様にそれらもインストールする必要があるでしょう。

さて、システムを再起動する時がやってきました。これまでの作業の間に何か警告が表示されていたら それらを注意深く読み、それから `shutdown -r now` を実行してください。

`kernel-package` に関するより詳しい情報については、 `/usr/share/doc/kernel-package` にある素晴しいドキュメントをお読みください。

前のページ | 上に戻る | 次のページ
8.3. さらなる文書や情報 | ホーム | 付録 A. インストール Howto