Linux Kernel Module DKMS/akmod 2026(リナックスカーネルモジュール)
Linux Kernel Module Build。DKMS Dynamic Kernel Module Support (Auto Rebuild on Kernel Update)・akmod (Fedora RPM Fusion DKMS代替)・Out-of-Tree Driver (NVIDIA proprietary・VirtualBox)・modinfo・modprobe・lsmod・rmmod・insmod・/lib/modules/$(uname -r)・depmod・blacklist (modprobe.d)・/proc/modules・/sys/module・signed module (CONFIG_MODULE_SIG)・udev・udevadm trigger・¥0 OSS、2026年Rust Kernel Module GA予告。
概要
Linux Kernel Module DKMS(Dynamic Kernel Module Support)とakmodは、カーネルが更新されるたびにモジュールを自動で再ビルドし、最新カーネルに即座に適用できる仕組みです。2025年にRustで書かれたカーネルモジュールの一般公開(GA)が発表され、2026年にはDKMSがsystemd‑udevと統合され、モジュールロードのトリガーがさらに高速化しました。FedoraではRPM Fusionがakmodを代替として提供し、NVIDIAの専用ドライバやVirtualBoxのドライバなど、オフツリートレイ(Out‑of‑Tree)ドライバを簡易に管理できます。modprobe、lsmod、rmmod、insmod、depmod などのツールと連携し、/lib/modules/$(uname -r) にモジュールを配置します。CONFIG_MODULE_SIGにより署名モジュールのサポートも強化され、2026年には署名検証がデフォルトで有効化される見込みです。
主な特徴・仕組み
- 自動再ビルド:カーネル更新時に
dkms autoinstallが自動実行され、モジュールが即座に再コンパイルされる。 - 署名モジュール対応:
CONFIG_MODULE_SIGを有効にすると、署名されたモジュールのみロード可能。2026年にはデフォルトで有効化。 - RPM Fusion akmod:Fedoraで
akmod-<module>パッケージをインストールすると、DKMS と同様に自動ビルドされるが、RPM ベースで管理。 - Out‑of‑Tree ドライバ:NVIDIA RTX 5090 や AMD Radeon RX 7900 XTX の専用ドライバは DKMS でビルドされ、カーネル更新に追従。
- modprobe.d ブラックリスト:
/etc/modprobe.d/blacklist.confにエントリを追加して特定モジュールのロードを禁止。 - udev 連携:
udevadm triggerでデバイスイベントが発生すると、モジュールのロード/アンロードが自動で行われる。 - 依存関係管理:
depmod -aが/proc/modulesと/sys/moduleを参照し、必要なモジュールを自動でロード。 - Rust Kernel Module GA 予告:2025年に発表された Rust で書かれたモジュールは、2026年に正式 GA。DKMS でも Rust コンパイラを呼び出してビルド可能。
- 多アーキテクチャ対応:Intel Xeon W-3300 シリーズ(10nm、3.2GHz ベース、4.5GHz ブースト)や ARM64 でも同様に機能。
- パフォーマンス:DKMS でビルドされたモジュールは 24GB GDDR7 の RTX 5090 で 450W TDP の GPU でも 1TB NVMe SSD を利用したシステムで 120Hz 4K モニタに 8GB VRAM で対応可能。
スペック比較表
| 項目 | DKMS | akmod (Fedora) | ネイティブカーネルモジュール |
|---|---|---|---|
| ビルドトリガ | カーネル更新時自動 | カーネル更新時自動 | 手動ビルド |
| 署名サポート | 有 | 有 | 有 |
| RPM 連携 | なし | あり | なし |
| 依存関係解決 | depmod で自動 | depmod で自動 | なし |
| 対応OS | Debian系、RHEL系 | Fedora | すべての Linux |
具体例・対応製品
| 製品 | モジュール | 使用DKMS/akmod | 備考 |
|---|---|---|---|
| NVIDIA RTX 5090 | nvidia-dkms | DKMS | 24GB GDDR7, 450W TDP |
| AMD Radeon RX 7900 XTX | amdgpu-dkms | DKMS | 24GB GDDR7, 350W TDP |
| VirtualBox Guest Additions | vboxguest-dkms | DKMS | 1TB NVMe |
| Intel Xeon W-3300 | intel-ucode-dkms | DKMS | 10nm, 3.2GHz/4.5GHz |
| ASUS ROG Strix X670E | x86_64-arch-dkms | akmod | DDR5-6000, 128GB |
さらに注目すべき製品
- Raspberry Pi 5(ARM64)での
brcmfmac-dkmsは、2026年に新しいカーネルバージョンで自動再ビルドが保証される。 - NVIDIA A100 の
nvidia-dkmsは、2025年にリリースされた CUDA 12.0 で完全互換。 - Samsung 980 Pro 1TB NVMe 用の
nvme-dkmsは、2026年のカーネル 6.6 でパフォーマンスが 10% 向上。
自作PCでの選び方・注意点
- カーネルバージョンの把握:DKMS は
uname -rで確認したカーネルに合わせてビルドされる。最新カーネルを使う場合はdkms statusでビルド済みか確認。 - 署名キーの管理:署名モジュールを利用する場合は
mokutil --import <key>で MOK キーを登録。2026年のデフォルト設定では必須になる。 - 依存関係の解消:
dkms add -m <module> -v <version>の際にdkms buildが失敗したら、apt-get install linux-headers-$(uname -r)を実行。 - ブラックリスト設定:特定デバイスが不要な場合は
/etc/modprobe.d/blacklist.confにblacklist <module>を追加。 - Rust モジュールへの切り替え:2025年の GA 以降、Rust で書かれたモジュールは
cargoでビルド。DKMS でもdkms add -m rustmod -v 1.0で扱える。 - 自動再ビルドの有効化:
/etc/dkms/dkms.confのAUTOINSTALL="yes"を確認。 - ログの確認:
journalctl -xe | grep dkmsでビルド失敗の原因を特定。 - パフォーマンス最適化:
CONFIG_DEBUG_KERNELを無効化し、make -j$(nproc)で高速ビルド。 - UEFI Secure Boot:Secure Boot が有効の場合、モジュール署名が必須。2026年には
mokutilで自動 MOK 管理が可能。 - バックアップ:DKMS の設定は
/etc/dkmsに保存されるため、システム移行時はdpkg -S /etc/dkmsで確認。
関連用語との違い
| 用語 | 主な違い | 代表例 |
|---|---|---|
| DKMS | カーネル更新時自動再ビルド | NVIDIA ドライバ |
| akmod | RPM ベースで管理 | Fedora の akmod-nvidia |
| Out‑of‑Tree Driver | カーネルソース外で開発 | VirtualBox Guest Additions |
| modprobe | モジュールロードツール | modprobe nvidia |
| Rust Kernel Module | Rust 言語で書かれたモジュール | 2025年 GA の rustmod |
よくある質問(FAQ)
Q1. DKMS と akmod の違いは何ですか?
A1. DKMS はソースコードをカーネルに合わせて自動でビルドし、任意のディストリビューションで動作します。akmod は Fedora の RPM Fusion が提供する DKMS の代替で、RPM パッケージとして管理されます。どちらも自動再ビルドは可能ですが、akmod は RPM ベースで依存関係管理が容易です。
Q2. 署名モジュールが必要な場合、どのように設定すればよいですか?
A2. まず mokutil --import <key> で MOK キーを登録し、/etc/modprobe.d/blacklist.conf でブラックリストを設定しないようにします。次に DKMS の dkms.conf で CONFIG_MODULE_SIG="y" を有効化し、ビルド時に make KERNELRELEASE=$(uname -r) -j$(nproc) を実行します。Secure Boot が有効な場合、モジュール署名が必須です。
Q3. Rust で書かれたカーネルモジュールを DKMS でビルドするには?
A3. Rust で書かれたモジュールは Cargo.toml に kernel = "6.6" などのバージョンを指定し、build.rs で rustc を呼び出します。DKMS の dkms.conf で BUILDFLAGS="CARGO_HOME=... RUST_TARGET=..." を設定し、dkms add -m rustmod -v 1.0 で登録後 dkms autoinstall でビルドします。2025年に GA が発表されたため、公式ドキュメントを参照してください。
まとめ
DKMS と akmod は、Linux カーネルモジュールをカーネル更新に追随させるための最も汎用的かつ自動化された手段です。2025年の Rust カーネルモジュール GA と 2026年の署名モジュールデフォルト化により、モジュールの安全性と開発効率が大幅に向上しました。自作PCを構築する際は、使用するハードウェア(RTX 5090、Ryzen 9 9950X3D、DDR5‑6000 など)に合わせて DKMS/akmod の設定を行い、Secure Boot 環境でもスムーズに動作させることが重要です。これらのツールを適切に活用すれば、カーネルのアップグレード時に発生するドライバ不整合を最小限に抑え、安定したシステム運用が可能になります。