解除绑定 USB 接口以使用 Chrome Web USB API

解除绑定 USB 接口以使用 Chrome Web USB API

如何解除 USB 接口的绑定?

找到多个类似这样的页面:手动绑定和解除绑定驱动程序或者这个:普通用户如何解除/绑定 USB 设备?

建议使用以下命令:

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

这给了我以下回应:

echo:写入错误:没有这样的设备

但该文件夹在我的文件系统中可用: 在文件系统中找到文件夹

lsusb 给我:

Bus 001 Device 047: ID 0483:1234 STMicroelectronics USB2CAN converter

和 USB 设备:

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 47 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0483 ProdID=1234 Rev=01.00
S:  Manufacturer=8Devices
S:  Product=USB2CAN converter
S:  SerialNumber=5D2C531E
C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#=0x0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=ff Prot=ff Driver=usb_8dev

此外,如果我尝试使用“sudo echo -n“0-1:1.0”> /sys/bus/usb/drivers/usb/unbind”或“sudo echo -n“1-0:1.0”> /sys/bus/usb/drivers/usb/unbind”,它会给我:

echo: write error: No such device

有效的是:

sudo echo -n "1-1" > /sys/bus/usb/drivers/usb/unbind

但如果我尝试通过 Chrome 进行这样的连接:

navigator.usb.requestDevice({ filters: [{}] })
.then(selectedDevice => {
   device = selectedDevice;
console.log(device);
   return device.open()
    .then(() => device.reset())
    .then(() => device.selectConfiguration(1))
    .then(() => device.claimInterface(device.configuration.interfaces[0].interfaceNumber))
 });

它仍然给我:

DOMException:无法声明接口。

也不像这个人如何使用 WebUSB 声明接口?我可以选择该设备。

总结:

我想使用WebUSB 接口但它给了我

DOMException:无法声明接口。

答案1

因此基本上你必须对“8devices”执行此操作。

/sys/bus/usb/drivers/usb_8dev$ echo "1-1:1.0" > unbind

长话短说:

cd /sys/bus/usb/drivers/usb_8dev
echo "1-1:1.0" > unbind

您将在 /sys/bus/usb/drivers/usb_8dev 中找到一个类似于“1-1:1.0”的文件,因此只需执行 ls 即可获取正确的文件,然后将“1-1:1.0”交换为该值。

也不要忘记设置sudo chmod -R -v 777 ./驱动程序(例如 usb_8dev)文件夹。

另外建议:在 Linux 中以编程方式断开并重新连接 ttyUSB0

相关内容