第37章 カーネルモジュール


Linux カーネルにはモジュール設計があります。システムの起動時に、最小の常駐カーネルのみがメモリーに読み込まれます。その後、ユーザーが常駐カーネルに存在しない機能を要求すると、ドライバー と呼ばれる カーネルモジュール は動的にメモリーに読み込まれます。
インストール時に、システムのハードウェアがプローブされます。このプローブとユーザーが提供する情報に基づいて、インストールプログラムは起動時に読み込む必要があるモジュールを決定します。インストールプログラムは、透過的に動作する動的ロードメカニズムを設定します。
インストール後に新しいハードウェアを追加し、ハードウェアにカーネルモジュールが必要な場合は、新しいハードウェア用に適切なカーネルモジュールを読み込むようにシステムを設定する必要があります。システムが新しいハードウェアで起動すると、Kudu プログラムは実行 れ、サポートされている場合は新しいハードウェアを検出し、そのハードウェアに対するモジュールを設定します。モジュールは、モジュール設定ファイル /etc/modprobe.conf を編集して手動で指定することもできます。
備考
X Window System インターフェースの表示に使用されるビデオカードモジュールは、カーネルではなく xorg-X11 パッケージの一部であるため、本章は適用されません。
たとえば、システムに SMC EtherPower 10 PCI ネットワークアダプターが含まれている場合、モジュール設定ファイルには以下の行が含まれます。
alias eth0 tulip
2 つ目のネットワークカードがシステムに追加され、1 番目のカードと同じ場合は、以下の行を /etc/modprobe.conf に追加します。
alias eth1 tulip
カーネルモジュールのアルファベット順と、これらのモジュールでサポートされるハードウェアの一覧は、『『リファレンスガイド』』 を参照してください。

37.1. カーネルモジュールユーティリティー

module-init-tools パッケージがインストールされている場合は、カーネルモジュールを管理するためのコマンドのグループを利用できます。これらのコマンドを使用して、モジュールが正常に読み込まれているかどうか、または新しいハードウェアの一部で異なるモジュールを試行するかどうかを決定します。
/sbin/lsmod コマンドは、現在読み込まれているモジュールの一覧を表示します。以下に例を示します。
Module                  Size  Used by
nfs                   218437  1
lockd                  63977  2 nfs
parport_pc             24705  1
lp                     12077  0
parport                37129  2 parport_pc,lp
autofs4                23237  2
i2c_dev                11329  0
i2c_core               22081  1 i2c_dev
sunrpc                157093  5 nfs,lockd
button                  6481  0
battery                 8901  0
ac                      4805  0
md5                     4033  1
ipv6                  232833  16
ohci_hcd               21713  0
e100                   39493  0
mii                     4673  1 e100
floppy                 58481  0
sg                     33377  0
dm_snapshot            17029  0
dm_zero                 2369  0
dm_mirror              22957  2
ext3                  116809  2
jbd                    71257  1 ext3
dm_mod                 54741  6 dm_snapshot,dm_zero,dm_mirror
ips                    46173  2
aic7xxx               148121  0
sd_mod                 17217  3
scsi_mod              121421  4 sg,ips,aic7xxx,sd_mod
行ごとに 1 列目がモジュールの名前、2 列目はモジュールのサイズ、3 列目は使用カウントです。
/sbin/lsmod 出力は、/proc/modules の表示出力よりも詳細ではなく、読みやすくなります。
カーネルモジュールを読み込むには、/sbin/modprobe コマンドの後にカーネルモジュール名を使用します。デフォルトでは、modprobe/lib/modules/ <kernel-version> /kernel/drivers/ サブ ディレクトリーからモジュールを読み込もうとします。各タイプのモジュールには、ネットワークインターフェースドライバーの net/ サブディレクトリーなど、各タイプのモジュールにサブディレクトリーがあります。一部のカーネルモジュールにはモジュールの依存関係があります。つまり、ロードするために他のモジュールを最初に読み込む必要があります。/sbin/modprobe コマンドは、これらの依存関係を確認し、指定されたモジュールを読み込む前にモジュールの依存関係を読み込みます。
たとえば、コマンドは以下のようになります。
 /sbin/modprobe e100 
モジュール依存関係を読み込み、次に e100 モジュールを読み込みます。
/sbin/modprobe が実行したコマンドをすべて画面に表示するには、-v オプションを使用します。以下に例を示します。
 /sbin/modprobe -v e100 
以下のような出力が表示されます。
 /sbin/insmod /lib/modules/2.6.9-5.EL/kernel/drivers/net/e100.ko Using /lib/modules/2.6.9-5.EL/kernel/drivers/net/e100.ko Symbol version prefix 'smp_' 
/sbin/insmod コマンドもカーネルモジュールを読み込むため存在しますが、依存関係は解決されません。したがって、/sbin/modprobe コマンドの使用が推奨されます。
カーネルモジュールをアンロードするには、/sbin/rmmod コマンドの後にモジュール名を使用します。rmmod ユーティリティーは、使用されていないモジュールと、使用中の他のモジュールの依存関係ではないモジュールのみをアンロードします。
たとえば、コマンドは以下のようになります。
 /sbin/rmmod e100 
e100 カーネルモジュールをアンロードします。
もう 1 つの便利なカーネルモジュールユーティリティーは modinfo です。/sbin/modinfo コマンドを使用して、カーネルモジュールに関する情報を表示します。一般的な構文は以下のとおりです。
 /sbin/modinfo [options]<module>
オプションには -d が含まれます。これにより、モジュールの簡単な説明が表示されます。-p は、モジュールがサポートするパラメーターを一覧表示します。オプションの完全なリストは、modinfo の man ページ(man modinfo )を参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.