如何解决ubuntu系统 usb转串口 开机启动后乱序识别的问题

Ubuntu USB 转串口设备开机后乱序识别解决方案

在 Linux 系统中,特别是 Ubuntu 中,USB 转串口设备可能会因为内核加载顺序或其他硬件变化而导致设备名称随机分配。这种现象通常表现为 /dev/ttyUSB* 设备编号的变化。

解决方案概述

通过创建 udev 规则来固定 USB 转串口设备的命名方式可以有效解决这一问题。udev 是 Linux 下用于动态管理设备文件的子系统,允许管理员基于特定条件自定义设备路径或符号链接。


实现方法

以下是具体实现步骤:

  1. 查找设备属性 使用 lsusbdmesg | grep tty 命令查看当前连接的 USB 转串口设备及其对应的设备节点。

    运行以下命令获取设备的具体信息:

    Bash

    ls -l /sys/class/tty/ttyUSB*/device/driver/

    同时可以通过 udevadm info --query=all --name=/dev/ttyUSBX 获取更详细的设备属性(其中 X 表示具体的设备号)。这些属性包括供应商 ID (ID_VENDOR_ID)、产品 ID (ID_MODEL_ID) 及序列号等唯一标识符。

  2. 编写 udev 规则 创建一个新的 udev 规则文件,例如 /etc/udev/rules.d/99-usb-serial.rules,并添加如下内容作为模板:

    plaintext

    SUBSYSTEM=="tty", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", SYMLINK+="custom_name%d"

    xxxx 替换为实际的供应商 ID,yyyy 替换为产品的 ID,而 %d 则表示自动追加索引以区分多个相同类型的设备。如果需要进一步细化规则,还可以加入其他匹配项如 ATTRS{serial} 或者 KERNELS 来提高准确性。

  3. 重新加载 udev 配置 完成编辑之后执行下面两条指令使更改生效:

    Bash

    sudo udevadm control --reload-rules && sudo udevadm trigger

  4. 验证结果 断开再重插目标 USB 转串口装置确认其是否被赋予预期固定的别名;或者重启计算机测试启动过程中的稳定性。


示例代码片段

假设某款 USB 转串口模块具有以下特征参数:

  • Vendor ID: 067b
  • Product ID: 2303
  • Serial Number: FTGN1ZQW

那么相应的配置条目应写成这样:

plaintext

SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", ATTRS{serial}=="FTGN1ZQW", SYMLINK+="fixed_serial_port"

此后无论何时何地接入该型号实例都会映射到同一逻辑位置即 /dev/fixed_serial_port.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

start_up_go

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值