カーネル

提供: ArchWiki
2022年1月28日 (金) 19:53時点におけるKgx (トーク | 投稿記録)による版 (前文の情報更新)
ナビゲーションに移動 検索に移動

関連記事

Wikipedia より:

カーネルは、階層型に設計されたオペレーティングシステム (OS) の中核となる部分である。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋である。システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理する。

Arch Linux は Linux カーネルをベースにしています。Arch Linux では最新の安定版カーネルに加え、様々な代替 Linux カーネルを利用することができます。この記事では、リポジトリで利用可能な選択肢のいくつかを、それぞれの簡単な説明とともにリストアップしています。また、システムのカーネルに適用できるパッチについての説明もあります。記事の最後には、カスタムカーネルのコンパイルについての概要と、様々な方法へのリンクがあります。

カーネルパッケージはファイルシステム上の /boot/インストール されます。カーネルで起動できるようにするには、ブートローダー を適切に設定する必要があります。

公式サポートカーネル

公式にサポートされているカーネルについては、フォーラムでのコミュニティサポートとバグレポートを利用できます。

linux
[core] リポジトリにある Linux カーネルとモジュール。バニラカーネル(素のカーネル)に多少のパッチが適用されています
linux-hardened
カーネルやユーザースペースに対する脆弱性攻撃から防護する ハードニングパッチセット が適用されたセキュリティ指向 Linux カーネル。ユーザー名前空間 (非特権による使用はパッチで無効化済み) や audit、あるいは SELinux など標準の linux には含まれていないカーネルの堅牢化機能も有効になっています。
linux-lts
[core] リポジトリにある長期サポート版 (Long term support, LTS) の Linux カーネルとモジュール。
linux-zen
ZEN Kernel はカーネルハッカーたちの知恵の結晶です。日常的な利用にうってつけの最高の Linux カーネルになります。詳しい情報は https://liquorix.net を見てください (Debian 向けの ZEN ベースのカーネルバイナリ)。

コンパイル

次の方法を使って、独自のカーネルをコンパイルできます。

Arch Build System
既存の linux PKGBUILD の高品質とパッケージ管理の利点を利用していす。
伝統的な方法
手動でソースの tarball をダウンロードし、ホームディレクトリで通常のユーザーとしてコンパイルする必要があります。
警告:
  • カスタムカーネルを使用すると、データの損失など、あらゆる種類の安定性と信頼性の問題が発生する可能性があります。バックアップ をとることを強くお勧めします。
  • Arch Linux は #公式サポートカーネルのみを公式にサポートしています。別のカーネルを使用する場合は、サポートリクエストにその旨を記載してください。
ヒント:
  • システムの速度を上げる最良の方法は、まず、カーネルの設定をアーキテクチャやプロセッサの種類に合わせることです。
  • 自分が持っていないもの、使っていないもののサポートを含まないようにすることで、カーネルのサイズ(つまりビルド時間)を小さくすることができます。例えば、 bluetooth、video4linux、1000Mbit イーサネットなどのサポートです。
Arch のカーネルパッケージの設定ファイルは Arch のパッケージのソースファイルに含まれています。例えば linux のは [1] にリンクがあります。今現在動かしているカーネルのコンフィグファイルはファイルシステムの /proc/config.gz に存在します (カーネルオプションの CONFIG_IKCONFIG_PROC が有効になっている場合)。

リストにあるパッケージの中には、非公式ユーザーリポジトリからバイナリパッケージを入手できるものもあります。

kernel.org カーネル

linux-gitAUR
Linus Torvalds の git リポジトリ から得たソースを使ってビルドする Linux カーネルとモジュール。
linux-mainlineAUR
メインラインの Linux カーネルとモジュール。
linux-next-gitAUR
Next —次のメインラインリリースにマージされる予定の機能を備えた最先端のカーネル。
linux-lts44AUR
Longterm 4.4 長期サポート版カーネルとモジュール。
linux-lts49AUR
Longterm 4.9 長期サポート版カーネルとモジュール。
linux-lts414AUR
Longterm 4.14 長期サポート版カーネルとモジュール。
linux-lts419AUR
Longterm 4.19 長期サポート版カーネルとモジュール。
linux-lts54AUR
Longterm 5.4 長期サポート版カーネルとモジュール。
linux-lts510AUR
Longterm 5.10 長期サポート版カーネルとモジュール。

非公式カーネル

  • Aufs — aufs 対応の linux カーネルとモジュール。Docker を使用する際に有用。
