无法声明接口0:设备或资源繁忙

时间:2017-12-07 12:26:55

标签: javascript google-chrome google-chrome-extension webusb

我正在尝试使用WEBUSB API与USB设备通信。但是,当我试图声明界面时,它显示

  

" DOMException:无法声明界面"

bConfigurationvalue1,接口号为0。我在

下添加命令lsusb -v的输出
~$ lsusb -v
Bus 001 Device 005: ID 0930:6544 Toshiba Corp. TransMemory-Mini / Kingston DataTraveler 2.0 Stick (2GB)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0930 Toshiba Corp.
  idProduct          0x6544 TransMemory-Mini / Kingston DataTraveler 2.0 Stick (2GB)
  bcdDevice            1.00
  iManufacturer           1 TOSHIBA 
  iProduct                2 TransMemory     
  iSerial                 3 C412F52D6C84CFC0A0012AEF
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              200mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval             255
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval             255
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

为什么它显示设备或资源繁忙。如何声明界面?

1 个答案:

答案 0 :(得分:0)

设备显示为忙,因为这是一个USB海量存储类设备,当Linux连接到声称接口0时,Linux将自动加载内核驱动程序。

您可以使用以下命令manually unbind the USB device driver

echo -n "1-1:1.0" > /sys/bus/usb/drivers/usb-storage/unbind

“1-1:1.0”指定usb存储驱动程序应解除绑定的设备和接口。 “1-1”表示总线1,端口1,“1.0”表示配置1,接口0.当设备连接时,此信息将打印在内核日志中,

usb-storage 1-1:1.0: USB Mass Storage device detected

您设备的总线和端口号可能会有所不同。

虽然这应该允许您将此设备与WebUSB一起使用,但由于涉及手动步骤,因此它不太可能作为长期解决方案。 WebUSB专为没有内置操作系统驱动程序的设备而设计。