我正在开展一个项目,涉及开发与多个 ttyUSB 端口(具体来说是 16 个)连接的设备。
需要注意的是,Linux 处理 ttyUSB 端口的方式与 Windows 不同。在 Linux 中,ttyUSB 端口通常按照连接顺序进行标记,这与 Windows 形成鲜明对比,在 Windows 中,每个 USB 设备始终接收特定且不变的 COM 端口号(例如,COM7 始终对应于相同的 USB 设备,无论重新连接或计算机重新启动如何) )。
我的主要目标是确保 Linux 中的 ttyUSB 端口编号即使在设备重新启动后也保持一致。然而,我的实验表明,Linux 不会根据 USB 连接以特定顺序分配 ttyUSB 端口。
例如,在检查 的输出时dmesg | grep tty
,您可以观察到 usb 1-2 对应于 ttyUSB0,而 usb 1-1 从 ttyUSB1 开始。值得一提的是,usb 1-1和usb 1-3代表具有多个串口的USB转串口适配器。
如果您对如何在 Linux 中实现一致的 ttyUSB 端口编号有任何见解或建议,我将非常感谢您的意见。
dmesg | grep tty
- [ 0.241124] printk: console [tty0] enabled
- [ 98.575723] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
- [ 107.645192] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0
- [ 107.647738] usb 1-1: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB1
- [ 107.703274] usb 1-4: FTDI USB Serial Device converter now attached to ttyUSB5
- [ 107.718566] usb 1-1: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB2
- [ 107.734340] usb 1-1: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB3
- [ 107.736637] usb 1-1: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB4
- [ 107.778240] usb 1-3: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB6
- [ 107.831044] usb 1-3: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB7
- [ 107.832354] usb 1-3: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB8
- [ 107.850976] usb 1-3: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB9
答案1
创建 udev 规则似乎是这样...但我还没有完全实现它,因为我无法指定具有序列号的 USB...
这是一个很好的教程。
https://www.youtube.com/watch?v=BOxWrMNXKpU
编辑:我已经设法从它们连接的端口识别它们。
KERNEL=="ttyUSB*", KERNELS=="1-4.1", MODE:="0666", SYMLINK+="aUSB1"