打开多个连接的 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 它
我正在尝试向 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 它