如何知道哪个设备连接在哪个 /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
:序列号。可能是您想要的。
idVendor
和 idProduct
:设备的 USB 标识符。
步骤 1 和 2 的简单替代方法是:
cd /sys/class/tty/
readlink ttyUSBn
会给你设备目录的完整路径。
作为脚注,请注意sysfs
的某些部分被认为是 API 稳定的,而某些部分则不是。如需更多信息,请参阅official sysfs rules。
【讨论】:
非常感谢...这真的很有帮助。 @Mayur- 不客气!如果您认为这回答了您的问题,请将其标记为正确并关闭。 完成了..!!使用 udev 库和您的答案实现了我的目标。@_@以上是关于如何知道哪个设备连接在哪个 /dev/ttyUSB 端口的主要内容,如果未能解决你的问题,请参考以下文章