打开多个连接的 usb 设备中的持久名称 ||将 USB 连接到特定端口

Persistant name in usb device which open several connections || connect USB to specific port

我正在尝试向 USB 设备连接添加一个永久名称,以便能够通过写入 /dev/multitech 而不是 /devttyACMx 来连接到它。我已经能够通过添加 udev 规则对其他设备执行此操作,例如:

SUBSYSTEM=="tty", ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021",ATTRS{serial}=="356136967675473", SYMLINK+="multitech"

问题是这个设备打开了 6 个连接,从 ttyACM0 到 ttyACM5(如果没有其他连接)但是要使用它你必须使用 ttyACM0(意思是第一个连接)但是如果你写:

$ ls -l /dev/multitech

你可能会得到它打开的任何连接,可能是 ttyACM0 或 ttyACM3...问题是这对我来说没用,因为它有时有效,有时无效。我能做些什么吗?

非常感谢!!

通常设备建立的每个连接都有自己的接口或 USB 树结构中的备用设置。在 udev 规则中,你可以使用其他几个属性(所有你可以使用 udevadm info --attribute-walk http://www.beyondlogic.org/usbnutshell/usb5.shtml#InterfaceDescriptors 显示)

运行 使用 udevadm info --attribute-walk + /sys/class/.../dev/... 路径的属性遍历您的设备以查看它在其 usb 结构中具有的几个 usb 接口的标识符并尝试将它们包含在 udev 规则中,即使用以下属性:

ATTRS{bAlternateSetting}=="..."
ATTRS{bInterfaceClass}=="..."
ATTRS{bInterfaceNumber}=="..."
ATTRS{bInterfaceProtocol}=="..."
ATTRS{bInterfaceSubClass}=="..."

尝试为设备在其 usb 结构中的任何接口分配一个特定的 /dev/ttyACMx,并尝试将 usb 结构中的顶级接口分配给 /dev/ttyACM0 ...

http://weininger.net/how-to-write-udev-rules-for-usb-devices.html

这个 post 是解决我的问题的方法,而不是使用 /devttyACMx y 更改为使用 /dev/serial/by-id/ 中的名称 到目前为止它一直运行良好,如果它停止运行我会 post 它