linux串口管理员权限修改为普通用户可读取,映射串口名为某固定名称
操作步骤:
- 新建xxxx.rules文件
cd /etc/udev/rules.d/
sudo gedit xxxx.rules
- 使用
lsusb
与dmesg
查看串口设备号和串口名
使用lsusb
后终端中显示:
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 003 Device 003: ID 174f:148d Syntek
Bus 003 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
我的串口设备号是067b:2303 这个设备号与第三步有关,067b是idVendor号,2303是idProduct号
3. 往xxxx.rules文件中写入内容
KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE="0777", SYMLINK+="gps_imu"
其中SYMLINK+="gps_imu"
是串口别名
4. 拔插usb设备,或重启电脑后检查是否映射成功
ls -l /dev |grep ttyUSB
如果显示以下信息则表示映射成功
lrwxrwxrwx 1 root root 7 8月 30 21:29 gps_imu -> ttyUSB0
crwxrwxrwx 1 root dialout 188, 0 8月 30 21:29 ttyUSB0