无法打开 /dev/bus/usb/001/007:usb 设备的权限被拒绝

四条约瑟夫

我正在尝试使用 webusb api 从网页连接 USB 设备,但我无法使用以下代码打开配对设备。

<!DOCTYPE html>
<html>
<head allow="usb"></head>
    <body>
   <input type="submit" onclick="connect()" value="connect"/>

    <script>
    var device;
    function setup(device) {
        alert(device.productName+" open");
        return device.open()

        .then(() => device.selectConfiguration(1))
        .then(() => device.claimInterface(0))
    }

    function connect() {
        if (device == null) {
            navigator.usb.requestDevice({ filters: [{ vendorId : 2352 }] })
            .then(selectedDevice => {
                device = selectedDevice;
                console.log(device);
                return setup(device);
            })

            .catch(error => { console.log(error); })
        }


    }
    navigator.usb.getDevices()
    .then(devices => {
        if (devices.length > 0) {
            device = devices[0];
            return setup(device);
        }
    })
    .catch(error => { console.log(error); });
    </script>
    </body>
</html>

它的节目

DOMException Access denied 配对后无法打开 USB

赖利格兰特

根据此问题的标题,您似乎在 Linux 上运行,并且/dev/bus/usb/001/007未设置设备节点的权限,因此运行 Chrome 的用户可以打开它。

您需要做的是添加一个 udev 规则,该规则将设置此设备节点的权限,以便可以打开它。首先,您需要找出设备的供应商和产品 ID。如果你运行lsusb它,它会以这样的格式列出你系统上的设备,

Bus BBB Device NNN: ID VVVV:PPPP Manufacturer Product

在哪里,

BBB:总线编号(通常每个控制器一个,USB 3.0 控制器两个)。
NNN:该总线上的设备编号。
VVVV:供应商 ID(十六进制)。
PPPP:产品 ID(十六进制)。

知道此信息后,您可以/etc/udev/rules.d/在插入您在上述步骤中发现的 ID 后创建一个包含以下行的文件

SUBSYSTEM=="usb", ATTRS{idVendor}=="VVVV", ATTR{idProduct}=="PPPP", MODE="0660", GROUP="plugdev"

这将使plugdev组中的用户可以访问具有给定供应商和产品 ID 的任何设备根据 Debian 文档,这是一个模糊适用于可移动设备权限的组

从您的代码似乎已经知道供应商 ID 2352,它将以十六进制形式作为“0930”输入规则。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法打开文件(权限被拒绝)

Pinta 无法打开文件 - 权限被拒绝

ls:无法打开目录:权限被拒绝

Docker Compose无法打开目录权限被拒绝

无法打开新的Jupyter Notebook [权限被拒绝]

wamp + wordpress:无法打开流:权限被拒绝

无法打开流并且权限被拒绝-PHP

无法打开流:权限被拒绝 - Artisan

ls:无法打开目录“。”:权限被拒绝

Elasticsearch无法打开日志文件:权限被拒绝

无法打开目录“.dbus/”:权限被拒绝

553无法打开该文件:权限被拒绝

WordPress的错误!无法打开流:权限被拒绝

权限被拒绝-无法打开输出文件

无法打开输出文件:权限被拒绝

sudo:无法打开/ etc / sudoers:权限被拒绝

无法打开 /dev/mem:权限被拒绝

位置权限无法通过设备打开

avrdude:ser_open():无法打开设备“ / dev / ttyACM0”:权限被拒绝,除了没有任何作用

无法打开流,即使设置了权限,权限也被拒绝

打开目录拒绝权限

在启动时在服务中打开设备文件的权限被拒绝

java.io.filenotfoundexception在设备上打开失败的eacces(权限被拒绝)

无法打开文件lol.json:使用Jq拒绝权限?

无法打开Perl脚本“ ./script.pl”:权限被拒绝

PHP-readfile()无法打开流:权限被拒绝

imagejpeg-无法打开文件进行写入:权限被拒绝

move_uploaded_file无法打开流:权限被拒绝-Mac

Laravel 5-ErrorException无法打开流:权限被拒绝