LinuxのUSBツリー構造
LinuxのUSBデバイスはツリー状になっていて、
- PCは複数のUSBバスを持つ
- USBバスは複数のポートを持つ
- ポートはさらに子ポートを持つ場合もある
ポートにUSBデバイスがつながる形となる。USBデバイスもツリー状になっている。
- USBデバイスは複数のインターフェイスを持つ
関連する情報として、USBデバイスがベンダーIDを持っており、インターフェイスがデバイスクラス(例えばWireless等)を持っている。
USB関連のデバイスは、Linuxの sysfs では以下のようなファイルツリーとして表現されている。
devices/ pci0000:00/ 0000:00:14.0/ usb3/ 3-7/ 3-7.3/ 3-7.3:1.0/ host0/ target0:0:0/ 0:0:0:0/ block/ sda3-7.3:1.0 の部分が階層とUSBデバイスを示している。
- USBバス: 3
- ポート: 7
- 子ポート?: 3
- USBデバイス(Config): 1
- インターフェイス: 0
各ディレクトリにあるシンボリックリンク driver のリンク先をみると、どのドライバが使われるかを確認できる。