Как установить LibUSB на 64-разрядных Windows 7 и Windows Vista Печать
Добавил(а) microsin   

Библиотека LibUSB [1] очень важна для использования со многими бесплатными программами. Например, для программ, которые переводят iPhone в режим восстановления (recovery mode), или выводят его из режима восстановления одним кликом (см. программы Recboot и EasyiRecovery). Многие примеры программ (ПО хоста USB), которые работают с самодельными устройствами USB (изготовленными на микроконтроллерах Atmel AVR на основе библиотек V-USB или LUFA), также написаны с использованием LibUSB. Можно еще привести пример популярной системы отладки OpenOCD для микроконтроллеров ARM, она также требует использования библиотеки LibUSB вместе с многими JTAG-адаптерами.

Установка LibUSB на 32-разрядных системах Windows проста, но многие пользователи 64-битных версий Windows сталкиваются с проблемами при установке LibUSB. В этой статье будет рассмотрена установка LibUSB на 64-битных редакциях Windows 7 и Windows Vista (перевод статьи [2]). Принципиальных отличий в установке LibUSB под операционной системой Windows 8 нет.

Важное замечание: не выполняйте шаги из этого руководства, если пытаетесь выбить Ваше iDevice из цикла recovery mode, и Вы хотите использовать Recboot или EasyiRecovery. По некоторым причинам LibUSB запретит Вашу клавиатуру и мышь при следующей загрузке, и чтобы это исправить, понадобится деинсталлировать LibUSB через загрузку в безопасный режим safe mode (либо придется воспользоваться откатом состояния системы). Поскольку программа TinyUmbrella не требует установки LibUSB, именно её рекомендуется использовать для манипуляций с рутингом Ваших устройств.

[Установка драйвера фильтра LibUSB на 64-битных Windows 7 и Windows Vista по шагам]

Установка библиотеки LibUSB для получения доступа для программ ПО хоста (программ, которые написаны в расчете на использование LibUSB) к устройствам USB на Windows обычно заключается в установке так называемого драйвера фильтра. Драйвер фильтра можно установить с помощью удобного GUI-инсталлятора (так называемого Мастера Установки Фильтра, Filter Wizard), и это самый лучший способ установки. Он просто пытается подключить драйвер фильтра к обнаруженному в системе устройству USB, которое выберет пользователь. Однако для установки драйвера класса все еще нужно использовать утилиту командной строки install-filter.exe (но это не рекомендуется делать).

Важно: перед началом установки войдите в систему под пользователем, у кого есть права администратора.

1. Скачайте дистрибутив библиотеки LibUSB, см. [1]. Пожалуйста, при загрузке выбирайте самый последний релиз дистрибутива библиотеки. Версии до 0.1.12.2 имели серьезные ошибки в реализации драйверов фильтра при работе под Windows Vista, Windows 7, и некоторыми инсталляциями Windows XP, так что используйте последние версии (1.1.14.0 и более новые). Для 64-битных Windows Vista/7/2008/2008R2 версия должна быть 1.2.0.0 или более свежая.

Загруженный файл будет называться наподобие libusb-win32-devel-filter-x.x.x.x.zip или libusb-win32-bin-x.x.x.x.zip. Не обращайте внимания, что в имени архива присутствует win32, в нем есть средства для установки драйвера и на 64-битной системе. Распакуйте его в любое место на диске (например, во временную папку C:\TEMP).

2. Подключите устройство USB, для которого Вы собираетесь установить драйвер фильтра, к компьютеру. Операционная система Windows должна его обнаружить. Чтобы убедиться в этом, откройте Диспетчер Устройств. Если устройство обнаружено, но для него система не смогла найти драйвер, то см. другой раздел "Использование INFWizard - генерация драйвера для неизвестного устройства USB".

Закройте все программы, которые могли бы использовать Ваше устройство USB.

3. Если у Вас процессор AMD, то запустите bin\amd64\install-filter-win.exe, если Intel, то запустите bin\ia64\install-filter-win.exe (для 32-разрядной системы запустите bin\x86\install-filter-win.exe). Тип процессора можно узнать через Свойства системы (Панель управления -> Система).

