更改Linux中USB虚拟串行端口的默认名称

更改Linux中USB虚拟串行端口的默认名称,linux,usb,driver,device,Linux,Usb,Driver,Device,我正在使用C开发一个嵌入式解决方案,我正在使用两个USB传感器。如果我单独连接每个传感器,它们的名称如下: 设备1(我不知道为什么它需要6个名称…) /dev/ttyACM0 /dev/ttyACM1 /dev/ttyACM2 /dev/ttyACM3 /dev/ttyACM4 /dev/ttyACM5 /dev/ttyACM6 设备2 /dev/ttyACM0 因此,当我开始作为一个嵌入式系统,并且两个传感器都连接时,最快的一个需要/dev/ACM0,但它并不总是相同的。所以,当我尝试

我正在使用C开发一个嵌入式解决方案,我正在使用两个USB传感器。如果我单独连接每个传感器,它们的名称如下:

设备1(我不知道为什么它需要6个名称…)

  • /dev/ttyACM0
  • /dev/ttyACM1
  • /dev/ttyACM2
  • /dev/ttyACM3
  • /dev/ttyACM4
  • /dev/ttyACM5
  • /dev/ttyACM6
设备2

  • /dev/ttyACM0
因此,当我开始作为一个嵌入式系统,并且两个传感器都连接时,最快的一个需要/dev/ACM0,但它并不总是相同的。所以,当我尝试读取设备2时,我可能正在读取设备1


我认为更改传感器的默认名称会很好。我想这是可能的,但我没有找到任何东西。

您应该尝试使用
/dev/serial/by id
中的名称,因为这些名称包括设备的名称,不应取决于连接顺序


顺便说一句,还可以编写udev规则,根据串口所属的设备为串口创建符号链接。我不确定这对于一个具有6个串行端口的复合设备是如何工作的,但可能有一种方法可以使它工作。

Stack Overflow是一个解决编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。还可以看到,对于稳定的名称,您可能希望使用
biosdevname=1
启动。它可能有效,也可能无效。讨论最好在Stack Exchange网络中的其他站点上进行,例如。我想你的意思是
/dev/ttyACM0
,而不是
/dev/ACM0
,等等。是的,它是/dev/ttyACMX