Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第31章 カーネルモジュールの使用

Linux カーネルはモジュールであり、動的に読み込まれる カーネルモジュール を使用してその機能を拡張できます。カーネルモジュールは、以下のものを提供できます。
  • 新しいハードウェアへのサポートを強化するデバイスドライバー
  • btrfsNFS などのファイルシステムのサポート
カーネル自体と同様に、モジュールは動作をカスタマイズするパラメーターを取ることができます。ただし、デフォルトのパラメーターでほとんどのケースで十分に機能します。また、利用可能なパラメーターに使用できる全モジュールやモジュール固有の情報をクエリーできます。さらには、実行中のカーネルに対してモジュールを動的にロード/アンロード (削除) することも可能です。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 擬似ファイルの内容ほど詳細ではないので、はるかに読み取りやすくなっていることに注意してください。