Windows-System-Properties

Появится стартовое окно мастера установки фильтра:

libusb-Filter-Wizard-dialog01

Удостоверьтесь, что выбран вариант для установки драйвера фильтра (Install a device filter), и нажмите Next.

4. Появится список устройств, которые система Windows распознала, и для которых установлены уже драйвера, но к которым пока не привязан драйвер фильтра библиотеки LibUSB:

libusb-Filter-Wizard-dialog02

Выберите в списке нужное устройство (к которому Вы хотите привязать драйвер фильтра), и нажмите Install. Через несколько секунд появится сообщение, что драйвер фильтра успешно установлен для выбранного устройства.

libusb-Filter-Wizard-dialog03

Нажмите OK, и закройте программу Filter Wizard. Установка драйвера фильтра успешно завершена.

[Использование INFWizard - генерация драйвера для неизвестного устройства USB]

Утилита для генерации драйвера INFWizard может понадобиться для того случая, когда операционная система не может сама подобрать драйвер для устройства. В Диспетчере Устройств такое устройство USB отображается как проблемное, для которого не установлен драйвер.

Windows-Device-Manager-divice-without-driver

В этом случае можно сгенерировать новый драйвер с помощью утилиты bin/inf-wizard.exe. Далее описан процесс создания такого дистрибутива драйвера по шагам. Этот драйвер полностью заменит и драйвер устройства, и драйвер фильтра.

1. Запустите утилиту bin/inf-wizard.exe, откроется стартовое окно, где нужно сразу просто нажать Next.

libusb-Inf-Wizard-dialog01

2. В следующем окне нужно выбрать устройство USB, для которого будет генерироваться драйвер, и нажать Next.

libusb-Inf-Wizard-dialog02

3. Откроется окно, где можно отредактировать значения для VID (Vendor ID, идентификатор вендора в HEX-виде), PID (Product ID, идентификатор продукта в HEX-виде), индекс производителя MI (в HEX-виде), имя производителя, имя устройства.

libusb-Inf-Wizard-dialog03

Все параметры можно оставить как есть, ничего не изменяя, и просто нажать Next.

4. Откроется диалог для сохранения inf-файла, выберите имя файла (можно оставить его по умолчанию), выберите любую пустую папку для сохранения и нажмите Сохранить. В результате в выбранной папке появится inf-файл, инсталляторы installer_x64.exe, installer_x86.exe, и будут автоматически созданы подпапки amd64, ia64, x86, в которых содержатся системные файлы библиотеки LibUSB. Откроется окно диалога, в котором будут 2 кнопки: Install Now... (установить драйвер прямо сейчас) и Done (завершить).

libusb-Inf-Wizard-dialog04

Можно нажать Install Now... и установить вновь сгенерированный драйвер, а можно установку отложить, нажав Done.

5. Предположим, что Вы ранее нажали Done. Теперь собственно нужно установить только что сгенерированный драйвер. Для этого запустите Мастер Установки нового оборудования. Это можно сделать, если набрать в командной строке hdwwiz и нажать Enter. Или можно в Диспетчере Устройств выбрать в меню Действие -> Установить старое устройство. Откроется начальное окно мастера установки оборудования, нажмите кнопку Далее.

Windows-Device-Wizard-dialog01

6. В следующем окне выберите "Установка оборудования, выбранного из списка вручную" и нажмите Далее.

Windows-Device-Wizard-dialog02

7. В следующем окне выберите "Показать все устройства" и нажмите Далее.

Windows-Device-Wizard-dialog03

8. Появится окно выбора драйвера для устройства. Нажмите кнопку "Установить с диска..."

Windows-Device-Wizard-dialog04

Откроется окно, в котором нужно выбрать место расположения драйвера. Выберите папку, в которую Вы сохранили драйвер на шаге 4, выберите inf-файл, и нажмите Открыть:

Windows-Device-Wizard-dialog05

Затем нажмите OK:

Windows-Device-Wizard-dialog06

9. Отобразится окно с описанием драйвера, и предупреждение, что драйвер без цифровой подписи. Просто нажмите Далее.

