modprobe - Linux
カーネルに対してモジュールの着脱を行う
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]
modprobe は、Linux
カーネルに対して頭のよいやり方でモジュールの追加や取り外しを行います。
なお、ユーザの便宜を考慮して、モジュール名に含まれる
_ と -
とを区別しません
(アンダースコアへの変換が自動的に行われます)。
modprobe
は、モジュールディレクトリ
/lib/modules/`uname -r`
を見て、すべてのモジュールやそのほかのファイルをそれ以下に捜します。
ただし、作成が任意の設定ファイルについては、/etc/modprobe.d
ディレクトリを調べます
(modprobe.d(5) 参照)。 modprobe
はまた、カーネルコマンドラインで指定された、
モジュールオプションやブラックリストも使用します。前者の書式は
<module>.<option>
であり、後者の書式は
modprobe.blacklist=<module> です。
なお、2.4 系列の Linux
カーネル
(このツールはサポートしていません)
の場合とは違って、当バージョンの
modprobe
は、モジュールそのものに対しては何の操作も行いません。
シンボルの解決やパラメータの解釈といった作業は、
カーネルの内部で行われます。そこで、モジュールの処理に失敗すると、
カーネルメッセージが出ることがあります。dmesg(8)
を参照してください。
modprobe は、modules.dep.bin
ファイルが最新であることを当てにしています。このファイルは、modprobe
と一緒に配布され、現在の
modprobe に対応している
depmod(8)
ユーティリティによって生成されます
(depmod(8) 参照)。 modules.dep.bin
は、各モジュールが、ほかのどんなモジュールを必要としているかを
(そういったものがあれば)
リストしており、modprobe
は、このファイルを使用して、
そうした依存するモジュールを自動的に追加したり、取り外したりします。
modulename
の後ろに引数を付けると、そうした引数はカーネルに渡されます
(設定ファイルで指定しているモジュールオプション
[訳注:
モジュールパラメータとも言います]
があれば、そこに追加されるわけです)。
オプション¶
-a, --all
コマンドラインで指定されたモジュール名をすべて組み込みます。
-b, --use-blacklist
このオプションを指定すると、
modprobe
は、設定ファイルに
blacklist
コマンドがあれば、それもモジュール名に対して適用します。
このオプションは通常、
udev(7)
によって使用されます。
-C, --config
このオプションは、設定ディレクトリをデフォルトの
/etc/modprobe.d
から変更します。
このオプションは、環境変数
MODPROBE_OPTIONS
に入れられて、install
や remove
コマンド経由で、ほかの
modprobe
コマンドにも渡されます。
-c, --showconfig
設定ディレクトリを読み込み、有効な設定を標準出力に書き出して、終了します。
--dump-modversions
あるモジュールが要求している、そのモジュールのバージョン管理情報のリストを表示します。
このオプションは通常、モジュールのバージョン管理の依存情報を利用して
Linux
のカーネルモジュールをパッケージにまとめるために、
ディストリビューションによって使用されます。
-d, --dirname
モジュール群にとってのルートディレクトリ。デフォルトでは
/ です。
--first-time
通常、modprobe
は、すでに存在するモジュールの組み込みや、
存在しないモジュールの取り外しを命じられても、処理に成功したものとして
(何もせずに)
終了します。これは単純なスクリプトではまったく問題がありません。
でも、より複雑なスクリプトでは、modprobe
が実際に何らかの処理を行ったかどうかを知りたいことがよくあります。
このオプションを使うと、modprobe
は、実際には何もしなかった場合、
実行に失敗したことになります。
--force-vermagic
どのモジュールの中にも、
カーネルやコンパイラのバージョンといった重要な情報を含む短い文字列が存在します。
モジュールのロードに失敗して、
カーネルが「バージョンマジックが一致しない」と苦情を言って来る場合、
このオプションを使えば、そのバージョンマジックを除去することができます。
言うまでもありませんが、こうしたチェックは、
ユーザを守るためにあるのですから、自分のやっていることがよくわかっていないかぎり、
このオプションを使うのは危険です。
このオプションは、組み込まれるどんなモジュールにも適用されます。
すなわち、コマンドラインで指定されたモジュール
(やエイリアス)
だけでなく、
それが依存するモジュールがあれば、それにも適用されます。
--force-modversion
CONFIG_MODVERSIONS
を有効にして、モジュールをコンパイルすると、
そのモジュールが利用する
(あるいは、提供する)
すべてのインターフェースのバージョンを記録したセクションが、モジュール内に作られます。
モジュールのロードに失敗して、カーネルが「モジュールのインターフェースに、
バージョンがカーネル側と一致しないものがある」と苦情を言って来る場合、
"--force-modversion"
を使えば、そうしたバージョン情報をそっくり除去することができます。
言うまでもありませんが、こうしたチェックは、ユーザを守るためにあるのですから、
自分のやっていることがよくわかっていないかぎり、このオプションを使うのは危険です。
このオプションは、組み込まれるどんなモジュールにも適用されます。
すなわち、コマンドラインで指定されたモジュール
(やエイリアス)
だけでなく、
それが依存するモジュールがあれば、それにも適用されます。
-f, --force
バージョン管理に関する情報がモジュールにあると、ロードが中断しかねない場合に、
モジュールからそうした情報をすべて取り除こうとします。
これは
--force-vermagic と
--force-modversion
の両方を使用するのと同じことです。
言うまでもありませんが、こうしたチェックはユーザを守るためにあるのですから、
自分のやっていることがよくわかっていないかぎり、このオプションを使うのは危険です。
このオプションは、組み込まれるどんなモジュールにも適用されます。
すなわち、コマンドラインで指定されたモジュール
(やエイリアス)
だけでなく、
それが依存するモジュールがあれば、それにも適用されます
-i, --ignore-install, --ignore-remove
このオプションを使うと、
modprobe
は、コマンドラインで指定されたモジュールに対して設定ファイル中に
install や remove
コマンドが存在しても、それを無視します
(依存するモジュールについては、このオプションを指定した場合でも、
設定ファイル中でそのモジュールに対して設定されているコマンドの対象になります)。
現状では、このオプションを使用した場合、
install
と
remove
の両方のコマンドが無視されることになります。
--ignore-install や
--ignore-remove
の片方のみを使って
(そして、両方を使うことなく)
より具体的に指定しても、動作は変わりません。
modprobe.d(5)
を参照してください。
-n, --dry-run, --show
このオプションを指定すると、実際にモジュールを組み込んだり、取り外したり
(それに、install や remove
コマンドを実行したり)
する以外のあらゆることを行います。
-v
オプションと組み合わせると、問題が起きたときのデバッグに便利です。
歴史的な理由から
--dry-run と --show
は事実上同じ意味なので、
どちらを使っても構いません。
-q, --quiet
このフラグを使用すると、modprobe
は、モジュールを取り外したり、
組み込んだりしようとして、それが見つからなかった場合に
(しかも、それがエイリアスの名前でも、install
や remove
コマンドの対象でもなかった場合に)、エラーメッセージを出さなくなります。それでも、
ゼロ以外のステータスで終了することに変わりはありません。なお、カーネルは、
存在するかどうかが不確かなモジュールの探索を
request_module
関数を使って便宜主義的に行うために、このフラグを使用します。
-R, --resolve-alias
あるエイリアスに対応するモジュール名をすべて表示します。
モジュールのエイリアスに問題がある場合、デバッグの役に立つかもしれません。
-r, --remove
このオプションを指定すると、
modprobe
は、モジュールを組み込む代わりに、
それを取り外します。そのモジュールが依存しているモジュールも使用されていない場合は、
それもまた取り外そうとします。組み込みを行う場合とは違って、
複数のモジュールをコマンドラインで指定することができます
(モジュールを取り外す場合には、モジュールパラメータを指定しても意味がありません)。
通常は、モジュールを取り外す理由などありませんが、
モジュールにバグのある場合には、それが必要になることもあります。
もっとも、ご使用のディストリビューションのカーネルは、
モジュール取り外しのサポートを有効にしてビルドされていないかもしれません。
-S, --set-version
カーネルのバージョンを設定します。すなわち、カーネルのバージョン
(それによって、モジュールを探しに行く場所が決まります)
を判断するのに、
uname(2)
を使用しません。
--show-depends
あるモジュール
(または、エイリアス)
の依存関係を、そのモジュール自体も含めて、
一覧表示します。モジュールファイル名の集合
(空集合のこともあります)
が、1 行に 1
ファイルずつ、各行の先頭に
"insmod"
を付けて、出力されます。
このオプションの代表的な使い道は、ディストリビューションが
initrd/initramfs
イメージを作成するとき、どのモジュールを収録するかを決めるのに使うことです。
Install
コマンドが適用されている場合は、"install"
という文字列を行頭に置くことで、それを示しますが、そうした
install
コマンドが実行されるわけではありません。なお、
modinfo(8)
を使えば、
モジュールの依存関係をそのモジュール自体から取り出すことができますが、
modinfo
は、設定ファイルの alias
や install
といったコマンドについては、
何も知らないことに注意してください。
-s, --syslog
このオプションを指定すると、エラーメッセージがある場合に、
それを標準エラーに送るのではなく、syslog
の仕組みを通して出力します
(LOG_NOTICE レベルの LOG_DAEMON
として扱われます)。
このオプションは、標準エラーが使えない場合にも、自動的に有効になります。
このオプションは、環境変数
MODPROBE_OPTIONS
に入れられて、install
や remove
コマンド経由で、ほかの
modprobe
コマンドにも渡されます。
-V, --version
プログラムのバージョンを表示して終了します。
-v, --verbose
プログラムが何をやっているかについてメッセージを表示します。通常
modprobe
がメッセージを出すのは、何かがうまく行かなかったときだけです。
このオプションは、環境変数
MODPROBE_OPTIONS
に入れられて、install
や remove
コマンド経由で、ほかの
modprobe
コマンドにも渡されます。
環境変数¶
環境変数 MODPROBE_OPTIONS
は、modprobe
コマンドに引数を渡すためにユーザが使用することもできます。
著作権¶
このマニュアルページの最初の版は、"Copyright
2002, Rusty Russell, IBM Corporation"
でした。現在では、Jon
Masters
ほか数名によって保守されています。
Jon Masters <jcm@jonmasters.org>
開発者
Robby Workman <rworkman@slackware.com>
開発者
Lucas De Marchi <lucas.de.marchi@gmail.com>
開発者