1

我正在尝试使用 WebUS,或者更准确地说,通过使用 DART(Angular DART)编写的网页访问 USB 设备。

在摆弄了一下之后,我了解了在 Windows 10 台式电脑上使用 Chrome V63 的基本概念。它允许我向 USB 端点发送和接收数据。到目前为止,一切都很好 :-)

但是,当在运行 Chrome 版本 63 的 (Samsung 500C) Chromebook上尝试相同的 URL时,调用时会出现问题USBdevice.open(),我收到“未捕获的 DOMException:访问被拒绝”异常。

在调试器中,查看 USB 设备属性,opened: false并且接口claimed: false指示没有其他人正在使用 USB 适配器。

再看一些,device_event_log它下面的 Chrome://system 显示一个USB EVENT: usb_device_linux.cc:99 Permission broker failed to open the device: org.freedesktop.DBus.Error.Failed: permission_broker/permission_denied:Permission to open '/dev/bus/001/032' denied (2)

欢迎任何建议。

4

1 回答 1

0

Chrome OS permission_broker 将访问控制规则应用于可能不适用于其他平台的 USB 设备。这些规则的目的是防止 Chrome 应用程序(使用 chrome.usb API)或网站(使用 WebUSB API)访问对系统很重要的 USB 设备。

检查是否允许设备访问请求时通过或失败的规则将记录到系统日志中,该日志位于 Chrome OS 设备上 chrome://system 的“syslog”部分中。搜索包含字符串“permission_broker”的行,您将看到如下部分:

2018-02-04T20:27:31.845733-05:00 INFO permission_broker[1249]: ProcessPath(/dev/bus/usb/001/003)
2018-02-04T20:27:31.883050-05:00 INFO permission_broker[1249]:   AllowUsbDeviceRule: ALLOW
2018-02-04T20:27:31.883058-05:00 INFO permission_broker[1249]:   AllowTtyDeviceRule: IGNORE
2018-02-04T20:27:31.918667-05:00 INFO permission_broker[1249]:   DenyClaimedUsbDeviceRule: IGNORE
2018-02-04T20:27:31.918722-05:00 INFO permission_broker[1249]:   DenyUninitializedDeviceRule: IGNORE
2018-02-04T20:27:31.918758-05:00 INFO permission_broker[1249]:   DenyUsbDeviceClassRule: IGNORE
2018-02-04T20:27:31.918765-05:00 INFO permission_broker[1249]:   DenyUsbDeviceClassRule: IGNORE
2018-02-04T20:27:31.918789-05:00 INFO permission_broker[1249]:   DenyUsbVendorIdRule: IGNORE
2018-02-04T20:27:31.918794-05:00 INFO permission_broker[1249]:   AllowHidrawDeviceRule: IGNORE
2018-02-04T20:27:31.918799-05:00 INFO permission_broker[1249]:   AllowGroupTtyDeviceRule: IGNORE
2018-02-04T20:27:31.918804-05:00 INFO permission_broker[1249]:   DenyGroupTtyDeviceRule: IGNORE
2018-02-04T20:27:31.918814-05:00 INFO permission_broker[1249]: message repeated 2 times: [   DenyGroupTtyDeviceRule: IGNORE]
2018-02-04T20:27:31.918819-05:00 INFO permission_broker[1249]:   DenyClaimedHidrawDeviceRule: IGNORE
2018-02-04T20:27:31.918824-05:00 INFO permission_broker[1249]:   DenyUnsafeHidrawDeviceRule: IGNORE
2018-02-04T20:27:31.918830-05:00 INFO permission_broker[1249]: Verdict for /dev/bus/usb/001/003: ALLOW

您很可能会发现阻止设备的是 DenyClaimedUsbDeviceRule。这意味着已经有一个 Linux 内核驱动程序将自身附加到设备上。

于 2018-02-05T16:31:33.077 回答