zoukankan      html  css  js  c++  java
  • proc文件系统usb部分信息输出

    http://blog.csdn.net/workingon/archive/2005/08/31/468684.aspx

    /proc/bus/usb 文件系统输出
    ===============================
    (version 2000.08.15)


    /proc 文件系统中USB devices 部分产生
    /proc/bus/usb/drivers 和 /proc/bus/usb/devices.

    /proc/bus/usb/drivers 列出已经注册的drivers,
    每行一个driver, 可能的话给出每个driver's USB 次设备节点号的范围


    **注意**: 如果 /proc/bus/usb 是空的, 需要以root用户挂载文件系统:
             mount -t usbdevfs none /proc/bus/usb

       或者在/etc/fstab文件中添加
          none  /proc/bus/usb  usbdevfs  defaults  0  0
        这将在每次重启时自动挂载usbdevfs.
       可以用 `cat /proc/bus/usb/devices` 查看USB设备信息。

    挂载USB的更多帮助信息可以查看USB指南的"USB Device Filesystem" 节,USB指南的
    最新拷贝见http://www.linux-usb.org/

    在 /proc/bus/usb/devices中, 每个device具有多行ASCII 输出.
    如果使用辅助程序,  "T:" 行的头4列可以用以建立一个USB拓扑图 (拓扑信息:
    Lev, Prnt, Port, Cnt)

    每行由一个字符的ID来标识:

    T = Topology (etc.)
    B = Bandwidth (只用于USB host控制器 它被虚拟为root hubs)
    D = Device 描述信息.
    P = Product ID 信息. 
    S = String 描述.
    C = Configuration 描述信息(* = 活动配置)
    I = Interface 描述信息.
    E = Endpoint 描述信息.

    =======================================================================

    /proc/bus/usb/devices 输出格式:

    Legend:
      d = 十进制数 (用spaces or 0's开头)
      x = 十六进制数 (用spaces or 0's开头)
      s = string


    拓扑信息:

    T:  Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd
    |   |      |      |       |       |      |        |       |__MaxChildren(最在子节点)
    |   |      |      |       |       |      |        |__Device Speed in Mbps(设备速度,单位是Mbps)
    |   |      |      |       |       |      |__DeviceNumber(设备号)
    |   |      |      |       |       |__Count of devices at this level(本层次的设备数)
    |   |      |      |       |__Connector/Port on Parent for this device(本设备在父节点的接口)
    |   |      |      |__Parent DeviceNumber(父设备号)
    |   |      |__Level in topology for this bus(本BUS的拓扑层次)
    |   |__Bus number(总线号)
    |__Topology info tag(拓扑信息标识)


    带宽信息:
    B:  Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd
    |   |                       |         |__Number if isochronous requests(同步请求号)
    |   |                       |__Number of interrupt requests(中断请求号)
    |   |__Total Bandwidth allocated to this bus(分到本bus的总带宽)
    |__Bandwidth info tag(带宽信息标识)


    设备描述信息与产品ID信息:

    D:  Ver=x.xx Cls=xx(s) Sub=xx Prot=xx MxPS=dd #Cfgs=dd
    P:  Vendor=xxxx ProdID=xxxx Rev=xx.xx

    其中
    D:  Ver=x.xx Cls=xx(sssss) Sub=xx Prot=xx MxPS=dd #Cfgs=dd
    |   |        |             |      |       |       |__NumberConfigurations(配置数)
    |   |        |             |      |       |__MaxPacketSize of Default Endpoint(默认端点的最大包大小)
    |   |        |             |      |__DeviceProtocol(设备协议)
    |   |        |             |__DeviceSubClass(设备子类)
    |   |        |__DeviceClass(设备类)
    |   |__Device USB version(设备的USB版本)
    |__Device info tag #1(设备标识#1)

    其中
    P:  Vendor=xxxx ProdID=xxxx Rev=xx.xx
    |   |           |           |__Product revision number(产品修订号)
    |   |           |__Product ID code(产品ID编码)
    |   |__Vendor ID code(厂家ID编码)
    |__Device info tag #2(设备标识#2)


    字符串描述信息:

    S:  Manufacturer=ssss
    |   |__Manufacturer of this device as read from the device.(从设备读得的生产者)
    |__String info tag(字符信息标识)

    S:  Product=ssss
    |   |__从设备读得的产品信息,除去那些USB主控制器产生的字符串,格式 "USB *HCI Root Hub".
    |__String info tag(字符信息标识)

    S:  SerialNumber=ssss
    |   |__从设备读得的设备Serial Number ,除去那些USB主控制器产生的字符串, 代表主控制器
    |      在系统中唯一标识 (当前是 I/O 或 memory-mapped base 地址).
    |__String info tag(字符信息标识)


    配置描述信息:

    C:  #Ifs=dd Cfg#=dd Atr=xx MPwr=dddmA
    |   |       |       |      |__MaxPower in mA(最大功率,mA)
    |   |       |       |__Attributes(属性)
    |   |       |__ConfiguratioNumber(配置数)
    |   |__NumberOfInterfaces(接口数)
    |__Config info tag(配置信息标识)


    接口描述信息 (每配置可以是多个):

    I:  If#=dd Alt=dd #EPs=dd Cls=xx(sssss) Sub=xx Prot=xx Driver=ssss
    |   |      |      |       |             |      |       |__Driver name(驱动名)
    |   |      |      |       |             |      |__InterfaceProtocol(接口协议)
    |   |      |      |       |             |__InterfaceSubClass(接口子类)
    |   |      |      |       |__InterfaceClass(接口类)
    |   |      |      |__NumberOfEndpoints(端点号)
    |   |      |__AlternateSettingNumber(接口设置号)
    |   |__InterfaceNumber(接口号)
    |__Interface info tag(接口信息标识)


    端点描述信息(每接口可以是多个):

    E:  Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms
    E:  Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms
    |   |        |            |         |__Interval(间隔)
    |   |        |            |__EndpointMaxPacketSize(端点最大包大小)
    |   |        |__Attributes(EndpointType)(端点属性)
    |   |__EndpointAddress(I=In,O=Out) (端点地址)
    |__Endpoint info tag(端点信息标识)

    =======================================================================
    如果用户只对拓扑信息感兴趣,可以用:"grep ^T: /proc/bus/usb/devices"只显示拓扑行。
    而命令行:"grep -i ^[tdp]: /proc/bus/usb/devices" 可用于只显示出以tdp开头的行。

    例如, 系统有一个UHCI root hub,一个外部hub连接到root hub,一个mouse和串行转换器连到该hub.

    T:  Bus=00 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
    B:  Alloc= 28/900 us ( 3%), #Int=  2, #Iso=  0
    D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=0000 ProdID=0000 Rev= 0.00
    S:  Product=USB UHCI Root Hub
    S:  SerialNumber=dce0
    C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
    E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
    T:  Bus=00 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 4
    D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=0451 ProdID=1446 Rev= 1.00
    C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
    E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms
    T:  Bus=00 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=1.5 MxCh= 0
    D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=04b4 ProdID=0001 Rev= 0.00
    C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=mouse
    E:  Ad=81(I) Atr=03(Int.) MxPS=   3 Ivl= 10ms
    T:  Bus=00 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#=  4 Spd=12  MxCh= 0
    D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=0565 ProdID=0001 Rev= 1.08
    S:  Manufacturer=Peracom Networks, Inc.
    S:  Product=Peracom USB to Serial Converter
    C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
    I:  If#= 0 Alt= 0 #EPs= 3 Cls=00(>ifc ) Sub=00 Prot=00 Driver=serial
    E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl= 16ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS=  16 Ivl= 16ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=  8ms


    只选择 "T:" and "I:" 行 :

    T:  Bus=00 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
    T:  Bus=00 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 4
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
    T:  Bus=00 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=1.5 MxCh= 0
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=mouse
    T:  Bus=00 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#=  4 Spd=12  MxCh= 0
    I:  If#= 0 Alt= 0 #EPs= 3 Cls=00(>ifc ) Sub=00 Prot=00 Driver=serial


    物理上应该是这样的 (或者说可以变为):

                          +------------------+
                          |  PC/root_hub (12)|   Dev# = 1
                          +------------------+   (nn) is Mbps.
      Level 0             |  CN.0   |  CN.1  |   [CN = connector/port #]
                          +------------------+
                              /
                             /
                +-----------------------+
      Level 1   | Dev#2: 4-port hub (12)|
                +-----------------------+
                |CN.0 |CN.1 |CN.2 |CN.3 |
                +-----------------------+
                    /           /____________________
                     /_____                          /
                           /                          /
                   +--------------------+      +--------------------+
      Level 2      | Dev# 3: mouse (1.5)|      | Dev# 4: serial (12)|
                   +--------------------+      +--------------------+

    以树型结构表示 (没有实际连接的ports [Connectors] 被省略):

    PC:  Dev# 1, root hub, 2 ports, 12 Mbps
    |_ CN.0:  Dev# 2, hub, 4 ports, 12 Mbps
         |_ CN.0:  Dev #3, mouse, 1.5 Mbps
         |_ CN.1:
         |_ CN.2:  Dev #4, serial, 12 Mbps
         |_ CN.3:
    |_ CN.1:

    另外,USB设备分类 

    USB从设备的分类可以从USB设备接口描述符(Standard   Interface   Descriptor)对应的的bInterfaceClass这一个byte得到。   
    bInterfaceClass的典型代码为1,2,3,6,7,8,9,10,11,255。分别代表意思为1-audio:表示一个音频设   备。2-communication   device:通讯设备,如电话,moden等等。3-HID:人机交互设备,如键盘,鼠标等。6-image图象设备,如扫描仪,摄像头等,有时数码相   机也可归到这一类。7-打印机类。如单向,双向打印机等。8-mass   storage海量存储类。所有带有一定存储功能的都可以归到这一类。如数码相机大多数都归这一类。9-hub类。11-chip   card/smart   card。255-vendor   specific.厂家的自定义类,主要用于一些特殊的设备。如接口转接卡等。 

  • 相关阅读:
    自定义Bootstrap样式弹出框
    自定义Bootstrap样式弹出框
    Java高级
    Java高级
    Java高级
    Java高级
    与jQuery的感情碰撞——由浅入深学jQuery
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/leino11121/p/2381918.html
Copyright © 2011-2022 走看看