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

发布于 2024-12-08 21:25:07 字数 349 浏览 0 评论 0原文

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

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

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

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

I have several USB-serial converters (Prolific) attached to a USB hub. I can't find any udev information that allows me to distinguish these converters depending on the physical port they are connected to.

I hope the device path can give me that information...

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

...but I could not find any documentation that explains the meaning of the numbers (hopefully one of them exactly identifies the physical port). Can somebody explain these numbers and tell me if they allow me to clearly identify the physical port?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅语花开 2024-12-15 21:25:07

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

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

I'm no expert in this field, but these are my interpretation of those numbers:

  • pci0000:00: This is your PCI controller.
  • 0000:00:0f.5: This is the PCI identifier of your USB controller.
  • usb1: The usb controller itself.
  • 1-3: The identifier of the USB hub. It may be an internal hub, or it may be absent.
  • 1-3.1: Device connected to the first port of that hub.
  • 1-3.1:1.0: Configuration #1, Interface #0 in that device.

So, my guess is that the physical port is identified by 1-3.1, that is the string to the left of the colon in the last piece of the device path.

I don't have a hub around but I'd bet that if you connect it via a hub you'll get something like:

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

The physical port would be 1-3.1.1, and that last 1 would be the port used in that hub.

皓月长歌 2024-12-15 21:25:07

这个网站:
http://hackaday.com/2009/09/18/如何编写 udev 规则/
引用命令:
udevadm 信息 -a -p $(udevadm 信息 -q 路径 -n /dev/ttyUSB0)
(好吧,有点不同,但该命令有效)

它告诉我们这样的信息:

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

我过去使用这些信息来组合这样的规则:

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

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

This site:
http://hackaday.com/2009/09/18/how-to-write-udev-rules/
references the command:
udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)
(okay, it's a little different, but that command works)

which tells us information like this:

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

I've used this information in the past to put together a rule like this one:

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

So every time a device gets plugged into usb port 1, it creates a simlink in the /dev folder that is consistent regardless of what order things are plugged in.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文