【问题标题】:Linux USB device path meaning? (need to distinguish USB-Serial converters)Linux USB设备路径是什么意思? (需要区分USB-Serial转换器)
【发布时间】:2011-10-10 09:29:31
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: linux serial-port usb udev


    【解决方案1】:

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

    • 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-3.1吗?
    • 不,这是我的假设,如果你在中间添加一个 USB 集线器。 1-3.1 将是集线器本身,1-3.1.1 连接到集线器的第一个插槽的设备,1-3.1.2 连接到第二个,等等。但我没有测试它,所以我可能错了。
    【解决方案2】:

    这个网站: http://hackaday.com/2009/09/18/how-to-write-udev-rules/ 引用命令: 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,无论插入的顺序如何。

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2013-10-07
      • 2016-09-21
      • 1970-01-01
      • 2017-02-21
      • 2016-01-13
      相关资源
      最近更新 更多