Depmod - Linuxコマンド - Unixコマンド

depmod - ロード可能なカーネルモジュールの依存関係の記述を処理する

シノプシス

depmod [-aA] [-ehnqrsuvV] [-C configfile ] [-F kernelsyms ] [-b ベースディレクトリ ] [ forced_version ]
depmod [-enqrsuv] [-F kernelsyms ] module1.o module2.o ...

説明

depmodmodprobeユーティリティは、Linuxモジュラーカーネルをすべてのユーザー、管理者、およびディストリビューション保守担当者が管理できるようにするためのものです。

Depmodは、コマンドラインで指定されたモジュールのセット内に見つかったシンボル、または設定ファイルで指定されたディレクトリに基づいて、 "Makefile"のような依存ファイルを作成します。 この依存関係ファイルは、あとでmodprobeによって、正しいモジュールまたはモジュールのスタックを自動的にロードするために使用されます。

depmodの通常の使用は、


/ sbin / depmod -a

/etc/rc.d内のrcファイルのどこかにあるので、システムを起動した直後に正しいモジュールの依存関係が利用できるようになります。 オプション-aは現在オプションです。 起動時には、 -qオプションが適切です。これは、depmodが未解決のシンボルについて黙っているためです。

また、新しいカーネルをコンパイルした直後に依存ファイルを作成することもできます。 カーネル2.2.99とそのモジュールを初めてコンパイルしたときに、 2.2.98のように実行しているときに " depmod -a 2.2.99 "を実行すると、ファイルは正しい場所に作成されます。 ただし、この場合、カーネルの依存関係は正しいとは限りません。 この処理の詳細については、上記の-F-Cおよび-bオプションを参照してください。

モジュールと他のモジュールからエクスポートされたシンボルとの関係を構築している間、 depmodはモジュールやエクスポートされたシンボルのGPLステータスを考慮しません。 つまり、GPL互換ライセンスのないモジュールがGPLのみのシンボル(カーネルのEXPORT_SYMBOL_GPL)を参照している場合、depmodはエラーにフラグを立てません。 しかし、 insmodはGPL以外のモジュールのGPLのみのシンボルの解決を拒否しますので、実際のロードは失敗します。

オプション

-a-- all

(オプションの)設定ファイル/etc/modules.confで指定されたすべてのディレクトリのモジュールを検索します。

-A-- quick

ファイルのタイムスタンプを比較し、必要に応じてdepmod -aのように動作します。 このオプションは、何か変更があった場合にのみ依存ファイルを更新します。

-e 、-- errsyms

各モジュールの未解決シンボルをすべて表示します。

-h 、-- help

オプションの要約を表示してすぐに終了します。

-n 、-- show

依存ファイルを/ lib / modulesツリーの代わりにstdoutに書き出します

-q 、-- quiet

沈黙を保ち、紛失したシンボルに苦情を言わないようにするには、depmodに指示します。

-r 、-- root

一部のユーザーは、非rootユーザーIDの下でモジュールをコンパイルし、rootとしてモジュールをインストールします。 このプロセスは、modulesディレクトリがrootによって所有されていても、root以外のユーザIDが所有するモジュールを残すことができます。 ルート以外のユーザーIDが侵害された場合、侵入者はそのユーザーIDが所有する既存のモジュールを上書きし、このエクスポージャーを使用してルートアクセスまでブートストラップすることができます。

デフォルトでは、modutilsはrootが所有していないモジュールの使用を拒否します。 -rを指定すると、エラーが抑制され、rootがroot以外のモジュールをロードできるようになります。

-rの使用は主要なセキュリティ上の脅威であり、推奨されません。

-s 、-- syslog

すべてのエラーメッセージは、stderrではなくsyslogデーモンを使用して記述します。

-u 、-- unresolved-error

depmod 2.4は、未解決のシンボルがある場合にはリターンコードを設定しません。 modutils(2.5)の次のメジャーリリースでは、未解決シンボルのリターンコードが設定されます。 いくつかのディストリビューションはmodutils 2.4でゼロ以外の戻りコードを望んでいますが、その変更は古い動作を期待するユーザには問題を引き起こすかもしれません。 depmod 2.4でゼロ以外の戻りコードを使用する場合は、 -uを指定します。 depmod 2.5は、 -uフラグを黙って無視し、未解決のシンボルに対して常にゼロ以外の戻りコードを与えます。

-v- 詳細

処理中の各モジュールの名前を表示します。

-V 、-- version

depmodのバージョンを表示します。

次のオプションは、ディストリビューションを管理する人にとって便利です。

-b ベースのディレクトリベース ディレクトリ ベースの ディレクトリ

モジュールのサブツリーを含むディレクトリツリー/ lib / modulesが別の環境のモジュールを扱うために別の場所に移動された場合、 -bオプションはdepmodに/ lib / modulesツリーの移動イメージの場所を指示します。 ビルドされたdepmod出力ファイル( modules.dep )のファイル参照には、 ベースディレクトリのパスは含まれません。 つまり、ファイルツリーが最終ディレクトリのベースディレクトリ/ lib / modulesから/ lib / modulesに戻されると、すべての参照が正しいことになります。

-C configfile 、-- config configfile

/etc/modules.confの代わりにconfigfileファイルを使用してください 。 環境変数MODULECONFを使用して、デフォルトの/etc/modules.conf (または/etc/conf.modules (非推奨))から別の設定ファイルを選択することもできます。

環境変数

UNAME_MACHINEが設定されている場合、modutilsはuname()システムコールのマシンフィールドの代わりにその値を使用します。 これは主に、32ビットのユーザー空間で64ビットのモジュールをコンパイルする場合、またはその逆の場合に使用します.UNAME_MACHINEを、 ビルドするモジュールのタイプに設定します。 現在のmodutilsは、モジュールのフルクロスビルドモードをサポートしていませんが、ホストアーキテクチャの32ビットと64ビットのバージョンを選択することに限定されています。

-F kernelsyms 、-- filesyms kernelsyms

現在実行中のカーネルとは異なるカーネルの依存関係ファイルを作成する場合、 depmodが正しいモジュールを使用して各モジュールのカーネル参照を解決することが重要です。 これらのシンボルは、他のカーネルのSystem.mapのコピーか、 / proc / ksymsの出力のコピーのいずれかです。 カーネルがバージョン管理されたシンボルを使用している場合は、 / proc / ksyms出力のコピーを使用することをお勧めします。そのファイルにはカーネルシンボルのシンボルバージョンが含まれています。 しかし、バージョン管理されたシンボルでもSystem.mapを使用できます。

構成

depmodmodprobeの動作は、(オプションの)設定ファイル/etc/modules.confで調整することができます。
詳しい説明は、 modprobe (8)とmodules.conf (5)を参照してください。

戦略

新しいカーネルをコンパイルするたびに、 " make modules_install "コマンドで新しいディレクトリが作成されますが、デフォルトは変更されません。

カーネルディストリビューションと無関係なモジュールを取得したら、それを/ lib / modules以下のバージョンに依存しないディレクトリに置くべきです。

これはデフォルトの戦略であり、/ etc/modules.confで上書きすることができます。

関連項目

lsmod (8)、 ksyms (8)

重要: man コマンド%man )を使用して、特定のコンピュータでコマンドがどのように使用されているかを確認してください。