other versions
depmod(8) | System Manager's Manual | depmod(8) |
名前¶
depmod — modules.dep とマップファイルを生成するプログラム書式¶
depmod [-b basedir] [-e] [-F System.map] [-n] [-v] [version] [-A ]depmod [-e] [-FSystem.map] [-n] [-v] [version] [filename ...]
説明¶
Linux カーネルモジュールは、 (「シンボル」と呼ばれる) サービスを (コード中で EXPORT_SYMBOL を使って) 他のモジュールが使えるように提供することができる。 後者のモジュールがこのシンボルを使う場合、 後者のモジュールは前者のモジュールに依存しているのは明らかである。 このような依存関係はかなり複雑になることがある。depmod は、 /lib/modules/version 以下のモジュールをひとつひとつ読み込み、 各モジュールがどんなシンボルをエクスポートしているかや どんなシンボルを必要としているかを調べて、 モジュールの依存関係のリストを作る。 デフォルトでは、このリストは同じディレクトリの modules.dep に書かれる。 ファイル名がコマンドラインで与えられると、 それらのモジュールに限って調べられる (全てのモジュールが列挙されていない限り、これが役に立つことは滅多にない) 。
version が与えられると、 現在のカーネルバージョン ("uname -r" で返るもの) ではなく、 そのカーネルバージョンのモジュールディレクトリが使われる。
depmod は このディレクトリにさまざまなマップファイルも出力する。 ホットプラグ機構で使うためである。
オプション¶
- -b basedir --basedir basedir
- 対象となるモジュールが現在は (通常の) ディレクトリ /lib/modules/version ではなく、 準備用のディレクトリに置かれている場合、 ディレクトリ名の前に付く basedir を指定することができる。 この basedir は生成される modules.dep ファイルでは 取り除かれており、そのため、いつでも通常の場所に移動させることができる。
- -e --errsyms
- このオプションが -F オプションと組み合わされると、 モジュールが必要としているが 他のモジュールやカーネルが提供していないシンボルを通知する。 通常、モジュールが提供していないシンボルは カーネルが提供するものと見なせる (完璧な世界では当然だ) 。
- -F --filesyms System.map
- カーネルがビルドされたときに生成された System.map を指定する。 このオプションを使うと、 -e オプションで未解決のシンボルを通知することができる。
- -n --dry-run
- このオプションは生成される modules.dep とさまざまなマップファイルを、 モジュールディレクトリに書き出すのではなく、標準出力に送る。
- -A --quick
- このオプションを使うと、 処理を行なう前に各モジュールが modules.dep ファイルよりも 新しいかどうかを見て、 modules.dep のほうが新しければファイルを再生成せずに静かに終了する。