カーネル

提供: ArchWiki
2022年3月12日 (土) 14:30時点におけるKgx (トーク | 投稿記録)による版 (→‎コンパイル: 翻訳を修正)
ナビゲーションに移動 検索に移動

関連記事

Wikipedia より:

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

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

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

公式サポートカーネル

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

  • Stable — Vanilla Linux カーネルとモジュール、いくつかのパッチが適用されています
https://www.kernel.org/ || linux
  • Hardened — カーネルおよびユーザ空間の脆弱性を緩和するための一連の堅牢化パッチを適用した、セキュリティに特化した Linux カーネルです。また、linux よりも多くのアップストリームカーネルハードニング機能を有効にします。
https://github.com/anthraxx/linux-hardened || linux-hardened
  • Longterm — 長期サポート (LTS) Linux カーネルおよびモジュール
https://www.kernel.org/ || linux-lts
  • Zen Kernel — カーネルハッカーの共同作業により、日常的なシステムに最適な Linux カーネルです。より詳細な情報は https://liquorix.net (Zen をベースにした Debian 用のカーネルバイナリを提供) で見ることができます。
https://github.com/zen-kernel/zen-kernel || linux-zen

コンパイル

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

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

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

kernel.org カーネル

  • Git — Linus Torvalds の git リポジトリから得たソースを使ってビルドする Linux カーネルとモジュール。
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git || linux-gitAUR
  • Mainline — すべての新機能が導入されるカーネル、2〜3ヶ月ごとにリリースされます。
https://www.kernel.org/ || linux-mainlineAUR
  • Next — 次の Mainline リリースにマージされる予定の機能を持つ先端のカーネル。
https://www.kernel.org/doc/man-pages/linux-next.html || linux-next-gitAUR
  • Longterm 4.9 — 長期サポート (LTS) Linux 4.9 カーネルとモジュール。
https://www.kernel.org/ || linux-lts49AUR
  • Longterm 4.14 — 長期サポート (LTS) Linux 4.14 カーネルとモジュール。
https://www.kernel.org/ || linux-lts414AUR
  • Longterm 4.19 — 長期サポート (LTS) Linux 4.19 カーネルとモジュール。
https://www.kernel.org/ || linux-lts419AUR
  • Longterm 5.4 — 長期サポート (LTS) Linux 5.4 カーネルとモジュール。
https://www.kernel.org/ || linux-lts54AUR
  • Longterm 5.10 — 長期サポート (LTS) Linux 5.10 カーネルとモジュール。
https://www.kernel.org/ || linux-lts510AUR

非公式カーネル

  • 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 は何度も作り直さなければならないので、かなりの時間がかかるかもしれません。

参照