Ubuntu永久修改USB设备操作权限+设置软链接
一、查看USB设备及其权限
ll /dev/ttyUSB*
可以看到,当前的USB设备名称为ttyUSB0,其权限为rw-rw----,为方便操作,修改其权限为777。
sudo chmod 777 /dev/ttyUSB0
再次查看权限,rwxrwxrwx,即所有用户对其可读、可写、可执行。
二、永久修改权限并增加软链接
上述修改权限的方法在重启后会失效,每次重启后都需要重新修改权限,太麻烦,而且对于ARM平台的开发不太方便,可以通过新建规则来永久修改USB设备权限。
1、查找idVendor和idProduct
- 方法一:
lsusb
可以看到当前连接的所有USB设备
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 105b:e065 Foxconn International, Inc. BCM43142A0 Bluetooth module
Bus 001 Device 005: ID 13d3:5727 IMC Networks
Bus 001 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 009: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 001 Device 003: ID 0080:a001
Bus 001 Device 008: ID 89e5:101b
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
找到我们要修改权限的设备,不知道是哪一个可以通过拔插对比找出来,这里需要修改的是:
Bus 001 Device 009: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
其中,ID后面的10c4就是idVendor,ea60就是idProduct。
- 方法二:
lsusb -vvv
找到我们需要修改权限的设备,在Device Descriptor中找到idVendor和idProduct,同样的idVendor=10c4,idProduct=ea60。
2、建立规则文件并创建软链接
- 在/etc/udev/rules.d/目录下新建规则文件rule_name.rules,这里根据自己的设备命名
cd /etc/udev/rules.d/
sudo gedit rplidia_a2.rules
- 将以下内容复制到规则文件中,根据自己的设备修改idVendor、idProduct和SYMLINK。
KERNEL==“ttyUSB*”, ATTRS{idVendor}==“10c4”, ATTRS{idProduct}==“ea60”, MODE:=“0777”, SYMLINK+=“rplidar”
其中,KERNEL是USB设备的名称,这里没有指定具体的编号,而是通过后的厂商标识(idVendor)和产品标识(idProduct)来识别设备;
ATTRS{idVendor}即厂商标识;
ATTRS{idProduct}即产品标识;
MODE是设备权限;
SYMLINK是设备的软链接名称,这里插入的是思岚的激光雷达RPLIDAR A2。
- 重新插入USB设备,查看设备名称和软链接
ll /dev
可以看到,不仅有ttyUSB0,而且还有指向ttyUSB0的软链接rplidar,大功告成。