背景:使用USBCAN控制电机,USBCAN通过usb接口连接工控机,工控机是ubuntu系统,运行修改好后的C++程序发现一直打开设备失败,是一直失败不会成功
但是用sudo ./test 就能很快成功打开。
问题原因:
查阅了许多网上资料,原因好像是普通用户操作linux系统的外设需要权限,所以在加有sudo的条件下才能成功打开设备。
解决方法:
法一:
在终端中输入chmod指令,指定在当前终端下某个外设挂载点的权限,指令如下:
sudo chmod 777 /dev/bus/usb/001/005
缺点:重启后需要重新配置
法二:
用udevadm查看设备信息
sudo udevadm info --attribute-walk --name=/dev/bus/usb/001/005
1)进入/etc/udev/rules.d/目录下
cd /etc/udev/rules.d/
2)在该目录下创建对应外设的规则文件,后缀为.rules,名字自己取。以usbcan为例子,创建usbcan.rules文件
<