解决 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

搞定!

相关推荐
chlk12319 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑20 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件20 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒21 小时前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash1 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux
木心月转码ing3 天前
WSL+Cpp开发环境配置
linux
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes