Где хранится информация, хранящаяся в ядре USB относительно драйвера класса и HCD, для проверки?

Очевидно, вопрос: есть ли в ядре USB массив или что-то (может быть, связанный список), где хранится вся информация о драйверах класса и информация о HCD (имя или какой-то номер), чтобы он проверял и назначал требуется, когда устройство подключено?

0
задан 19.05.2020, 16:01

2 ответа

В ядре Linux разбужен загрузчик модуля, когда новое устройство обнаруживается. Это передало" modalias" строка, которая определяет устройство и выглядит примерно так для USB-устройств:

usb:v058Fp6387d0103dc00dsc00dp00ic08isc06ip50in00

можно найти устройство modalias (и драйвер HCD) использование следующей команды:

udevadm info --export-db

Это - раздел, связанный с моей Картой памяти:

P: /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0
E: DEVTYPE=usb_interface
E: DRIVER=usb-storage
E: ID_MODEL_FROM_DATABASE=Flash Drive
E: ID_VENDOR_FROM_DATABASE=Alcor Micro Corp.
E: INTERFACE=8/6/80
E: MODALIAS=usb:v058Fp6387d0103dc00dsc00dp00ic08isc06ip50in00
E: PRODUCT=58f/6387/103
E: SUBSYSTEM=usb
E: TYPE=0/0/0
E: USEC_INITIALIZED=530904794

Эта строка содержит класс устройства (usb) и определенная для класса информация (поставщик/продукт/порядковый номер, класс устройства, и т.д.). Каждый драйвер ядра содержит строку, такую как:

MODULE_ALIAS("usb:...")

, Который должен соответствовать usbalias (подстановочные знаки используются для соответствия нескольким устройствам). Если modalias соответствует тому, который поддерживает драйвер, этот драйвер загружается (или уведомляется относительно нового устройства, если это уже там).

Вы видите поддерживаемые устройства (modalias) и их связанные модули с [1 112]

more /lib/modules/`uname -r`/modules.alias

, Если Вы grep для драйвера устройства хранения USB, Вы будете видеть, что это имеет некоторые определенные устройства, которые это поддерживает поставщиком и идентификатором устройства, и также попытается поддерживать любое устройство с правом (устройство хранения данных) класс, неважно, поставщик/устройство.

USB modalias может декодироваться как это:

usb:
v   vendor_id (4 hex)
p   product_id (4 hex)
d   revision (4 hex)
dc  class (2 hex)
dsc subclass (2 hex)
dp  protocol (2 hex)
ic  interface_class (2 hex)
isc interface_subclass (2 hex)
ip  interface_protocol (2 hex)

Источник

1
ответ дан 19.05.2020, 16:03

файлы lsusb

   /var/lib/usbutils/usb.ids
          A  list  of  all  known  USB  ID’s  (vendors, products, classes,
          subclasses and protocols).

, Что файл только присутствует, если существуют USB-устройства.

0
ответ дан 19.05.2020, 16:02
  • 1
    Я вмятина имею в виду это. Я имел в виду информацию относительно драйверов Класса и HCDs, какие базовые доступы, когда устройство включается. Кто-то сказал, что должен быть некоторый список массива или связанный список или что-то. – John Mee 19.05.2020, 16:02

Теги

Похожие вопросы