Handbook:Parts/Installation/Kernel/ja

カーネルソースのインストール
すべてのディストリビューションが構築されるその中心にあるのがLinuxカーネルです. カーネルレイヤーはユーザープログラムとハードウェアの間に存在します. Gentooではカーネルソースについて複数の選択肢があります. 説明付きのすべてのカーネルソースのリストがKernel overview pageにあります.

ベースのシステムのために、Gentooはパッケージを推奨しています.

適切なカーネルソースを選択して、でインストールします.

このコマンドはカーネルソースをにインストールします. このディレクトリにあるがインストールされたカーネルソースへのシンボリックリンクとなります.

これで、カーネルソースを設定して、コンパイルする準備が整いました. 設定・コンパイルには二つのアプローチがあります.


 * 1) カーネルをマニュアルで設定およびビルドする.
 * 2) Linuxカーネルを自動的にビルド・インストールするを使用する.

ここでは、環境を最適化するのに最も適したマニュアル設定をデフォルトとして説明します.

はじめに
カーネルのマニュアル設定は、しばしばLinuxユーザーがしなければならない最も難しい手続きと考えられます. これは真実ではありません. カーネルを数回設定してみれば、それが難しいと言われていたことなど忘れてしまっているでしょう.

しかし、一つだけ真実があります. カーネルをマニュアルで設定する時のハードウェア情報を知ることはとても役に立ちます. ほとんどの情報は、コマンドを含むをインストールすることで得られます.

システム情報を得るための別の方法は、を使ってインストールCDが使っているカーネルモジュールを把握することです. その情報は何を有効にすべきかとてもよいヒントを与えてくれるでしょう.

では、カーネルソースがあるディレクトリに移動して、を実行しましょう. このコマンドはメニューベースの設定画面を起動します.

Linuxカーネルの設定はとても多くのセクションを持っています. まず最初にいくつかの必須オプションを述べましょう. （そうでない場合、Gentooは動作しない、もしくは追加の処置がなければ正しく動作しません） Gentoo wikiのGentoo カーネルコンフィグレーションガイドには、さらに役立つ記述があるでしょう.

必須オプションを有効にする
システムのブートに必須となるドライバ（SCSIコントローラ等）は、モジュールではなく、カーネルの一部としてコンパイルしなければなりません. そうでないと、システムは完全にブートできないでしょう.

次に正確なプロセッサタイプを選択します. このとき、もし使えるのであればMCE機能を有効にすることが推奨されます. これによりハードウェアの異常が通知されるようになるでしょう. いくつかのアーキテクチャ（x86_64）で、これらのエラーはdmesgでは確認できませんが、にログが残ります. この機能を有効にするためにパッケージが必要になります.

また、Maintain a devtmpfs file system to mount at /devを選択することで、必須となるデバイスファイルがブートプロセスの初期段階で使えるようになります.

次に、File Systemsで使用するファイルシステムに必要なサポートを選択しましょう. ルートファイルシステムに使われるファイルシステムをモジュールとしてコンパイルしてはいけません. そうでない場合、Gentooシステムはパーティションをマウントできないでしょう. また、ここでVirtual memoryと/proc file systemを選択してください.

もし、インターネットに接続するためにPPPoE、もしくはダイヤルアップモデムを使う場合、次のオプションを有効にしてください.

2つの圧縮オプションは選択しても差し支えありませんが、絶対に必要でもありません. PPP over Ethernetオプションもそうです. これはカーネルモードのPPPoEをするために設定された時だけにpppによって使用されるものです.

カーネルでネットワークカード（イーサネットもしくはワイヤレス）のサポートを組み込むことを忘れてはいけません.

多くのシステムではマルチコアを自由に使用できます. Symmetric multi-processing supportを有効にすることは重要です.

もしUSB使った入力装置（キーボードやマウス）を使用している場合、以下を必ず有効にしてください.

任意自由選択: initramfsのビルド
いくつかの特別なケースでinitramfs（起動時のRAMベースのファイルシステム）のビルドが必要になります. 最もよくある理由は、重要なディレクトリ（、等）が別パーティションにある場合です. initramfsがあれば、initramfsの中にあるツールを使うことで、これらのパーティションをマウントすることができます.

initramfsがないケースで、ファイルシステムをマウントするツールが、そのファイルシステムの中にある情報を必要としている場合に大きなリスクを負うことになります. initfamrsはカーネルブートの直後、かつ制御がinitツールに移る前に必要なファイルをアーカイブに引き込みます. initramfsのスクリプトはシステムがブートを継続するために必要なパーティションを正しくマウントすることを保証します.

initramfsをインストールするために、最初にをインストールしましょう. そしてinitramfsを生成します.

lvmやraid等の特別なサポートをinitramfsで有効にするために、に適切なオプションを与えてください. 詳しい情報については、を参照してください. 次の例では、LVMとソフトウェアRAID (mdadm)を有効にしています.

initramfsはに保存されます. 生成されるファイルは単純にinitramfsで始まります.

次はKernel modulesです.

別の方法: genkernelを使用する
もしマニュアル設定に気後れしてしまった場合、がお薦めです. は自動的にカーネルを設定、ビルドします.

はインストールCDのカーネルが設定されるのとほぼ同じ方法でカーネルを設定します. これはカーネルのビルドにを使った場合、インストールCDと同じようにブート時にすべてのハードウェアを検出することを意味します. なぜならはいかなるカーネルのマニュアル設定も要求しないため、ユーザー自身のカーネルをコンパイルすることを好まないユーザには理想的なソリューションです.

では、genkernelをどのように使えばよいのか見てみましょう. 最初にをemergeします.

次に、ファイルを編集します. 2番目のフィールドにを含む行は、正しいデバイスを指す1番目のフィールドを持っています. もしハンドブックのパーティショニングの例通りであれば、このデバイスはほぼ間違いなくext2ファイルシステムを持つでしょう. この場合、エントリは次のようになります.

を実行してカーネルソースをコンパイルしましょう. ただ、はほとんどすべてのハードウェアをサポートするカーネルを生成するため、コンパイルが完了するまでにかなりの時間が必要になることに注意しましょう.

genkernel完了後、カーネル、モジュール群、初期RAMディスク（initramfs）が生成されるでしょう. このドキュメントの後半でブートローダーを設定する際、このカーネルとinitrdを使うことになります. ブートローダーの設定ファイルを編集するときに必要になるため、カーネルとinitrdの名前をメモしておきましょう. "真の"システムが起動する前に（インストールCDがするように）ハードウェアを自動的に検出しなければならないため、initrdはブート後すぐに起動します.

Configuring the modules
List the modules that need to be loaded automatically in. Extra options can be added to the modules too if necessary.

To view all available modules, run the following command. Don't forget to substitute " " with the version of the kernel just compiled:

For instance, to automatically load the module (which is the driver for a specific 3Com network card family), edit the  file and enter the module name in it.

Continue the installation with Configuring the system.

Optional: Installing firmware
Some drivers require additional firmware to be installed on the system before they work. This is often the case for network interfaces, especially wireless network interfaces. Most of the firmware is packaged in :