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

时间:2017-05-23 08:11:53

标签: linux usb device-driver persistent udev

我正在尝试通过编写/ dev / multitech而不是/ devttyACMx为USB设备连接添加持久名称以便能够连接到它。通过添加udev规则,我已经能够通过其他设备完成此操作,例如:

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

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

$ ls -l /dev/multitech

你可能得到它打开的任何连接,也许是ttyACM0或者ttyACM3 ......事实是这对我来说没用,因为它有时会起作用,有时却不起作用。我能做些什么吗?

非常感谢!!

2 个答案:

答案 0 :(得分:0)

通常,设备建立的每个连接都有自己的接口或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

答案 1 :(得分:0)

Change default names for USB virtual serial ports in Linux

这篇文章解决了我的麻烦,而不是使用/ devttyACMx y更改为使用/ dev / serial / by-id /中的名称 直到现在它已经工作正常,如果它停止这样做我会发布它