Linux串口ttyUSB修改别名
方法一:
-
插入串口设备,查看
/dev
目录下系统自动分配的设备节点[root@linux ~]# ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Aug 30 15:13 /dev/ttyUSB0
可以看出,当前设备的节点为
ttyUSB0
-
输入以下命令查看当前设备节点(ttyUSB0)所在的USB端口号
udevadm info -a -n /dev/ttyUSB0 | grep KERNELS
结果如下:
KERNELS=="ttyUSB0" KERNELS=="1-1.1:1.0" KERNELS=="1-1.1" KERNELS=="1-1" KERNELS=="usb1" KERNELS=="0000:01:00.0" KERNELS=="0000:00:00.0" KERNELS=="pci0000:00" KERNELS=="fd500000.pcie" KERNELS=="scb" KERNELS=="platform"
其中,第三行的值为当前设备节点
ttyUSB0
所在的端口号:1-1.1
-
输入以下指令新增udev规则文件,自定义端口别名
sudo touch /etc/udev/rules.d/usb-serial.rules sudo gedit /etc/udev/rules.d/usb-serial.rules
写入内容如下:
SUBSYSTEM=="tty", KERNELS=="1-1.1", SYMLINK+="ttyUSB_A", MODE="0666"
上面
KERNELS
的值为端口号1-1.1
,SYMLINK
的值为我们自定义的设备节点别名ttyUSB_A
,保存并退出 -
重新加载udev规则
sudo udevadm control --reload-rules && sudo service udev restart && sudo udevadm trigger
-
加载完毕后,再次查看
/dev
下的设备节点[root@linux ~]# ls -l /dev/ttyUSB* crw-rw-rw- 1 root dialout 188, 0 Aug 30 15:38 /dev/ttyUSB0 lrwxrwxrwx 1 root root 7 Aug 30 15:38 /dev/ttyUSB_A -> ttyUSB0
可以看出,上面出现了我们自定义的设备节点
ttyUSB_A
,ttyUSB_A
实际上是ttyUSB0
设备节点的端口映射,之后我们就可以通过使用ttyUSB_A
节点来对串口设备进行打开、关闭等操作了。
方法二:
- 查看自己的串口号,输入以下命令:
$ lsusb
得到类似以下的信息
ros@noetic:~$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 003 Device 021: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 003 Device 004: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 003 Device 018: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 003 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 005: ID 0e0f:0008 VMware, Inc. Virtual Bluetooth Adapter
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub2
这里我以两个340串口为例
Bus 003 Device 021: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
- 打开终端,输入下面指令进入rules.d下
$ cd /etc/udev/rules.d
- 创建新的规则文件(.rules后缀)文件
$ sudo gedit usb-serial.rules
- 在文本中添加如下内容
根据第一步中串口ID为1a86:7523,idVendor对应1a86, idProduct对应7523
KERNEL=="ttyUSB0", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="ttyUSBA"
-
刷新串口,或者插拔USB接口
sudo service udev reload sudo service udev restart
-
重新查看串口
可以看到自己创建的名称映射到串口上
fly@ubuntu:~/Desktop$ ls -l /dev/ | grep ttyUSB
lrwxrwxrwx 1 root root 7 3月 13 14:08 ttyUSBA -> ttyUSB0
crwxrwxrwx 1 root dialout 188, 0 3月 13 14:08 ttyUSB0