Debian - 如何识别具有类似 /dev/tty* 文件的 USB 设备

Debian - 如何识别具有类似 /dev/tty* 文件的 USB 设备

在我的嵌入式机器上,两个 USB 设备安装在类似的 /dev 文件上:/dev/ttyACMx。设备为POS设备;另一台是打印机。

我不知道哪个设备是 ttyACM0 或 ttyACM1:我的猜测是我无法假设特定的顺序。

那么,一旦检测到 ttyACM0 和 ttyACM1 的存在,我如何知道哪个 USB 设备与 tty* 文件绑定?

我检查过LSSBUSB 设备但我无法连接信息。

谢谢

答案1

作为 root, 的输出udevadm info -q all -a -n /dev/ttyACM0将输出可用于识别/dev/ttyACM0设备的所有属性。还可以尝试忽略-a查看现有 udev 规则可能生成的环境变量的选项,以防这些规则对设备进行某种主动探测。

/dev/ttyACM0如果和的输出存在差异/dev/ttyACM1,那么该差异可能可以用来识别哪个是哪个。

请注意,这/dev/ttyACM*可能表明这些设备最初是 RS-232 串行设备,只是添加了通用 USB 转串行转换器芯片以使它们与 USB 兼容。如果是这样,可用信息量取决于转换器芯片如何配置以将设备呈现给 USB 总线。在最好的情况下,可能有一个属性来标识每个设备的类型,并且可能已经有一个自动生成的别名/dev/serial/by-id/*

最坏的情况是,转换器芯片上可能没有任何唯一的内容(甚至没有序列号),并且您可能必须实现某种 udev 规则来进行主动探测,通过向设备发送一些识别请求并检查结果答案,或者为每种类型的设备指定一个特定的 USB 端口,并通过 USB 端口的 sysfs 路径来识别它们。在这种情况下,请检查/dev/serial/by-path/*:可能已经有一个您可以使用的自动生成的设备别名。

一旦找到可用于区分设备的属性或探测结果,您就可以设置 udev 规则,为相应/dev/ttyACM*设备分配特定于类型的别名,例如/dev/POSPOS 设备和/dev/receipt/或适当的设备对于打印机。这些将是指向实际设备名称的符号链接,但您的应用程序将能够像真实设备一样使用它们。

相关内容