Linuxシステムが正常に実行されているシナリオを考えてみましょう。ユーザーが表示され、ホットスワップUSBストレージデバイス。
イベントの順序は次のとおりです。
modprobeはドライバをどこからロードしますか?要求されたデバイスのドライバが/sys/bus/drivers
modprobeロード後または以前に見つかりましたか?
/sys/
ここで設定したいのは、上記の画像の項目と発生したイベントの関係です。
答え1
ueventメッセージにはデバイスに関する情報が含まれています(はい)。この情報には、PCIやUSBなどのバスに接続されているデバイスの登録済みベンダーとモデルIDが含まれています。 Udevはこれらのイベントを解析し、固定フォーマットモジュール名を設定してに渡しますmodprobe
。modprobe
以下でカーネルをインストールしたときに生成され、固定フォーマットモジュール名を実際のドライバプログラムモジュールファイル名にマッピングする/lib/modules/VERSION
というファイルを見つけます。depmod.alias
バラよりドライバモジュールは自動的にロードおよびアンロードされますか?プロセスの詳細 - この回答はmodprobe
カーネルから直接呼び出される最初のステップについて説明していますが、モジュールエイリアスがどのように機能するかはmodprobe
変わりません。
また、見ることができますMichael Opdenackerの講演「udevを使ったホットプラグ」より多くの例があり、udevを使用したデバイス管理の他の側面について説明します。最初からLinuxガイド固定フォーマットモジュール名を定義する方法のセクションがあります。
modprobe
呼び出してモジュールをロードするinit_module
システムコール。何らかの方法でsysfsと対話しません。モジュールがロードされると、カーネルはそのモジュールのエントリを生成します/sys/module
。 sysfsの他の場所に表示されるすべての項目は、モジュールのコードによって異なります(たとえば、USBデバイスタイプドライバを持つモジュールは、以下に項目を追加するいくつかの一般的なUSBサポートコードを呼び出します/sys/bus/usb/drivers
)。