Linux创建串口别名
我们在插入串口之后,总要查看一下串口号,然后才可以连接到对应的串口。但是在Linux下,我们可以将对应的设备编写到rules文件,在我们插入新设备时候,就可以直接根据我们设置的串口名字找到对应设备,这可以应用到自启动的设备中,不会因为串口号不对应导致不必要的错误。
一、当挂载的驱动各不相同时
说明:我们在ubuntu下插入驱动,cp2102会显示为ttyACM*,而ch340会显示为ttyUSB*,我们可以依据这个属性将两类驱动使用系统识别我们插入的是什么设备,此时的串口号将不再作为判别外设的条件。我们只要插入此类驱动所驱动的串口,就可以不管他是哪个端口,统一命名为下文的“myusb”。
设置流程:
查看串口信息
lsusb
编辑串口信息(以命名为myusb为例)
sudo vim /etc/udev/rules.d/myusb.rules
写入以下信息
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0777", SYMLINK+="myusb"
重新插拔后搜索
ls -l /dev |grep ttyUSB
应显示
lrwxrwxrwx 1 root root 7 Nov 29 14:03 myusb-> ttyUSB1
crw-rw-rw- 1 root dialout 188, 0 Nov 29 14:03 ttyUSB0
crwxrwxrwx 1 root dialout 188, 1 Nov 29 14:03 ttyUSB1
二、当有挂载驱动有相同时
说明:有时候我们想要有相同的挂载的驱动时候,此时单靠识别时ACM还是USB是不可以做出正确选择的,所以我们要采用更精细的区分方式作别判别外设的条件。此时的驱动类别已经不是判断条件,现在的判断条件是我们插入的串口在电脑上的位置。
设置流程:
首先插入一个串口,查看usb信息并取出kernels属性,假设我们当前插入的串口号为usb1
udevadm info --attribute-walk --name=/dev/ttyUSB1 | grep KERNELS
此时显示
我们可以看到
KERNELS==“2-2.2”
这个“2-2.2”就是我们想要的属性
我们此时编写.rules
sudo vim /etc/udev/rules.d/myusb.rules
写入
KERNELS=="2-2.2", KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60",MODE:="0777", SYMLINK+="myusb"