【问题标题】:Claiming an HID device using webusb使用 webusb 声明 HID 设备
【发布时间】:2017-10-17 21:02:49
【问题描述】:

我似乎无法使用 webusb 声明隐藏接口。我正在尝试编写一个 yubikey OATH 包装器

navigator.usb.requestDevice({filters: filters}).then(...);

USBDevice {usbVersionMajor: 2, usbVersionMinor: 0, usbVersionSubminor: 0, deviceClass: 0, deviceSubclass: 0, ...}配置:USBConfiguration {configurationValue: 1, configurationName: null, interfaces: Array(2)}配置:[USBConfiguration ]deviceClass: 0deviceProtocol: 0deviceSubclass: 0deviceVersionMajor: 3deviceVersionMinor: 4deviceVersionSubminor: 9manufacturerName: "Yubico"opened: falseproductId: 273productName: "Yubikey NEO OTP+CCID"serialNumber: "0005610818"usbVersionMajor: 2usbVersionMinor: 0usbVersionSubminor:__proto0__: USBDeviceId:41176:__protocol // ykey 现在包含设备 USBDevice {usbVersionMajor: 2, usbVersionMinor: 0, usbVersionSubminor: 0, deviceClass: 0, deviceSubclass: 0, ...}

ykey.open(...).then(...);
ykey.claimInterface(0)

承诺{[[PromiseStatus]]:“待定”,[[PromiseValue]]:未定义} Uncaught (in promise) DOMException: Unable to claim interface.

我怀疑这是与 chrome.usb api 类似的问题。我是否应该编写一个 udev 规则以不使用该设备上的 usbhid 驱动程序来完成这项工作?

【问题讨论】:

    标签: javascript hid webusb


    【解决方案1】:

    来自 IRC 对话,提到了Reilly

    不得加载 HID 驱动程序,因此可以使用 udev 规则。

    限制来自操作系统,因为当加载 HID 驱动程序时,该接口被“认领”,因此 Chrome 无法为自己认领。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 2010-09-21
      • 2023-04-07
      相关资源
      最近更新 更多