Scroll to navigation

MODPROBE(8) modprobe MODPROBE(8)

名前

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 に入れられて、installremove コマンド経由で、ほかの 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 コマンドが存在しても、それを無視します (依存するモジュールについては、このオプションを指定した場合でも、 設定ファイル中でそのモジュールに対して設定されているコマンドの対象になります)。 現状では、このオプションを使用した場合、installremove の両方のコマンドが無視されることになります。 --ignore-install--ignore-remove の片方のみを使って (そして、両方を使うことなく) より具体的に指定しても、動作は変わりません。 modprobe.d(5) を参照してください。

-n, --dry-run, --show

このオプションを指定すると、実際にモジュールを組み込んだり、取り外したり (それに、install や remove コマンドを実行したり) する以外のあらゆることを行います。 -v オプションと組み合わせると、問題が起きたときのデバッグに便利です。 歴史的な理由から --dry-run--show は事実上同じ意味なので、 どちらを使っても構いません。

-q, --quiet

このフラグを使用すると、modprobe は、モジュールを取り外したり、 組み込んだりしようとして、それが見つからなかった場合に (しかも、それがエイリアスの名前でも、installremove コマンドの対象でもなかった場合に)、エラーメッセージを出さなくなります。それでも、 ゼロ以外のステータスで終了することに変わりはありません。なお、カーネルは、 存在するかどうかが不確かなモジュールの探索を 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 に入れられて、installremove コマンド経由で、ほかの modprobe コマンドにも渡されます。

-V, --version

プログラムのバージョンを表示して終了します。

-v, --verbose

プログラムが何をやっているかについてメッセージを表示します。通常 modprobe がメッセージを出すのは、何かがうまく行かなかったときだけです。

このオプションは、環境変数 MODPROBE_OPTIONS に入れられて、installremove コマンド経由で、ほかの modprobe コマンドにも渡されます。

環境変数

環境変数 MODPROBE_OPTIONS は、modprobe コマンドに引数を渡すためにユーザが使用することもできます。

著作権

このマニュアルページの最初の版は、"Copyright 2002, Rusty Russell, IBM Corporation" でした。現在では、Jon Masters ほか数名によって保守されています。

関連項目

modprobe.d(5), insmod(8), rmmod(8), lsmod(8), modinfo(8) depmod(8)

著者

Jon Masters <jcm@jonmasters.org>

開発者

Robby Workman <rworkman@slackware.com>

開発者

Lucas De Marchi <lucas.de.marchi@gmail.com>

開発者
2021/01/29 kmod