Linux USB设备路径的含义? (需要区分USB串行转换器)

时间:2011-10-10 09:29:31

标签: linux serial-port usb udev

我有几个USB串行转换器(Prolific)连接到USB集线器。我找不到允许我区分这些转换器的任何udev information,具体取决于它们所连接的物理端口。

我希望设备路径可以为我提供这些信息......

/devices/pci0000:00/0000:00:0f.5/usb1/1-3/1-3.1/1-3.1:1.0/ttyUSB0

...但我找不到任何解释数字含义的文档(希望其中一个确切地标识物理端口)。有人可以解释这些数字并告诉我他们是否允许我清楚地识别物理端口?

2 个答案:

答案 0 :(得分:2)

我不是这个领域的专家,但这些是我对这些数字的解释:

  • pci0000:00:这是您的PCI控制器。
  • 0000:00:0f.5:这是USB控制器的PCI标识符。
  • usb1:USB控制器本身。
  • 1-3:USB集线器的标识符。它可能是一个内部集线器,也可能不存在。
  • 1-3.1:设备已连接到该集线器的第一个端口。
  • 1-3.1:1.0:配置#1,该设备中的接口#0。

所以,我的猜测是物理端口由1-3.1标识,即设备路径的最后一段冒号左边的字符串。

我没有中心,但我敢打赌,如果你通过集线器连接它,你会得到类似的东西:

/devices/pci0000:00/0000:00:0f.5/usb1/1-3/1-3.1/1-3.1.1/1-3.1.1:1.0/ttyUSB0

物理端口为1-3.1.1,最后一个将是该集线器中使用的端口。

答案 1 :(得分:1)

本网站: http://hackaday.com/2009/09/18/how-to-write-udev-rules/ 引用命令: udevadm info -a -p $(udevadm info -q path -n / dev / ttyUSB0) (好吧,它有点不同,但该命令有效)

告诉我们这样的信息:

KERNELS=="3-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"

我过去曾使用过这些信息来制定像这样的规则:

KERNELS=="3-1", SUBSYSTEMS=="usb", DRIVERS=="usb", SYMLINK+="USBPORT1"

因此,每次设备插入USB端口1时,它都会在/ dev文件夹中创建一个一致的simlink,无论插入的是什么顺序,它都是一致的。