<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E7%94%B0%E4%B8%AD%E3%81%95%E3%82%93</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E7%94%B0%E4%B8%AD%E3%81%95%E3%82%93"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/%E7%94%B0%E4%B8%AD%E3%81%95%E3%82%93"/>
	<updated>2026-04-13T11:14:44Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB&amp;diff=33588</id>
		<title>カーネル</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB&amp;diff=33588"/>
		<updated>2023-08-25T17:35:59Z</updated>

		<summary type="html">&lt;p&gt;田中さん: /* 公式サポートカーネル */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:カーネル]]&lt;br /&gt;
[[Category:ソフトウェア一覧]]&lt;br /&gt;
[[bs:Kernel]]&lt;br /&gt;
[[en:Kernel]]&lt;br /&gt;
[[fr:Kernel]]&lt;br /&gt;
[[pt:Kernel]]&lt;br /&gt;
[[ru:Kernel]]&lt;br /&gt;
[[zh-hans:Kernel]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|カーネルモジュール}}&lt;br /&gt;
{{Related|カーネルモジュールのコンパイル}}&lt;br /&gt;
{{Related|sysctl}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
Wikipedia によると:&lt;br /&gt;
:[[Wikipedia:ja:Linuxカーネル|Linux カーネル]]とは、モノリシックで Unix ライクなオープンソースのコンピュータ[[Wikipedia:ja:カーネル|オペレーティングシステムカーネル]]である。&lt;br /&gt;
&lt;br /&gt;
[[Arch Linux]] は Linux カーネルをベースにしています。Arch Linux では最新の安定版カーネルに加え、様々な代替 Linux カーネルを利用することができます。この記事では、リポジトリで利用可能な選択肢のいくつかを、それぞれの簡単な説明とともにリストアップしています。また、システムのカーネルに適用できるパッチについての説明もあります。記事の最後には、カスタムカーネルのコンパイルについての概要と、様々な方法へのリンクがあります。&lt;br /&gt;
&lt;br /&gt;
カーネルのパッケージは {{ic|/usr/lib/modules/}} に[[インストール]]されます。その後、パッケージは [[Wikipedia:ja:vmlinuz|vmlinuz]] 実行可能イメージを生成するために使用され、生成されたイメージは {{ic|/boot/}} へ保存されます。[https://archlinux.org/news/new-kernel-packages-and-mkinitcpio-hooks/] 異なるカーネルをインストールしたり、複数のカーネルを切り替えたりする場合は、変更を反映させるために[[ブートローダー]]を設定しなければなりません。&lt;br /&gt;
&lt;br /&gt;
== 公式サポートカーネル ==&lt;br /&gt;
&lt;br /&gt;
公式にサポートされているカーネルについては、[https://bbs.archlinux.org/viewforum.php?id=22 フォーラム]でのコミュニティサポートと[[バグ報告ガイドライン|バグレポート]]を利用できます。&lt;br /&gt;
&lt;br /&gt;
* {{App|Stable|kernel.orgのカーネルにいくつかのパッチを適用した、Arch独自のカーネル。バージョン4.17.11-1以降、Archのカーネルはもはやバニラカーネルではありません。|https://github.com/archlinux/linux/|{{Pkg|linux}}}}&lt;br /&gt;
* {{App|Hardened|カーネルおよびユーザ空間の脆弱性を緩和するための一連の堅牢化パッチを適用した、セキュリティ特化の Linux カーネルです。また、{{Pkg|linux}} よりも多くの上流のカーネル堅牢化機能を有効にします。|https://github.com/anthraxx/linux-hardened|{{Pkg|linux-hardened}}}}&lt;br /&gt;
* {{App|Longterm|長期サポート (LTS) Linux カーネルおよびモジュール。linuxと異なり、こちらは現在でもバニラカーネルです。|https://www.kernel.org/|{{Pkg|linux-lts}}}}&lt;br /&gt;
* {{App|[[リアルタイムカーネル]]|IngoMolnar が率いるコア開発者の小グループによって維持されています。このパッチを使用すると、コードのいくつかの非常に小さな領域（&amp;quot;raw_spinlock クリティカル領域&amp;quot;）を除いて、ほぼすべてのカーネルをプリエンプトできます。これは、ほとんどのカーネルスピンロックを優先度継承をサポートするミューテックスに置き換え、すべての割り込みとソフトウェア割り込みをカーネルスレッドに移動することによって行われます。|https://wiki.linuxfoundation.org/realtime/start|{{Pkg|linux-rt}}, {{Pkg|linux-rt-lts}}}}&lt;br /&gt;
* {{App|Zen Kernel|カーネルハッカーの共同作業により、日常的なシステムに最適な Linux カーネルです。より詳細な情報は https://liquorix.net (Zen をベースにした Debian 用のカーネルバイナリを提供) で見ることができます。|https://github.com/zen-kernel/zen-kernel|{{Pkg|linux-zen}}}}&lt;br /&gt;
&lt;br /&gt;
== コンパイル ==&lt;br /&gt;
&lt;br /&gt;
次の方法を使って、独自のカーネルをコンパイルできます。&lt;br /&gt;
&lt;br /&gt;
; [[カーネル/Arch build system|Arch Build System]]: 既存の {{Pkg|linux}} [[PKGBUILD]] の高い品質と[[Wikipedia:Package management system|パッケージ管理]]の利点を生かします。&lt;br /&gt;
; [[カーネル/伝統的なコンパイル方法|伝統的な方法]]: 手動でソースの tarball をダウンロードし、ホームディレクトリで通常のユーザーとしてコンパイルする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* カスタムカーネルを使用すると、データの損失など、あらゆる種類の安定性と信頼性の問題が発生する可能性があります。[[バックアップ]]をとることを強くお勧めします。&lt;br /&gt;
* Arch Linux は [[#公式サポートカーネル]]のみを公式にサポートしています。別のカーネルを使用する場合は、サポートリクエストにその旨を記載してください。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* システムの速度を上げる最良の方法は、まず、カーネルの設定をアーキテクチャやプロセッサの種類に合わせることです。&lt;br /&gt;
* 自分が持っていないもの、使っていないもののサポートを含まないようにすることで、カーネルのサイズ (つまりビルド時間) を小さくすることができます。例えば、Bluetooth、video4linux、1000Mbit イーサネットなどのサポートです。&lt;br /&gt;
&lt;br /&gt;
Arch のカーネルパッケージ設定ファイルは Arch のパッケージのソースファイルに含まれています。例えば {{Pkg|linux}} の場合 [https://gitlab.archlinux.org/archlinux/packaging/packages/linux] にリンクがあります。今現在動かしているカーネルのコンフィグファイルはファイルシステムの {{ic|/proc/config.gz}} に存在します (カーネルオプションの {{ic|CONFIG_IKCONFIG_PROC}} が有効になっている場合。)}}&lt;br /&gt;
&lt;br /&gt;
リストにあるパッケージの中には、[[非公式ユーザーリポジトリ]]からバイナリパッケージを入手できるものもあります。&lt;br /&gt;
&lt;br /&gt;
=== kernel.org カーネル ===&lt;br /&gt;
&lt;br /&gt;
* {{App|Git|Linus Torvalds の git リポジトリから得たソースを使ってビルドする Linux カーネルとモジュール。|https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git|{{AUR|linux-git}}}}&lt;br /&gt;
* {{App|Mainline|すべての新機能が導入されるカーネル、2〜3ヶ月ごとにリリースされます。|https://www.kernel.org/|{{AUR|linux-mainline}}}}&lt;br /&gt;
*{{App|Next|次の Mainline リリースにマージされる予定の機能を持つ最先端のカーネル。|https://www.kernel.org/doc/man-pages/linux-next.html|{{AUR|linux-next-git}}}}&lt;br /&gt;
* {{App|DRM|最先端の GPU ドライバ付き Linux カーネル。|https://cgit.freedesktop.org/drm/|{{AUR|linux-drm-tip-git}}, {{AUR|linux-drm-next-git}}}}&lt;br /&gt;
* {{App|Longterm 4.14|長期サポート (LTS) Linux 4.14 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts414}}}}&lt;br /&gt;
* {{App|Longterm 4.19|長期サポート (LTS) Linux 4.19 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts419}}}}&lt;br /&gt;
* {{App|Longterm 5.4|長期サポート (LTS) Linux 5.4 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts54}}}}&lt;br /&gt;
* {{App|Longterm 5.10|長期サポート (LTS) Linux 5.10 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts510}}}}&lt;br /&gt;
* {{App|Longterm 5.15|長期サポート (LTS) Linux 5.15 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts515}}}}&lt;br /&gt;
&lt;br /&gt;
=== 非公式カーネル ===&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Linux-ck|Ck]]|デスクトップに特に重点を置いてシステムの応答性を向上させるように設計された Con Kolivas (MuQSS scheduler を含む) によるパッチが含まれていますが、どのような使用目的でも問題なく使えます。|http://ck.kolivas.org/|{{AUR|linux-ck}}}}&lt;br /&gt;
* {{App|Clear|Intel の Clear Linux プロジェクトからのパッチ、パフォーマンスとセキュリティの最適化を提供します。|https://github.com/clearlinux-pkgs/linux|{{AUR|linux-clear}}}}&lt;br /&gt;
* {{App|GalliumOS|Chromebook 用の GalliumOS パッチを備えたモジュールと Linux カーネル。|https://github.com/GalliumOS/linux|{{AUR|linux-galliumos}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Linux-libre|Libre]]|[[Wikipedia:ja:難読化 (ソフトウェア)|難読化された]]デバイスドライバや[[Wikipedia:ja:バイナリ・ブロブ|プロプライエタリ]]のデバイスドライバーを使用しません。|https://www.fsfla.org/ikiwiki/selibre/linux-libre/|{{AUR|linux-libre}}}}&lt;br /&gt;
* {{App|Liquorix|Debian をターゲットとした設定と Zen カーネルソースを使用して構築されたカーネル代替品。デスクトップ、マルチメディア、ゲームなどのワークロード向けに設計されており、Debian Linux の性能代替カーネルとしてよく利用されます。Liquorix パッチセットのメンテナである Damentz は、同様に Zen パッチセットの開発者でもあります。|https://liquorix.net|{{AUR|linux-lqx}}}}&lt;br /&gt;
* {{App|pf-kernel|カーネルメインラインにマージされない、ほんの少しの素晴らしい機能を提供します。カーネルエンジニアによって管理されています。新しいカーネルのための含まれるパッチのポートが公式にリリースされていない場合、パッチセットは新しいカーネルへのパッチポートを提供し、サポートします。linux-pf の現在の代表的なパッチは、PDS CPU スケジューラと UKSM です。|https://pfkernel.natalenko.name|パッケージ:}}&lt;br /&gt;
:* pf-kernel の開発者 [https://aur.archlinux.org/account/post-factum post-factum] による[[非公式ユーザーリポジトリ#post-factum_kernels|リポジトリ]]&lt;br /&gt;
:* pf-kernel のフォークの開発者 [https://aur.archlinux.org/account/Thaodan Thaodan] による[[非公式ユーザーリポジトリ#home-thaodan|リポジトリ]]、{{AUR|linux-pf}}&lt;br /&gt;
:* [https://aur.archlinux.org/account/yurikoles yurikoles] による {{AUR|linux-pf-git}} と {{AUR|linux-pf-stable-git}}&lt;br /&gt;
* {{App|Project C|Alfred Chen 氏の Project C パッチセット (BMQ スケジューラと PDS スケジューラ) を当てたカーネル。|https://gitlab.com/alfredchen/projectc|{{AUR|linux-prjc}}}}&lt;br /&gt;
* {{App|Nitrous|Skylake 及びそれ以降に対して最適化された修正版 Linux カーネル。|https://gitlab.com/xdevs23/linux-nitrous|{{AUR|linux-nitrous}}}}&lt;br /&gt;
* {{App|tkg|デスクトップやゲームのパフォーマンスを向上させるためのパッチや調整を提供する、高度にカスタマイズ可能なカーネルビルドシステム。Etienne Juvigny によってメンテナンスされています。他のパッチの中で、様々な CPU スケージューラを提供しています: CFS、Project C PDS、Project C BMQ、MuQSS、CacULE。|https://github.com/Frogging-Family/linux-tkg|[[非公式ユーザーリポジトリ#chaotic-aur|chaotic-aur]] リポジトリで利用可能}}&lt;br /&gt;
* {{App|VFIO|Alex Williamson によって作成されたいくつかのパッチ（acs オーバーライドおよび i915）により、一部のマシンで KVM を使用して PCI パススルーを実行できるようになります。|https://lwn.net/Articles/499240/|{{AUR|linux-vfio}}, {{AUR|linux-vfio-lts}}}}&lt;br /&gt;
* {{App|XanMod|高性能ワークステーション、ゲーミングデスクトップ、メディアセンターなどで最大限に活用されることを目指し、より強固で応答性の高い、スムーズなデスクトップ体験を提供するために構築されています。このカーネルは、MuQSS またはタスクタイプスケジューラ、BFQ I/O スケジューラ、UKSM リアルタイムメモリーデータ重複排除、[https://github.com/google/bbr TCP BBR] 輻輳制御、x86_64 高度命令セットサポート、および他のデフォルト値を変更しています。|https://xanmod.org/|{{AUR|linux-xanmod}}, {{AUR|linux-xanmod-lts}}, {{AUR|linux-xanmod-rt}}}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== カーネルパニック ===&lt;br /&gt;
&lt;br /&gt;
Linux カーネルが回復不能な障害状態になると、&#039;&#039;カーネルパニック&#039;&#039;が発生します。典型的にこの状態はバグのあるハードウェアドライバーが原因で、マシンがデッドロック状態になり、応答しなくなり、再起動が必要になります。デッドロックの直前に、診断メッセージが生成されます。これは、障害が発生したときの&#039;&#039;マシン状態&#039;&#039;、障害を検出したカーネルの関数までの &#039;&#039;呼び出しトレース&#039;&#039;、および現在ロードされているモジュールのリストです。ありがたいことに、カーネルのメインラインバージョン (公式リポジトリで提供されているものなど) を使用してカーネルパニックが発生することはあまりありませんが、発生した場合に備えて対処方法を知る必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Note|カーネルパニックは、&#039;&#039;oops&#039;&#039; または&#039;&#039;カーネル oops&#039;&#039; と呼ばれることもあります。パニックと oops は両方とも障害状態の結果として発生するものですが、oops はより一般的なものであり、必ずしもマシンがデッドロックするわけではありません。問題のあるタスクを強制終了して実行を継続することで、カーネルが oops から回復できる場合があります。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|回復可能な oops で代わりにパニックを発生させることを強制するには、カーネルパラメータ {{ic|1=oops=panic}} を起動時に渡すか、{{ic|/proc/sys/kernel/panic_on_oops}} に {{ic|1}} を書き込んでください。oops リカバリによってシステムが不安定になり将来のエラーの診断が困難になることを懸念しているのであれば、これは推奨される方法です。}}&lt;br /&gt;
&lt;br /&gt;
==== パニックメッセージの検証 ====&lt;br /&gt;
&lt;br /&gt;
カーネルパニックがブートプロセスの非常に早い段階で発生する場合、コンソール上に &amp;quot;Kernel panic - not syncing:&amp;quot; というメッセージが表示されることがありますが、[[Systemd]] が実行し始めると、通常カーネルメッセージはキャプチャされシステムのログに書き込まれます。しかし、パニックが発生した際には、カーネルによる診断メッセージ出力は&#039;&#039;ほとんどの場合&#039;&#039;ディスク上のログファイルに書き込まれません。{{ic|system-journald}} がメッセージを取得・記録する前にマシンがデッドロックしてしまうからです。なので、パニックメッセージを検証する唯一の手段は、(&#039;&#039;kdump crashkernel&#039;&#039; を設定することなく)パニックの発生時にメッセージをコンソール上で見ることです。以下のカーネルパラメータを渡して起動し、tty1 でパニックの再現を試みてください:&lt;br /&gt;
&lt;br /&gt;
 systemd.journald.forward_to_console=1 console=tty1&lt;br /&gt;
&lt;br /&gt;
{{Tip|パニックメッセージが速くスクロールしすぎて検証できない場合、起動時にカーネルパラメータ {{ic|1=pause_on_oops=&#039;&#039;秒数&#039;&#039;}} を渡してみてください。}}&lt;br /&gt;
&lt;br /&gt;
===== 例: 不良モジュール =====&lt;br /&gt;
&lt;br /&gt;
診断メッセージの情報を使って、何のサブシステムやモジュールがパニックを引き起こしているかを推測できます。この例では、とある架空のマシンで起動中にパニックが発生してしまいました。&#039;&#039;&#039;太字&#039;&#039;&#039;で強調した行に注目してください。&lt;br /&gt;
&lt;br /&gt;
{{bc|&#039;&#039;&#039;kernel: BUG: unable to handle kernel NULL pointer dereference at (null)&#039;&#039;&#039; &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;kernel: IP: fw_core_init+0x18/0x1000 [firewire_core]&#039;&#039;&#039; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel: PGD 718d00067&lt;br /&gt;
kernel: P4D 718d00067&lt;br /&gt;
kernel: PUD 7b3611067&lt;br /&gt;
kernel: PMD 0&lt;br /&gt;
kernel:&lt;br /&gt;
kernel: Oops: 0002 [#1] PREEMPT SMP&lt;br /&gt;
&#039;&#039;&#039;kernel: Modules linked in: firewire_core(+) crc_itu_t cfg80211 rfkill ipt_REJECT nf_reject_ipv4 nf_log_ipv4 nf_log_common xt_LOG nf_conntrack_ipv4 ...&#039;&#039;&#039; &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel: CPU: 6 PID: 1438 Comm: modprobe Tainted: P           O    4.13.3-1-ARCH #1&lt;br /&gt;
kernel: Hardware name: Gigabyte Technology Co., Ltd. H97-D3H/H97-D3H-CF, BIOS F5 06/26/2014&lt;br /&gt;
kernel: task: ffff9c667abd9e00 task.stack: ffffb53b8db34000&lt;br /&gt;
kernel: RIP: 0010:fw_core_init+0x18/0x1000 [firewire_core]&lt;br /&gt;
kernel: RSP: 0018:ffffb53b8db37c68 EFLAGS: 00010246&lt;br /&gt;
kernel: RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000&lt;br /&gt;
kernel: RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffffffffc16d3af4&lt;br /&gt;
kernel: RBP: ffffb53b8db37c70 R08: 0000000000000000 R09: ffffffffae113e95&lt;br /&gt;
kernel: R10: ffffe93edfdb9680 R11: 0000000000000000 R12: ffffffffc16d9000&lt;br /&gt;
kernel: R13: ffff9c6729bf8f60 R14: ffffffffc16d5710 R15: ffff9c6736e55840&lt;br /&gt;
kernel: FS:  00007f301fc80b80(0000) GS:ffff9c675dd80000(0000) knlGS:0000000000000000&lt;br /&gt;
kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033&lt;br /&gt;
kernel: CR2: 0000000000000000 CR3: 00000007c6456000 CR4: 00000000001406e0&lt;br /&gt;
kernel: Call Trace:&lt;br /&gt;
&#039;&#039;&#039;kernel:  do_one_initcall+0x50/0x190&#039;&#039;&#039; &amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel:  ? do_init_module+0x27/0x1f2&lt;br /&gt;
kernel:  do_init_module+0x5f/0x1f2&lt;br /&gt;
kernel:  load_module+0x23f3/0x2be0&lt;br /&gt;
kernel:  SYSC_init_module+0x16b/0x1a0&lt;br /&gt;
kernel:  ? SYSC_init_module+0x16b/0x1a0&lt;br /&gt;
kernel:  SyS_init_module+0xe/0x10&lt;br /&gt;
kernel:  entry_SYSCALL_64_fastpath+0x1a/0xa5&lt;br /&gt;
kernel: RIP: 0033:0x7f301f3a2a0a&lt;br /&gt;
kernel: RSP: 002b:00007ffcabbd1998 EFLAGS: 00000246 ORIG_RAX: 00000000000000af&lt;br /&gt;
kernel: RAX: ffffffffffffffda RBX: 0000000000c85a48 RCX: 00007f301f3a2a0a&lt;br /&gt;
kernel: RDX: 000000000041aada RSI: 000000000001a738 RDI: 00007f301e7eb010&lt;br /&gt;
kernel: RBP: 0000000000c8a520 R08: 0000000000000001 R09: 0000000000000085&lt;br /&gt;
kernel: R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000c79208&lt;br /&gt;
kernel: R13: 0000000000c8b4d8 R14: 00007f301e7fffff R15: 0000000000000030&lt;br /&gt;
kernel: Code: &amp;lt;c7&amp;gt; 04 25 00 00 00 00 01 00 00 00 bb f4 ff ff ff e8 73 43 9c ec 48&lt;br /&gt;
kernel: RIP: fw_core_init+0x18/0x1000 [firewire_core] RSP: ffffb53b8db37c68&lt;br /&gt;
kernel: CR2: 0000000000000000&lt;br /&gt;
kernel: ---[ end trace 71f4306ea1238f17 ]---&lt;br /&gt;
&#039;&#039;&#039;kernel: Kernel panic - not syncing: Fatal exception&#039;&#039;&#039; &amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel: Kernel Offset: 0x80000000 from 0xffffffff810000000 (relocation range: 0xffffffff800000000-0xfffffffffbffffffff&lt;br /&gt;
kernel: ---[ end Kernel panic - not syncing: Fatal exception}}&lt;br /&gt;
&lt;br /&gt;
# パニックを引き起こしたエラーの種類を示しています。この場合、プログラマのバグです。&lt;br /&gt;
# モジュール &#039;&#039;firewire_core&#039;&#039; 内の &#039;&#039;fw_core_init&#039;&#039; という関数でパニックが発生したことを示しています。&lt;br /&gt;
# &#039;&#039;firewire_core&#039;&#039; は最後にロードされたモジュールであることを示しています。&lt;br /&gt;
# &#039;&#039;fw_core_init&#039;&#039; 関数を呼んだ関数は &#039;&#039;do_one_initcall&#039;&#039; であったことを示しています。&lt;br /&gt;
# この &#039;&#039;oops&#039;&#039; メッセージが実際にカーネルパニックであり、システムがデッドロックしていることを示しています。&lt;br /&gt;
&lt;br /&gt;
以上のメッセージにより、&#039;&#039;firewire_core&#039;&#039; モジュールがロードされたときの初期ルーチン中にパニックが発生したということを推測できます。(マシンのファームウェアハードウェアは、プログラマのエラーによりこのバージョンのファームウェアドライバモジュールと互換性が無いかもしれないことが推測でき、新しいリリースを待つ必要があることになります。) その間、マシンを再び走らせる最も簡単な方法は、モジュールがロードされないようにすることです。以下の方法のうち1つを取ってください:&lt;br /&gt;
&lt;br /&gt;
* モジュールが &#039;&#039;initramfs&#039;&#039; の実行中にロードされる場合、[[カーネルパラメータ]] {{ic|1=rd.blacklist=firewire_core}} を設定して再起動してください。&lt;br /&gt;
* それ以外の場合、カーネルパラメータ {{ic|1=module_blacklist=firewire_core}} を設定して再起動してください。&lt;br /&gt;
&lt;br /&gt;
==== 再起動して root シェルに入り問題を修正する ====&lt;br /&gt;
&lt;br /&gt;
{{Out of date|[https://gitlab.archlinux.org/archlinux/packaging/packages/systemd/-/commit/292cdf8a2f7dd7c6c7d91d2b59617391935c837c initramfs の root アカウントはロックされているため]、{{ic|rd.rescue}} と {{ic|rd.emergency}} は動作しません。}}&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|{{ic|rd.emergency}} ではキーボードは動作しないため、使用できません。}}&lt;br /&gt;
&lt;br /&gt;
システムに変更を加えてパニックが起こらないようにするには、root シェルが必要です。パニックが起動時に発生する場合、マシンがデッドロックする前に root シェルに入るための戦略が複数あります:&lt;br /&gt;
&lt;br /&gt;
* カーネルパラメータ {{ic|emergency}} か {{ic|rd.emergency}} か {{ic|-b}} を設定して再起動する。これで、root ファイルシステムがマウントされて {{ic|systemd}} が起動した直後にログインプロンプトが表示されます。&lt;br /&gt;
: {{Note|この時点では、root ファイルシステムは&#039;&#039;&#039;読み取り専用&#039;&#039;&#039;でマウントされます。ファイルシステムに変更を加えるには、{{ic|mount -o remount,rw /}} を root ユーザとして実行してください。}}&lt;br /&gt;
* カーネルパラメータ {{ic|rescue}}、{{ic|rd.rescue}}、{{ic|single}}、{{ic|s}}、{{ic|S}}、{{ic|1}} のどれか設定して再起動する。これで、ローカルのファイルシステムがマウントされた直後にログインプロンプトが表示されます。&lt;br /&gt;
* カーネルパラメータ {{ic|1=systemd.debug_shell}} を設定して再起動する。これで、非常に初期の root シェルが tty9 で表示されます。{{ic|Ctrl+Alt+F9}} を押してそのシェルに切り替えてください。&lt;br /&gt;
* パニックを引き起こしているカーネルの機能を無効化するために、異なるカーネルパラメータの組で再起動して実験する。「定番」の {{ic|1=acpi=off}} と {{ic|nolapic}} を試してみてください。&lt;br /&gt;
: {{Tip|すべてのカーネルパラメータは [https://docs.kernel.org/admin-guide/kernel-parameters.html kernel-parameters.html] で見られます。}}&lt;br /&gt;
* 最後の手段として、[[インストールガイド#インストールメディアの準備|Arch Linux インストールメディア]]を起動し、ルートファイルシステムを {{ic|/mnt}} にマウントし、{{ic|arch-chroot /mnt}} を root ユーザとして実行する。&lt;br /&gt;
* パニックを引き起こしているサービスやプログラムを無効化する。不具合のあるアップデートをロールバックする。設定の問題を修正する。&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[Wikipedia:Initial ramdisk|初期 RAM ディスク]]イメージが破損している場合、新しいイメージを生成する必要があるかもしれません。イメージの破損は、カーネルアップデートが中断された場合に起こる可能性があります。新しいイメージを作成する方法は、[[mkinitcpio#イメージ作成とアクティベーション]] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== リグレッションをデバッグする ===&lt;br /&gt;
&lt;br /&gt;
[[一般的なトラブルシューティング#リグレッションをデバッグする]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{AUR|linux-mainline}} を試して、その問題が既に上流で修正されているかどうかを確認してください。ピン留めされたコメントは既にビルドされたカーネルを含むリポジトリにも言及しているので、時間がかかる手動でのビルドは必要ないかもしれません。&lt;br /&gt;
&lt;br /&gt;
最近発生しなかった問題をデバッグするために LTS カーネル ({{Pkg|linux-lts}}) を試してみることも検討する価値があるかもしれません。LTS カーネルの古いバージョンは [[Arch Linux Archive]] で見つけることができます。&lt;br /&gt;
&lt;br /&gt;
それでも問題が解決しないときは、{{AUR|linux-git}} を [[bisect]] してください。そして、[https://bugzilla.kernel.org/ kernel bugzilla] でバグを報告してください。パッチと関係ないことを確認するために、パッチなしの「バニラ」バージョンを試すことが重要です。もしパッチが問題を引き起こすなら、そのパッチの作者に報告してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|カーネルの bisect は何度も作り直さなければならないので、かなりの時間がかかるかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.kroah.com/lkn/ O&#039;Reilly - Linux Kernel in a Nutshell] (フリーの電子書籍)&lt;br /&gt;
* [http://kroah.com/log/blog/2018/08/24/what-stable-kernel-should-i-use/ What stable kernel should I use?] by Greg Kroah-Hartman&lt;br /&gt;
* [https://docs.kernel.org/index.html Linux カーネルのドキュメント]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Kernel|2023-07-25|783528}}&lt;/div&gt;</summary>
		<author><name>田中さん</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB&amp;diff=33587</id>
		<title>カーネル</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB&amp;diff=33587"/>
		<updated>2023-08-25T17:32:50Z</updated>

		<summary type="html">&lt;p&gt;田中さん: /* 公式サポートカーネル */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:カーネル]]&lt;br /&gt;
[[Category:ソフトウェア一覧]]&lt;br /&gt;
[[bs:Kernel]]&lt;br /&gt;
[[en:Kernel]]&lt;br /&gt;
[[fr:Kernel]]&lt;br /&gt;
[[pt:Kernel]]&lt;br /&gt;
[[ru:Kernel]]&lt;br /&gt;
[[zh-hans:Kernel]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|カーネルモジュール}}&lt;br /&gt;
{{Related|カーネルモジュールのコンパイル}}&lt;br /&gt;
{{Related|sysctl}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
Wikipedia によると:&lt;br /&gt;
:[[Wikipedia:ja:Linuxカーネル|Linux カーネル]]とは、モノリシックで Unix ライクなオープンソースのコンピュータ[[Wikipedia:ja:カーネル|オペレーティングシステムカーネル]]である。&lt;br /&gt;
&lt;br /&gt;
[[Arch Linux]] は Linux カーネルをベースにしています。Arch Linux では最新の安定版カーネルに加え、様々な代替 Linux カーネルを利用することができます。この記事では、リポジトリで利用可能な選択肢のいくつかを、それぞれの簡単な説明とともにリストアップしています。また、システムのカーネルに適用できるパッチについての説明もあります。記事の最後には、カスタムカーネルのコンパイルについての概要と、様々な方法へのリンクがあります。&lt;br /&gt;
&lt;br /&gt;
カーネルのパッケージは {{ic|/usr/lib/modules/}} に[[インストール]]されます。その後、パッケージは [[Wikipedia:ja:vmlinuz|vmlinuz]] 実行可能イメージを生成するために使用され、生成されたイメージは {{ic|/boot/}} へ保存されます。[https://archlinux.org/news/new-kernel-packages-and-mkinitcpio-hooks/] 異なるカーネルをインストールしたり、複数のカーネルを切り替えたりする場合は、変更を反映させるために[[ブートローダー]]を設定しなければなりません。&lt;br /&gt;
&lt;br /&gt;
== 公式サポートカーネル ==&lt;br /&gt;
&lt;br /&gt;
公式にサポートされているカーネルについては、[https://bbs.archlinux.org/viewforum.php?id=22 フォーラム]でのコミュニティサポートと[[バグ報告ガイドライン|バグレポート]]を利用できます。&lt;br /&gt;
&lt;br /&gt;
* {{App|Stable|kernel.orgのカーネルにいくつかのパッチを適用した、Arch独自のカーネル。バージョン4.17.11-1以降、Archのカーネルはもはやバニラカーネルではありません。|https://github.com/archlinux/linux/|{{Pkg|linux}}}}&lt;br /&gt;
* {{App|Hardened|カーネルおよびユーザ空間の脆弱性を緩和するための一連の堅牢化パッチを適用した、セキュリティ特化の Linux カーネルです。また、{{Pkg|linux}} よりも多くの上流のカーネル堅牢化機能を有効にします。|https://github.com/anthraxx/linux-hardened|{{Pkg|linux-hardened}}}}&lt;br /&gt;
* {{App|Longterm|長期サポート (LTS) Linux カーネルおよびモジュール|https://www.kernel.org/|{{Pkg|linux-lts}}}}&lt;br /&gt;
* {{App|[[リアルタイムカーネル]]|IngoMolnar が率いるコア開発者の小グループによって維持されています。このパッチを使用すると、コードのいくつかの非常に小さな領域（&amp;quot;raw_spinlock クリティカル領域&amp;quot;）を除いて、ほぼすべてのカーネルをプリエンプトできます。これは、ほとんどのカーネルスピンロックを優先度継承をサポートするミューテックスに置き換え、すべての割り込みとソフトウェア割り込みをカーネルスレッドに移動することによって行われます。|https://wiki.linuxfoundation.org/realtime/start|{{Pkg|linux-rt}}, {{Pkg|linux-rt-lts}}}}&lt;br /&gt;
* {{App|Zen Kernel|カーネルハッカーの共同作業により、日常的なシステムに最適な Linux カーネルです。より詳細な情報は https://liquorix.net (Zen をベースにした Debian 用のカーネルバイナリを提供) で見ることができます。|https://github.com/zen-kernel/zen-kernel|{{Pkg|linux-zen}}}}&lt;br /&gt;
&lt;br /&gt;
== コンパイル ==&lt;br /&gt;
&lt;br /&gt;
次の方法を使って、独自のカーネルをコンパイルできます。&lt;br /&gt;
&lt;br /&gt;
; [[カーネル/Arch build system|Arch Build System]]: 既存の {{Pkg|linux}} [[PKGBUILD]] の高い品質と[[Wikipedia:Package management system|パッケージ管理]]の利点を生かします。&lt;br /&gt;
; [[カーネル/伝統的なコンパイル方法|伝統的な方法]]: 手動でソースの tarball をダウンロードし、ホームディレクトリで通常のユーザーとしてコンパイルする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* カスタムカーネルを使用すると、データの損失など、あらゆる種類の安定性と信頼性の問題が発生する可能性があります。[[バックアップ]]をとることを強くお勧めします。&lt;br /&gt;
* Arch Linux は [[#公式サポートカーネル]]のみを公式にサポートしています。別のカーネルを使用する場合は、サポートリクエストにその旨を記載してください。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* システムの速度を上げる最良の方法は、まず、カーネルの設定をアーキテクチャやプロセッサの種類に合わせることです。&lt;br /&gt;
* 自分が持っていないもの、使っていないもののサポートを含まないようにすることで、カーネルのサイズ (つまりビルド時間) を小さくすることができます。例えば、Bluetooth、video4linux、1000Mbit イーサネットなどのサポートです。&lt;br /&gt;
&lt;br /&gt;
Arch のカーネルパッケージ設定ファイルは Arch のパッケージのソースファイルに含まれています。例えば {{Pkg|linux}} の場合 [https://gitlab.archlinux.org/archlinux/packaging/packages/linux] にリンクがあります。今現在動かしているカーネルのコンフィグファイルはファイルシステムの {{ic|/proc/config.gz}} に存在します (カーネルオプションの {{ic|CONFIG_IKCONFIG_PROC}} が有効になっている場合。)}}&lt;br /&gt;
&lt;br /&gt;
リストにあるパッケージの中には、[[非公式ユーザーリポジトリ]]からバイナリパッケージを入手できるものもあります。&lt;br /&gt;
&lt;br /&gt;
=== kernel.org カーネル ===&lt;br /&gt;
&lt;br /&gt;
* {{App|Git|Linus Torvalds の git リポジトリから得たソースを使ってビルドする Linux カーネルとモジュール。|https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git|{{AUR|linux-git}}}}&lt;br /&gt;
* {{App|Mainline|すべての新機能が導入されるカーネル、2〜3ヶ月ごとにリリースされます。|https://www.kernel.org/|{{AUR|linux-mainline}}}}&lt;br /&gt;
*{{App|Next|次の Mainline リリースにマージされる予定の機能を持つ最先端のカーネル。|https://www.kernel.org/doc/man-pages/linux-next.html|{{AUR|linux-next-git}}}}&lt;br /&gt;
* {{App|DRM|最先端の GPU ドライバ付き Linux カーネル。|https://cgit.freedesktop.org/drm/|{{AUR|linux-drm-tip-git}}, {{AUR|linux-drm-next-git}}}}&lt;br /&gt;
* {{App|Longterm 4.14|長期サポート (LTS) Linux 4.14 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts414}}}}&lt;br /&gt;
* {{App|Longterm 4.19|長期サポート (LTS) Linux 4.19 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts419}}}}&lt;br /&gt;
* {{App|Longterm 5.4|長期サポート (LTS) Linux 5.4 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts54}}}}&lt;br /&gt;
* {{App|Longterm 5.10|長期サポート (LTS) Linux 5.10 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts510}}}}&lt;br /&gt;
* {{App|Longterm 5.15|長期サポート (LTS) Linux 5.15 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts515}}}}&lt;br /&gt;
&lt;br /&gt;
=== 非公式カーネル ===&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Linux-ck|Ck]]|デスクトップに特に重点を置いてシステムの応答性を向上させるように設計された Con Kolivas (MuQSS scheduler を含む) によるパッチが含まれていますが、どのような使用目的でも問題なく使えます。|http://ck.kolivas.org/|{{AUR|linux-ck}}}}&lt;br /&gt;
* {{App|Clear|Intel の Clear Linux プロジェクトからのパッチ、パフォーマンスとセキュリティの最適化を提供します。|https://github.com/clearlinux-pkgs/linux|{{AUR|linux-clear}}}}&lt;br /&gt;
* {{App|GalliumOS|Chromebook 用の GalliumOS パッチを備えたモジュールと Linux カーネル。|https://github.com/GalliumOS/linux|{{AUR|linux-galliumos}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Linux-libre|Libre]]|[[Wikipedia:ja:難読化 (ソフトウェア)|難読化された]]デバイスドライバや[[Wikipedia:ja:バイナリ・ブロブ|プロプライエタリ]]のデバイスドライバーを使用しません。|https://www.fsfla.org/ikiwiki/selibre/linux-libre/|{{AUR|linux-libre}}}}&lt;br /&gt;
* {{App|Liquorix|Debian をターゲットとした設定と Zen カーネルソースを使用して構築されたカーネル代替品。デスクトップ、マルチメディア、ゲームなどのワークロード向けに設計されており、Debian Linux の性能代替カーネルとしてよく利用されます。Liquorix パッチセットのメンテナである Damentz は、同様に Zen パッチセットの開発者でもあります。|https://liquorix.net|{{AUR|linux-lqx}}}}&lt;br /&gt;
* {{App|pf-kernel|カーネルメインラインにマージされない、ほんの少しの素晴らしい機能を提供します。カーネルエンジニアによって管理されています。新しいカーネルのための含まれるパッチのポートが公式にリリースされていない場合、パッチセットは新しいカーネルへのパッチポートを提供し、サポートします。linux-pf の現在の代表的なパッチは、PDS CPU スケジューラと UKSM です。|https://pfkernel.natalenko.name|パッケージ:}}&lt;br /&gt;
:* pf-kernel の開発者 [https://aur.archlinux.org/account/post-factum post-factum] による[[非公式ユーザーリポジトリ#post-factum_kernels|リポジトリ]]&lt;br /&gt;
:* pf-kernel のフォークの開発者 [https://aur.archlinux.org/account/Thaodan Thaodan] による[[非公式ユーザーリポジトリ#home-thaodan|リポジトリ]]、{{AUR|linux-pf}}&lt;br /&gt;
:* [https://aur.archlinux.org/account/yurikoles yurikoles] による {{AUR|linux-pf-git}} と {{AUR|linux-pf-stable-git}}&lt;br /&gt;
* {{App|Project C|Alfred Chen 氏の Project C パッチセット (BMQ スケジューラと PDS スケジューラ) を当てたカーネル。|https://gitlab.com/alfredchen/projectc|{{AUR|linux-prjc}}}}&lt;br /&gt;
* {{App|Nitrous|Skylake 及びそれ以降に対して最適化された修正版 Linux カーネル。|https://gitlab.com/xdevs23/linux-nitrous|{{AUR|linux-nitrous}}}}&lt;br /&gt;
* {{App|tkg|デスクトップやゲームのパフォーマンスを向上させるためのパッチや調整を提供する、高度にカスタマイズ可能なカーネルビルドシステム。Etienne Juvigny によってメンテナンスされています。他のパッチの中で、様々な CPU スケージューラを提供しています: CFS、Project C PDS、Project C BMQ、MuQSS、CacULE。|https://github.com/Frogging-Family/linux-tkg|[[非公式ユーザーリポジトリ#chaotic-aur|chaotic-aur]] リポジトリで利用可能}}&lt;br /&gt;
* {{App|VFIO|Alex Williamson によって作成されたいくつかのパッチ（acs オーバーライドおよび i915）により、一部のマシンで KVM を使用して PCI パススルーを実行できるようになります。|https://lwn.net/Articles/499240/|{{AUR|linux-vfio}}, {{AUR|linux-vfio-lts}}}}&lt;br /&gt;
* {{App|XanMod|高性能ワークステーション、ゲーミングデスクトップ、メディアセンターなどで最大限に活用されることを目指し、より強固で応答性の高い、スムーズなデスクトップ体験を提供するために構築されています。このカーネルは、MuQSS またはタスクタイプスケジューラ、BFQ I/O スケジューラ、UKSM リアルタイムメモリーデータ重複排除、[https://github.com/google/bbr TCP BBR] 輻輳制御、x86_64 高度命令セットサポート、および他のデフォルト値を変更しています。|https://xanmod.org/|{{AUR|linux-xanmod}}, {{AUR|linux-xanmod-lts}}, {{AUR|linux-xanmod-rt}}}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== カーネルパニック ===&lt;br /&gt;
&lt;br /&gt;
Linux カーネルが回復不能な障害状態になると、&#039;&#039;カーネルパニック&#039;&#039;が発生します。典型的にこの状態はバグのあるハードウェアドライバーが原因で、マシンがデッドロック状態になり、応答しなくなり、再起動が必要になります。デッドロックの直前に、診断メッセージが生成されます。これは、障害が発生したときの&#039;&#039;マシン状態&#039;&#039;、障害を検出したカーネルの関数までの &#039;&#039;呼び出しトレース&#039;&#039;、および現在ロードされているモジュールのリストです。ありがたいことに、カーネルのメインラインバージョン (公式リポジトリで提供されているものなど) を使用してカーネルパニックが発生することはあまりありませんが、発生した場合に備えて対処方法を知る必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Note|カーネルパニックは、&#039;&#039;oops&#039;&#039; または&#039;&#039;カーネル oops&#039;&#039; と呼ばれることもあります。パニックと oops は両方とも障害状態の結果として発生するものですが、oops はより一般的なものであり、必ずしもマシンがデッドロックするわけではありません。問題のあるタスクを強制終了して実行を継続することで、カーネルが oops から回復できる場合があります。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|回復可能な oops で代わりにパニックを発生させることを強制するには、カーネルパラメータ {{ic|1=oops=panic}} を起動時に渡すか、{{ic|/proc/sys/kernel/panic_on_oops}} に {{ic|1}} を書き込んでください。oops リカバリによってシステムが不安定になり将来のエラーの診断が困難になることを懸念しているのであれば、これは推奨される方法です。}}&lt;br /&gt;
&lt;br /&gt;
==== パニックメッセージの検証 ====&lt;br /&gt;
&lt;br /&gt;
カーネルパニックがブートプロセスの非常に早い段階で発生する場合、コンソール上に &amp;quot;Kernel panic - not syncing:&amp;quot; というメッセージが表示されることがありますが、[[Systemd]] が実行し始めると、通常カーネルメッセージはキャプチャされシステムのログに書き込まれます。しかし、パニックが発生した際には、カーネルによる診断メッセージ出力は&#039;&#039;ほとんどの場合&#039;&#039;ディスク上のログファイルに書き込まれません。{{ic|system-journald}} がメッセージを取得・記録する前にマシンがデッドロックしてしまうからです。なので、パニックメッセージを検証する唯一の手段は、(&#039;&#039;kdump crashkernel&#039;&#039; を設定することなく)パニックの発生時にメッセージをコンソール上で見ることです。以下のカーネルパラメータを渡して起動し、tty1 でパニックの再現を試みてください:&lt;br /&gt;
&lt;br /&gt;
 systemd.journald.forward_to_console=1 console=tty1&lt;br /&gt;
&lt;br /&gt;
{{Tip|パニックメッセージが速くスクロールしすぎて検証できない場合、起動時にカーネルパラメータ {{ic|1=pause_on_oops=&#039;&#039;秒数&#039;&#039;}} を渡してみてください。}}&lt;br /&gt;
&lt;br /&gt;
===== 例: 不良モジュール =====&lt;br /&gt;
&lt;br /&gt;
診断メッセージの情報を使って、何のサブシステムやモジュールがパニックを引き起こしているかを推測できます。この例では、とある架空のマシンで起動中にパニックが発生してしまいました。&#039;&#039;&#039;太字&#039;&#039;&#039;で強調した行に注目してください。&lt;br /&gt;
&lt;br /&gt;
{{bc|&#039;&#039;&#039;kernel: BUG: unable to handle kernel NULL pointer dereference at (null)&#039;&#039;&#039; &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;kernel: IP: fw_core_init+0x18/0x1000 [firewire_core]&#039;&#039;&#039; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel: PGD 718d00067&lt;br /&gt;
kernel: P4D 718d00067&lt;br /&gt;
kernel: PUD 7b3611067&lt;br /&gt;
kernel: PMD 0&lt;br /&gt;
kernel:&lt;br /&gt;
kernel: Oops: 0002 [#1] PREEMPT SMP&lt;br /&gt;
&#039;&#039;&#039;kernel: Modules linked in: firewire_core(+) crc_itu_t cfg80211 rfkill ipt_REJECT nf_reject_ipv4 nf_log_ipv4 nf_log_common xt_LOG nf_conntrack_ipv4 ...&#039;&#039;&#039; &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel: CPU: 6 PID: 1438 Comm: modprobe Tainted: P           O    4.13.3-1-ARCH #1&lt;br /&gt;
kernel: Hardware name: Gigabyte Technology Co., Ltd. H97-D3H/H97-D3H-CF, BIOS F5 06/26/2014&lt;br /&gt;
kernel: task: ffff9c667abd9e00 task.stack: ffffb53b8db34000&lt;br /&gt;
kernel: RIP: 0010:fw_core_init+0x18/0x1000 [firewire_core]&lt;br /&gt;
kernel: RSP: 0018:ffffb53b8db37c68 EFLAGS: 00010246&lt;br /&gt;
kernel: RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000&lt;br /&gt;
kernel: RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffffffffc16d3af4&lt;br /&gt;
kernel: RBP: ffffb53b8db37c70 R08: 0000000000000000 R09: ffffffffae113e95&lt;br /&gt;
kernel: R10: ffffe93edfdb9680 R11: 0000000000000000 R12: ffffffffc16d9000&lt;br /&gt;
kernel: R13: ffff9c6729bf8f60 R14: ffffffffc16d5710 R15: ffff9c6736e55840&lt;br /&gt;
kernel: FS:  00007f301fc80b80(0000) GS:ffff9c675dd80000(0000) knlGS:0000000000000000&lt;br /&gt;
kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033&lt;br /&gt;
kernel: CR2: 0000000000000000 CR3: 00000007c6456000 CR4: 00000000001406e0&lt;br /&gt;
kernel: Call Trace:&lt;br /&gt;
&#039;&#039;&#039;kernel:  do_one_initcall+0x50/0x190&#039;&#039;&#039; &amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel:  ? do_init_module+0x27/0x1f2&lt;br /&gt;
kernel:  do_init_module+0x5f/0x1f2&lt;br /&gt;
kernel:  load_module+0x23f3/0x2be0&lt;br /&gt;
kernel:  SYSC_init_module+0x16b/0x1a0&lt;br /&gt;
kernel:  ? SYSC_init_module+0x16b/0x1a0&lt;br /&gt;
kernel:  SyS_init_module+0xe/0x10&lt;br /&gt;
kernel:  entry_SYSCALL_64_fastpath+0x1a/0xa5&lt;br /&gt;
kernel: RIP: 0033:0x7f301f3a2a0a&lt;br /&gt;
kernel: RSP: 002b:00007ffcabbd1998 EFLAGS: 00000246 ORIG_RAX: 00000000000000af&lt;br /&gt;
kernel: RAX: ffffffffffffffda RBX: 0000000000c85a48 RCX: 00007f301f3a2a0a&lt;br /&gt;
kernel: RDX: 000000000041aada RSI: 000000000001a738 RDI: 00007f301e7eb010&lt;br /&gt;
kernel: RBP: 0000000000c8a520 R08: 0000000000000001 R09: 0000000000000085&lt;br /&gt;
kernel: R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000c79208&lt;br /&gt;
kernel: R13: 0000000000c8b4d8 R14: 00007f301e7fffff R15: 0000000000000030&lt;br /&gt;
kernel: Code: &amp;lt;c7&amp;gt; 04 25 00 00 00 00 01 00 00 00 bb f4 ff ff ff e8 73 43 9c ec 48&lt;br /&gt;
kernel: RIP: fw_core_init+0x18/0x1000 [firewire_core] RSP: ffffb53b8db37c68&lt;br /&gt;
kernel: CR2: 0000000000000000&lt;br /&gt;
kernel: ---[ end trace 71f4306ea1238f17 ]---&lt;br /&gt;
&#039;&#039;&#039;kernel: Kernel panic - not syncing: Fatal exception&#039;&#039;&#039; &amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel: Kernel Offset: 0x80000000 from 0xffffffff810000000 (relocation range: 0xffffffff800000000-0xfffffffffbffffffff&lt;br /&gt;
kernel: ---[ end Kernel panic - not syncing: Fatal exception}}&lt;br /&gt;
&lt;br /&gt;
# パニックを引き起こしたエラーの種類を示しています。この場合、プログラマのバグです。&lt;br /&gt;
# モジュール &#039;&#039;firewire_core&#039;&#039; 内の &#039;&#039;fw_core_init&#039;&#039; という関数でパニックが発生したことを示しています。&lt;br /&gt;
# &#039;&#039;firewire_core&#039;&#039; は最後にロードされたモジュールであることを示しています。&lt;br /&gt;
# &#039;&#039;fw_core_init&#039;&#039; 関数を呼んだ関数は &#039;&#039;do_one_initcall&#039;&#039; であったことを示しています。&lt;br /&gt;
# この &#039;&#039;oops&#039;&#039; メッセージが実際にカーネルパニックであり、システムがデッドロックしていることを示しています。&lt;br /&gt;
&lt;br /&gt;
以上のメッセージにより、&#039;&#039;firewire_core&#039;&#039; モジュールがロードされたときの初期ルーチン中にパニックが発生したということを推測できます。(マシンのファームウェアハードウェアは、プログラマのエラーによりこのバージョンのファームウェアドライバモジュールと互換性が無いかもしれないことが推測でき、新しいリリースを待つ必要があることになります。) その間、マシンを再び走らせる最も簡単な方法は、モジュールがロードされないようにすることです。以下の方法のうち1つを取ってください:&lt;br /&gt;
&lt;br /&gt;
* モジュールが &#039;&#039;initramfs&#039;&#039; の実行中にロードされる場合、[[カーネルパラメータ]] {{ic|1=rd.blacklist=firewire_core}} を設定して再起動してください。&lt;br /&gt;
* それ以外の場合、カーネルパラメータ {{ic|1=module_blacklist=firewire_core}} を設定して再起動してください。&lt;br /&gt;
&lt;br /&gt;
==== 再起動して root シェルに入り問題を修正する ====&lt;br /&gt;
&lt;br /&gt;
{{Out of date|[https://gitlab.archlinux.org/archlinux/packaging/packages/systemd/-/commit/292cdf8a2f7dd7c6c7d91d2b59617391935c837c initramfs の root アカウントはロックされているため]、{{ic|rd.rescue}} と {{ic|rd.emergency}} は動作しません。}}&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|{{ic|rd.emergency}} ではキーボードは動作しないため、使用できません。}}&lt;br /&gt;
&lt;br /&gt;
システムに変更を加えてパニックが起こらないようにするには、root シェルが必要です。パニックが起動時に発生する場合、マシンがデッドロックする前に root シェルに入るための戦略が複数あります:&lt;br /&gt;
&lt;br /&gt;
* カーネルパラメータ {{ic|emergency}} か {{ic|rd.emergency}} か {{ic|-b}} を設定して再起動する。これで、root ファイルシステムがマウントされて {{ic|systemd}} が起動した直後にログインプロンプトが表示されます。&lt;br /&gt;
: {{Note|この時点では、root ファイルシステムは&#039;&#039;&#039;読み取り専用&#039;&#039;&#039;でマウントされます。ファイルシステムに変更を加えるには、{{ic|mount -o remount,rw /}} を root ユーザとして実行してください。}}&lt;br /&gt;
* カーネルパラメータ {{ic|rescue}}、{{ic|rd.rescue}}、{{ic|single}}、{{ic|s}}、{{ic|S}}、{{ic|1}} のどれか設定して再起動する。これで、ローカルのファイルシステムがマウントされた直後にログインプロンプトが表示されます。&lt;br /&gt;
* カーネルパラメータ {{ic|1=systemd.debug_shell}} を設定して再起動する。これで、非常に初期の root シェルが tty9 で表示されます。{{ic|Ctrl+Alt+F9}} を押してそのシェルに切り替えてください。&lt;br /&gt;
* パニックを引き起こしているカーネルの機能を無効化するために、異なるカーネルパラメータの組で再起動して実験する。「定番」の {{ic|1=acpi=off}} と {{ic|nolapic}} を試してみてください。&lt;br /&gt;
: {{Tip|すべてのカーネルパラメータは [https://docs.kernel.org/admin-guide/kernel-parameters.html kernel-parameters.html] で見られます。}}&lt;br /&gt;
* 最後の手段として、[[インストールガイド#インストールメディアの準備|Arch Linux インストールメディア]]を起動し、ルートファイルシステムを {{ic|/mnt}} にマウントし、{{ic|arch-chroot /mnt}} を root ユーザとして実行する。&lt;br /&gt;
* パニックを引き起こしているサービスやプログラムを無効化する。不具合のあるアップデートをロールバックする。設定の問題を修正する。&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[Wikipedia:Initial ramdisk|初期 RAM ディスク]]イメージが破損している場合、新しいイメージを生成する必要があるかもしれません。イメージの破損は、カーネルアップデートが中断された場合に起こる可能性があります。新しいイメージを作成する方法は、[[mkinitcpio#イメージ作成とアクティベーション]] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== リグレッションをデバッグする ===&lt;br /&gt;
&lt;br /&gt;
[[一般的なトラブルシューティング#リグレッションをデバッグする]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{AUR|linux-mainline}} を試して、その問題が既に上流で修正されているかどうかを確認してください。ピン留めされたコメントは既にビルドされたカーネルを含むリポジトリにも言及しているので、時間がかかる手動でのビルドは必要ないかもしれません。&lt;br /&gt;
&lt;br /&gt;
最近発生しなかった問題をデバッグするために LTS カーネル ({{Pkg|linux-lts}}) を試してみることも検討する価値があるかもしれません。LTS カーネルの古いバージョンは [[Arch Linux Archive]] で見つけることができます。&lt;br /&gt;
&lt;br /&gt;
それでも問題が解決しないときは、{{AUR|linux-git}} を [[bisect]] してください。そして、[https://bugzilla.kernel.org/ kernel bugzilla] でバグを報告してください。パッチと関係ないことを確認するために、パッチなしの「バニラ」バージョンを試すことが重要です。もしパッチが問題を引き起こすなら、そのパッチの作者に報告してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|カーネルの bisect は何度も作り直さなければならないので、かなりの時間がかかるかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.kroah.com/lkn/ O&#039;Reilly - Linux Kernel in a Nutshell] (フリーの電子書籍)&lt;br /&gt;
* [http://kroah.com/log/blog/2018/08/24/what-stable-kernel-should-i-use/ What stable kernel should I use?] by Greg Kroah-Hartman&lt;br /&gt;
* [https://docs.kernel.org/index.html Linux カーネルのドキュメント]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Kernel|2023-07-25|783528}}&lt;/div&gt;</summary>
		<author><name>田中さん</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB&amp;diff=33586</id>
		<title>カーネル</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB&amp;diff=33586"/>
		<updated>2023-08-25T17:32:36Z</updated>

		<summary type="html">&lt;p&gt;田中さん: /* 公式サポートカーネル */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:カーネル]]&lt;br /&gt;
[[Category:ソフトウェア一覧]]&lt;br /&gt;
[[bs:Kernel]]&lt;br /&gt;
[[en:Kernel]]&lt;br /&gt;
[[fr:Kernel]]&lt;br /&gt;
[[pt:Kernel]]&lt;br /&gt;
[[ru:Kernel]]&lt;br /&gt;
[[zh-hans:Kernel]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|カーネルモジュール}}&lt;br /&gt;
{{Related|カーネルモジュールのコンパイル}}&lt;br /&gt;
{{Related|sysctl}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
Wikipedia によると:&lt;br /&gt;
:[[Wikipedia:ja:Linuxカーネル|Linux カーネル]]とは、モノリシックで Unix ライクなオープンソースのコンピュータ[[Wikipedia:ja:カーネル|オペレーティングシステムカーネル]]である。&lt;br /&gt;
&lt;br /&gt;
[[Arch Linux]] は Linux カーネルをベースにしています。Arch Linux では最新の安定版カーネルに加え、様々な代替 Linux カーネルを利用することができます。この記事では、リポジトリで利用可能な選択肢のいくつかを、それぞれの簡単な説明とともにリストアップしています。また、システムのカーネルに適用できるパッチについての説明もあります。記事の最後には、カスタムカーネルのコンパイルについての概要と、様々な方法へのリンクがあります。&lt;br /&gt;
&lt;br /&gt;
カーネルのパッケージは {{ic|/usr/lib/modules/}} に[[インストール]]されます。その後、パッケージは [[Wikipedia:ja:vmlinuz|vmlinuz]] 実行可能イメージを生成するために使用され、生成されたイメージは {{ic|/boot/}} へ保存されます。[https://archlinux.org/news/new-kernel-packages-and-mkinitcpio-hooks/] 異なるカーネルをインストールしたり、複数のカーネルを切り替えたりする場合は、変更を反映させるために[[ブートローダー]]を設定しなければなりません。&lt;br /&gt;
&lt;br /&gt;
== 公式サポートカーネル ==&lt;br /&gt;
&lt;br /&gt;
公式にサポートされているカーネルについては、[https://bbs.archlinux.org/viewforum.php?id=22 フォーラム]でのコミュニティサポートと[[バグ報告ガイドライン|バグレポート]]を利用できます。&lt;br /&gt;
&lt;br /&gt;
* {{App|Stable|kernel.orgのカーネルにいくつかのパッチが適用した、Arch独自のカーネル。バージョン4.17.11-1以降、Archのカーネルはもはやバニラカーネルではありません。|https://github.com/archlinux/linux/|{{Pkg|linux}}}}&lt;br /&gt;
* {{App|Hardened|カーネルおよびユーザ空間の脆弱性を緩和するための一連の堅牢化パッチを適用した、セキュリティ特化の Linux カーネルです。また、{{Pkg|linux}} よりも多くの上流のカーネル堅牢化機能を有効にします。|https://github.com/anthraxx/linux-hardened|{{Pkg|linux-hardened}}}}&lt;br /&gt;
* {{App|Longterm|長期サポート (LTS) Linux カーネルおよびモジュール|https://www.kernel.org/|{{Pkg|linux-lts}}}}&lt;br /&gt;
* {{App|[[リアルタイムカーネル]]|IngoMolnar が率いるコア開発者の小グループによって維持されています。このパッチを使用すると、コードのいくつかの非常に小さな領域（&amp;quot;raw_spinlock クリティカル領域&amp;quot;）を除いて、ほぼすべてのカーネルをプリエンプトできます。これは、ほとんどのカーネルスピンロックを優先度継承をサポートするミューテックスに置き換え、すべての割り込みとソフトウェア割り込みをカーネルスレッドに移動することによって行われます。|https://wiki.linuxfoundation.org/realtime/start|{{Pkg|linux-rt}}, {{Pkg|linux-rt-lts}}}}&lt;br /&gt;
* {{App|Zen Kernel|カーネルハッカーの共同作業により、日常的なシステムに最適な Linux カーネルです。より詳細な情報は https://liquorix.net (Zen をベースにした Debian 用のカーネルバイナリを提供) で見ることができます。|https://github.com/zen-kernel/zen-kernel|{{Pkg|linux-zen}}}}&lt;br /&gt;
&lt;br /&gt;
== コンパイル ==&lt;br /&gt;
&lt;br /&gt;
次の方法を使って、独自のカーネルをコンパイルできます。&lt;br /&gt;
&lt;br /&gt;
; [[カーネル/Arch build system|Arch Build System]]: 既存の {{Pkg|linux}} [[PKGBUILD]] の高い品質と[[Wikipedia:Package management system|パッケージ管理]]の利点を生かします。&lt;br /&gt;
; [[カーネル/伝統的なコンパイル方法|伝統的な方法]]: 手動でソースの tarball をダウンロードし、ホームディレクトリで通常のユーザーとしてコンパイルする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* カスタムカーネルを使用すると、データの損失など、あらゆる種類の安定性と信頼性の問題が発生する可能性があります。[[バックアップ]]をとることを強くお勧めします。&lt;br /&gt;
* Arch Linux は [[#公式サポートカーネル]]のみを公式にサポートしています。別のカーネルを使用する場合は、サポートリクエストにその旨を記載してください。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* システムの速度を上げる最良の方法は、まず、カーネルの設定をアーキテクチャやプロセッサの種類に合わせることです。&lt;br /&gt;
* 自分が持っていないもの、使っていないもののサポートを含まないようにすることで、カーネルのサイズ (つまりビルド時間) を小さくすることができます。例えば、Bluetooth、video4linux、1000Mbit イーサネットなどのサポートです。&lt;br /&gt;
&lt;br /&gt;
Arch のカーネルパッケージ設定ファイルは Arch のパッケージのソースファイルに含まれています。例えば {{Pkg|linux}} の場合 [https://gitlab.archlinux.org/archlinux/packaging/packages/linux] にリンクがあります。今現在動かしているカーネルのコンフィグファイルはファイルシステムの {{ic|/proc/config.gz}} に存在します (カーネルオプションの {{ic|CONFIG_IKCONFIG_PROC}} が有効になっている場合。)}}&lt;br /&gt;
&lt;br /&gt;
リストにあるパッケージの中には、[[非公式ユーザーリポジトリ]]からバイナリパッケージを入手できるものもあります。&lt;br /&gt;
&lt;br /&gt;
=== kernel.org カーネル ===&lt;br /&gt;
&lt;br /&gt;
* {{App|Git|Linus Torvalds の git リポジトリから得たソースを使ってビルドする Linux カーネルとモジュール。|https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git|{{AUR|linux-git}}}}&lt;br /&gt;
* {{App|Mainline|すべての新機能が導入されるカーネル、2〜3ヶ月ごとにリリースされます。|https://www.kernel.org/|{{AUR|linux-mainline}}}}&lt;br /&gt;
*{{App|Next|次の Mainline リリースにマージされる予定の機能を持つ最先端のカーネル。|https://www.kernel.org/doc/man-pages/linux-next.html|{{AUR|linux-next-git}}}}&lt;br /&gt;
* {{App|DRM|最先端の GPU ドライバ付き Linux カーネル。|https://cgit.freedesktop.org/drm/|{{AUR|linux-drm-tip-git}}, {{AUR|linux-drm-next-git}}}}&lt;br /&gt;
* {{App|Longterm 4.14|長期サポート (LTS) Linux 4.14 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts414}}}}&lt;br /&gt;
* {{App|Longterm 4.19|長期サポート (LTS) Linux 4.19 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts419}}}}&lt;br /&gt;
* {{App|Longterm 5.4|長期サポート (LTS) Linux 5.4 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts54}}}}&lt;br /&gt;
* {{App|Longterm 5.10|長期サポート (LTS) Linux 5.10 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts510}}}}&lt;br /&gt;
* {{App|Longterm 5.15|長期サポート (LTS) Linux 5.15 カーネルとモジュール。|https://www.kernel.org/|{{AUR|linux-lts515}}}}&lt;br /&gt;
&lt;br /&gt;
=== 非公式カーネル ===&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Linux-ck|Ck]]|デスクトップに特に重点を置いてシステムの応答性を向上させるように設計された Con Kolivas (MuQSS scheduler を含む) によるパッチが含まれていますが、どのような使用目的でも問題なく使えます。|http://ck.kolivas.org/|{{AUR|linux-ck}}}}&lt;br /&gt;
* {{App|Clear|Intel の Clear Linux プロジェクトからのパッチ、パフォーマンスとセキュリティの最適化を提供します。|https://github.com/clearlinux-pkgs/linux|{{AUR|linux-clear}}}}&lt;br /&gt;
* {{App|GalliumOS|Chromebook 用の GalliumOS パッチを備えたモジュールと Linux カーネル。|https://github.com/GalliumOS/linux|{{AUR|linux-galliumos}}}}&lt;br /&gt;
* {{App|[[Wikipedia:Linux-libre|Libre]]|[[Wikipedia:ja:難読化 (ソフトウェア)|難読化された]]デバイスドライバや[[Wikipedia:ja:バイナリ・ブロブ|プロプライエタリ]]のデバイスドライバーを使用しません。|https://www.fsfla.org/ikiwiki/selibre/linux-libre/|{{AUR|linux-libre}}}}&lt;br /&gt;
* {{App|Liquorix|Debian をターゲットとした設定と Zen カーネルソースを使用して構築されたカーネル代替品。デスクトップ、マルチメディア、ゲームなどのワークロード向けに設計されており、Debian Linux の性能代替カーネルとしてよく利用されます。Liquorix パッチセットのメンテナである Damentz は、同様に Zen パッチセットの開発者でもあります。|https://liquorix.net|{{AUR|linux-lqx}}}}&lt;br /&gt;
* {{App|pf-kernel|カーネルメインラインにマージされない、ほんの少しの素晴らしい機能を提供します。カーネルエンジニアによって管理されています。新しいカーネルのための含まれるパッチのポートが公式にリリースされていない場合、パッチセットは新しいカーネルへのパッチポートを提供し、サポートします。linux-pf の現在の代表的なパッチは、PDS CPU スケジューラと UKSM です。|https://pfkernel.natalenko.name|パッケージ:}}&lt;br /&gt;
:* pf-kernel の開発者 [https://aur.archlinux.org/account/post-factum post-factum] による[[非公式ユーザーリポジトリ#post-factum_kernels|リポジトリ]]&lt;br /&gt;
:* pf-kernel のフォークの開発者 [https://aur.archlinux.org/account/Thaodan Thaodan] による[[非公式ユーザーリポジトリ#home-thaodan|リポジトリ]]、{{AUR|linux-pf}}&lt;br /&gt;
:* [https://aur.archlinux.org/account/yurikoles yurikoles] による {{AUR|linux-pf-git}} と {{AUR|linux-pf-stable-git}}&lt;br /&gt;
* {{App|Project C|Alfred Chen 氏の Project C パッチセット (BMQ スケジューラと PDS スケジューラ) を当てたカーネル。|https://gitlab.com/alfredchen/projectc|{{AUR|linux-prjc}}}}&lt;br /&gt;
* {{App|Nitrous|Skylake 及びそれ以降に対して最適化された修正版 Linux カーネル。|https://gitlab.com/xdevs23/linux-nitrous|{{AUR|linux-nitrous}}}}&lt;br /&gt;
* {{App|tkg|デスクトップやゲームのパフォーマンスを向上させるためのパッチや調整を提供する、高度にカスタマイズ可能なカーネルビルドシステム。Etienne Juvigny によってメンテナンスされています。他のパッチの中で、様々な CPU スケージューラを提供しています: CFS、Project C PDS、Project C BMQ、MuQSS、CacULE。|https://github.com/Frogging-Family/linux-tkg|[[非公式ユーザーリポジトリ#chaotic-aur|chaotic-aur]] リポジトリで利用可能}}&lt;br /&gt;
* {{App|VFIO|Alex Williamson によって作成されたいくつかのパッチ（acs オーバーライドおよび i915）により、一部のマシンで KVM を使用して PCI パススルーを実行できるようになります。|https://lwn.net/Articles/499240/|{{AUR|linux-vfio}}, {{AUR|linux-vfio-lts}}}}&lt;br /&gt;
* {{App|XanMod|高性能ワークステーション、ゲーミングデスクトップ、メディアセンターなどで最大限に活用されることを目指し、より強固で応答性の高い、スムーズなデスクトップ体験を提供するために構築されています。このカーネルは、MuQSS またはタスクタイプスケジューラ、BFQ I/O スケジューラ、UKSM リアルタイムメモリーデータ重複排除、[https://github.com/google/bbr TCP BBR] 輻輳制御、x86_64 高度命令セットサポート、および他のデフォルト値を変更しています。|https://xanmod.org/|{{AUR|linux-xanmod}}, {{AUR|linux-xanmod-lts}}, {{AUR|linux-xanmod-rt}}}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== カーネルパニック ===&lt;br /&gt;
&lt;br /&gt;
Linux カーネルが回復不能な障害状態になると、&#039;&#039;カーネルパニック&#039;&#039;が発生します。典型的にこの状態はバグのあるハードウェアドライバーが原因で、マシンがデッドロック状態になり、応答しなくなり、再起動が必要になります。デッドロックの直前に、診断メッセージが生成されます。これは、障害が発生したときの&#039;&#039;マシン状態&#039;&#039;、障害を検出したカーネルの関数までの &#039;&#039;呼び出しトレース&#039;&#039;、および現在ロードされているモジュールのリストです。ありがたいことに、カーネルのメインラインバージョン (公式リポジトリで提供されているものなど) を使用してカーネルパニックが発生することはあまりありませんが、発生した場合に備えて対処方法を知る必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Note|カーネルパニックは、&#039;&#039;oops&#039;&#039; または&#039;&#039;カーネル oops&#039;&#039; と呼ばれることもあります。パニックと oops は両方とも障害状態の結果として発生するものですが、oops はより一般的なものであり、必ずしもマシンがデッドロックするわけではありません。問題のあるタスクを強制終了して実行を継続することで、カーネルが oops から回復できる場合があります。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|回復可能な oops で代わりにパニックを発生させることを強制するには、カーネルパラメータ {{ic|1=oops=panic}} を起動時に渡すか、{{ic|/proc/sys/kernel/panic_on_oops}} に {{ic|1}} を書き込んでください。oops リカバリによってシステムが不安定になり将来のエラーの診断が困難になることを懸念しているのであれば、これは推奨される方法です。}}&lt;br /&gt;
&lt;br /&gt;
==== パニックメッセージの検証 ====&lt;br /&gt;
&lt;br /&gt;
カーネルパニックがブートプロセスの非常に早い段階で発生する場合、コンソール上に &amp;quot;Kernel panic - not syncing:&amp;quot; というメッセージが表示されることがありますが、[[Systemd]] が実行し始めると、通常カーネルメッセージはキャプチャされシステムのログに書き込まれます。しかし、パニックが発生した際には、カーネルによる診断メッセージ出力は&#039;&#039;ほとんどの場合&#039;&#039;ディスク上のログファイルに書き込まれません。{{ic|system-journald}} がメッセージを取得・記録する前にマシンがデッドロックしてしまうからです。なので、パニックメッセージを検証する唯一の手段は、(&#039;&#039;kdump crashkernel&#039;&#039; を設定することなく)パニックの発生時にメッセージをコンソール上で見ることです。以下のカーネルパラメータを渡して起動し、tty1 でパニックの再現を試みてください:&lt;br /&gt;
&lt;br /&gt;
 systemd.journald.forward_to_console=1 console=tty1&lt;br /&gt;
&lt;br /&gt;
{{Tip|パニックメッセージが速くスクロールしすぎて検証できない場合、起動時にカーネルパラメータ {{ic|1=pause_on_oops=&#039;&#039;秒数&#039;&#039;}} を渡してみてください。}}&lt;br /&gt;
&lt;br /&gt;
===== 例: 不良モジュール =====&lt;br /&gt;
&lt;br /&gt;
診断メッセージの情報を使って、何のサブシステムやモジュールがパニックを引き起こしているかを推測できます。この例では、とある架空のマシンで起動中にパニックが発生してしまいました。&#039;&#039;&#039;太字&#039;&#039;&#039;で強調した行に注目してください。&lt;br /&gt;
&lt;br /&gt;
{{bc|&#039;&#039;&#039;kernel: BUG: unable to handle kernel NULL pointer dereference at (null)&#039;&#039;&#039; &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;kernel: IP: fw_core_init+0x18/0x1000 [firewire_core]&#039;&#039;&#039; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel: PGD 718d00067&lt;br /&gt;
kernel: P4D 718d00067&lt;br /&gt;
kernel: PUD 7b3611067&lt;br /&gt;
kernel: PMD 0&lt;br /&gt;
kernel:&lt;br /&gt;
kernel: Oops: 0002 [#1] PREEMPT SMP&lt;br /&gt;
&#039;&#039;&#039;kernel: Modules linked in: firewire_core(+) crc_itu_t cfg80211 rfkill ipt_REJECT nf_reject_ipv4 nf_log_ipv4 nf_log_common xt_LOG nf_conntrack_ipv4 ...&#039;&#039;&#039; &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel: CPU: 6 PID: 1438 Comm: modprobe Tainted: P           O    4.13.3-1-ARCH #1&lt;br /&gt;
kernel: Hardware name: Gigabyte Technology Co., Ltd. H97-D3H/H97-D3H-CF, BIOS F5 06/26/2014&lt;br /&gt;
kernel: task: ffff9c667abd9e00 task.stack: ffffb53b8db34000&lt;br /&gt;
kernel: RIP: 0010:fw_core_init+0x18/0x1000 [firewire_core]&lt;br /&gt;
kernel: RSP: 0018:ffffb53b8db37c68 EFLAGS: 00010246&lt;br /&gt;
kernel: RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000&lt;br /&gt;
kernel: RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffffffffc16d3af4&lt;br /&gt;
kernel: RBP: ffffb53b8db37c70 R08: 0000000000000000 R09: ffffffffae113e95&lt;br /&gt;
kernel: R10: ffffe93edfdb9680 R11: 0000000000000000 R12: ffffffffc16d9000&lt;br /&gt;
kernel: R13: ffff9c6729bf8f60 R14: ffffffffc16d5710 R15: ffff9c6736e55840&lt;br /&gt;
kernel: FS:  00007f301fc80b80(0000) GS:ffff9c675dd80000(0000) knlGS:0000000000000000&lt;br /&gt;
kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033&lt;br /&gt;
kernel: CR2: 0000000000000000 CR3: 00000007c6456000 CR4: 00000000001406e0&lt;br /&gt;
kernel: Call Trace:&lt;br /&gt;
&#039;&#039;&#039;kernel:  do_one_initcall+0x50/0x190&#039;&#039;&#039; &amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel:  ? do_init_module+0x27/0x1f2&lt;br /&gt;
kernel:  do_init_module+0x5f/0x1f2&lt;br /&gt;
kernel:  load_module+0x23f3/0x2be0&lt;br /&gt;
kernel:  SYSC_init_module+0x16b/0x1a0&lt;br /&gt;
kernel:  ? SYSC_init_module+0x16b/0x1a0&lt;br /&gt;
kernel:  SyS_init_module+0xe/0x10&lt;br /&gt;
kernel:  entry_SYSCALL_64_fastpath+0x1a/0xa5&lt;br /&gt;
kernel: RIP: 0033:0x7f301f3a2a0a&lt;br /&gt;
kernel: RSP: 002b:00007ffcabbd1998 EFLAGS: 00000246 ORIG_RAX: 00000000000000af&lt;br /&gt;
kernel: RAX: ffffffffffffffda RBX: 0000000000c85a48 RCX: 00007f301f3a2a0a&lt;br /&gt;
kernel: RDX: 000000000041aada RSI: 000000000001a738 RDI: 00007f301e7eb010&lt;br /&gt;
kernel: RBP: 0000000000c8a520 R08: 0000000000000001 R09: 0000000000000085&lt;br /&gt;
kernel: R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000c79208&lt;br /&gt;
kernel: R13: 0000000000c8b4d8 R14: 00007f301e7fffff R15: 0000000000000030&lt;br /&gt;
kernel: Code: &amp;lt;c7&amp;gt; 04 25 00 00 00 00 01 00 00 00 bb f4 ff ff ff e8 73 43 9c ec 48&lt;br /&gt;
kernel: RIP: fw_core_init+0x18/0x1000 [firewire_core] RSP: ffffb53b8db37c68&lt;br /&gt;
kernel: CR2: 0000000000000000&lt;br /&gt;
kernel: ---[ end trace 71f4306ea1238f17 ]---&lt;br /&gt;
&#039;&#039;&#039;kernel: Kernel panic - not syncing: Fatal exception&#039;&#039;&#039; &amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
kernel: Kernel Offset: 0x80000000 from 0xffffffff810000000 (relocation range: 0xffffffff800000000-0xfffffffffbffffffff&lt;br /&gt;
kernel: ---[ end Kernel panic - not syncing: Fatal exception}}&lt;br /&gt;
&lt;br /&gt;
# パニックを引き起こしたエラーの種類を示しています。この場合、プログラマのバグです。&lt;br /&gt;
# モジュール &#039;&#039;firewire_core&#039;&#039; 内の &#039;&#039;fw_core_init&#039;&#039; という関数でパニックが発生したことを示しています。&lt;br /&gt;
# &#039;&#039;firewire_core&#039;&#039; は最後にロードされたモジュールであることを示しています。&lt;br /&gt;
# &#039;&#039;fw_core_init&#039;&#039; 関数を呼んだ関数は &#039;&#039;do_one_initcall&#039;&#039; であったことを示しています。&lt;br /&gt;
# この &#039;&#039;oops&#039;&#039; メッセージが実際にカーネルパニックであり、システムがデッドロックしていることを示しています。&lt;br /&gt;
&lt;br /&gt;
以上のメッセージにより、&#039;&#039;firewire_core&#039;&#039; モジュールがロードされたときの初期ルーチン中にパニックが発生したということを推測できます。(マシンのファームウェアハードウェアは、プログラマのエラーによりこのバージョンのファームウェアドライバモジュールと互換性が無いかもしれないことが推測でき、新しいリリースを待つ必要があることになります。) その間、マシンを再び走らせる最も簡単な方法は、モジュールがロードされないようにすることです。以下の方法のうち1つを取ってください:&lt;br /&gt;
&lt;br /&gt;
* モジュールが &#039;&#039;initramfs&#039;&#039; の実行中にロードされる場合、[[カーネルパラメータ]] {{ic|1=rd.blacklist=firewire_core}} を設定して再起動してください。&lt;br /&gt;
* それ以外の場合、カーネルパラメータ {{ic|1=module_blacklist=firewire_core}} を設定して再起動してください。&lt;br /&gt;
&lt;br /&gt;
==== 再起動して root シェルに入り問題を修正する ====&lt;br /&gt;
&lt;br /&gt;
{{Out of date|[https://gitlab.archlinux.org/archlinux/packaging/packages/systemd/-/commit/292cdf8a2f7dd7c6c7d91d2b59617391935c837c initramfs の root アカウントはロックされているため]、{{ic|rd.rescue}} と {{ic|rd.emergency}} は動作しません。}}&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|{{ic|rd.emergency}} ではキーボードは動作しないため、使用できません。}}&lt;br /&gt;
&lt;br /&gt;
システムに変更を加えてパニックが起こらないようにするには、root シェルが必要です。パニックが起動時に発生する場合、マシンがデッドロックする前に root シェルに入るための戦略が複数あります:&lt;br /&gt;
&lt;br /&gt;
* カーネルパラメータ {{ic|emergency}} か {{ic|rd.emergency}} か {{ic|-b}} を設定して再起動する。これで、root ファイルシステムがマウントされて {{ic|systemd}} が起動した直後にログインプロンプトが表示されます。&lt;br /&gt;
: {{Note|この時点では、root ファイルシステムは&#039;&#039;&#039;読み取り専用&#039;&#039;&#039;でマウントされます。ファイルシステムに変更を加えるには、{{ic|mount -o remount,rw /}} を root ユーザとして実行してください。}}&lt;br /&gt;
* カーネルパラメータ {{ic|rescue}}、{{ic|rd.rescue}}、{{ic|single}}、{{ic|s}}、{{ic|S}}、{{ic|1}} のどれか設定して再起動する。これで、ローカルのファイルシステムがマウントされた直後にログインプロンプトが表示されます。&lt;br /&gt;
* カーネルパラメータ {{ic|1=systemd.debug_shell}} を設定して再起動する。これで、非常に初期の root シェルが tty9 で表示されます。{{ic|Ctrl+Alt+F9}} を押してそのシェルに切り替えてください。&lt;br /&gt;
* パニックを引き起こしているカーネルの機能を無効化するために、異なるカーネルパラメータの組で再起動して実験する。「定番」の {{ic|1=acpi=off}} と {{ic|nolapic}} を試してみてください。&lt;br /&gt;
: {{Tip|すべてのカーネルパラメータは [https://docs.kernel.org/admin-guide/kernel-parameters.html kernel-parameters.html] で見られます。}}&lt;br /&gt;
* 最後の手段として、[[インストールガイド#インストールメディアの準備|Arch Linux インストールメディア]]を起動し、ルートファイルシステムを {{ic|/mnt}} にマウントし、{{ic|arch-chroot /mnt}} を root ユーザとして実行する。&lt;br /&gt;
* パニックを引き起こしているサービスやプログラムを無効化する。不具合のあるアップデートをロールバックする。設定の問題を修正する。&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[Wikipedia:Initial ramdisk|初期 RAM ディスク]]イメージが破損している場合、新しいイメージを生成する必要があるかもしれません。イメージの破損は、カーネルアップデートが中断された場合に起こる可能性があります。新しいイメージを作成する方法は、[[mkinitcpio#イメージ作成とアクティベーション]] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== リグレッションをデバッグする ===&lt;br /&gt;
&lt;br /&gt;
[[一般的なトラブルシューティング#リグレッションをデバッグする]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{AUR|linux-mainline}} を試して、その問題が既に上流で修正されているかどうかを確認してください。ピン留めされたコメントは既にビルドされたカーネルを含むリポジトリにも言及しているので、時間がかかる手動でのビルドは必要ないかもしれません。&lt;br /&gt;
&lt;br /&gt;
最近発生しなかった問題をデバッグするために LTS カーネル ({{Pkg|linux-lts}}) を試してみることも検討する価値があるかもしれません。LTS カーネルの古いバージョンは [[Arch Linux Archive]] で見つけることができます。&lt;br /&gt;
&lt;br /&gt;
それでも問題が解決しないときは、{{AUR|linux-git}} を [[bisect]] してください。そして、[https://bugzilla.kernel.org/ kernel bugzilla] でバグを報告してください。パッチと関係ないことを確認するために、パッチなしの「バニラ」バージョンを試すことが重要です。もしパッチが問題を引き起こすなら、そのパッチの作者に報告してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|カーネルの bisect は何度も作り直さなければならないので、かなりの時間がかかるかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.kroah.com/lkn/ O&#039;Reilly - Linux Kernel in a Nutshell] (フリーの電子書籍)&lt;br /&gt;
* [http://kroah.com/log/blog/2018/08/24/what-stable-kernel-should-i-use/ What stable kernel should I use?] by Greg Kroah-Hartman&lt;br /&gt;
* [https://docs.kernel.org/index.html Linux カーネルのドキュメント]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Kernel|2023-07-25|783528}}&lt;/div&gt;</summary>
		<author><name>田中さん</name></author>
	</entry>
</feed>