为 USB设备绑定固定的设备名

发现一个非常奇怪的问题:GA6设备通过TTL连接,显示的是/dev/ttyUSB0,在发送完信息后,设备的连接信息却变成了/dev/ttyUSB1,这是什么原因呢??

在网上根据网友的提示进行了操作:

移动机器人上有两个USB串口设备,分别是激光雷达和机器人底盘,Ubuntu为这两个设备的设备名分配的设备名ttyUSB0ttyUSB1,但是设备名与设备之间的对应关系并不是固定的,是按设备接入系统的顺序依次分配的。先插入一个设备再插另一个设备可以确定设备与设备名的关系,但每次系统启动都需要插拔设备,十分麻烦。

  可以将串口映射到一个固定的设备名上,不论插入顺序如何都会讲设备映射到新的设备名上,我们只要使用新的设备名对设备进行读写操作就可以了。

实现步骤如下:

(1) 查看USB端口信息

  第一个设备是移动机器人底盘,第二个设备是激光雷达。我们需要的是这两个设备的ID,分别是1a86:752310c4:ea60

(2) 建立端口映射关系

$ sudo touch /etc/udev/rules.d/base.rules

$ sudo vim /etc/udev/rules.d/base.rules

在文件中添加如下内容:

KERNEL==ttyUSB*, ATTRS{idVendor}==1a86, ATTRS{idProduct}==7523, MODE:=0666, SYMLINK+=base

$ sudo touch /etc/udev/rules.d/lidar.rules

$ sudo vim /etc/udev/rules.d/lidar.rules

在文件中添加如下内容:

KERNEL==ttyUSB*, ATTRS{idVendor}==10c4, ATTRS{idProduct}==ea60, MODE:=0666, SYMLINK+=lidar

 ***********************************************

看看使用的效果吧,先收藏一下

原文地址:https://www.cnblogs.com/runrungo/p/10288741.html