31.3. モジュールの読み込み
カーネルモジュールを読み込むには、root で modprobe < module_name> コマンドを実行します。たとえば、
wacom
モジュールを読み込むには、以下のコマンドを実行します。
~]# modprobe wacom
デフォルトでは、modprobe は
/lib/modules/ <kernel_version> /kernel/drivers/
ディレクトリーからモジュールを読み込もうとします。このディレクトリーでは、各タイプのモジュールには、ネットワークおよび SCSI インターフェースドライバー用の net/
や scsi/
などの独自のサブディレクトリーがあります。
一部のモジュールには依存関係があります。これは、問題のモジュールを読み込む前に読み込む必要がある他のカーネルモジュールです。モジュール依存関係の一覧は、カーネルまたはドライバーパッケージがインストールされたときに自動的に実行される depmod プログラムにより生成および維持されます。depmod プログラムは、依存関係のリストを
/lib/modules/<kernel_version>/modules.dep
ファイルに保持します。modprobe コマンドは、操作の実行時に常に modules.dep
ファイルを読み取ります。modprobe に特定のカーネルモジュールを読み込むよう指示すると、まずそのモジュールの依存関係(ある場合)を調べ、カーネルに読み込まれていない場合は読み込みます。modprobe は依存関係を再帰的に解決します。必要に応じて、依存関係のすべての依存関係を読み込むため、すべての依存関係が常に満たされるようにします。
-v
(または --verbose
)オプションを使用すると、modprobe が、モジュール依存関係のロードなど、実行内容に関する詳細情報を表示できます。以下は、イーサネットモジュールでファイバーチャネル
の詳細を読み込む例です。
例31.3 modprobe -v は、読み込む際にモジュール依存関係を表示します。
~]# modprobe -v fcoe
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/scsi_tgt.ko
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/scsi_transport_fc.ko
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/libfc/libfc.ko
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/fcoe/libfcoe.ko
insmod /lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/scsi/fcoe/fcoe.ko
この例では、modprobe が、
fcoe
を読み込む前に、scsi_tgt
モジュール、scsi_transport_fc
、libfc
モジュール、libfcoe
モジュールを依存関係としてロードしていることを示しています。また、modprobe は、モジュールを実行中のカーネルに挿入するために、より 「プリミティブ」 insmod コマンドを使用していることに注意してください。
insmod の代わりに modprobe を常に使用します。
insmod コマンドを使用してカーネルモジュールを読み込むこともできますが、依存関係は解決されません。このため、代わりに modprobe を使用してモジュールを 常に 読み込む必要があります。