Modprobe - Linuxコマンド - Unixコマンド

modprobe - ロード可能なモジュールの高水準処理

シノプシス

modprobe [-adnqv] [-C config ]モジュール[symbol = value ...]
modprobe [-adnqv] [-C config ] [-t type ]パターン
modprobe -l [-C config ] [-t type ]パターン
modprobe -c [-C config ]
modprobe -r [-dnv] [-C config ] [module ...]
modprobe -Vh

オプション

-a-- all

最初に正常に読み込まれた後に停止するのではなく、 すべての一致するモジュールを読み込みます。

-c 、-- showconfig

現在使用されている設定を表示します。

-C 、-- config設定

設定を指定するには、(オプションの) /etc/modules.confの代わりにconfigファイルを使用します。 環境変数MODULECONFを使用して、デフォルトの/etc/modules.conf (または/etc/conf.modules (非推奨))から別の構成ファイルを選択(および上書き)することもできます。

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

-d 、-- debug

モジュールのスタックの内部表現に関する情報を表示します。

-h 、-- help

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

-k 、-- autoclean

ロードされたモジュールに 'autoclean'を設定します。 不足している機能(モジュールとして提供)を満たすためにmodprobeを呼び出すときに、カーネルが使用します。 -qオプションは-kによって暗黙指定されます。 これらのオプションは自動的にinsmodに送られます。

-l 、-- list

一致するモジュールを一覧表示する。

-n 、-- show

実際にはアクションを実行せず、実行されることを示してください。

-q 、-- quiet

insmodがモジュールのインストールに失敗したことについては不平を言ってはいけません。 modprobeがテストするための他の可能性もありますが、通常通りそのまま続けます。 このオプションは自動的にinsmodに送られます。

-r 、-- remove

コマンドラインに記載されているモジュールがあるかどうかによって、モジュール(スタック)を削除するか、オートクリーンを実行します。

-s 、-- syslog

stderrの代わりにsyslog経由で報告してください。 このオプションは自動的にinsmodに送られます。

-t moduletype ; --type moduletype

このタイプのモジュールのみを検討してください。 modprobeはディレクトリパスに正確に " / moduletype / "が含まれているモジュールだけを調べます。 moduletypeに複数のディレクトリ名を含めることができます。たとえば、 " -t drivers / net "はxxx / drivers / net /とそのサブディレクトリのモジュールをリストします。

-v 、-- verbose

実行されているすべてのコマンドを出力します。

-V、--version

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

注意:

モジュール名にはパス( '/'なし)を含めてはいけません。また、末尾に '.o'を含めることはできません。 たとえば、slipはmodprobeの有効なモジュール名です。/lib/modules/2.2.19/net/slipとslip.oは無効です。 これは、コマンドラインとconfigのエントリに適用されます。

DESCRIPTION

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

Modprobeは、 depmodによって作成された "Makefile"のような依存ファイルを使用して、あらかじめ定義されたディレクトリツリーで利用可能なモジュールのセットから関連するモジュールを自動的にロードします。

Modprobeは、単一モジュール、依存モジュールのスタック、または指定されたタグでマークされたすべてのモジュールをロードするために使用されます。

Modprobeは、依存関係ファイルmodules.depで説明されているように、モジュールスタックに必要なすべての基本モジュールを自動的にロードします。 これらのモジュールのいずれかのロードが失敗すると、現在のセッションにロードされているモジュールの現在のスタック全体が自動的にアンロードされます。

Modprobeにはモジュールをロードする2つの方法があります。 1つの方法(プローブモード)は、リストからモジュールをロードしようとします( パターンによって定義されます )。 Modprobeは、1つのモジュールが正常にロードされるとすぐにロードを停止します。 これはリストから1つのイーサネットドライバを自動ロードするために使用できます。
modprobeが使用できるもう1つの方法は、 すべてのモジュールをリストからロードすることです。 下記の使用例を参照してください。

オプション-rを指定すると 、modprobeは " rmmod -r "のようにモジュールのスタックを自動的にアンロードします。 " modprobe -r "だけを使用すると、使用されていないオートロードされたモジュールがクリーンアップされ、設定ファイル/etc/modules.conf内の削除前後のコマンドも実行されます。

オプション-l-tを組み合わせると、特定のタイプの使用可能なすべてのモジュールがリストされます。

