可以访问Linux上的USB设备(libusb-1.0)吗?

erj*_*ang 9 linux usb libusb-1.0

我正在编写一个小程序,使用Linux上的libusb-1.0与特定的USB HID产品(由供应商和产品ID标识)进行通信.现在,我必须以root身份运行程序,因为"libusb需要对USB设备节点进行写访问".有没有办法更改我需要的设备的权限,以便我不需要以root身份运行我的程序?

caf*_*caf 11

在现代的Linux系统中,udevd(man 7 udev)创建,当他们正在插入USB设备的设备节点.加入您的装置(例如,您可以通过USB供应商和产品的ID匹配)匹配的udev规则,并设置OWNER/ GROUP/ MODE的设备节点.

最好的方法可能是为应该能够访问设备的用户创建一个新组,然后将其设置为udev规则中的组所有者.您可能还需要使用MODE它来确保它具有组读/写权限.例如.你的规则可能看起来像:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="ffee", ATTRS{idProduct}=="5a5a", MODE="0660", GROUP="foobar"
Run Code Online (Sandbox Code Playgroud)

  • 直到我在"0660"附近加上引号后,这对我不起作用 (2认同)