Linux путь устройства USB означает?(нужно различать USB-последовательные преобразователи) - PullRequest
2 голосов
/ 10 октября 2011

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 10 октября 2011

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

  • 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 будет портом, используемым в этом концентраторе.

1 голос
/ 21 февраля 2012

Этот сайт: http://hackaday.com/2009/09/18/how-to-write-udev-rules/ ссылается на команду: udevadm info -a -p $ (udevadm info -q путь -n / dev / ttyUSB0) (хорошо, это немного по-другому, но эта команда работает)

, которая сообщает нам такую ​​информацию:

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

В прошлом я использовал эту информацию для составления правила, подобного этому:

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

Таким образом, каждый раз, когда устройство подключается к USB-порту 1, оно создает simlink-ссылку в папке / dev, которая не зависит от порядка подключения.

...