【问题标题】:WebUsb productName and manufacturerName are emptyWebUsb 产品名称和制造商名称为空
【发布时间】:2018-12-06 18:19:13
【问题描述】:

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: google-chrome usb opera webusb


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 1970-01-01
      • 2021-03-14
      相关资源
      最近更新 更多