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

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

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

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

次はカーネルモジュールです.

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

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

では、genkernelの使い方を見てみましょう. 最初にをemergeします.

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

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

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

モジュールの設定
に自動的にロードしなければならないモジュールを記載してください. 必要であれば、モジュールに追加のオプションを与えることもできます.

すべての利用可能なモジュールを把握するためには、次のコマンドを実行してください. " "をたった今コンパイルしたカーネルのバージョンで置き換えることを忘れないでください.

たとえば、モジュール（特定の3Comネットワークカード）を自動的にロードするためには、にモジュール名を記載してください.

では、システムの設定に進み、インストールを続けましょう.

任意自由選択: ファームウェアのインストール
いくつかのドライバは、動作可能にするために追加のファームウェアのインストールを必要とします. これはしばしばネットワークインターフェース、特に無線ネットワークで必要になります. ファームウェアの多くはにパッケージされています.