Skip to content

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/
sda

3-7.3:1.0 の部分が階層とUSBデバイスを示している。

  • USBバス: 3
  • ポート: 7
  • 子ポート?: 3
  • USBデバイス(Config): 1
  • インターフェイス: 0

各ディレクトリにあるシンボリックリンク driver のリンク先をみると、どのドライバが使われるかを確認できる。