gpt4 book ai didi

linux - 使用 udev-rules 在没有 sudo 的情况下调用 libusb

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:26:54 24 4
gpt4 key购买 nike

仅在 Kubuntu 16.04 64 位上测试。我有一个源不受我控制的应用程序。它使用一些 libusb 调用,最终以例如:

libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/001/031: Permission denied
libusb: error [_get_usbfs_fd] libusb requires write access to USB device nodes.

当以 root 身份运行上述应用程序时,它按预期工作。当我更改相关文件的权限时:

sudo chmod a+w /dev/bus/usb/001/031

然后该应用程序将以标准用户权限运行(直到我断开/重新连接我的 USB 设备)。

现在我正在寻找一种方法,例如每次插入特定 USB 设备时自动执行 chmod a+w。是否可以通过编写特定的 udev 规则来实现?

也许 libusb 在没有 root 权限的情况下调用了其他解决方案?

解决方案:根据 David Grayson 的回答,我现在在我的规则文件中添加了带有 SUBSYSTEM=="usb" 的附加行。我的规则文件现在最终看起来像这样:

SUBSYSTEM=="tty", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", MODE="0666"

最佳答案

我建议您在 /etc/udev/rules.d 中添加一个名为 usb.rules 的新文件。它应该有以下内容:

SUBSYSTEM=="usb", MODE="0666"

这将使所有用户都可以读取和写入所有 USB 设备。

您还可以使用 Ignacio 的回答中提到的 idVendoridProduct 属性将其缩小到特定的 USB 设备。

关于linux - 使用 udev-rules 在没有 sudo 的情况下调用 libusb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40597515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com