もっと詳しく

開発中は、通常insmodを使用してモジュールをロードし、ロードするモジュールのパスを指定する必要があります。

$ insmod filename [module-options]

これは、他のモジュールロード方法のベースを形成する低レベル形式のモジュールロードであり、この本で使用するものです。 一方、modprobeがあり、主にシステム管理者または本番システムで使用されます。 modprobeは、指定されたモジュールをロードする前に、最初に依存関係をロードするためにmodules.depファイルを解析する巧妙なコマンドです。 パッケージマネージャーが行うように、モジュールの依存関係を自動的に処理します。

insmod modprobe
‘insmod/path/to/module.ko’として指定されたモジュールをロードします モジュールを/lib/ modules / $(uname -r)にのみロードします。 「modprobe/home/test/hello.ko」は機能しません
存在する場合の依存関係はロードされません modprobeは依存関係を計算し、依存関係をロードしてからメインモジュールをロードします

modprobeはどのように依存関係を計算しますか?

Modprobeは依存関係を計算するためにdepmodツールに依存しています。 depmodは、/ lib / modules / $(uname -r)フォルダーに存在するすべてのモジュールの依存関係を計算し、依存関係情報を/lib/modules/$(uname -r)/modules.depファイルに配置します。

例:kernel / drivers / net / wireless / admtek / adm8211.ko:kernel / net / mac80211 / mac80211.ko kernel / net / wireless / cfg80211.ko kernel / drivers / misc / eeprom / eeprom_93cx6.ko

この場合、eeprom_93cx6.ko、cfg80211.koが最初にロードされ、次にadm8211.koがロードされます。

モジュールは右から左にロードされ、左から右に削除されます。 したがって、adm8211.koを削除すると、次にcfg80211.koが削除され、最後にeeprom_93cx6.koが削除されます。 「depmod-a」コマンドを実行すると、modules.depファイルを再ロードできます。

概要

insmodは、モジュールファイル名をカーネルにロードするためのシステム管理コマンドです。 modprobeコマンドよりも単純ですが柔軟性がありません。 カーネルはモジュール操作を内部で実行し、したがってエラー情報を標準出力ではなくカーネルログに送信するため、insmodからのエラーメッセージはあいまいな場合があります。 dmesgを参照してください。

module。*ファイル内の情報は、コマンドmodprobeによって使用され、フルパスではなく名前でモジュールを検索します。 modprobeには、マニュアルで説明されている他の多くの機能があります。

モジュールの依存関係情報は、デバイスマネージャー、特にudevでも使用されます。 新しいハードウェア(新しいUSBデバイスなど)が検出されると、udevdデーモンにアラートが送信されてベンダーに渡され、ハードウェアから製品IDが読み取られます。 udevdは、モジュール依存関係ファイルをスキャンして、それらのIDを登録しているモジュールを探します。 見つかった場合は、modprobeを使用してロードされます。

The post insmodとmodprobeの違いは何ですか–オタク日記 appeared first on Gamingsym Japan.