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

我使用两个wavecom调制解调器,每个调制解调器有16个端口。 当我连接调制解调器与我的机器,我能够得到所有/ dev / ttyUSB端口名称的列表,但我也想知道哪个调制解调器包含端口0到16,哪一个是包含17到32?

这个调制解调器将连接和删除多个时间在一天,所以我也想继续观看,当调制解调器断开连接,再次连接?

任何想法如何使用C / C ++ / PHP脚本/ node.js?

您可以从sys文件系统获取这些信息。 从shell中检查很容易,然后执行一个相同的程序:

  1. cd /sys/devices
  2. 找到第一个端口的目录: find -name "ttyUSB0" 。 它可能会找到像./pci0000:00/0000:00:1d.0/usb2/2-2/2-2.1/2-2.1:1.0/...
  3. pci*部分是USB控制器。 有趣的是2-2.1是USB设备。 在那个目录中有很多文件可以识别你的设备:

    • serial :序列号。 可能是你想要的。
    • idProductidProductidVendor的USB标识符。

步骤1和步骤2的一个简单方法是:

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

作为脚注,请注意, sysfs某些部分被认为是API稳定的,有些部分不是。 有关更多信息,请参阅官方的sysfs规则 。