Linuxでcat /proc/bus/usb/devicesをすると、ダラダラっと何か表示されます。
表示されている意味が良く分からないので、調べてみました。
この表示は、drivers/usb/core/devices.cのusb_device_dump()で生成しています。
- 1文字目の大文字の意味
- T: BUS=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=12 MxCh= 0
- BUS:バス番号(bus->busnum), Lev:トポロジーレベル(level), Prnt:親(parent_devnum), Port:ポート(index), Cnt:カウント(count)
- Dev#:デバイス番号(usbdev->devnum), Spd:スピード 1.5/12/480(speed), MxCh:最大子ノード(usbdev->maxchild)
- D: Ver=1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
- Ver: USBのバージョン(desc->bcdUSB), Cls: デバイスのクラスコード(desc->bDeviceClass), Sub: デバイスのサブクラスコード(class_decode(desc->bDeviceClass)
- Prot: プロトコル 0:固有プロトコルを使用しない (desc->bDeviceProtocol), MxPS: 最大パケットサイズ (bMaxPacketSize0), #Cfgs:コンフィグ数(desc->bNumConfigurations)
- P: Vendor=10c4 ProdID=2030 Rev=1.00
- Vendor: ベンダーID(desc->idVendor), ProdID: プロダクトID(desc->idProduct), Rev: リビジョン(desc->bcdDevice)
- C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 30mA
- アクティブだと*, #Ifs: インターフェイスの数(desc->bNumInterfaces), Cfg#: 現在のコンフィグ値(desc->bConfigurationValue)
- Atr: アトリビュート(desc->mAttriutes), MxPwr: 最大消費電流(bMaxPower)
- I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Deiver=UOT-100 ISDB-T One Segment Tuner
- アクティブだと*, If#:インターフェイスナンバー(desc->bInterfaceNumber), Alt:代替のセッティング(desc->bAlternateSetting)
- Cls: インターフェイスのクラスコード(desc->bDeviceClass), Sub: インターフェイスのサブクラスコード(class_decode(desc->bDeviceClass)
- Prot: プロトコル 0:固有プロトコルを使用しない (desc->bDeviceProtocol), Device:ドライバの名前(iface->dev.driver->name)
- E: Ad=02(O) Atr=02(Bulk) MxPs= 64 Ivl=0ms
- AD:エンドポイントのアドレスと方向(desc->bEndpointAddress), Atr: エンドポイントの種類(desc->bmAttributes), MxPS: 最大データサイズ (bMaxPacketSize0),
- Ivl: 割り込みエンドポイントの場合のインターバル(speed)
参考:Linuxデバイスドライバ 第3版 (Google Book Search), USB Specification