第31章 カーネルモジュールの使用
Linux カーネルはモジュールであり、動的に読み込まれる カーネルモジュール を使用してその機能を拡張できます。カーネルモジュールは、以下のものを提供できます。
- 新しいハードウェアへのサポートを強化するデバイスドライバー
btrfs
やNFS
などのファイルシステムのサポート
カーネル自体と同様に、モジュールは動作をカスタマイズするパラメーターを取ることができます。ただし、デフォルトのパラメーターでほとんどのケースで十分に機能します。また、利用可能なパラメーターに使用できる全モジュールやモジュール固有の情報をクエリーできます。さらには、実行中のカーネルに対してモジュールを動的にロード/アンロード (削除) することも可能です。module-init-tools パッケージが提供するユーティリティーの多くは、操作の実行時にモジュールの依存関係を考慮するため、手動による依存関係の追跡が必要になることはほとんどありません。
最新のシステムでは、条件を呼び出す際に、さまざまなメカニズムによりカーネルモジュールが自動的に読み込まれます。ただし、モジュールがオプションの機能を提供する場合など、モジュールを手動でロードまたはアンロードする必要がある場合、特定のモジュールは基本的な機能を提供する場合もありますが、モジュールがその他の状況で動作しない場合もあります。
本章では、以下を行う方法を説明します。
- ユーザー空間の module-init-tools パッケージを使用して、カーネルモジュールとその依存関係を表示、クエリー、読み込み、アンロードします。
- モジュールパラメーターをコマンドラインで動的に設定し、カーネルモジュールの動作をカスタマイズできるようにします。
- 起動時にモジュールをロードします。
module-init-tools パッケージのインストール
本章で説明するカーネルモジュールユーティリティーを使用するには、最初に root で以下を実行して module-init-tools パッケージがインストールされていることを確認します。
~]# yum install module-init-tools
yum を使用したパッケージのインストールは 「パッケージのインストール」 を参照してください。
31.1. 現在ロードされているモジュールの一覧表示
lsmod コマンドを実行して、現在カーネルに読み込み済みの全カーネルモジュールを一覧表示できます。
~]$ lsmod Module Size Used by xfs 803635 1 exportfs 3424 1 xfs vfat 8216 1 fat 43410 1 vfat tun 13014 2 fuse 54749 2 ip6table_filter 2743 0 ip6_tables 16558 1 ip6table_filter ebtable_nat 1895 0 ebtables 15186 1 ebtable_nat ipt_MASQUERADE 2208 6 iptable_nat 5420 1 nf_nat 19059 2 ipt_MASQUERADE,iptable_nat rfcomm 65122 4 ipv6 267017 33 sco 16204 2 bridge 45753 0 stp 1887 1 bridge llc 4557 2 bridge,stp bnep 15121 2 l2cap 45185 16 rfcomm,bnep cpufreq_ondemand 8420 2 acpi_cpufreq 7493 1 freq_table 3851 2 cpufreq_ondemand,acpi_cpufreq usb_storage 44536 1 sha256_generic 10023 2 aes_x86_64 7654 5 aes_generic 27012 1 aes_x86_64 cbc 2793 1 dm_crypt 10930 1 kvm_intel 40311 0 kvm 253162 1 kvm_intel [output truncated]
lsmod 出力の各行は、以下を指定します。
- メモリーに現在読み込まれているカーネルモジュールの名前
- 使用するメモリー量(および)
- モジュールを使用しているプロセスの合計と、それに依存する他のモジュールがある場合は、そのモジュールの名前の一覧が続きます。この一覧を使用して、アンロードしたいモジュールに依存しているモジュールすべてを最初にアンロードできます。詳細は、「モジュールのアンロード」 を参照してください。
最後に、lsmod 出力は
/proc/modules
擬似ファイルの内容ほど詳細ではないので、はるかに読み取りやすくなっていることに注意してください。