Как определить производителя камеры или другого устройства в ноуте?

Очень часто необходимо поставить драйверы к таким устройствам, как web-камера, карт-ридер, тач-пад, стек Bluetooth и др. В одной и той же модели ноутбука в зависимости от модификации или партии, поставок могут быть различные комплектующие. Скажем, ноутбук ASUS F5N мож комплектоваться видео камерами Azurewave, Suyin, LiteOn, Chicony, Bison, D-Max, Feiya (MVI SV).

То же самое касается и других устройств, таких как карт-ридеры. Самые популярные карт-ридеры — Ricoh.

При этом, вместе с ноутбуком или на сайте производителя могут одновременно присутствовать драйверы ко всем возможным моделям интегрируемых устройств. Когда драйверы еще не установлены, непонятно, какая модель используется в каждом конкретном ноутбуке.

Что делать в этом случае?

Во-первых, можно скачать все драйверы и ставить их по очереди перебором. Подходящий встанет корректно.

Второй вариант более корректный и быстрый.

Дело в том, что каждому устройству, производимому в мире, присваивается уникальный аппаратный идентификатор. Вернее 2 идентификатора (id) — vendor id (vid) и hardware id (device id). Первый соответствует номеру производителя железа, а второй — конкретному продукту этого производителя.

Физически этот шестнадцатиричный код зашит в регистры устройства. Шестнадцатиразрядный регистр Vendor ID выдаётся организацией PCI SIG. Шестнадцатиразрядный регистр Device ID назначается изготовителем устройства.

Полный список всех Vendor ID можо посмотреть здесь.

Автоматическая инициализация железа с помощью конфигурационного пространства

Для того, чтобы обращаться к устройству через адресное пространство памяти или ввода-вывода, системное программное обеспечение или ОС программирует базовые адресные регистры (Base Address Registers, также называемые BAR'ами), посылая конфигурационные команды контроллеру. В начале загрузки системы все устройства находятся в неактивном состоянии, им не назначены адреса, по которым драйвера устройств могут взаимодействовать с ними. Либо BIOS, либо сама операционная система, обращается к устройства при помощи адресации через чипсет или PCI-контроллер и настраивает BAR'ы в конфигурационном адресном пространстве. Значения BAR'ов действительны всё время, пока система включена. При отключении питания значения этих регистров теряются до следующей загрузки, в процессе которой процедура настройки повторяется.

Адресное пространство устройства как раз соответствуют первым адресным регистрам каждого устройства. Первые 2 байта такого адресного пространства как раз занимает Vendor ID, а в последующих двух прописан Device ID. То есть, если драйверы не установлены, операционная система не может корректно работать с устройством, но все равно может определить ID любого устройства, просто прочитав содержимое первых базовых адресных регистров.

Драйверы же, устанавливаются корректно только тогда, когда прописанный в них VID и DID соответствуют ID устройства. Обычно, эта информация прописана в ini-файлах типа setup.ini.

Содержимое такого файла выглядит примерно так:

HardwareID=USB\Vid_174F&Pid_A821
DriverName=USB2.0 VGA/1.3M/2M WebCam
HardwareID2=USB\Vid_174F&Pid_AA11
HardwareID3=USB\Vid_174F&Pid_A351
HardwareID4=USB\Vid_174F&Pid_A311
HardwareID5=USB\Vid_05E1&Pid_0501
HardwareID6=USB\Vid_174F&Pid_6A31
HardwareID7=USB\Vid_174F&Pid_6A33
HardwareID8=USB\Vid_174F&Pid_6A51

Как только драйвер будет установлен, в Диспетчере устройств будет прописано устройство с именем USB2.0 VGA/1.3M/2M WebCam.

Установка камеры по Vendor ID

Применительно к видео камерам ноутбуков это будет выглядеть следующим образом:

Войдите в Диспетчер устройств


Выберите устройство, для которого не установлены драйверы, для камеры «USB 2.0... WebCam» и войдите в Свойства.
hspace=0

Перейдите на закладку «Сведения» и выберите из Списка «Коды (ID) оборудования»
hspace=0
Проверьте Vendor ID (Vid_) и найдите драйвер нужного производителя:

Затем убедитесь, что данный драйвер поддерживает данное устройство по PID и скачать его.

[Посещений: 2 581, из них сегодня: 1]

Понравилась публикация? Почему нет? Оставь коммент ниже или подпишись на feed и получай список новых статей автоматически через feeder.