カーネル空間からユーザー空間へのUSBイベントの流れを理解したいと思います(私の好奇心から、物事の実装方法を知ることで)。
もっと明確にするために、USBドライブをシステムに接続したときにデスクトップにポップアップがどのように表示され、ドライブがどのようにマウントされるかを知りたいと思います。
また、USBにイメージが存在するかどうかを確認し、「はい」の場合、GIMPまたは他のソフトウェアで開く必要があるかどうかをどのように尋ねますか?
私はその非常に大きく幅広い質問を知っていますが、その背後にあるアイデア全体を理解する方法についてのいくつかの指針を教えてください。
大規模なコードブラウジングは行っていませんが、正しく誘導できれば問題はありません。
/lib/modules/$(uname -r)/modules.alias
を参照してください。)これらは、ハードウェアインターフェイスに基づいて異なって見えます。たとえば、PCIデバイスベンダー102B、デバイス2527、およびサブベンダーなどの場合はpci:v0000102Bd00002527sv*sd*bc*sc*i*
、またはUSB:usb:v2040p4982d*dc*dsc*dp*ic*isc*ip*
。udev
に送信します。udev
は、通知を/lib/udev/rules.d/
および/etc/udev/rules.d
のルールのリストと照合します。ここから、動作はルールに基づいて非常に特殊化されます。80-udisks.rules
ファイルが作業に最適な場所である可能性があります。これらのルールは、blkidなどのヘルパーを使用して、ディスクのタイプとコンテンツをプローブし、何らかの理由でディスクを無視するENV{UDISKS_PRESENTATION_HIDE}="1"
などのあらゆる種類の構成値を取り込みます。詳細については、「man 7 udisks」を参照してください。/usr/share/polkit-1/actions/org.freedesktop.udisks.policy
で確認できます。 (マウント、アンマウントなどができる人)DCIM
がファイルシステムで見つかったときにF-Spotを開くかどうかを尋ねます。