如何知道哪个设备连接在哪个 /dev/ttyUSB 端口

Posted

技术标签:

【中文标题】如何知道哪个设备连接在哪个 /dev/ttyUSB 端口【英文标题】:How to know which device is connected in which /dev/ttyUSB port 【发布时间】:2012-12-04 13:16:00 【问题描述】:

我正在使用两个 Wavecom 16 端口调制解调器。当我将调制解调器连接到我的系统时,我能够列出所有/dev/ttyUSB 端口名称,但我还想知道,哪个调制解调器包含端口 0 到 16,哪个调制解调器包含端口 17 到 32?

调制解调器可能在一天内多次连接和移除,所以我还想在调制解调器断开连接并再次连接时保留日志。

知道如何使用 c/c++/php script/node.js 做到这一点吗?

【问题讨论】:

设置udev 规则以一劳永逸地分配持久的tty 端口名称要容易得多,而不必每次都查找它们 【参考方案1】:

您可以从sys 文件系统获取此信息。从 shell 中检查很容易,然后执行一个程序来做同样的事情:

    cd /sys/devices 找到第一个端口的目录:find -name "ttyUSB0"。它可能会在./pci0000:00/0000:00:1d.0/usb2/2-2/2-2.1/2-2.1:1.0/... 之类的地方找到它们

    pci* 部分是 USB 控制器。有趣的是2-2.1,它是USB 设备。在该目录中有很多文件可以识别您的设备:

    serial:序列号。可能是您想要的。 idVendoridProduct:设备的 USB 标识符。

步骤 1 和 2 的简单替代方法是:

    cd /sys/class/tty/ readlink ttyUSBn 会给你设备目录的完整路径。

作为脚注,请注意sysfs 的某些部分被认为是 API 稳定的,而某些部分则不是。如需更多信息,请参阅official sysfs rules。

【讨论】:

非常感谢...这真的很有帮助。 @Mayur- 不客气!如果您认为这回答了您的问题,请将其标记为正确并关闭。 完成了..!!使用 udev 库和您的答案实现了我的目标。@_@

以上是关于如何知道哪个设备连接在哪个 /dev/ttyUSB 端口的主要内容,如果未能解决你的问题,请参考以下文章

用于检查连接的串行端口的Bash脚本

当它出现时打开 /dev/ttyUSB*

ubuntu 下如何获取USB接口相机的uri路径

如何在 ios 中知道设备与哪个网络主机连接

怎么在linux ubuntu minicom 建立、/dev/ttyUSB0

使用C ++动态分配/ dev / ttyUSB *