2

我有几个 USB 串行转换器 (Prolific) 连接到 USB 集线器。我找不到任何udev 信息可以让我根据它们所连接的物理端口来区分这些转换器。

我希望设备路径可以给我这些信息......

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

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

4

2 回答 2

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 是该集线器中使用的端口。

于 2011-10-10T12:42:33.393 回答
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,无论插入的顺序如何。

于 2012-02-21T02:32:20.803 回答