カーネル
カーネルは、オペレーティングシステムの中核です。ほとんどのデバイスドライバを含んでいるため、プログラムがメモリやグラフィックカード、ブロックデバイスのようなシステムハードウェアにアクセスするインタフェースを提供しています。
Gentoo は過去には異なるカーネルを提供していましたが、現在は Linux カーネルだけがサポートされています。
カーネルのインストールとセットアップについては、ハンドブックも参照してください。
どのカーネルをインストールするか?
Gentoo はカーネルを機能させるために、多くのディストリビューションが提供するのと同じような標準的なバイナリカーネルから、カスタム設定してコンパイルされるカーネルまで、やり方の選択肢を提供しています。
最初は、gentoo-kernel-bin がカーネルを機能させるための手っ取り早く簡単な方法を提供しつつ、軽量で高パフォーマンスなカーネルも提供します (他の現代的なディストリビューションがそうであるように)。システムのインストールが完了して正しく機能していれば、必要に応じて他のカーネルを選択することもできます。カスタムカーネルをブートしていて問題が発生した場合のために、sys-kernel/gentoo-kernel-bin は取っておくことができます。
gentoo-sources
カーネルソースを手動でコンパイルするとき、または Genkernel を使用して一部のプロセスを自動化するときには、Gentoo はほとんどのユーザに対し sys-kernel/gentoo-sources パッケージを推奨します。このパッケージの安定版は kernel.org 上流の long term stable (LTS) カーネルに追従しています。
ディストリビューションカーネル
ディストリビューションカーネルプロジェクトは、Portage を通じてカーネルをインストールおよび管理するためのパッケージを提供しています。これらのカーネルは emerge コマンドによって、(必要であれば) コンパイルして、インストールされるため、管理作業の負担を軽減することができます。カーネル更新はシステムを更新 (emerge -avuDN @world) するときに実行され、唯一の手動の操作は、ブートローダが新しいカーネルを利用するように設定することだけです。
これらのカーネルには、多くのシステムで「動作する」であろうデフォルト設定が付いています。自身のカーネルを最初から設定することに興味のないユーザは、これらのカーネルを使用することで、より手っ取り早く物事を始めることができます:
gentoo-kernel
sys-kernel/gentoo-kernel パッケージは、emerge されたときにコンパイルしてインストールされるカーネルを提供します。これには、多くのシステムですぐに動作するデフォルトの設定が付いていますが、望むのであればカスタマイズすることもできます。
gentoo-kernel-bin
sys-kernel/gentoo-kernel-bin はコンパイル済みのカーネルを含むバイナリパッケージで、より早くインストールできます。このパッケージは、gentoo-kernel パッケージをデフォルト設定で事前にコンパイルしたバージョンです。
gentoo-kernel* パッケージは、カーネルをコンパイルしてインストールする通常の手動での方法から独立して、設定とコンパイルのプロセスを自動化します。そのためこの記事の以降の部分では、sys-kernel/gentoo-sources パッケージを使用したインストールを扱います。ディストリビューションカーネルについてのさらなる情報に関しては、ディストリビューションカーネルプロジェクトを参照してください。
カーネルソースコードをインストールする
カーネルを得るには、まずはカーネルのソースコードをインストールする必要があります。デスクトップシステム向けでお奨めのカーネルソースは sys-kernel/gentoo-sources です。Gentoo 開発者たちが必要であればパッチを当てて維持しており、セキュリティや機能上の問題の修正を行うとともに、特殊なシステムアーキテクチャとの互換性が高められています。
USE フラグ
USE flags for sys-kernel/gentoo-sources Full sources including the Gentoo patchset for the 6.12 kernel tree
build
|
!!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping [make stage1] |
experimental
|
Apply experimental patches; for more information, see "https://wiki.gentoo.org/wiki/Project:Kernel/Experimental". |
symlink
|
Force kernel ebuilds to automatically update the /usr/src/linux symlink |
Emerge
sys-kernel/gentoo-sources をインストールするには:
root #
emerge --ask sys-kernel/gentoo-sources
その他のカーネル
Portage ツリーには他にも多くのカーネルパッケージが存在しています。これらの多くの詳細については、カーネルソースの概要の記事を確認してください。開発者 Greg Kroah-Hartman の記事 What Stable Kernel Should I Use? には、カーネルの選択に関するさらなる有用な情報があります。
すべてのカーネルパッケージを検索する
すべてのカーネルソースとその簡単な説明を一覧するには emerge を実行してください:
root #
emerge --search sources
カーネルを管理する
設定
- 自動設定
- カーネルと initramfs の作成を自動化するツールが genkernel です。カーネルの作成に臨むシステム管理者を手助けしてくれます。
- 手動設定を理解する
- 手動設定の概念をより幅広く理解できるようになるガイドです。
- 手動設定を適用する
- 作業を行うために必要なツールと手順を解説するガイド。
- Deblobbing
- A guide to deblobbing the kernel
- Security
- カーネルをハードニングするための手順。
- モジュール
- モジュールは、カーネルを拡張するためのコードを含むオブジェクトファイルです。
- 最適化
- カーネルのためのさまざまな最適化についての記載。
- コマンドライン引数
- トラブルシューティングのためにカーネルに対してブート時に渡すことができる、よく使われる一部のコマンドライン引数の説明。
アップグレード
- カーネルアップグレード
- 既存のコンフィギュレーションを流用してカーネルを更新する手順。
削除
- カーネル削除
- 古いカーネルを完全に削除するための手順。
トラブルシューティング
カーネル設定サポート
IKCONFIG サポートのサブ記事を参照してください。
カーネルコマンドラインパラメータ
ブートローダから起動する際、Linux カーネルは振る舞いを変更するためにコマンドラインパラメータを受け取ることができます。これによって例えば、ロードされるべきでない特定のモジュールをブラックリストに登録することで、カーネル起動時のトラブルシューティングを行いやすくすることができます。さらなる詳細については Gentoo の Kernel/Command-line parameters の記事を参照してください。
Kernel.org の admin guide には、きちんと整形された利用可能なカーネルのコマンドラインパラメータの一覧があります。
関連項目
- fwupd — a daemon that provides a safe, reliable way of applying firmware updates on Linux.
- Linux firmware — 特定のハードウェアデバイスの一部または全体を機能させるために必要なファームウェアバイナリブロブを含み、Linux カーネルとまとめて頒布されているパッケージです。
- Project:Distribution Kernel — aims to maintain sys-kernel/*-kernel packages.
- The kernel category - カーネルに関する記事のすべて。
- The hardware category - カーネル設定に関連するハードウェアスタックの一覧。
外部資料
- planet.kernel.org/ - Linux カーネル関連のブログ集。
- kernelnewbies.org/ - 「研鑽を続ける新米カーネル開発者と、知識の共有を惜しまないベテラン開発者のためのコミュニティ」
- kernel.org/doc/ - Linux カーネルのための公式の包括的なドキュメンテーション。
- What Stable Kernel Should I Use? - カーネル開発者 Greg Kroah-Hartman による記事。
- Building the kernel as root can be harmful
- The Linux Kernel Module Programming Guide