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

搞定!

相关推荐
mounter6252 小时前
深入解析 RDMA 中的 Address Handler (AH) 缓存:AWS EFA 驱动的硬件演进与软件复用艺术
linux·kernel·rdma·hashtable·hash table·address handle
jarreyer8 小时前
【AI Agent】大模型自动化载体
运维·自动化
xixingzhe28 小时前
SpringBoot + Nginx 免鉴权接口安全防护方案
运维·nginx·安全
翼龙云_cloud9 小时前
阿里云国际代理商:阿里云 ECS 全维度监控配置教程
运维·阿里云·云计算·监控
笑锝没心没肺9 小时前
fail2ban工具安装配置及使用
linux·运维·服务器
zt1985q10 小时前
本地部署开源智能家居集成平台 ioBroker 并实现外部访问( Windows 版本)
运维·服务器·智能家居
大卡片11 小时前
linux内核驱动开发
linux·运维·驱动开发
心心喵12 小时前
[linux] nohup和pm2的区别 进程保活
linux·运维·服务器
NGINX开源社区13 小时前
F5 NGINX Ingress Controller 5.3.0 新增功能
运维
醉熏的石头13 小时前
Ubuntu 中的编程语言(中)
linux·ubuntu·scala