起動時にLinuxカーネルモジュールがロードされる順序は何ですか?彼らの優先順位は何ですか?

起動時にLinuxカーネルモジュールがロードされる順序は何ですか?彼らの優先順位は何ですか?

動的にコンパイルされたLinuxカーネルモジュールがあります。スタートにどのように追加しますか?その中にはたくさんの.koファイルがあります/lib/modules。これらのモジュールをロードする優先順位をどのように設定できますか?

ベストアンサー1

ほとんどは最終的に起動中にロードされますが、起動時や他の時点では自動的にロードされません。これが発生する可能性がある3つのメカニズムがあります。

  • ユーザースペース要求:これには、initサービスからudev、コマンドラインまですべてが含まれます。起動時に特定のモジュールをロードしたい場合は、Initまたはudevがおそらく最も簡単な方法です。

  • ホットスワップ可能なデバイス:USBやPCIなどに接続すると、カーネルはそれを検出し、デバイスが自分自身を識別する方法に応じて適切なモジュールを要求します。

  • 必須プロトコルまたはその他の実装:カーネルが何かを実行する必要があり(ファイルシステムの読み取りなど)、それを実行するための知識が不足していることがわかったら、モジュールを要求します。

最後の2つについては、「要求モジュール」というフレーズを使用しました。これは、Wolfgang Mauererによると、)ステートメントをkmod実行しているユーザー空間デーモンを介してカーネルが実際にロードされるためです。/sbin/modprobeLinuxカーネルアーキテクチャ2.6 カーネルには組み込み関数への呼び出しが約100request_module()しかありません。

modprobeインストールされたMODULE_ALIASのデータベースを使用します。これは、モジュールのソースコードに明示的に指定されるか、モジュールが提供するOEMデバイスIDのリストであるモジュールのMODULE_DEVICE_TABLEから派生します。

おすすめ記事