自定义规则强制 FDTI Quad UART FT232r 在特定名称上输出

自定义规则强制 FDTI Quad UART FT232r 在特定名称上输出

我希望显示的 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 个串行接口(0002),它还有另一个接口(01usb-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
    

相关内容