Introduction
このドキュメントは、man modprobe
の内容をできるだけ分かりやすく翻訳し、必要に応じて補足情報を追加しています。
NAME
modprobe は、カーネルモジュールの追加、またはそれを削除します。
SYNOPSIS
modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-b] [modulename] [module parameters...]
modprobe [-r] [-v] [-n] [-i] [modulename...]
modprobe [-c]
modprobe [--dump-modversions] [filename]
DESCRIPTION
modprobe は、依存関係を考慮して Linux カーネルからモジュールを追加または削除します。便宜上、モジュール名において ‘_’ と ‘-‘ の間には違いがないことに注意してください。自動的なアンダースコアの変換が行われます。modprobe は、/etc/modprobe.d ディレクトリ内のオプションの構成ファイルを除くすべてのモジュールおよびその他のファイルを検索するために、モジュールディレクトリを調べます。また、modprobe は、カーネルコマンドラインで指定された <module>.<option> 形式のモジュールオプションおよび modprobe.blacklist=<module> 形式のブラックリストも使用します。
なお、このツールでサポートされていない 2.4 シリーズの Linux カーネルとは異なり、このバージョンの modprobe は、モジュール自体には何もしません。シンボルの解決とパラメータの理解の作業はカーネル内で行われます。そのため、モジュールの失敗は時にカーネルメッセージと一緒に伴うことがあります。
modprobe は、それに対応する depmod ユーティリティによって生成された最新の modules.dep.bin ファイルを期待します。このファイルは、各モジュールが必要とする他のモジュールがあればリストし、それを使用してこれらの依存関係を自動的に追加または削除します。
モジュール名の後に引数が指定されている場合、構成ファイルにリストされているオプションに加えてカーネルに渡されます。
OPTIONS
-a
, --all
コマンドラインで指定されたすべてのカーネルモジュールを追加します。
-b
, --use-blacklist
設定ファイル内のブラックリストコマンドがあれば、それをモジュール名にも適用します。通常、udev(7) によって使用されます。
-C
, --config
/etc/modprobe.d(デフォルトの設定ディレクトリ)を上書きします。このオプションは、MODPROBE_OPTIONS 環境変数内の install
または remove
コマンドにも影響を与えます。
-c
, --showconfig
設定ディレクトリからの有効な設定をダンプして終了します。
--dump-modversions
モジュールのパッケージングに必要なモジュールバージョン情報のリストを出力します。このオプションは、Linux カーネルモジュールをパッケージ化するためにディストリビューションで一般的に使用されます。
-d
, --dirname
モジュールのルートディレクトリを指定します。デフォルトは / です。
--first-time
通常、既に存在するモジュールを挿入しようとした場合や存在しないモジュールを削除しようとした場合、modprobe は成功し(何も行わない)、失敗しません。これはシンプルなスクリプトに最適です。しかし、より複雑なスクリプトでは、modprobe が実際に何かを行ったかどうかを知りたいことがよくあります。このオプションは、modprobe が実際に何も行わなかった場合に失敗するようにします。
--force-vermagic
各モジュールには、カーネルやコンパイラのバージョンなど、重要な情報が含まれています。モジュールの読み込みに失敗し、カーネルが「version magic」が一致しないとクレームした場合、このオプションを使用してそれを削除できます。自己保護のためにこのチェックが存在するので、これを使用するのは危険です。
--force-modversion
モジュールが CONFIG_MODVERSIONS でコンパイルされている場合、モジュールが使用する(または提供する)すべてのインターフェースのバージョンを詳細に示したセクションが作成されます。モジュールの読み込みに失敗し、カーネルがモジュールがいくつかのインターフェースのバージョンについて異議を唱えた場合、--force-modversion
を使用してバージョン情報を完全に削除できます。自己保護のためにこのチェックが存在するので、これを使用するのは危険です。
-f
, --force
モジュールから読み込みを停止する可能性のあるバージョニング情報を削除しようとします。これは、--force-vermagic
と --force-modversion
の両方を使用するのと同じです。これらのチェックは自己保護のために存在するので、これを使用するのは危険です。
-i
, --ignore-install
, --ignore-remove
指定されたモジュールに対する設定ファイル内の install
および remove
コマンドを無視します。依存するモジュールは引き続き設定ファイル内でそれらのコマンドが設定されている場合に影響を受けます。
-n
, --dry-run
, --show
実際にモジュールを挿入または削除することなく、すべての操作を実行します。または install
または remove
コマンドを実行します。-v
と組み合わせて使用すると、問題のデバッグに役立ちます。
-q
, --quiet
見つからないモジュールを削除または挿入しようとした場合にエラーメッセージを出力しません。ただし、非ゼロの終了ステータスで返します。
-R
, --resolve-alias
エイリアスに一致するすべてのモジュール名を出力します。これは、モジュールエイリアスの問題をデバッグするのに役立ちます。
-r
, --remove
モジュールを挿入するのではなく、削除するように modprobe に指示します。依存するモジュールが未使用であれば、modprobe はそれらも削除しようとします。挿入と異なり、複数のモジュールをコマンドラインで指定できますが、モジュールを削除する場合にモジュールパラメータを指定することは意味がありません。
-S
, --set-version
uname(2) を使用してカーネルバージョンを決定する代わりに、カーネルバージョンを設定します。これはモジュールの場所を決定します。
--show-depends
モジュール(またはエイリアス)の依存関係をリストアップします。これには、モジュール自体も含まれます。これにより、モジュールファイル名の集合(おそらく空の場合もあります)が 1 行に 1 つずつ生成され、それぞれが insmod で始まります。これは、initrd/initramfs イメージを生成する際にどのモジュールを含めるかをディストリビューションが決定するために通常使用されます。適用されるインストールコマンドは、プレフィックスが install で表示されます。これは、インストールコマンドを実行しません。モジュール自体からのモジュールの依存関係を抽出するには、modinfo(8) を使用できますが、エイリアスやインストールコマンドについては何も知りません。
-s
, --syslog
エラーメッセージを標準エラーではなくsyslog を介して送信します。これは、標準エラーが利用できない場合にも自動的に有効になります。このオプションは、MODPROBE_OPTIONS 環境変数内のインストールまたは削除コマンドを他の modprobe コマンドに渡します。
-V
, --version
プログラムのバージョンを表示して終了します。
-v
, --verbose
プログラムが行っている操作に関するメッセージを表示します。通常、modprobe は何かがうまくいかない場合にのみメッセージを出力します。このオプションは、MODPROBE_OPTIONS 環境変数内のインストールまたは削除コマンドを他の modprobe コマンドに渡します。
ENVIRONMENT
MODPROBE_OPTIONS 環境変数を使用して modprobe に引数を渡すこともできます。
SEE ALSO
modprobe.d(5), insmod(8), rmmod(8), lsmod(8), modinfo(8) depmod(8)
modprobe の設定ファイル
modprobe の設定ファイルは、/etc/modprobe.d ディレクトリ内の .conf の拡張子を持つファイルです。詳細は、man 5 modprobe.d
に記載されています。カーネル 2.4 までは /etc/modules.conf です。modprobe の設定ファイルには、主に次の設定を記述できます。
コマンド | 説明 |
---|---|
options | 各カーネルモジュールのデフォルトパラメータを指定します。 |
alias | カーネルモジュールに別名を付けます。 |
install | 特定のカーネルモジュールのロード時に実行されるコマンドを指定します。 |
remove | 特定のカーネルモジュールのアンロード時に実行されるコマンドを指定します。 |
blacklist | ロードしたくないカーネルモジュールを指定します。 |
modprobe で指定可能なモジュール名の一覧
modprobe で指定可能なモジュール名の一覧を表示できる方法はなく、ls /lib/modules/$(uname -r)/kernel
内の各ディレクトリを確認する必要があります。