Linuxカーネルモジュールの依存関係を手動で生成するには?
たとえば、ある時点でvboxdrvモジュールが自動的にロードされます。しかし、これが起こった場合は、vfatモジュールも自動的にロードしたいと思います(たとえば)。
それでは、モジュール1がロードされたときにモジュール2の自動ロードをトリガーする依存関係をどのように生成しますか?
起動時にモジュールをロードするためにinitramfsを使用する必要はありません。つまり、1がロードされると、2もロードされるこれらの依存関係が欲しいだけです。何を言っているのか分かります;-)
ありがとう
ベストアンサー1
/etc/modprobe.d/vboxdrv-includes-vfat.conf
「ソフト依存関係」コマンドを使用して構成ファイルを追加できます。
softdep vboxdrv post: vfat
マニュアルページmodprobe.d(5)レコード構文:
Softdep モジュール名 前: module... 後: module...
Softdep コマンドを使用すると、ソフトまたはオプションのモジュール依存関係を指定できます。 modulename は、これらのオプションのモジュールをインストールしなくても使用できますが、通常、一部の機能がありません。たとえば、ストレージHBA用のドライバは、管理機能を使用するために他のモジュールをロードする必要があるかもしれません。
pre-dep および post-deps モジュールは、modprobe が modulename パラメーターで指定された基本モジュールの前後に順番にインストール (または削除) を試みる他のモジュールの名前および/またはエイリアスのリストです。
あるいは、softdep
期待どおりに動作しない場合(たとえば、modprobeが古すぎてソフト依存関係を理解できない場合など)、同じディレクトリにあるファイルにinstallコマンドを使用してモジュール挿入をスクリプトとして作成できます。
モジュール名コマンドのインストール...
このコマンドは、modprobeに、通常どおりモジュールをカーネルに挿入するのではなく、コマンドを実行するように指示します。コマンドはどのシェルコマンドでもかまいません。これにより、あらゆる種類の複雑な処理を実行できます。たとえば、「fred」モジュールがインストールされているモジュール「barney」とうまく機能する場合(ただしこれに依存しないため、modprobeが自動的にロードしない)、「install fred /sbin/modprobe barney」と言うことができます。 /sbin/modprobe --ignore-install fred", これは必要な作業を行います。 --ignore-install は、2番目のmodprobeが同じインストールコマンドを再実行するのを防ぎます。以下のアンインストールも参照してください。
アドオンモジュールの依存関係を提供する問題の解決策として、このコマンドの長期的な未来は不確実であり、将来のリリースのある時点で最終的な削除または廃止されるという警告でこのコマンドを置き換える予定です。