http://aufs.sourceforge.net/ || linux-aufsAUR
  • Ck — デスクトップに特に重点を置いてシステムの応答性を向上させるように設計された Con Kolivas (MuQSS scheduler を含む) によるパッチが含まれていますが、どのような使用目的でも問題なく使えます
http://ck.kolivas.org/ || linux-ckAUR
  • GalliumOS — Linux カーネルと Chromebook 用の GalliumOS パッチを備えたモジュール。
https://github.com/GalliumOS/linux || linux-galliumosAUR
https://www.fsfla.org/ikiwiki/selibre/linux-libre/ || linux-libreAUR
  • Liquorix — Debian をターゲットとした設定と Zen カーネルソースを使用して構築されたカーネル代替品。デスクトップ、マルチメディア、ゲームなどのワークロード向けに設計されており、Debian Linux の性能代替カーネルとしてよく利用されます。Liquorix パッチセットのメンテナである Damentz は、同様に Zen パッチセットの開発者でもあります。
https://liquorix.net || linux-lqxAUR
  • linux-clear — Intel の Clear Linux プロジェクトからのパッチ、パフォーマンスとセキュリティの最適化を提供します。
https://github.com/clearlinux-pkgs/linux || linux-clearAUR
  • linux-lqxLiquorix はデスクトップ・マルチメディア・ゲーム用途に Debian 用の設定と ZEN カーネルソースを使ってビルドされたディストロカーネル代替です。Debian Linux ではパフォーマンス向上カーネルとしてよく使われています。Liquorix パッチセットのメンテナである Damentz は ZEN パッチセットの開発者でもあります。
https://liquorix.net || linux-lqxAUR
  • MultiPath TCP — に対応する Linux カーネルとモジュール。
https://multipath-tcp.org/ || linux-mptcpAUR
  • pf-kernel — カーネルメインラインにマージされない、ほんの少しの素晴らしい機能を提供します。カーネルエンジニアによって管理されています。新しいカーネルのための含まれるパッチのポートが公式にリリースされていない場合、パッチセットは新しいカーネルへのパッチポートを提供し、サポートします。linux-pf の現在の代表的なパッチは、PDS CPU スケジューラと UKSM です。
https://gitlab.com/post-factum/pf-kernel/wikis/README || パッケージ:
  • Realtime kernel — IngoMolnar が 率いるコア開発者の小グループによって維持されています。このパッチを使用すると、コードのいくつかの非常に小さな領域(raw_spinlock クリティカル領域)を除いて、ほぼすべてのカーネルをプリエンプトできます。これは、ほとんどのカーネルスピンロックを優先度継承をサポートするミューテックスに置き換え、すべての割り込みとソフトウェア割り込みをカーネルスレッドに移動することによって行われます。
https://wiki.linuxfoundation.org/realtime/start || linux-rtAUR, linux-rt-ltsAUR
  • VFIO — Alex Williamson によって作成されたいくつかのパッチ(acs オーバーライドおよび i915)により、一部のマシンで KVM を使用して PCI パススルーを実行できるようになります。
https://lwn.net/Articles/499240/ || linux-vfioAUR, linux-vfio-ltsAUR
  • Xanmod — 高性能ワークステーション、ゲーミングデスクトップ、メディアセンターなどで最大限に活用されることを目指し、より強固で応答性の高い、スムーズなデスクトップ体験を提供するために構築されています。このカーネルは、MuQSS またはタスクタイプスケジューラ、BFQ I/O スケジューラ、UKSM リアルタイムメモリーデータ重複排除、TCP BBR 輻輳制御、x86_64 高度命令セットサポート、および他のデフォルト値を変更しています。
https://xanmod.org/ || linux-xanmodAUR, linux-xanmod-ttAUR

リグレッション デバッグ

一般的なトラブルシューティング#リグレッション デバッグ を参照してください。

linux-mainlineAUR を試して、その問題が既に上流で修正されているかどうかを確認してください。stickied コメントは既にビルドされたカーネルを含むリポジトリにも言及しているので、時間がかかる手動でのビルドは必要ないかもしれません。

最近発生しなかった問題をデバッグするために LTS カーネル (linux-lts) を試してみることも検討する価値があるかもしれません。LTS カーネルの古いバージョンは Arch Linux Archive で見つけることができます。

それでも問題が解決しないときは、bisect をしてください。linux-gitAURkernel bugzilla でバグを報告してください。パッチと関係ないことを確認するために、パッチなしの バニラ バージョンを試すことが重要です。もしパッチが問題を引き起こすなら、そのパッチの作者に報告してください。

ノート: Bisecting the kernel は何度も作り直さなければならないので、かなりの時間がかかるかもしれません。

参照