首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debian -如何识别具有类似/dev/tty*文件的USB设备

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

Unix & Linux用户
提问于 2021-04-29 07:16:48
回答 1查看 2.1K关注 0票数 0

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

我不知道哪个设备将是ttyACM0还是ttyACM1:我的猜测是,我无法假设一个特定的订单。

因此,一旦检测到ttyACM0和ttyACM1的存在,我如何才能知道哪个USB设备被绑定到tty*文件?

我查过了lsusb和usb设备,但是我无法连接这些信息。

谢谢

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-04-29 08:33:18

作为根用户,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/POS用于POS设备,/dev/receipt或适合打印机的东西。这些将是指向实际设备名称的符号链接,但是您的应用程序将能够像使用真正的设备一样使用它们。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/647235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档