我希望显示的 4 个 UART 能够出现在除 之外的其他名称上,/ttyUSB0
因为我有很多设备最终出现在 上/ttyUSB*
。
0
我已经编写了一条规则,可以根据属性创建符号链接或新名称,但如果已插入另一台设备,则无法启动符号链接/名称,从而导致我的脚本无法运行
例如,FTDI Quad UART 芯片已插入
/dev/ttyUSB0
/dev/ttyUSB1
/dev/ttyUSB2
/dev/ttyUSB3
在插入另一台设备后
/dev/ttyUSB1
/dev/ttyUSB2
/dev/ttyUSB3
/dev/ttyUSB4
当规则应用时,它只模仿原始编号,而不是从头开始0
基本规则如下:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", SYMLINK:="ttyUART$number", GROUP:="users", MODE:="0666"
我尝试了几个不同的变量来命名,但都没有成功。我的目标是让 FTDI UARTS 显示为
/dev/ttyUSB0
/dev/ttyUSB1
/dev/ttyUSB2
/dev/ttyUSB3
无论 USB 设备的顺序如何
答案1
这是具有多个接口的单个 USB 设备:
您可以
ATTRS{bInterfaceNumber}
在规则中使用很多并创建 4 条规则(每个接口一条)因此您可以完全按照自己的意愿命名/编号
否则,使用接口号
%E{ID_USB_INTERFACE_NUM}
而不是内核号。SUBSYSTEM=="tty", ATTRS{idVendor}==0403"", ATTRS{idProduct}=="6011", SYMLINK:="ttyUART%E{ID_USB_INTERFACE_NUM}", GROUP:="users", MODE:="0666"
但是您无法完全控制编号(但它们是固定的)。
在您的情况下这应该不是问题,您只有串行端口。例如,在我的情况下,我有 3G 密钥,
12d1:1c1e Huawei Technologies Co., Ltd.
带有 2 个串行接口(00
,02
),它还有另一个接口(01
usb-storage,模拟 CD 驱动器包含 Windows 驱动程序)。所以我得到了这些:lrwxrwxrwx 1 root root 7 Jun 4 19:36 /dev/ttyUART00 -> ttyUSB0 lrwxrwxrwx 1 root root 7 Jun 4 19:36 /dev/ttyUART02 -> ttyUSB1 crw-rw-rw- 1 root users 188, 0 Jun 4 19:36 /dev/ttyUSB0 crw-rw-rw- 1 root users 188, 1 Jun 4 19:36 /dev/ttyUSB1