「カーネル」の版間の差分
(微修正) |
(→コンパイル: ミスタイプ修正) |
||
36行目: | 36行目: | ||
次の方法を使って、独自のカーネルをコンパイルできます。 |
次の方法を使って、独自のカーネルをコンパイルできます。 |
||
− | ; [[カーネル/コンパイル/Arch Build System|Arch Build System]]: 既存の {{Pkg|linux}} [[PKGBUILD]] の高品質と[[Wikipedia:Package management system|パッケージ管理]]の利点を |
+ | ; [[カーネル/コンパイル/Arch Build System|Arch Build System]]: 既存の {{Pkg|linux}} [[PKGBUILD]] の高い品質と [[Wikipedia:Package management system|パッケージ管理]] の利点を生かします。 |
; [[カーネル/コンパイル/伝統的な方法|伝統的な方法]]: 手動でソースの tarball をダウンロードし、ホームディレクトリで通常のユーザーとしてコンパイルする必要があります。 |
; [[カーネル/コンパイル/伝統的な方法|伝統的な方法]]: 手動でソースの tarball をダウンロードし、ホームディレクトリで通常のユーザーとしてコンパイルする必要があります。 |
||
2022年2月16日 (水) 23:09時点における版
Wikipedia より:
- カーネルは、階層型に設計されたオペレーティングシステム (OS) の中核となる部分である。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋である。システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理する。
Arch Linux は Linux カーネルをベースにしています。Arch Linux では最新の安定版カーネルに加え、様々な代替 Linux カーネルを利用することができます。この記事では、リポジトリで利用可能な選択肢のいくつかを、それぞれの簡単な説明とともにリストアップしています。また、システムのカーネルに適用できるパッチについての説明もあります。記事の最後には、カスタムカーネルのコンパイルについての概要と、様々な方法へのリンクがあります。
カーネルパッケージはファイルシステム上の /boot/
に インストール されます。カーネルで起動できるようにするには、ブートローダー を適切に設定する必要があります。
公式サポートカーネル
公式にサポートされているカーネルについては、フォーラムでのコミュニティサポートとバグレポートを利用できます。
- Stable — Vanilla Linux カーネルとモジュール、いくつかのパッチが適用されています
- Hardened — カーネルおよびユーザ空間の脆弱性を緩和するための一連の堅牢化パッチを適用した、セキュリティに特化した Linux カーネルです。また、linux よりも多くのアップストリームカーネルハードニング機能を有効にします。
- Longterm — 長期サポート (LTS) Linux カーネルおよびモジュール
- Zen Kernel — カーネルハッカーの共同作業により、日常的なシステムに最適な Linux カーネルです。より詳細な情報は https://liquorix.net (Zen をベースにした Debian 用のカーネルバイナリを提供) で見ることができます。
コンパイル
次の方法を使って、独自のカーネルをコンパイルできます。
- Arch Build System
- 既存の linux PKGBUILD の高い品質と パッケージ管理 の利点を生かします。
- 伝統的な方法
- 手動でソースの tarball をダウンロードし、ホームディレクトリで通常のユーザーとしてコンパイルする必要があります。
リストにあるパッケージの中には、非公式ユーザーリポジトリからバイナリパッケージを入手できるものもあります。
kernel.org カーネル
- Git — Linus Torvalds の git リポジトリから得たソースを使ってビルドする Linux カーネルとモジュール。
- Mainline — すべての新機能が導入されるカーネル、2〜3ヶ月ごとにリリースされます。
- Next — 次の Mainline リリースにマージされる予定の機能を持つ先端のカーネル。
- Longterm 4.9 — 長期サポート (LTS) Linux 4.9 カーネルとモジュール。
- Longterm 4.14 — 長期サポート (LTS) Linux 4.14 カーネルとモジュール。
- Longterm 4.19 — 長期サポート (LTS) Linux 4.19 カーネルとモジュール。
- Longterm 5.4 — 長期サポート (LTS) Linux 5.4 カーネルとモジュール。
- Longterm 5.10 — 長期サポート (LTS) Linux 5.10 カーネルとモジュール。
非公式カーネル
- Aufs — aufs 対応の linux カーネルとモジュール。Docker を使用する際に有用。
- Ck — デスクトップに特に重点を置いてシステムの応答性を向上させるように設計された Con Kolivas (MuQSS scheduler を含む) によるパッチが含まれていますが、どのような使用目的でも問題なく使えます
- GalliumOS — Linux カーネルと Chromebook 用の GalliumOS パッチを備えたモジュール。
- Liquorix — Debian をターゲットとした設定と Zen カーネルソースを使用して構築されたカーネル代替品。デスクトップ、マルチメディア、ゲームなどのワークロード向けに設計されており、Debian Linux の性能代替カーネルとしてよく利用されます。Liquorix パッチセットのメンテナである Damentz は、同様に Zen パッチセットの開発者でもあります。
- linux-clear — Intel の Clear Linux プロジェクトからのパッチ、パフォーマンスとセキュリティの最適化を提供します。
- linux-lqx — Liquorix はデスクトップ・マルチメディア・ゲーム用途に Debian 用の設定と ZEN カーネルソースを使ってビルドされたディストロカーネル代替です。Debian Linux ではパフォーマンス向上カーネルとしてよく使われています。Liquorix パッチセットのメンテナである Damentz は ZEN パッチセットの開発者でもあります。
- MultiPath TCP — に対応する Linux カーネルとモジュール。
- pf-kernel — カーネルメインラインにマージされない、ほんの少しの素晴らしい機能を提供します。カーネルエンジニアによって管理されています。新しいカーネルのための含まれるパッチのポートが公式にリリースされていない場合、パッチセットは新しいカーネルへのパッチポートを提供し、サポートします。linux-pf の現在の代表的なパッチは、PDS CPU スケジューラと UKSM です。
- https://gitlab.com/post-factum/pf-kernel/wikis/README || パッケージ:
- Repository pf-kernel 開発者 post-factum
- Repository linux-pfAUR, linux-pf-preset-defaultAUR pf-kernel 開発者 Thaodan
- linux-pf-gitAUR yurikoles
- Realtime kernel — IngoMolnar が 率いるコア開発者の小グループによって維持されています。このパッチを使用すると、コードのいくつかの非常に小さな領域(raw_spinlock クリティカル領域)を除いて、ほぼすべてのカーネルをプリエンプトできます。これは、ほとんどのカーネルスピンロックを優先度継承をサポートするミューテックスに置き換え、すべての割り込みとソフトウェア割り込みをカーネルスレッドに移動することによって行われます。
- VFIO — Alex Williamson によって作成されたいくつかのパッチ(acs オーバーライドおよび i915)により、一部のマシンで KVM を使用して PCI パススルーを実行できるようになります。
- 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-gitAUR 、kernel bugzilla でバグを報告してください。パッチと関係ないことを確認するために、パッチなしの バニラ バージョンを試すことが重要です。もしパッチが問題を引き起こすなら、そのパッチの作者に報告してください。
参照
- O'Reilly - Linux Kernel in a Nutshell (フリーの電子書籍)
- What stable kernel should I use? by Greg Kroah-Hartman
- Linux kernel documentation