解决 ubuntu 重启串口号变化
在多个串口设备连接ubuntu时,每次开机,串口号总是互相串,导致无法正常使用
解决这个问题的办法就是将串口的唯一序号和他的符号链接进行绑定,即可每次开机保证串口是唯一的
例如现在有两个串口
jetson@nano:~$ ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1
通过这个命令查看USB0串口的唯一序号
jetson@nano:~$ udevadm info -a -n /dev/ttyUSB0 | grep -E "idVendor|idProduct|serial|manufacturer"SUBSYSTEMS=="usb-serial"ATTRS{idProduct}=="7523"ATTRS{idVendor}=="1a86"ATTRS{idProduct}=="5411"ATTRS{idVendor}=="0bda"ATTRS{manufacturer}=="Generic"ATTRS{manufacturer}=="Linux 4.9.253-tegra xhci-hcd"ATTRS{idProduct}=="0002"ATTRS{serial}=="70090000.xusb" <---这个就是串口唯一序号ATTRS{idVendor}=="1d6b"
USB 1 同理,记录其串口唯一序号
然后创建udev rules文件
sudo touch /etc/udev/rules.d/99-serial.rules
编辑它
sudo gedit /etc/udev/rules.d/99-serial.rules
输入内容
SUBSYSTEM=="tty", ATTRS{serial}=="70090000.xusb", SYMLINK+="imu"SUBSYSTEM=="tty", ATTRS{serial}=="0001", SYMLINK+="lidar"
ATTRS{serial}= 填写串口唯一序号
SYMLINK+= "" 双引号内填写串口符号链接名称 例如 “imu” ,那么符号链接就是 /dev/imu
编写完成后重新载入
sudo udevadm control --reload-rules
sudo udevadm trigger
拔插串口,查看符号链接是否生效
jetson@nano:~$ ls /dev/imu
/dev/imu
jetson@nano:~$ ls /dev/lidar
/dev/lidar
搞定!