[转载]Linux libusb "LIBUSB_ERROR_ACCESS" libusb_open返回值为-3 error解决方法

转载:https://blog.csdn.net/jiguangfan/article/details/86493660

Linux下libusb开发遇到如下问题
在Linux下用libusb进行usb设备打开时遇到“LIBUSB_ERROR_ACCESS  libusb_open函数返回值为-3”

此问题原因为该用户没有权限!

解决方法
第一步:执行以下命令

sudo chmod -R 777 /dev/bus/usb/
重新运行测试程序,若还报错,执行第二步

第二步:永久修改 USB 设备权限

1)使用lsusb命令找出 USB 设备的 vendorID 和 productID

2)创建一个新的udev规则

sudo vim /etc/udev/rules.d/90-myusb.rules

#在文件中添加下面的话
#用你自己的"idVendor"和"idProduct"来替换默认值。MODE="0666"表示USB设备的权限。

SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="users", MODE="0666"
GROUP代表用户组,要确保此时登录的系统用户在该用户组中;

可用 "usermod -a -G username groupname" 将用户添加到用户组中

3)重启电脑或重新加载 udev 规则

sudo udevadm control --reload
重新运行测试程序,若还报错,执行第三步 

第三步:su 切换到root用户下运行测试程序

 

参考链接

https://bbs.csdn.net/topics/390001023

https://blog.csdn.net/linux_shuai/article/details/51406896

https://github.com/smartdevicelink/sdl_core/issues/35

https://blog.csdn.net/chasonyang/article/details/45194135

posted @ 2021-04-21 15:47  h2z  阅读(1002)  评论(0编辑  收藏  举报