转载: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