Windows-Device-Wizard-dialog07

10. Появится окно, которое сообщает о готовности к установке драйвера. Просто нажмите Далее.

Windows-Device-Wizard-dialog08

11. Появится окно "Безопасность Windows", где еще раз сообщается о том, что у драйвера нет сертификата. Это окно позволяет отказаться от установки драйвера, или установить драйвер. Выберите второй вариант, "Все равно установить этот драйвер".

Windows-Device-Wizard-dialog09

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

Windows-Device-Wizard-dialog10 Windows-Device-Wizard-dialog11

Установка драйвера завершена.

[Удаление драйвера фильтра LibUSB]

Удаление драйвера фильтра LibUSB может понадобиться, если нужно восстановить доступ к устройству USB для обычных программ, которые не используют библиотеку LibUSB. Например, мне понадобилось удалить драйвер LibUSB для адаптера J-Link после экспериментов с OpenOCD, когда мне нужно было продолжить отладку через драйвера SEGGER в среде IAR.

1. Запустите мастер установки драйвера фильтра Filter Wizard - в зависимости от типа процессора это либо bin\amd64\install-filter-win.exe, либо bin\ia64\install-filter-win.exe, либо для 32-разрядной системы bin\x86\install-filter-win.exe. В первом окне мастера выберите вариант удаления драйвера фильтра (Remove a device filter), нажмите Next.

libusb-Filter-Wizard-dialog04

2. Выберите в списке устройство, для которого нужно удалить драйвер фильтра, и нажмите Remove.

libusb-Filter-Wizard-dialog05

3. Через несколько секунд появится сообщение об успешном удалении драйвера фильтра:

libusb-Filter-Wizard-dialog06

Нажмите OK, и закройте программу Filter Wizard. Удаление драйвера фильтра для устройства USB завершено.

[Удаление драйвера устройства LibUSB]

Чтобы удалить драйвер фильтра, воспользуйтесь GUI-утилитой (install-filter-win.exe), см. предыдущий раздел "Удаление драйвера фильтра LibUSB". Сам драйвер и его файлы удалить не так просто, но можно сделать либо откат состояния системы (Панель управления -> Восстановление), либо попробовать утилиту usbdeview [3]. В операционных системах Windows Vista и Windows 7 можно использовать системную утилиту командной строки pnputil для удаления пакета драйвера.

[Обновление драйвера фильтра LibUSB]

Сначала удалите старую версию драйвера фильтра, см. раздел "Удаление драйвера фильтра LibUSB". Затем установите новую версию драйвера фильтра, как это описано в разделе "Установка драйвера фильтра LibUSB на 64-битных Windows 7 и Windows Vista по шагам".

[Обновление драйвера устройства LibUSB]

• Загрузите последнюю версию пакета драйвера (libusb-win32-bin-x.x.x.x.zip).
• Сгенерируйте новый inf-файл и драйвер, как было показано в разделе "Использование INFWizard - генерация драйвера для неизвестного устройства USB".
• Откройте Диспетчер Устройств, и выберите устройство, для которого хотите обновить драйвер.
• Щелкните правой кнопкой на выбранное устройство, в контекстном меню выберите Свойства -> Драйвер -> Обновить. Запретите автоматическую установку драйвера, и выберите inf-файл вручную.
• Начиная с версии 1.2.1.0 GUI-утилита inf-wizard.exe может использоваться для автоматической установки/обновления драйвера устройства. См. раздел "Использование INFWizard - генерация драйвера для неизвестного устройства USB", шаг 4, кнопка Install Now... (установить драйвер прямо сейчас).

[Ссылки]

1. libusb-win32 site:libusb.org.
2. How to Install LibUSB on Windows 7 & Vista 64-bit site:jaxov.com.
3. USBDeview site:nirsoft.net.
4. PnPUtil site:msdn.microsoft.com.
5. Как самостоятельно подписать драйвер для Windows 7 site:winitpro.ru.
6. Как отключить проверку цифровой подписи драйвера в Windows 7 site:winitpro.ru.