1

我正在开发基于微芯片微控制器的 USB 设备。我可以用 webusb 打开设备,与它交谈以及一切。

只是productName 和manufacturerName 字段是空字符串,并且选择设备弹出窗口显示“来自Microchip Technology Inc. 的未知设备”。而不是设备实际返回的内容。

Windows 正确枚举设备,读取包含 USB 2.0 扩展描述符 (LPM)、WebUSB 平台描述符和 MS OS 2.0 条目的 BOS 描述符。

我正在使用 USBlyzer 软件来捕获 USB 通信,我可以看到:

  • BOS 描述符已正确获取
  • WebUSB URL 描述符已正确获取
  • MS OS 2.0 描述符已正确获取

Windows 正确安装了 WinUSB 驱动程序,并且当从本机应用程序(使用 libusb)打开时,设备可以工作。我还可以从设备中读取产品名称和制造商名称字符串。

我已经在以下条件下进行了测试:最新的 chrome、最新的 chrome 金丝雀、最新的 chromium(来自树)、最新的歌剧,并且在所有这些下,设备都显示为“来自 Microchip Technology Inc. 的未知设备”。(基本上是从VID中扣除的名字)。我一定做错了什么,但我什至不知道从哪里开始追踪这个问题。

在“chrome://device-log”中,我可以在“添加 USB 设备:vendor=1240”、product=60944“”、serial="4326"之前看到如下条目:“未能提交传输:找不到实体” , guid=fcc527ca-5c19-45e0-9334-745475ae430d',这不是很有帮助。

4

1 回答 1

2

众所周知,Chrome 在枚举期间从设备中读取字符串的方式productName在Windows 上存在问题,因为它与 Windows 驱动程序堆栈的其他部分竞争。manufacturerName目前正在实施的 Windows 上的 USB 新后端可解决此问题。问题 637404正在跟踪这项工作。对于某些设备类型,它已经可以正常工作,您可以通过设置chrome://flags#new-usb-backend为启用来测试它。

于 2018-12-10T19:19:27.000 回答