我正在尝试通过编写/ 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 ......事实是这对我来说没用,因为它有时会起作用,有时却不起作用。我能做些什么吗?
非常感谢!!
答案 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 /中的名称 直到现在它已经工作正常,如果它停止这样做我会发布它