insmodとmodprobeの違いは何ですか?


回答:


28

あたりman insmod

ほとんどのユーザーはmodprobeを代わりに使用したいと思うでしょう。modprobeはより賢く、モジュールの依存関係を処理できます。


2
あ、すみません、その行を逃しました。
NES

39

modprobe/lib/modules/$(uname -r)/modules.dep.bin.bin他のファイルが使用できない場合は、サフィックスなしで)モジュールを読み取ります。同じファイルから、依存関係がロードされます。

modprobe.koファイル名/lib/modules/$(uname -r)(例:nvidia-currentfile dkms/nvidia-current.ko)およびエイリアス(modules.alias.bin)を受け入れます。ビルトイン(modules.alias.bin)も認識されますが、これらのモジュールはデフォルトでロードされるため、この種のモジュールをmodprobすることに意味はありません。

insmod一方、ファイルへのパスを受け入れます。モジュールはに存在する必要はありませんが/lib/modules/$(uname -r)、依存関係は自動的にロードされません。これは、modprobeモジュールのロードに使用される下位プログラムです。

モジュールに関連する他のプログラムがあるrmmodmodinfo

rmmodからの名前に基づいてカーネル名を削除します/proc/modules。この名前は、必ずしも渡される名前と同じである必要はありませんmodprobenvidia-currentファイルの場合、これはnvidiaたとえば)。

modinfoファイル名、またはの.ko接尾辞なしのファイル名を受け入れます/lib/modules/$(uname -r)


3

modprobeはインテリジェントなコマンドであり、モジュールのロード中に依存関係を探します。他のモジュールで定義されたシンボルを持つモジュールをロードしたと仮定します(このモジュールパスはメインモジュール内で提供されます)。したがって、modprobeメインモジュールと依存モジュールをロードします。

ただし、insmodを使用すると、依存関係が読み込まれないため、などのコンパイルエラーが発生しUnresolved symbolsます。この場合、エラーを解決するには、依存モジュールを手動で探し、それらをロードする必要があります。


0

modprobeユーティリティは簡単に言及する価値があります。modprobeは、insmodと同様に、モジュールをカーネルにロードします。カーネルで現在定義されていないシンボルを参照するかどうかを確認するためにロードされるモジュールを見るという点で異なります。そのような参照が見つかった場合、modprobeは現在のモジュール検索パスで、関連するシンボルを定義する他のモジュールを探します。modprobeがそれらのモジュール(ロードされるモジュールに必要なモジュール)を見つけると、それらもカーネルにロードします。この状況でinsmodを代わりに使用すると、コマンドは失敗し、システムログファイルに「未解決のシンボル」メッセージが残されます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.