Handbook:Parts/Installation/Kernel/ja

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

It is recommended to have the package installed before the initial system reboot in order to have the firmware available in the event that it is necessary:

It is important to note that kernel symbols that are built as modules (M) will load their associated firmware files from the filesystem when they are loaded by the kernel. It is not necessary to include the device's firmware files into the kernel's binary image for symbols loaded as modules.

Microcode
個別のグラフィックスハードウェアやネットワークインターフェースに加えて、CPU もまたファームウェアアップデートを必要とすることがあります. こうしたファームウェアは典型的にはマイクロコードと呼ばれます. 新しいリビジョンのマイクロコードは、動作の不安定さ、セキュリティ上の懸念、その他の CPU ハードウェアのバグに対するパッチとして、必要になることがあります.

AMD CPU に対するマイクロコードアップデートは、典型的には先述の linux-firmware パッケージとともに配布されます. Intel CPU に対するマイクロコードは パッケージ内で見つかりますので、これを個別にインストールする必要があります. マイクロコードアップデートを適用する方法についてのさらなる情報は、マイクロコードの記事を確認してください.

カーネルのコンフィギュレーションとコンパイル
これで、カーネルソースを設定、コンパイルする準備が整いました. この設定およびコンパイルには 3 つのアプローチがあります.

Ranked from least involved to most involved:


 * 1) カーネルをマニュアルで設定およびビルドする.
 * 2) Linux カーネルを自動的にビルド・インストールする  を使用する.
 * 3) Linux カーネルを、他のパッケージと同様に自動的にビルド・インストールするディストリビューションカーネルを使用する.

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

カーネルソースのインストール
When installing and compiling the kernel for -based systems, Gentoo recommends the package.

Choose an appropriate kernel source and install it using :

このコマンドはカーネルソースを の下に、カーネルバージョン毎のパスを分けてインストールします. 選択されたカーネルソースパッケージに対して  が有効化されていなければ、シンボリックリンクは自動で作成されません.

現在実行しているカーネルに対応するソースを指すように、 シンボリックリンクを維持することは慣例となっています. しかし、このシンボリックリンクはデフォルトでは作成されないでしょう. シンボリックリンクを作成する簡単な方法は、eselect の kernel モジュールを利用することです.

シンボリックリンクの目的と、それを管理する方法についてのさらなる情報は、Kernel/Upgrade を参照してください.

まず、インストールされているカーネルを一覧表示します:

シンボリックリンクを作成するには、次を使用してください:

別の方法: genkernelを使用する
もしマニュアル設定に気後れしてしまった場合、 を使うことを考えてみてください. は自動的にカーネルを設定し、ビルドします.

Genkernel provides a generic kernel configuration file, automatically generates the kernel, initramfs, and associated modules, and then installs the resulting binaries to the appropriate locations. This results in minimal and generic hardware support for the system's first boot, and allows for additional update control and customization of the kernel's configuration in the future.

Be informed: while using to maintain the kernel provides system administrators with more update control over the system's kernel, initramfs, and other options, it will require a time and effort commitment to perform future kernel updates as new sources are released. Those looking for a hands-off approach to kernel maintenance should use a distribution kernel.

For additional clarity, it is a misconception to believe genkernel automatically generates a custom kernel configuration for the hardware on which it is run; it uses a per-determined kernel configuration that supports most generic hardware and automatically handles the commands necessary to assemble and install the kernel, the associate modules, and the initramfs file.

Binary redistributable software license group
If the linux-firmware package has been previously installed, then skip onward to the to the installation section.

As a prerequisite, due to the  USE flag being enabled by default for the  package, the package manager will also attempt to pull in the  package. The binary redistributable software licenses are required to be accepted before the linux-firmware will install.

This license group can be accepted system-wide for any package by adding the  as an ACCEPT_LICENSE value in the  file. It can be exclusively accepted for the linux-firmware package by adding a specific inclusion via a file.

If necessary, review the methods of accepting software licenses available in the Installing the base system chapter of the handbook, then make some changes for acceptable software licenses.

If in analysis paralysis, the following will do the trick:

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

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

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

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

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

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

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

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

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

通常、最後の 2 行の選択は init システムの選択（OpenRC か systemd か）に依存します. 両方の init システムへのサポートを有効化しても害はありません.

もし を使用する場合は、この init システムに関する追加の選択項目は利用できないでしょう. サポートを有効化することは可能ですが、このハンドブックの範囲からは外れることです.

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

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

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

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

Verify basic NVMe support has been enabled:

It does not hurt to enable the following additional NVMe support:

次にFile Systemsで、システムが使用するファイルシステムに必要なサポートを選択しましょう. ルートファイルシステムに使われるファイルシステムをモジュールとしてコンパイルしてはいけません. モジュールにした場合、システムがパーティションをマウントできないおそれがあります. また、ここで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 - initial ram-based file system (訳注: 起動時の RAM ベースのファイルシステム) のビルドが必要になります. 最もよくある理由は、重要なディレクトリ（、等）が別パーティションにある場合です. initramfsがあれば、initramfsの中にあるツールを使うことで、これらのパーティションをマウントすることができます.

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

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

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

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

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

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

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

Note that the module's file suffix is insignificant to the loading mechanism and left out of the configuration file:

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