在使用usb时,Ubuntu系统注册设备节点是从ttyUSB0开始,然后是ttyUSB1、2 、3...,多个usb接口,先插入设备的分配为ttyUSB0,后面插入的设备依次注册设备节点。但是我们使用串口通信时是固定的设备节点名,因此我们无法保证我们的设备节点是否被其他设备注册了。所以固定usb接口对应的设备节点名是很重要的。
操作步骤:
- 命令终端输入:lsusb ----查看usb设备
firefly@firefly:~$ lsusb Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 002: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
- 插入需要固定的usb转串口设备
- 命令终端输入:lsusb ----查看固定usb接口的硬件ID如:
firefly@firefly:~$ lsusb Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 007 Device 004: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 002: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
找到多出的外设ID 10c4:ea60
-
命令终端输入:cd /etc/udev/rules.d/ ----转到rules配置文件夹下
-
命令终端输入:sudo vim my_usb.rules ----创建rules文件,重映射设备usb设备名如下
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0777", SYMLINK+="laser_USB"
说明:KERNEL:内核固定名称 ,ID 10c4:ea60: usb设备的ID,是设备厂商的唯一标识,MODE:节点权限 , SYMLINK:符号连接 , 就是我们重映射的节点名称
-
命令终端输入:service udev reload ----重载规则
-
命令终端输入:service udev restart ----重新启动
-
命令终端输入:lsusb ----就可以看到我们lser_USB 设备节点名啦