lsmod
lsmodコマンドは現在ロードされているモジュール一覧を表示。/proc/modulesを読み込んで表示。
例
# lsmod
Module Size Used by Tainted: P
soundcore 5444 0 (autoclean)
autofs 10820 1 (autoclean)
eepro100 19248 1
uhci 26696 0 (unused)
hid 20384 0 (unused)
md 60448 0 (unused)
encode-eucjp 242944 0 (unused)
rtc 7100 0 (autoclean)
モジュール名、サイズ、モジュールを使用しているプロセス数、依存関係のあるモジュールが表示される。
modinfo
モジュールに関連する情報を参照する。
構文
modinfo [オプション] [モジュール名]
主なオプション
-a | 作者のみを表示 |
-f | 説明のみを表示 |
-n | ファイル名のみを表示 |
例
# modinfo eepro100
filename: /lib/modules/2.4.19-0vl11/kernel/drivers/net/eepro100.o
description: "Intel i82557/i82558/i82559 PCI EtherExpressPro driver"
author: "Maintainer: Andrey V. Savochkin <saw@saw.sw.com.sg>"
license: "GPL"
parm: debug int, description "debug level (0-6)"
parm: options int array (min = 1, max = 8), description "Bits 0-3: tranceiver type, bit 4: full duplex, bit 5: 100Mbps"
parm: full_duplex int array (min = 1, max = 8), description "full duplex setting(s) (1)"
parm: congenb int, description "Enable congestion control (1)"
parm: txfifo int, description "Tx FIFO threshold in 4 byte units, (0-15)"
parm: rxfifo int, description "Rx FIFO threshold in 4 byte units, (0-15)"
parm: txdmacount int
parm: rxdmacount int
parm: rx_copybreak int, description "copy breakpoint for copy-only-tiny-frames"
parm: max_interrupt_work int, description "maximum events handled per interrupt"
parm: multicast_filter_limit int, description "maximum number of filtered multicast addresses"
insmod
ローダブルモジュールを稼働中のシステムにロードする。rootのみ使用可
構文
insmod [オプション] [モジュール名]
主なオプション
-s | 結果を標準出力ではなく、syslogに出力 |
-v | 詳細な情報を表示 |
rmmod
insmodコマンドの逆で、システムにロードされているモジュールを削除する。使用中のものは削除出来ず、エラーメッセージが表示される。
構文
rmmod [オプション] [モジュール名]
主なオプション
-a | 未使用のモジュールをすべて削除 |
-s | 結果を標準出力ではなく、syslogに出力 |
modprobe
insmodコマンドやrmmodコマンドはロードや削除に関しての依存関係を調べない。modprobeコマンドはモジュール同士の依存関係を考慮して、ロードや削除を行う。オプションなしで実行した場合は、指定されたモジュールを依存するモジュールとともにロードする。
構文
moduprobe [オプション] [モジュール名]
主なオプション
-a | すべてのモジュールをロードする。-tオプションを同時につけると、特定のディレクトリ以下にあるモジュールをすべてロードする |
-l | ロードできるモジュールのファイル名一覧を表示する。tオプションを同時につけると、特定のディレクトリ以下にあるモジュールを表示する |
-r | 依存関係などを考慮して、モジュールを削除する。別のモジュールに必要とされているモジュールは削除されない |
-s | 結果を標準出力ではなく、syslogに出力 |
-t [ディレクトリ名] | /lib/module/[カーネルバージョン]/ディレクトリ以下にあるディレクトリについて、名前を指定する事により、特定の機能のモジュールだけを表示する。-a、-lなどとともに使う |
例
# modprobe -lt net
/lib/modules/2.4.19-0vl11/kernel/drivers/net/3c501.o
/lib/modules/2.4.19-0vl11/kernel/drivers/net/3c503.o
/lib/modules/2.4.19-0vl11/kernel/drivers/net/3c505.o
/lib/modules/2.4.19-0vl11/kernel/drivers/net/3c507.o
/lib/modules/2.4.19-0vl11/kernel/drivers/net/3c509.o
/lib/modules/2.4.19-0vl11/kernel/drivers/net/3c515.o
/lib/modules/2.4.19-0vl11/kernel/drivers/net/3c59x.o
/lib/modules/2.4.19-0vl11/kernel/drivers/net/8139cp.o
(実際はさらに続く)
modules.dep
モジュール間の依存関係を記述したファイル。
/lib/modules/[カーネルバージョン]/ディレクトリにある。以下の書式で記述されている。
[モジュールのファイル名]:[必要とするモジュールのファイル名1][必要とするモジュールのファイル名2].......
たとえば、MS-DOSファイルシステムを扱うためのドライバーモジュールmsdos(ファイルはmsdos.o)に関しては、
# grep msdos.o /lib/modules/`uname -r`/modules.dep
/lib/modules/2.4.19-0vl11/kernel/fs/msdos/msdos.o: /lib/modules/2.4.19-0vl11/kernel/fs/fat/fat.o
となっているので、fat.oがロードに必要である事が分かる。
modules.depファイルは、depmod -aコマンドで作成される。
modules.conf(conf.modules)
依存関係のあるモジュール群をロードする順番を指定したり、ロードする際のモジュールにオプションを渡したり、モジュールのエイリアスを定義する場合は、このファイルに記述する。
書式は、次の通り。
[ディレクティブ] [設定]
主なディレクティブ
depfile=[ディレクトリ] | デフォルトのmodules.depファイルのあるディレクトリ/lib/modules/[カーネルバージョン]/ディレクトリ以外のディレクトリをmodules.depを億場所として指定する |
path=[ディレクトリ] | デフォルトのモジュールのあるディレクトリ/lib/modules/[カーネルバージョン]/ディレクトリ以外のディレクトリをモジュールを探す場所として指定する |
options [モジュール][オプション...] | モジュールをロードする際のオプションを指定する |
alias [エイリアス名] [モジュール名] | モジュールに対する、エイリアスを定義する |
pre-install [モジュール][コマンド] | あるコマンドを実行する前にロードされていなくてはならないモジュールを設定する |
# cat /etc/modules.conf
alias parport_lowlevel parport_pc
alias eth0 eepro100
# add by postinstallscript of ppxp rpm
alias tap0 ethertap
options -o tap0 unit=0
alias tap1 ethertap
options -o tap1 unit=1
# you can continue for units tap2 through tap15
# if you like, but usually only the first is needed.
Linux/LPI