DEPMOD

Section: depmod (8)
Updated: 2021/01/29
Index JM Home Page
 

名前

depmod - modules.dep とマップファイルを生成する  

書式

depmod [-b basedir] [-e] [-E Module.symvers] [-F System.map] [-n] [-v] [-A] [-P prefix] [-w] [version]
depmod [-e] [-E Module.symvers] [-F System.map] [-n] [-v] [-P prefix] [-w] [version] [filename...]
 

説明

Linux のカーネルモジュールは、(「シンボル」と呼ばれる) サービスを (コード中で EXPORT_SYMBOL バリアントの 1 つを使用して) ほかのモジュールが使えるように提供することができます。 あるモジュールがそうしたシンボルを使用している場合、 そのモジュールがシンボルを提供する側のモジュールに依存していることは明白です。 こうした依存関係は、かなり複雑になることがあります。

depmod は、/lib/modules/version 以下にある各モジュールを読み込み、 それがどんなシンボルをエクスポートし、どんなシンボルを必要としているかを特定して、 モジュールの依存関係のリストを作成します。デフォルトでは、このリストは、 上記ディレクトリに置かれる modules.dep と、それをバイナリハッシュ化した modules.dep.bin という名前のファイルに書き込まれます。 なお、ファイル名をコマンドラインで指定した場合は、そうしたモジュールのみが調べられます (すべてのモジュールを指定しないかぎり、これが役に立つことはめったにありません)。 depmod はまた、モジュールが提供するシンボルのリストを作成し、modules.symbols というファイルと、そのバイナリハッシュ版の modules.symbols.bin に書き込みます。最後に、depmod は、モジュールがスペシャルデバイス名を供給している場合は、modules.devname という名前のファイルを出力します。そうしたスペシャルデバイス名は、普通ブート時に (systemd-tmpfiles のようなユーティリティによって) /dev ディレクトリに配置されます。

引数に version を指定した場合は、現在稼働中のカーネルバージョン (uname -r で返ってくるもの) ではなく、指定したカーネルバージョンのモジュールディレクトリが使用されます。  

オプション

-a, --all

すべてのモジュールを調べます。このオプションは、 コマンドラインでファイル名を一つも指定しなかった場合、デフォルトで有効になります。

-A, --quick

このオプションを指定すると、処理を行う前にモジュール群にざっと目を通して、 modules.dep ファイルより新しいモジュールがあるかどうかを調べます。もしなければ、 modules.dep などのファイルを作り直さず、何のメッセージも出さずに終了します。

-b basedir, --basedir basedir

対象となるモジュール群が、現在、(標準の) ディレクトリ /lib/modules/version になく、準備領域 (a staging area) にある場合、 準備領域で標準ディレクトリ名に先行するディレクトリ名 basedir を指定することができます。この basename は、作成される modules.dep ファイルでは取り除かれるので、作成されたファイルは、 そのまま標準の場所に移動することができます。あなたがディストリビューターであり、 depmod を後であらためて実行しないでも済むように、 一連のメタデータファイルを前もって作っておく必要があるならば、 このオプションを使用するとよいでしょう。

-C, --config file or directory

/etc/depmod.d にあるデフォルトの設定ディレクトリの代わりに、 このオプションで指定するものを使用します。

-e, --errsyms

このオプションは、-F オプションと一緒に使用した場合、 あるモジュールが必要としているシンボルに、 ほかのモジュールやカーネルによって供給されていないものがあると、 そのシンボルを報告します。通常、モジュールによって提供されていないシンボルがあれば、 それはカーネルによって提供されるものと見なされます (完璧な世界でなら、そうなっているはずです)。しかし、その想定が外れることもあります。 特に、サードパーティ製のドライバを後日アップデートしたとき、 それがきちんとインストールされていなかったり、正しくビルドされていなかったりすると、 そうなります。

-E, --symvers Module.symvers

このオプションは、-e オプションと一緒に使用した場合、 モジュールが提示しているシンボルのバージョンの中に、カーネルがその Module.symvers (訳注: このファイルは、自分でカーネルをビルドすると生成されます) で情報を提供しているシンボルのバージョンと一致しないものがあれば、それを報告します。 このオプションは、-F と一緒には使えません。

-F, --filesyms System.map

カーネルがビルドされたときに作成された System.map を指定します。このオプションを使用すると、-e オプションが、解決できないシンボルを報告できるようになります。このオプションは、-E と一緒には使えません。

-h, --help

ヘルプメッセージを表示して終了します。

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

このオプションを指定すると、生成された modules.dep や様々なマップファイルを、モジュールディレクトリに書き込まずに、 標準出力に書き出します。

-P

アーキテクチャーによっては、シンボルの前に無関係な文字を付けるものがあります。 このオプションでは、(たとえば、'_' といった) 無視すべき接頭辞を指定します。

-v, --verbose

詳細モードでは、depmod は、各モジュールが依存しているすべてのシンボルと、 そのシンボルを提供しているモジュールのファイル名を (標準出力に) 書き出します。

-V, --version

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

-w

依存関係、エイリアス、シンボルバージョンなどに重複がある場合に警告します。
 

著作権

このマニュアルページの最初の版は、"Copyright 2002, Rusty Russell, IBM Corporation" でした。現在では、"Copyright Jon Masters, and others" の部分もあります。  

関連項目

depmod.d(5), modprobe(8), modules.dep(5)  

著者

Jon Masters <jcm@jonmasters.org>

開発者

Robby Workman <rworkman@slackware.com>

開発者

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

開発者

関連キーワード

シンボル   カーネル   関係   root   依存   解決   modutils   depmod   コンパイル   返り値   ビット   セット   modules   ディストリビューション   環境   変数   パッケージ   管理   起動   直後   エクスポート   専用   拒否   モード   ユーザ

Linux マニュアル 一覧

関連するコマンド・関数

modules.dep.5   modules.dep.bin.5   depmod.d.5   get_kernel_syms.2   lsmod.8   ksyms.8
 

Index

名前
書式
説明
オプション
著作権
関連項目
著者

This document was created by man2html, using the manual pages.
Time: 04:38:50 GMT, October 11, 2026