如何使用 rules.d 分配串行端口名称?

如何使用 rules.d 分配串行端口名称?

系统是 Ubuntu 16.04,带有两个通过 USB 电缆连接的 Arduino 设备。连接后,它们在/dev目录中显示为ttyACM0ttyACM1。是否可以分配一个具有略微不同的标识符的不同名称,例如ttyACM5

我运行了该udevadm info --name=/dev/ttyACM0 --attribute-walk命令,根据属性,它们是可区分的(具有不同的序列号)。我尝试将以/etc/udev/rules.d下行放入一个文件:

ACTION=="add", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0043", ATTRS{serial}=="55839313738351017091", KERNEL="ttyUSB5", MODE="666"ACTION=="add", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0043", ATTRS{serial}=="55839313738351017071", KERNEL="ttyUSB5", MODE="666"

但那没有成功,因为设备再次出现为 ttyAMC0 和 ttyAMC1。是否可以为串行端口分配一个略有不同的数字名称?只是一点背景知识;我需要确保名称不会在 ttyACM0 和 ttyACM1 之间翻转,因为我有一个程序使用它们的路径(例如:/dev/ttyACM0)与这些设备建立通信,并且我需要名称在 PC 电源循环后保持稳定,并且在使用 USB 集线器时也是如此。如果无法分配名称,还有其他选项可以实现预期目标吗?

提前致谢!

答案1

@steeldriver 和 @Jean-Marie 提供的答案都很准确,而且确实SYMLINK="ttyUSB5"有效。本质上,它创建了一个链接,指向系统为端口创建的名称。谢谢!

相关内容