オプション-cは、現在使用されている設定(デフォルト+設定ファイル)を表示します。

コンフィグレーション

modprobe (およびdepmod )の動作は、(オプションの)設定ファイル/etc/modules.confで変更できます。
このファイルに含まれるものの詳細と、 depmodmodprobeで使用されるデフォルトの設定については、 modules.conf (5)を参照してください。

モジュールがkerneldによって "autocleaned"されている場合、削除前と削除後のコマンドは実行されないことに注意してください! 代わりに永続的なモジュール記憶域のための今後のサポートを探してください。
インストール前およびインストール後の機能を使用するには、kerneldのautocleanをオフにして、 crontabに次のような行を追加する必要があります(これはkmodシステムにも使用されます)。 :

* / 2 * * * * test -f / proc / modules && / sbin / modprobe -r

戦略

modprobeは、現在のカーネルリリース用にコンパイルされたモジュールが入っているディレクトリを最初に探します。 モジュールがそこに見つからなければ、 modprobeはカーネルバージョン(例えば2.0,2.2)に共通のディレクトリを探します。 モジュールがまだ見つかっている場合、 modprobeはデフォルトリリースのモジュールを含むディレクトリを探します。

新しいlinuxをインストールする場合、モジュールは、インストールするカーネルのリリース(およびバージョン)に関連するディレクトリに移動する必要があります。 次に、このディレクトリから "default"ディレクトリへのシンボリックリンクを行う必要があります。

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

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

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

使用例

modprobe -t net

"net"とタグ付けされたディレクトリに格納されているモジュールの1つをロードします。 各モジュールは、成功するまで試行されます。

modprobe -a -t boot

"boot"とタグ付けされたディレクトリに格納されているすべてのモジュールがロードされます。

modprobeスリップ

slipモジュールがslhcモジュール内の機能を必要とするため、以前にロードされていない場合、モジュールslhc.oをロードしようとします。 この依存関係は、 depmodによって自動的に作成されたmodules.depファイルに記述されます。

modprobe -r slip

スリップモジュールがアンロードされます。 他のモジュール(例えばppp)でも使用されていない限り、自動的にslhcモジュールをアンロードします。

関連項目

depmod (8)、 lsmod (8)、 kerneld (8)、 ksyms (8)、 rmmod (8)です。

セーフモード

有効なuidが実際のuidと等しくない場合、 modprobeはその入力を極度の疑惑で扱います。 最後のパラメータは、 ' - 'で始まっていても常にモジュール名として扱われます。 モジュール名は1つしか指定できず、 "variable = value"という形式のオプションは禁止されています。 モジュール名は常に文字列として扱われ、セーフモードでメタ拡張は行われません。 ただし、設定ファイルから読み込まれたデータにはメタ拡張が適用されます。

modprobeがカーネルから呼び出されたとき、euidはuidと等しくないかもしれませんが、これはカーネル> = 2.4.0-test11に当てはまります。 理想的な世界では、 modprobeはmodprobeに有効なパラメータを渡すだけでカーネルを信頼することができます。 しかし、高レベルのカーネルコードが検証されていないパラメータをユーザからmodprobeに渡したため、少なくとも1つのローカルルートエクスプロイトが発生しました。 したがって、modprobeはカーネルの入力を信頼しなくなりました。

環境がこれらの文字列のみで構成されている場合、 modprobeはセーフモードを自動的に設定します

HOME = / TERM = linux PATH = / sbin:/ usr / sbin:/ bin:/ usr / bin

これは、以前のカーネルで行うuid == euidであっても、カーネル2.2から2.4.0-test11までのカーネルからのmodprobeの実行を検出します。

ログ記録コマンド

/ var / log / ksymoopsディレクトリが存在し、モジュールをロードまたは削除できるオプションを指定してmodprobeを実行すると、 modprobeはそのコマンドを記録し、 / var / log / ksymoops / `date +%Y%m%dにステータスを返します.log` 。 この自動ロギングを無効にするスイッチはありません。発生させたくない場合は、 / var / log / ksymoopsを作成しないでください 。 そのディレクトリが存在する場合は、rootが所有し、644または600のモードでなければならず、毎日スクリプトinsmod_ksymoops_cleanを実行する必要があります。

必要なユーティリティ

depmod (8)、 insmod (8)。

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