MODPROBE.D

Section: modprobe.d (5)
Updated: 2021/01/29
Index JM Home Page roff page
 

名前

modprobe.d - modprobe 向けの設定ディレクトリ  

書式

/lib/modprobe.d/*.conf

/usr/local/lib/modprobe.d/*.conf

/run/modprobe.d/*.conf

/etc/modprobe.d/*.conf  

説明

modprobe コマンドでは、 複数のモジュールに対する追加や削除ができます。 そもそもモジュールには依存関係があるため、 そのようなモジュールに対しては、 どのようなオプションを適用するのかを示す必要があります。 /etc/modprobe.d ディレクトリに置くファイルは、 すべて .conf という拡張子を持つものであり、 必要となるオプションを指定します。 同時にこれらのファイルでは、 便利なエイリアス、 つまりモジュールに対する別名を生成するものとしても利用されます。 また、 特別な要件 (たとえば複数モジュールの挿入を要するなど) がある場合に、 通常の modprobe の動作を上書きすることができます。

なお、 モジュール名や (別モジュール名である) エイリアス名においては、 - や _ を名称に含めることができます。 そして両者は、 あらゆるモジュールコマンドを通じて区別なく用いられ、 アンダースコアへの変換は自動的に行われます。

modprobe.d 配下にあるファイルのフォーマットは単純です。 1 行に 1 つのコマンドを記述します。空行や '#' で始まる行は無視されます (コメント行として利用できます)。 行末に '\' を記述すれば、 次の行への継続を表します。 これを使えば、ファイルが多少すっきりします。  

コマンド

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 の各コマンドが設定内にない場合など)。

blacklist modulename

モジュールにはそれ独自のエイリアスを含めることができます。 通常そういったエイリアスは、 "pci:123..." などのように、 サポートしているデバイスを表すものです。 こういった「内部の」エイリアスは、 通常のキーワード "alias" を使って上書きすることができます。 というのも、 2 つ以上のモジュールが同一デバイスをサポートしている場合があります。 あるいはモジュールがサポートしているといいつつ、 対象デバイスが存在しないような不適切な状況があります。 キーワード blacklist は、 特定のモジュールにおける内部エイリアスを、 無効なものとして指示するためにあります。

install modulename command...

このコマンドは modprobe に対して、 カーネルに対して普通にモジュールを登録するのではなく、 指定したコマンドの実行を指示するものです。 コマンドにはシェルコマンドが指定できます。 これによって、 どのような複雑な処理であっても、 必要であれば実現することができます。 たとえば、 "fred" というモジュールが、 すでにインストール済みの "barney" というモジュールを使って適切に動作するとします (ただし依存関係にはないことから、 modprobe は自動的にはロードしないものとします)。 その場合には、 "install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred" を実行します。 こうすれば適切に実現されます。 なお、 ここにある --ignore-install は、 2 つめの modprobe コマンドが、 同じ install コマンドを再度実行することがないようにしています。 以下の remove も参照してください。

モジュール追加によって依存関係を維持する対処として、 このコマンドが、 今後も長期的にその解決策となる保証はありません。 このコマンドは、 将来のリリースのある時点において、 最終的には削除か非推奨として、 警告する形に置き換わる予定です。 このコマンドを利用すると、 mkinitrd などのような配布ユーティリティーが行っているモジュール依存関係の自動検出の処理が複雑になります (なぜなら、 install コマンドが行っている処理内容を、 ある程度解釈しておかなければならないためです)。 理想的には、 本コマンドを用いずに、 モジュールが依存関係をすべて提供するようになるはずであり、 Linux カーネル内部において、 ソフトな依存関係を実装する作業が、 現在進行中です。

コマンド内に文字列 "$CMDLINE_OPTS" を用いると、 これは modprobe コマンドラインに指定されたオプションに置き換えられます。 これが役に立つのは、 "modprobe fred opt=1" とした場合に、 モジュールに対しては、 "opt=1" という引数が受け渡されることが期待されるためです。 たとえ設定ファイル内に install コマンドがあったとしても実現できます。 したがって先に示したコマンド例は "install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred $CMDLINE_OPTS" となります。

options modulename option...

このコマンドは、 モジュール modulename (エイリアスを含む) がカーネルに登録される際に、 その都度追加するオプションを指定します。 その場合は、 (modprobe modulename を使って) 直接指定する場合と、 そのモジュールに依存したモジュールが登録される場合があります。

オプションは、 すべてまとめて追加されます。 つまりオプションは、 モジュール自体への指定、 エイリアスへの指定、 コマンドラインからの指定すべてです。

remove modulename command...

これは上で示した install コマンドに似ていますが、 違うところは、 "modprobe -r" が実行されている際に呼び出される点です。

softdep modulename pre: modules... post: modules...

softdep コマンドは、 ソフトな、 つまり任意のモジュール依存関係の指定を行います。 modulename は、 そのような任意のモジュールがインストールされていなくても、 用いることができます。 ただし普通は、 何かの機能が失われることがあります。 たとえば、 ストレージ HBA に対するドライバーは、 管理機能を利用するために、 別のモジュールがロードされている必要があります。

pre-deps モジュールと post-deps モジュールは、 modulename 引数として与えられたメインのモジュールの前後において、 modprobe がインストール (または削除) しようとする別のモジュール名、 あるいはエイリアス名のリストです。

例: 設定として "softdep c pre: a b post: d e" が与えられたとします。 "modprobe c" を実行するということは、 softdep がなかった場合には、 "modprobe a b c d e" を実行することと同じになります。 --use-blacklist などのフラグは、 指定されたモジュールすべてに適用されます。 一方で、 モジュールパラメーターは、 モジュール c にのみ適用されます。

注意: 同一の modulename を引数とする install コマンドまたは remove コマンドがある場合、 softdep が優先されます。

 

互換性

kmod の将来版においては、 上で説明した install の利用を避けるような警告を含めるつもりでいます。 これは、 カーネル内でのソフトな依存関係のサポートが完成した際に行います。 そういった依存関係は直接モジュール内で行われるようになるため、 そのサポートは、 本ユーティリティーの既存の softdep サポート機能を補助するものとなります。  

著作権

この man ページの元々の著作権表記は Copyright 2004, Rusty Russell, IBM Corporation です。 現在は Jon Masters その他により保守されています。  

関連項目

modprobe(8), modules.dep(5)  

著者

Jon Masters <jcm@jonmasters.org>

開発者

Robby Workman <rworkman@slackware.com>

開発者

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

開発者


 

Index

名前
書式
説明
コマンド
互換性
著作権
関連項目
著者

This document was created by man2html, using the manual pages.
Time: 09:33:41 GMT, July 04, 2022