Handbook:Parts/Installation/Kernel/ja

任意自由選択: ファームウェアとマイクロコードのインストール
カーネルコンフィグの節へ進む前に知っておいたほうが良いこととして、一部のデバイスは、それを適切に動作させるために追加のファームウェアのインストールする必要がある、ということがあります. これはネットワークインターフェース、特に、デスクトップとラップトップの両方で広く使用される、無線ネットワークインターフェースで必要になることが多いです. AMD、Nvidia、Intel などのベンダによる最近のビデオチップも、完全に機能させるには外部のファームウェアが必要になることが多いです. 最近のハードウェアのためのファームウェアの多くは パッケージ内で入手可能です. これらのベンダによるグラフィックカードを使用するシステムでは、グラフィックカードを使えるようにするために、カーネルを構成してインストールする前にこのファームウェアパッケージを emerge しておくのが賢明です.

In addition to discrete graphics hardware and network interfaces, CPUs also can require firmware updates. Typically this kind of firmware is referred to as microcode. Newer revisions of microcode are sometimes necessary to patch instability, security concerns, or other bugs in CPU hardware.

Microcode updates for AMD CPUs are typically distributed with the aforementioned linux-firmware package. Microcode for Intel CPUs can be found in the package, which will need to be installed separately. See the Microcode article for more information on how to apply microcode updates.

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


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

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

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

カーネルソースのインストール
ベースのシステムのために、Gentooはパッケージを推奨しています.

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

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

It is conventional for a symlink to be maintained, such that it refers to whichever sources correspond with the currently running kernel. However, this symbolic link will not be created by default. An easy way to create the symbolic link is to utilize eselect's kernel module.

For further information regarding the purpose of the symlink, and how to manage it, please refer to Kernel/Upgrade.

First, list all installed kernels:

In order to create a symbolic link called, use:

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

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

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

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

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

必須オプションを有効にする
もし を使用する場合は、Gentoo 固有のコンフィギュレーションオプションを有効化することを強く推奨します. これらは、正しく機能するために必要な最小限のカーネルの機能が有効化されることを確実にします:

通常、最後の 2 行の選択はあなたの init システムの選択（OpenRC か Systemd か）に依存します.

Naturally the choice in the last two lines depends on the selected init system (OpenRC vs. systemd). It does not hurt to have support for both init systems enabled.

もし を使用する場合は、自身で必須オプションを探すことが必要になるでしょう.

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

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

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

SCSI ディスクサポートが有効になっているか確認してください( CONFIG_BLK_DEV_SD ):

次にFile Systemsで、使用するファイルシステムに必要なサポートを選択しましょう. ルートファイルシステムに使われるファイルシステムをモジュールとしてコンパイルしてはいけません. モジュールにした場合、Gentooシステムはパーティションをマウントできないでしょう. また、ここでVirtual memoryと/proc file systemも選択してください. システムの必要に応じて以下の選択肢から1個以上を選択してください ( CONFIG_EXT2_FS, CONFIG_EXT3_FS , CONFIG_EXT4_FS , CONFIG_MSDOS_FS , CONFIG_VFAT_FS , CONFIG_PROC_FS , and CONFIG_TMPFS ):

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

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

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

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

USB接続の入力装置（キーボードやマウス）などのUSBデバイスを使用する場合、以下を必ず有効にしてください ( CONFIG_HID_GENERIC and CONFIG_USB_HID, CONFIG_USB_SUPPORT , CONFIG_USB_XHCI_HCD , CONFIG_USB_EHCI_HCD , CONFIG_USB_OHCI_HCD ):

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

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

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

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

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

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

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

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

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

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

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

モジュールの設定
ファイルに、自動的にロードしなければならないモジュールを改行区切りで記載してください. モジュールに追加のオプションを与える必要があれば、ファイルで設定すべきです.

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

たとえば、モジュール（特定の3Comネットワークカード）を自動的にロードするためには、にモジュール名を記載してください. 実際のファイル名はローダにとって重要ではありません.

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