カーネル
カーネルは、オペレーティングシステムの中核です。ほとんどのデバイスドライバを含んでいるため、プログラムがメモリやグラフィックカード、ブロックデバイスのようなシステムハードウェアにアクセスするインタフェースを提供しています。
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 についてのさらなる情報は、distribution kernel project を参照してください。
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 を使う場合のインストールを取り扱います。
USE フラグ
カーネルを得るには、まずはカーネルのソースコードをインストールする必要があります。デスクトップシステム向けでお奨めのカーネルソースは sys-kernel/gentoo-sources です。Gentoo 開発者たちが必要であればパッチを当てて維持しており、セキュリティや機能上の問題の修正を行うとともに、特殊なシステムアーキテクチャとの互換性が高められています。
USE flags for sys-kernel/gentoo-sources Full sources including the Gentoo patchset for the 6.5 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
その他のカーネル
Gentoo が提供する安定カーネルは sys-kernel/gentoo-sources のみですが、Portage ツリーには他にも多くのカーネルパッケージが存在しています。Kernel/概要の記事を確認してください。カーネルパッケージのほとんどについての詳細が記述されています。
どれを選ぶべきかについては、主要なカーネル開発者の Greg Kroah-Hartman によるブログ記事 What Stable Kernel Should I Use? も参考にしてください。
すべてのカーネルパッケージを検索する
すべてのカーネルソースとその簡単な説明を一覧するには emerge を実行してください:
root #
emerge --search "%@^sys-kernel/.*sources"
カーネルを管理する
設定
- 自動設定
- カーネルと initramfs の作成を自動化するツールが genkernel です。カーネルの作成に臨むユーザーを全面的に手助けすることを目標として設計されています。
- 手動設定
- 手動設定をすれば、いくらかの努力も必要ではありますが、最適にカスタマイズしたカーネル設定の利用ができます。
- Gentoo カーネルコンフィグレーションガイド
- Gentoo のカーネルコンフィグレーションガイド
- Kernel security
- カーネルをハードニングするための手順。
- カーネルモジュールを管理する
- カーネルモジュールは、カーネルを拡張するためのコードを含むオブジェクトファイルです。
- カーネル最適化
- パフォーマンスなど、カーネルのためのさまざまな最適化について記載しています。
アップグレード
- アップグレード
- 既存のコンフィグレーションを流用してカーネルを更新する手順。
削除
- 削除
- 古いカーネルを完全に削除するための手順。
トラブルシューティング
In-kernel 設定サポート
IKCONFIG サポートのサブ記事を参照してください。
カーネルコマンドラインパラメータ
ブートローダから起動する際、Linuxカーネルは振る舞いを変更するためにコマンドラインパラメータを受け取ることができます。これによって、ロードされるべきでない特定のモジュールをブラックリストに登録することで、カーネル起動時のトラブルシューティングを行いやすくすることができます。
Kernel.org の admin guide には、きちんと整形された利用可能なカーネルのコマンドラインパラメータの一覧があります。
特に、以下のコマンドラインパラメータはGentooを起動する際に便利かもしれません:
earlyprintk=
module_blacklist=
nomodule
loglevel=
rootdelay=
関連項目
- fwupd — a daemon that provides a safe, reliable way of applying firmware updates on Linux.
- Genkernel — カーネルと initramfs を自動的にビルドすることができる Gentoo 謹製のツールです。
- Kernel/IKCONFIG support — Enabling In-kernel Config (IKCONFIG) support for the Linux kernel enables the inspection of kernel configuration for running kernels.
- Kernel/Migrate 2.4 to 2.6 -- Linux カーネルコードベースは 2.6 から劇的に変化しているので、これらの移行作業手順はもう意味を失っていますが、管理者の理解の助けにはなるかもしれません。
- 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