Значение пути USB-устройства Linux? (нужно различать преобразователи USB-Serial)

У меня есть несколько последовательных USB-конвертеров (Prolific), подключенных к USB-концентратору. Я не могу найти никакой информации о разработке, которая позволила бы мне различать эти преобразователи в зависимости от физического порта, к которому они подключены.

Я надеюсь, что путь к устройству может дать мне эту информацию...

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

... но мне не удалось найти никакой документации, объясняющей значение чисел (надеюсь, одно из них точно определяет физический порт). Может ли кто-нибудь объяснить эти цифры и сказать мне, позволяют ли они мне четко идентифицировать физический порт?


person Udo G    schedule 10.10.2011    source источник


Ответы (2)


Я не эксперт в этой области, но вот моя интерпретация этих цифр:

  • pci0000:00: Это ваш контроллер PCI.
  • 0000:00:0f.5: это идентификатор PCI вашего USB-контроллера.
  • 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 будет портом, используемым в этом концентраторе.

person rodrigo    schedule 10.10.2011
comment
Это опечатка в последнем предложении? Разве это не 1-3.1? - person Udo G; 10.10.2011
comment
Нет, это было мое предположение, если вы добавите концентратор USB посередине. 1-3.1 будет сам хаб, 1-3.1.1 устройство подключенное к первому слоту хаба, 1-3.1.2 ко второму и т.д. Но я не проверял, так что могу ошибаться. - person rodrigo; 10.10.2011

Этот сайт: 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, который непротиворечив, независимо от порядка подключения.

person Nato Saichek    schedule 21.02.2012