modprobe.d(5) modprobe の設定ファイル・ディレクトリ

Other Alias

modprobe.conf

説明

modprobe コマンドはモジュールの依存関係に応じて 複数のモジュールを追加したり削除したりできるため、 これらのモジュールにどのオプションを使うかを指定する手段が必要である。 /etc/modprobe.conf (または /etc/modprobe.conf が存在しない場合、 /etc/modprobe.d ディレクトリ以下のすべてのファイル) は 必要に応じてこれらのオプションを指定する。 また、便利なようにエイリアス (モジュールの別名) を作成するためにも用いられる。 最後に、 (複数のモジュールを登録するなどの) 特別な要求に応えるために、 modprobe の通常の振る舞いを完全に無効にして乗っ取ることができる。

モジュール名やエイリアス名には (他のモジュール名と同様に) - や _ を含めることができる。 ここで、 - と _ はすべてのモジュールコマンドにおいて、 互いに入れ替え可能である (区別されない) ことに注意。

modprobe.confmodprobe.d 以下のファイルの形式は単純である。 1 行に 1 コマンドで、 空行と # で始まる行は無視される (コメントを追加するのに使える) 。 行末の \ は次の行に続くことを意味し、これを使えばファイルが少し見やすくなる。

書式は 2.4 以前のカーネルで使われていた modules.conf を 簡単にしたものである。

コマンド

alias wildcard modulename
モジュールの別名を付ける。 例えば、 "alias my-mod really_long_modulename" とすると、 "modprobe really_long_modulename" の代わりに "modprobe my-mod" を使うことができる。 シェル形式のワイルドカードも使うことができ、 "alias my-mod* really_long_modulename" とすると "modprobe my-mod-something" も同じ効果となる。 他のエイリアスに対するエイリアスを設定することはできない (正しく動作しない) が、 エイリアスにオプションを設定することができ、 それらは他のオプションに追加される。 モジュールはそれ自身にエイリアスを持つことができる点に注意。 それらは modinfo で見ることができる。 これらのエイリアスは最後の望みとして使われる (つまり、その名前の実モジュールもなく、設定ファイル中に その名前の install, remove, alias コマンドが 存在しない場合に使われる) 。
options modulename option...
このコマンドで モジュール modulename (エイリアスも可) に オプションを追加することができる。 ここで設定されたオプションは カーネルに登録される際に毎回使われ、 (modprobe modulename で) 直接登録される場合にも そのモジュールに依存するモジュールと一緒に登録される場合にも 使われる。

モジュール自身に対する option 、 エイリアスに対する option 、 コマンドラインのオプションは、 全てのオプションがいっしょに渡される。

install modulename command...
modprobe.conf の中でもっとも強力なコマンドである。 modprobe は、 通常はカーネルにモジュールを登録するが、 install コマンドを記述すると、 代わりにここで指定された command を実行する。 command はどんなシェルコマンドでもよい。 そのため、どんな複雑な処理でも思いどおりに指定できる。 例えば、モジュール "fred" が、 "barney" がインストールされている状態のほうが うまく動作する (が依存関係にないので modprobe が自動的にロードしない) 場合、 "install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred" と書けば、 望みどおりのことをさせることができる。 ここで、 --ignore-install は 2 番目の modprobe が同じ install コマンドを 再び実行しないようにするためのものである。 remove も参照。

install を使って、 実際には存在しないモジュールを作ることもできる。 例えば、 "install probe-ethernet /sbin/modprobe e100 || /sbin/modprobe eepro100" と書けば、 "modprobe probe-ethernet" としたときに、 まず e100 ドライバを試し、次に eepro100 を試す。

コマンドの中で "$CMDLINE_OPTS" という文字列を使うと、 modprobe のコマンドラインで指定したオプションに置き換えられる。 これを使うと、 設定ファイルに install コマンドが存在していても、 ユーザは "modprobe fred opt=1" というコマンドラインで モジュールに "opt=1" というオプションを渡すことができ、便利である。 つまり、上の例では設定ファイルに "install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred $CMDLINE_OPTS" のように書けばよい。

remove modulename command...
上の install コマンドと同様であるが、 "modprobe -r" が呼び出されたときに実行される。 上の 2 つの例を削除にあてはめると、 "remove fred /sbin/modprobe -r --ignore-remove fred && /sbin/modprobe -r barney" および "remove probe-ethernet /sbin/modprobe -r eepro100 || /sbin/modprobe -r e100" のようになる。
include filename
このコマンドを使うと、 他の設定ファイルまたはディレクトリ全体を読み込むことができ、 これが便利なこともある。 読み込まれたファイル中のエイリアスは 現在のファイルで定義されたエイリアスを上書きすることに注意。
blacklist modulename
モジュールはそれ自身にエイリアスを持つことができる。 通常、これらは "pci:123..." といったように、 サポートするデバイスを表すエイリアスである。 これらの「内部」エイリアスは 通常の "alias" キーワードで上書きすることができる。 しかし、 2 つ以上のモジュールが同じデバイスをサポートする場合や、 モジュールがサポートしないデバイスをサポートするとしている場合もある。 このような場合、 blacklist キーワードを使って、 あるモジュールのすべての内部エイリアスを無視させることができる。

下位互換性

現在の (2.4 または 2.2 の) モジュール設定から modprobe.conf を生成してくれる generate_modprobe.conf というプログラムがある。

書式は以前の /etc/modules.conf と似ているが、 多くの機能が削除されている。 これには 2 つの理由がある: まず、 install および remove コマンドでほとんど何でもできる。 二つ目に、 module-init-tools の modprobe は 他のツールで簡単に置き換えることができるよう、 十分単純になるように設計されている。

実際のモジュールの登録の複雑さが 3 つのシステムコール (open, read, init_module) で軽減され、 modules.dep ファイルが単純でオープンであるおかげで、 もし必要があればもっと強力な改良版の modprobe を作ることも可能である。

著作権

このマニュアルページの著作権表示は Copyright 2004, Rusty Russell, IBM Corporation.