我在 Linux 系统上使用两个相同的 USB 转串行适配器。因此,取决于谁先插入,其中一个将以名称 /dev/ttyUSB0 表示,另一个将以名称 /dev/ttyUSB1 表示。有什么技巧可以让名称持久吗?我有三个 USB 端口。是否可以将名称链接到物理端口?
谢谢,
答案1
如果您运行,udevadm monitor --properties
您应该会看到可用于创建规则的各种属性。该ID_PATH
属性表示设备插入的端口。插入串行到 USB 设备以查看 udev 看到的内容。
因此,创建一个 udev 规则应该很简单,当设备插入时创建一个符号链接,例如:
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="xxxx", SYSFS{idProduct}=="xxxx", ENV{ID_PATH}=="pci....usb-0:1:0",SYMLINK+="ttyUSBport0"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="xxxx", SYSFS{idProduct}=="xxxx", ENV{ID_PATH}=="pci....usb-0:1:1",SYMLINK+="ttyUSBport1"
这是根据内存完成的,因此您需要确认语法。将 idvendor 和 idproduct 更改为 USB VID 和 PID,并将 ID_PATH 更改为您在 中找到的任何内容udevadm monitor
。
这应该会将正常的 /dev/ttyUSB0 设备保留在那里,但也会根据它插入的端口创建指向它的符号链接。如果您在 minicom 或您正在使用的任何设备中使用符号链接,您将始终根据您插入的端口获得正确的适配器。