Как установить libusb на windows 10

A cross-platform library to access USB devices . Contribute to libusb/libusb development by creating an account on GitHub.

Table of Contents

    • Overview

      • About
      • Binary Snapshots
      • vcpkg port
      • msys2 MinGW-w64 32bit/64bit package
      • Build from Source
    • Supported Environments

      • USB 3.x Support
      • .NET support
    • How to use libusb on Windows

      • Driver Installation
      • Development Considerations
      • Known Restrictions
    • Development Links

Overview

About

This page details the specifics of the Windows backend part of libusb, which helps developers easily communicate with USB devices on Windows.
Currently it supports the WinUSB and HID drivers for generic USB device access as well as the libusb-win32 and libusbK drivers.

Please note that libusb-win32 and libusbK are separate projects. libusb-win32 is a Windows-only project which provides a libusb-0.1 API compatible library for Windows and the associated kernel driver libusb0.sys. libusbK is a Windows only project which provides a new set of API for Windows (supporting WinUSB, libusb0.sys and libusbk.sys) and kernel driver libusbK.sys.

Binary Snapshots

Pre-built binary snapshots are provided in the Sourceforge files directory along with the source code archive. Since 1.0.21 release, they are also at the GitHub release page.

The pre-built Windows binaries are provided AS IS for your convenience, generated for the following environments:

  • Microsoft Visual Studio; MS32 (32 bit) and MS64 (64 bit) directories
  • MinGW -> MinGW32 (32 bit) and MinGW64 (64 bit) directories.

Note that these archives are provided in the 7z format so you may have to install ​7-zip.

vcpkg port

vcpkg now includes libusb ports.

Installing and building libusb via vcpkg:

You can download and install libusb using the vcpkg dependency manager:

    git clone https://github.com/Microsoft/vcpkg.git
    cd vcpkg
    .bootstrap-vcpkg.bat
    .vcpkg integrate install
    .vcpkg install libusb

The libusb port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

msys2 MinGW-w64 32bit/64bit package

msys2 has a libusb package. Please contact the msys2 project if you encountered issues with the msys2 package. It is recommended to use pkg-config (libusb-1.0.pc) on MSYS2 or other MinGW-w64 distributions.

Reference: how to use libusb under MinGW-w64?

Build from Source

You may want to build from source if you encounter compatibility issues with the pre-built binaries. We recommend either Visual Studio or a MinGW-w64 based toolchain like MSYS2.

Note that the MinGW.org toolchain is not supported. clang support patches are welcome. Patches to add support for other toolchains (including MinGW.org) may be accepted after review even though these toolchains are not officially supported.

Supported Environments

Supported systems are all Windows platforms, starting with Windows Vista, and including 64 bit versions. Windows XP support was dropped in libusb 1.0.24.

USB 3.x Support

libusb supports USB 3.x controllers and devices on Windows. Proprietary vendor controller drivers for Windows 7 and earlier as well as the Microsoft controller xHCI driver for Windows 8/8.1/10 are supported. If you are are using Windows 7 or earlier version, you will be using vendor driver. Make sure you upgrade to the latest version of the driver if you encounter problems.

.NET support

A .NET version of libusb, called LibUsbDotNet, based on libusb 1.0. If you plan to use libusb in a .NET project, make sure you check out the latest release at github.

How to use libusb on Windows

Driver Installation

If your target device is not HID, and your device is not using WinUSB driver, you must install a driver before you can communicate with it using libusb. Currently, this means installing one of Microsoft’s WinUSB, libusb-win32 or libusbK drivers. Two options are available:

  • Recommended: Use the most recent version of Zadig, an Automated Driver Installer GUI application for WinUSB (recommended), libusb-win32 (please use device driver mode if you really need to use it as the filter driver mode is not well supported) and libusbK (only if you hit WinUSB limitations).
  • For version 1.0.21 or later, you can also use the usbdk backend. usbdk provides another driver option for libusb Windows backend. For 1.0.21, usbdk is a compile-time option, but it becomes a runtime option from version 1.0.22 onwards, so you need to specify the usbdk backend using something like the following.
libusb_context * ctx = NULL;
libusb_init(&ctx);
libusb_set_option(ctx, LIBUSB_OPTION_USE_USBDK);

Note that if your device is using libusb-win32 driver (libusb0.sys), you will also need to install the libusbK DLL, as all libusb0.sys accesses are done through it. One way to install/update libusbK.dll is to install libusbk development kit (libusbK-x.x.x.x-setup.exe from Sourceforge site and choose to update the system files during the installation. However the support of libusb-win32/libusb0.sys filter driver mode is not good, please use the device driver mode when you have to use libusb0.sys.

Development Considerations

The handling of composite devices under Windows is done with multiple drivers, that are children of the usbccgp.sys driver (Composite Generic Parent), as this is the default for the OS. If needed, it is also possible to replace the composite parent driver to access the device. Zadig can be used for this purpose.

Because Windows does not provide a native poll() function, and cygwin is the only development environment that provides such a call, the use of libusb file descriptors with poll() on cygwin is NOT supported. In a future version of libusb, we should provide better handling of native Windows events, but this will require a redesign of the libusb API, so it probably won’t occur before libusb 2.0.

Known Restrictions

  • WinUSB cannot be used to send an actual reset command to an USB device. This is a limitation of WinUSB.
  • WinUSB and libusbK cannot be used to set a device configuration that is different from the first one. This is a limitation of KMDF USB I/O Target.
  • WinUSB does not support multiple concurrent applications (as per the Microsoft Windows Hardware Drivers documentation). libusbk driver allows this but it may have the limitation that you can claim the interface multiple times (https://github.com/libusb/libusb/issues/807). libusb-win32 driver will also allow this but it is not recommended to be used due to multiple issues reported.
  • WinUSB does not support isochronous transfers under Windows XP/Vista/7/8. WinUSB under Windows 8.1 or later supports isochronous transfer. libusb Windows supports isochronous transfer using the usbdk backend from version 1.0.21. libusb-1.0.22 adds isochronous support using libsubK driver. libusb-1.0.23 adds isochronous transfer support for WinUSB (Windows 8.1/10 or later) but the support may not be that mature.
  • WinUSB allows setting up different pipe policy and RAW_IO can be useful in some use cases. Unfortunately it will make the WinUSB backend pretty complicated so this is not supported. why not WinUSB RAW_IO pipe policy?
  • With WinUSB, when LIBUSB_RECIPIENT_INTERFACE is used for the transfer, the WinUSB DLL forces the low byte of wIndex to the interface number, regardless of what you set it to.
    • This is not a real limitation though, please refer to the OSR threads. From Tim Roberts answer in that thread:
    • One can also argue that this is a security measure. The USB spec requires that the low byte of wIndex be set to the interface number when the recipient is set to «interface». Devices that use that field for other purposes are broken.
  • HID keyboards and mice cannot be accessed using the native HID driver as Windows reserves exclusive access to them.
  • Multiple HID top level collections are currently not supported (only the first top level collection will be used).
  • The HID Report Descriptors provided by libusb are recomposed and may present minor differences from the actual ones, as the Windows HID API does not allow to read them directly from the device.
  • Windows HID API does not support custom Control Transfer, everything needs to be done through report. Please check out the discussion here.
  • Because there is no native poll() on Windows, the ability to return externally pollable file descriptors on Windows libusb_get_pollfd() returns an error.
  • If you use a composite device, and plan to install a libusb compatible driver for any of the interfaces, you should ensure that your driver package adds a Device Interface GUID in the registry, as proper enumeration of composite devices in libusb depends on it. This is typically achieved by adding something like the following in your inf:
    HKR,,DeviceInterfaceGUIDs,0x00010000,{12345678-1234-1234-1234-123456789ABC}
    This is in particular a problem with libusb-win32’s inf-wizard which will be deprecated by libusb-win32 project. Please use Zadig instead.
  • libusb0.sys and libusbk.sys access is done through the libusbK DLL, therefore, if you plan to use the libusb-win32/libusb0.sys or libusbK/libusbk.sys driver in libusb, you must have that library installed. If using a recent version of Zadig, you should not have to do anything, at it will install the library for you.
  • libusb0.sys: the support of libusb0.sys filter driver has quite some issues, you should use the device driver mode if you really need to use libusb0.sys.
  • libusb0.sys: cannot send libusb_control_transfer with zero wLength with libusb0.sys 1.2.6.0 version. Please use libusb0.sys 1.2.7.3 snapshot release or later.
  • uhubctl will not work under Windows. Please refer to Issue #391 due to limitation of the underlying drivers (libusb0.sys, libusbk.sys, usbdk and WinUSB) with regard to USB Hubs.

Development Links

  • How to Use WinUSB to Communicate with a USB Device & WinUSB (Winusb.sys) Installation.
    Note that the inf file given in the howto has a typo. If you don’t change SourceDisksFiles.NTamd64 to SourceDisksFiles.amd64, the driver installation will fail to copy the required DLLs on 64 bit systems…
  • Using WinUSB for User-Mode to USB Device Communication
  • WinUSB User-Mode Client Support Routines
  • Microsoft’s USB Core Team Blog
  • Microsoft HW Development Center — USB
  • additional information about Windows Co-Installers
  • Finding Memory Leaks Using the CRT Library
  • libusbK documentation
  • libwdi/Zadig Wiki
  • Microsoft Devcon source code
  • Microsoft USBView source code

Содержание

  • Способ 1: Самостоятельная загрузка libusb0.dll
  • Способ 2: Обновление драйверов Windows
  • Способ 3: Установка последней версии сборки LibUSB
  • Способ 4: Ручная регистрация libusb0.dll
  • Способ 5: Восстановление системных файлов Windows
  • Способ 6: Использование исходников libusb
  • Вопросы и ответы

Скачать libusb0 dll

Динамически подключаемая библиотека libusb0.dll не является известной в кругах начинающих пользователей, поскольку практически никто не сталкивается с ней в ходе своего обычного взаимодействия с операционной системой. Большинство узнает об этом файле только при запуске стороннего программного обеспечения, когда на экране появляется уведомление об его отсутствии. В рамках сегодняшнего материала мы бы хотели рассказать все о данном файле и рассмотреть доступные методы решения возникшей неполадки.

Изначально небольшая утилита с графическим интерфейсом под названием LibUSB была предназначена исключительно для формирования файлов форматов INF из информации подключенных USB-устройств. Это помогало пользователям обмениваться драйверами, генерировать их особенные копии или даже использовать в текущей операционной системе. Позже сторонние разработчики начали добавлять элементы этого компонента в свои продукты, переделав функционирование утилиты под формат DLL. Теперь это ПО не пользуется популярностью, однако многие до сих пор задействуют его в своем софте, назначая этому компоненту выполнение определенных опций.

Если по каким-то причинам файл действительно отсутствует, вы можете как найти его самостоятельно в исходниках (Способ 6), так и скачать его отдельно, например, с нашего сайта.

Скачать libusb0.dll

Полученную библиотеку необходимо переместить в основную папку приложения, которое сообщает об отсутствии DLL, или в системную директорию C:WindowsSystem32 или C:WindowsSysWOW64 (отталкивайтесь от разрядности ОС). Возможно, при повторном появлении ошибки, понадобится провести регистрацию файла (Способ 4).

Способ 2: Обновление драйверов Windows

Если вы пропустили предыдущий вариант, обратите внимание не на сам рассматриваемый файл, а на актуальность абсолютно всех драйверов операционной системы, обязательно включая в этот список и периферийные устройств, которые соединяются через USB. Виндовс иногда некорректно понимает ошибку библиотеки, интерпретировав ее по-своему, однако на самом деле файл все это время присутствовал, а его нормальное функционирование невозможно из-за конфликта с другими объектами. Потому вам следует выбрать оптимальный метод и с его помощью проверить наличие апдейтов для каждого оборудования. Детальнее об этом читайте в инструкции далее.

Обновление драйверов для решения проблемы с файлом libusb0.dll в Windows

Подробнее: Обновление драйверов в Windows

Способ 3: Установка последней версии сборки LibUSB

Этот вариант подойдет только тем юзерам, кто использует программу LibUSB. Как уже было сказано ранее, ее основное предназначение заключается в создании файлов-драйверов для подключенных USB-устройств. Использование устаревшей версии данного софта может привести к тому, что во время обращения к нему на экране появится уведомление об отсутствии рассматриваемой динамически подключаемой библиотеки. Поэтому обязательным условием использования LibUSB является загрузка последней версии. Сделать это можно на официальном сайте, что выглядит следующим образом:

Скачать LibUSB с официального сайта

  1. Перейдите по ссылке выше, где нажмите на кнопку «Скачать».
  2. Кнопка для скачивания программы LibUSB с официального сайта

  3. Загрузка архива начнется автоматически. По завершении его нужно будет распаковать через любой удобный соответствующий софт.
  4. Переход к работе с архивом после скачивания программы LibUSB с официального сайта

  5. Для дальнейшего запуска программы требуется перейти в папку «bin».
  6. Переход к папке с исполняемым файлом программы LibUSB

  7. Дважды кликните левой кнопкой мыши по находящемуся там исполняемому файлу.
  8. Запуск исполняемого файла программы LibUSB через официальный архив

    Lumpics.ru

  9. Ознакомьтесь с информацией о программе и переходите далее, кликнув по кнопке «Next».
  10. Переход к работе с программой LibUSB в ознакомительном окне

  11. Если уже на этом этапе не возникло никаких неполадок, скорее всего, инсталляция последней версии LibUSB помогла решить существующие неполадки, а значит, можно смело приступать к созданию INF-файлов.
  12. Взаимодействие с программой LibUSB для создания файлов типа INF

Если вы не ставите перед собой цель работать с рассмотренным софтом, все равно рекомендуется установить его. В некоторых случаях это помогает избавиться от существующей проблемы, однако нет абсолютно никаких гарантий действенности такого варианта.

Способ 4: Ручная регистрация libusb0.dll

Давайте теперь рассмотрим ту ситуацию, когда при инсталляции стороннего софта стандартная процедура регистрации libusb0.dll не произошла или что-то спровоцировало ее сброс. Встречается такое довольно редко, но не стоит исключать возможность появления подобной трудности. Справиться с ней можно самостоятельно, проверив регистрацию и произведя ее заново, что осуществляется путем ввода соответствующих команд в стандартной консоли.

  1. Запустите «Командную строку» через меню «Пуск». Обязательно делайте это от имени администратора, чтобы не получить уведомление об отсутствии прав для запуска системных утилит.
  2. Переход к командной строке для повторной регистрации libusb0.dll в Windows

  3. После появления привычного окна консоли введите туда команду regsvr32 /u libusb0.dll, активировав ее нажатием по клавише Enter. Это действие отменит текущую регистрацию, о чем будет свидетельствовать всплывающее окно. Закройте его и переходите к следующему шагу.
  4. Команда для отмены текущей регистрации файла libusb0.dll в Windows

  5. Осталось только написать команду regsvr32 /i libusb0.dll, которая создаст повторную регистрацию для динамически подключаемой библиотеки.
  6. Команда для повторной регистрации файла libusb0.dll в Windows

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

Способ 5: Восстановление системных файлов Windows

Существует небольшая вероятность того, что при работе операционной системой произошел какой-либо сбой, вызвавший нарушение целостности важных файлов. Это может привести не только к проблемам с объектом libusb0.dll, но и вызвать более глобальные трудности. К счастью, проверить ОС на подобные повреждения очень просто, ведь все действия за пользователя осуществляют утилиты SFC и DISM. Первая производит исправление системных файлов, а если появляется ошибка, свидетельствующая о повреждении резервного хранилища, следует запустить DISM для его восстановления, а потом уже возвращаться к SFC. Обо всем этом в максимально развернутом виде читайте в руководстве далее.

Проверка целостности системных файлов для исправления ошибки libusb0.dll в Windows

Подробнее: Использование и восстановление проверки целостности системных файлов в Windows

Способ 6: Использование исходников libusb

На последнее место мы поставили способ, подходящий исключительно для разработчиков программного обеспечения. Его суть заключается в том, чтобы рассказать опытным юзерам о доступности исходников библиотек от libusb. Если во время тестирования софта у вас возникли проблемы с рассматриваемым сегодня файлом, рекомендуем обратить внимание именно на этот пакет последней версии. Сейчас мы не будем останавливаться на правильном его применении в своем проекте, а лишь продемонстрируем банальную процедуру скачивания.

Скачать libusb с GitHub

  1. Переместитесь на официальный ресурс GitHub, кликнув по ссылке выше. Выберите один из предложенных вариантов загрузки.
  2. Выбор релиза исходного кода libusb для скачивания с официального сайта

  3. Ознакомьтесь с полным содержимым каталога и нажмите на зеленую кнопку «Clone or download».
  4. Кнопка для скачивания сборки libusb с официального сайта

  5. Кликните по «Download ZIP».
  6. Начало скачивания архива исходников libusb с официального сайта

  7. Ожидайте окончания скачивания каталога, а затем откройте его через любой удобный архиватор.
  8. Запуск архива libusb с официального сайта

  9. Теперь вы можете ознакомиться с содержанием пакета и использовать необходимые его элементы при взаимодействии со своим проектом.
  10. Работа с пакетом libusb при создании своих программ

Выше мы предложили вашему вниманию шесть возможных вариантов решения неполадки с отсутствием libusb0.dll в Виндовс. Как видите, алгоритм выполнения каждого способа абсолютно разный, поэтому вам следует начать с самого первого и эффективного, постепенно переходя к следующим, если положительного эффекта не будет наблюдаться.

Для работы с устройствами usb удобно пользоваться библиотеками libusb или её форком libusbx.
О том как установить их и пойдет речь в этой заметке.

Скачайте библиотеку libusbx. Распаковав архив вы увидите такое:

В зависимости от разрядности вашей операционной системы (32 или 64) и компилятора (mingw или visual studio) скопируйте из папки MinGW32 или MS32 (для 32 битной системы), MinGW64 или MS64 (для 64 битной) файл libusb-1.0.dll в C:Windowssystem.
А файлы libusb-1.0.lib и libusb-1.0.pdb в C:Program FilesMicrosoft Visual Studio 10.0VClib.

Из папки include скопируйте файл libsub.h в C:Program FilesMicrosoft Visual Studio 10.0VCinclude

После этого перезапустите Visual Studio.

Протестировать работу можно так:

// usb.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <libusb.h>

static void print_devs(libusb_device **devs)
{
        libusb_device *dev;
        int i = 0, j = 0;
        uint8_t path[8]; 

        while ((dev = devs[i++]) != NULL) {
                struct libusb_device_descriptor desc;
                int r = libusb_get_device_descriptor(dev, &desc);
                if (r < 0) {
                        fprintf(stderr, "failed to get device descriptor");
                        return;
                }

                printf("%04x:%04x (bus %d, device %d)",
                        desc.idVendor, desc.idProduct,
                        libusb_get_bus_number(dev), libusb_get_device_address(dev));

                r = libusb_get_port_numbers(dev, path, sizeof(path));
                if (r > 0) {
                        printf(" path: %d", path[0]);
                        for (j = 1; j < r; j++)
                                printf(".%d", path[j]);
                }
                printf("n");
        }
}


int _tmain(int argc, _TCHAR* argv[])
{
        libusb_device **devs;
        int r;
        ssize_t cnt;

        r = libusb_init(NULL);
        if (r < 0)
                return r;

        cnt = libusb_get_device_list(NULL, &devs);
        if (cnt < 0)
                return (int) cnt;

        print_devs(devs);
        libusb_free_device_list(devs, 1);

        libusb_exit(NULL);
        return 0;
}

Готово.

libusb

Go bindings for the libusb C library.

GoDoc
Go Report Card
Build Status
License Badge

Installation

$ go get github.com/gotmc/libusb

Installing C libusb library

To use libusb package, you’ll need to install the libusb C
library first.

OS X

Windows

Download and install the latest Windows libusb binaries from
libusb.info.

Linux

$ sudo apt-get install -y libusb-dev libusb-1.0-0-dev

Documentation

Documentation can be found at either:

  • https://godoc.org/github.com/gotmc/libusb
  • http://localhost:6060/pkg/github.com/gotmc/libusb/ after running $ godoc -http=:6060

Contributing

libusb is developed using Scott Chacon’s GitHub Flow. To
contribute, fork libusb, create a feature branch, and then
submit a pull request. GitHub Flow is summarized as:

  • Anything in the master branch is deployable
  • To work on something new, create a descriptively named branch off of
    master (e.g., new-oauth2-scopes)
  • Commit to that branch locally and regularly push your work to the same
    named branch on the server
  • When you need feedback or help, or you think the branch is ready for
    merging, open a pull request.
  • After someone else has reviewed and signed off on the feature, you can
    merge it into master.
  • Once it is merged and pushed to master, you can and should deploy
    immediately.

Testing

Prior to submitting a pull request, please run:

$ gofmt
$ golint
$ go vet
$ go test

To update and view the test coverage report:

$ go test -coverprofile coverage.out
$ go tool cover -html coverage.out

License

libusb is released under the MIT license. Please see the
LICENSE.txt file for more information.

libusb

Go bindings for the libusb C library.

GoDoc
Go Report Card
Build Status
License Badge

Installation

$ go get github.com/gotmc/libusb

Installing C libusb library

To use libusb package, you’ll need to install the libusb C
library first.

OS X

Windows

Download and install the latest Windows libusb binaries from
libusb.info.

Linux

$ sudo apt-get install -y libusb-dev libusb-1.0-0-dev

Documentation

Documentation can be found at either:

  • https://godoc.org/github.com/gotmc/libusb
  • http://localhost:6060/pkg/github.com/gotmc/libusb/ after running $ godoc -http=:6060

Contributing

libusb is developed using Scott Chacon’s GitHub Flow. To
contribute, fork libusb, create a feature branch, and then
submit a pull request. GitHub Flow is summarized as:

  • Anything in the master branch is deployable
  • To work on something new, create a descriptively named branch off of
    master (e.g., new-oauth2-scopes)
  • Commit to that branch locally and regularly push your work to the same
    named branch on the server
  • When you need feedback or help, or you think the branch is ready for
    merging, open a pull request.
  • After someone else has reviewed and signed off on the feature, you can
    merge it into master.
  • Once it is merged and pushed to master, you can and should deploy
    immediately.

Testing

Prior to submitting a pull request, please run:

$ gofmt
$ golint
$ go vet
$ go test

To update and view the test coverage report:

$ go test -coverprofile coverage.out
$ go tool cover -html coverage.out

License

libusb is released under the MIT license. Please see the
LICENSE.txt file for more information.

hippy

Posts: 12941
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

[SOLVED] How do I install libusb on Windows ?

I am trying to build ‘picotool’ on Windows but that fails because I haven’t got ‘libusb’. The Getting Started guide says «if you are building on Microsoft Windows you can download and install a Windows binary of libusb directly from the libusb.info site»

But when when I go to libusb.info and download the Latest Windows Binaries I get given a ‘libusb-1.0.24.7z’ file. It’s not clear what one has to do with that. I opened the archive, can see it has directories and files, but it’s all less than obvious and the ‘README.txt» isn’t very useful on what to do, what to extract, to where, and how to install it.

Any guide, clues or pointers on how to proceed with this ‘.7z’ file?

Last edited by hippy on Tue Mar 30, 2021 12:22 am, edited 1 time in total.


stevend

Posts: 630
Joined: Fri Oct 11, 2013 12:28 pm

Re: How do I install libusb on Windows ?

Sun Mar 07, 2021 7:04 pm

Somewhere in the instructions it at least used to say to download and install the zadig drivers, and at one point the order of doing things wasn’t quite right — I did raise an issue; not sure if the documentation has been updated to reflect my comments.



hippy

Posts: 12941
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: How do I install libusb on Windows ?

Sun Mar 07, 2021 8:27 pm

Yes, that’s what I am using. It’s trying to figure out what I should do with the files I see in it, where to extract them to, what may need to be done when I have done that, i’m stumped with.

The really frustrating thing is I only want ‘picotool’ so it can show what’s in the generated .uf2 file. I don’t currently intend to use if for flashing, so don’t even need the USB stuff.

I looked at the ‘picotool’ source and, not being familiar with it, it looks like more effort to strip out the ‘libusb’ dependencies than write my own .uf2 inspection tool.

I guess my «Windows development for a Pico is an absolute doddle» article still holds up if I class this an installation and set-up issue.


stevend

Posts: 630
Joined: Fri Oct 11, 2013 12:28 pm

Re: How do I install libusb on Windows ?

Sun Mar 07, 2021 9:46 pm

hippy wrote: ↑

Sun Mar 07, 2021 8:27 pm



The really frustrating thing is I only want ‘picotool’ so it can show what’s in the generated .uf2 file. I don’t currently intend to use if for flashing, so don’t even need the USB stuff.

I looked at the ‘picotool’ source and, not being familiar with it, it looks like more effort to strip out the ‘libusb’ dependencies than write my own .uf2 inspection tool.

I guess my «Windows development for a Pico is an absolute doddle» article still holds up if I class this an installation and set-up issue.

Appendix A of «Getting Started with Pico» covers installing the USB driver — page 62 in my version.


hippy

Posts: 12941
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: How do I install libusb on Windows ?

Mon Mar 08, 2021 12:36 am

stevend wrote: ↑

Sun Mar 07, 2021 9:46 pm


Appendix A of «Getting Started with Pico» covers installing the USB driver — page 62 in my version.

Thanks. I flashed ‘picoprobe’ and used Zadiq to create a libusb-win32 driver for it and that sorted it out. Device Manager now shows it as a libusb-win32 device with no exclamation mark. So something ‘libusb’ is now installed.

But on to Appendix B and ‘picotool’ and ‘cmake’ still cannot find ‘libusb’.

It appears to fail on the «find_package(LIBUSB)» in CMakeLists.txt’. Reports «Missing: LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR».

No mention of either of those in the Getting Started guide, and I have no idea how to set them or what they should be set to.

And, just to be clear; I can build ‘picoprobe’, the ‘pico-examples’ and my own out of tree Pico C SDK programs on Windows, so it seems there’s nothing wrong with my tools or configuration except for LIBUSB.


hippy

Posts: 12941
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: How do I install libusb on Windows ?

Mon Mar 08, 2021 7:14 pm

I did find this — https://github.com/raspberrypi/picotool — abridged …

You need to install libusb-1.0.

Windows: download from here https://libusb.info/

If you are on Windows, set LIBUSB_ROOT environment variable to the install directory

for Windows non MinGW/WSL:

mkdir build
cd build
cmake -G «NMake Makefiles» ..
nmake

Tried extracting that ‘.7z’ file to ‘C:picolibusb’ setting LIBUSB_ROOT to the same but no joy. Tried pointing at other directories under ‘C:picolibusb’, the same for LIBUSB_INCLUDE_DIR but no joy there either.

Has anyone ever built ‘picotool’ on Windows, installed ‘libusb’, actually knows exactly what must be done ?


gigamegawatts

Posts: 2
Joined: Tue Mar 09, 2021 11:09 pm

Re: How do I install libusb on Windows ?

Tue Mar 09, 2021 11:44 pm

Hi,

I had the same problem as you, and couldn’t find any other build instructions. I don’t know libusb at all, and barely know cmake, but I hacked at it anyway and got a successful build.

If you want to try my hack, here’s what I did (just a 2 step process):

1. Made the following change to cmakeFindLIBUSB.cmake. (I added 2 lines with «HINTS», and modified the library name to libusb-1.0.)

Code: Select all

diff --git a/cmake/FindLIBUSB.cmake b/cmake/FindLIBUSB.cmake
index c8cc62c..e3fb3c0 100644
--- a/cmake/FindLIBUSB.cmake
+++ b/cmake/FindLIBUSB.cmake
@@ -19,8 +19,10 @@ else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
         pkg_check_modules(PC_LIBUSB libusb-1.0)
     ENDIF(NOT WIN32)
     FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h
+            HINTS $ENV{LIBUSB_INCLUDE}
             PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
-    FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0
+    FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb-1.0
+            HINTS $ENV{LIBUSB_LIBRARY}
             PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
     include(FindPackageHandleStandardArgs)
     FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)

2. I set the 2 environment variables used by the «HINTS» command added in step 1 — you will, of course, need to change the path the location where you extracted your libusb-1.0.24.7z file::

Code: Select all

set LIBUSB_INCLUDE=C:UsersgigamDownloadsdeveloperlibusb-1.0.24includelibusb-1.0
set LIBUSB_LIBRARY=C:UsersgigamDownloadsdeveloperlibusb-1.0.24VS2019MS32static

Incidentally, for the library path, you have to use the MS32 version (it won’t build if you try to MS64 version, even on an x64 PC), and you have to use the static version (the dll version builds, but won’t run).

And, as mentioned earlier in the thread (for those who didn’t read it), you have to install the libusb driver as documented in Appendix A of the Getting Started guide (i.e. the same driver you need if using picoprobe).

Regards,

Dan.

Last edited by gigamegawatts on Tue Mar 09, 2021 11:58 pm, edited 1 time in total.


hippy

Posts: 12941
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: How do I install libusb on Windows ?

Tue Mar 30, 2021 12:17 am

gigamegawatts wrote: ↑

Tue Mar 09, 2021 11:44 pm


I don’t know libusb at all, and barely know cmake, but I hacked at it anyway and got a successful build.

Excellent sleuthing and I’m handing out more thanks again. Sorry it took so long to get round to trying it on my system, and thanking you for your help.

Your fix worked for me. I made it a one-step process — Having previously extracted to c:picolibusb, and to avoid needing environment variables, I set the two hints as hard-wired —

Code: Select all

HINTS /pico/libusb/include/libusb-1.0
HINTS /pico/libusb/VS2019/MS32/static

That, plus the noted change to «libusb-1.0», was enough — ‘cd build’, ‘cmake -G «NMake Makefiles» ..’, ‘nmake’, and voila; picotool.exe


Ashdash

Posts: 2
Joined: Mon Apr 19, 2021 10:51 pm

Re: [SOLVED] How do I install libusb on Windows ?

Mon Apr 19, 2021 11:11 pm

Thanks hippy and gigamegawatts.

I couldn’t get picotool to build until I found your posts. I now have it built. I can inspect a uf2 file ok, but can’t connect to a pico.

«No accessible RP2040 devices in BOOTSEL mode were found.

but:

Device at bus 1, address 17 appears to be a RP2040 device in BOOTSEL mode, but picotool was unable to connect»

I,m guessing it is usb related. Any ideas?


hippy

Posts: 12941
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: [SOLVED] How do I install libusb on Windows ?

Tue Apr 20, 2021 1:12 pm

Ashdash wrote: ↑

Mon Apr 19, 2021 11:11 pm


«No accessible RP2040 devices in BOOTSEL mode were found.
but:
Device at bus 1, address 17 appears to be a RP2040 device in BOOTSEL mode, but picotool was unable to connect»

That is the message one receives when using ‘picotool’ on a Pi under Raspberry Pi OS and one forgets to prefix it with ‘sudo’ but I’m not sure that correlates to use on Windows. Something has obviously failed to do what was expected but it is hard to guess what


gigamegawatts

Posts: 2
Joined: Tue Mar 09, 2021 11:09 pm

Re: [SOLVED] How do I install libusb on Windows ?

Tue Apr 20, 2021 8:55 pm

Hi,

The most likely (maybe only) cause of the «No accessible RP2040 devices in BOOTSEL mode were found» message on Windows is when you haven’t installed the libusb-win32 driver for the Pico. That driver isn’t installed by default.

This is the same driver used for the Picoprobe, and the process of installing it can be found in Appendix A of the Getting Started guide, in the section «Install Picoprobe driver (only needed on Windows)».

Installing that driver fixed the problem for me when using Picotool.

Regards,

Dan.


Ashdash

Posts: 2
Joined: Mon Apr 19, 2021 10:51 pm

Re: [SOLVED] How do I install libusb on Windows ?

Tue Apr 20, 2021 10:50 pm

I solved the issue of Picotool not connecting to a Pico in BOOTSEL mode. Note that the instructions in the getting started guide are for loading usb drivers for the Picoprobe. Anyway, this worked for me.

Zadig.png
Zadig.png (79.82 KiB) Viewed 8043 times


ltorok

Posts: 13
Joined: Wed Aug 06, 2014 4:27 am

Re: How do I install libusb on Windows ?

Fri Oct 01, 2021 2:31 pm

hippy wrote: ↑

Mon Mar 08, 2021 7:14 pm


I did find this — https://github.com/raspberrypi/picotool — abridged …

You need to install libusb-1.0.

Windows: download from here https://libusb.info/

If you are on Windows, set LIBUSB_ROOT environment variable to the install directory

for Windows non MinGW/WSL:

mkdir build
cd build
cmake -G «NMake Makefiles» ..
nmake

Tried extracting that ‘.7z’ file to ‘C:picolibusb’ setting LIBUSB_ROOT to the same but no joy. Tried pointing at other directories under ‘C:picolibusb’, the same for LIBUSB_INCLUDE_DIR but no joy there either.

Has anyone ever built ‘picotool’ on Windows, installed ‘libusb’, actually knows exactly what must be done ?

Here is my notes:

1. clone GitHub repository for picotool (https://github.com/raspberrypi/picotool.git),

IMPORTANT!
***

Go to local repository for picotool and then go to directory cmake (<some_path>/picotool/cmake); <some_path> is path on Your local drive where You have clone remote picotool repository. In file <some_path>/picotool/cmake/FindLIBUSB.cmake is bug/typo -> problem (at least for Widows users). Open this file and go to line 23. Change FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0 to FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb-1.0. Change is only usb-1.0 to libusb-1.0.
***

2. go to Developer Command Propmpt for VS 2019 (I had installed Microsoft Visual Studio 2019 but similarly would by it was also for installed Build Tools for Visual Studio 2019)
3. go to picotool directory — local repository
4. mkdir build (in <some_path>/picotool directory)
5. cd build (You are in <some_path>/picotool/build directory)
6. set LIBUSB_ROOT=<path_where_installed_libusb>includelibusb-1.0;<path_where_installed_libusb>VS2019MS32static (<path_where_installed_libusb> is Your root directory where is installed/unpacked libusb archive)
7. cmake -G «NMake Makefiles» ..
8. nmake
9. picotool.exe is in <some_path>/picotool/build directory

Need prerequisites (see doc. «Getting started with Raspberry Pi Pico», chapter 9.2. Building on MS Windows):
• ARM GCC compiler
• CMake
• Build Tools for Visual Studio 2019 (note: I have it installed Microsoft Visual Studio 2019)
• Python 3.9
• Git

Link for doc.: https://datasheets.raspberrypi.org/pico … h-pico.pdf

Next useful links:
https://stackoverflow.com/questions/218 … nclude-dir
https://cmake.org/cmake/help/latest/var … me%3E_ROOT

Maybe it will be useful for someone


User avatar

Gustavo_Murta

Posts: 38
Joined: Thu Dec 20, 2012 10:04 am
Location: Brasil

Re: [SOLVED] How do I install libusb on Windows ?

Sun Oct 17, 2021 3:22 pm

https://github.com/libusb/libusb/issues … -817326633

Installation of Libusb-1.0 Library, using msys2 on Windows 10 X64

Install msys2 https://www.msys2.org/
Make sure the msys64 installation folder is: C:msys64
Do not install elsewhere as it will have problems using the packages.

Run msys2 as administrator, if you cannot use the commands below.

Install libusb package, run command (at MSYS prompt)

# pacman -S mingw-w64-x86_64-libusb
References :
https://packages.msys2.org/package/ming … _64-libusb
https://www.msys2.org/docs/package-management/

check version of libusb that installed
# pacman -Qs libusb
local/mingw-w64-x86_64-libusb 1.0.24-3
Library that provides generic access to USB devices (mingw-w64)

List the content of a package libusb
# pacman -Ql mingw-w64-x86_64-libusb
mingw-w64-x86_64-libusb /mingw64/
mingw-w64-x86_64-libusb /mingw64/bin/
mingw-w64-x86_64-libusb /mingw64/bin/libusb-1.0.dll
mingw-w64-x86_64-libusb /mingw64/include/
mingw-w64-x86_64-libusb /mingw64/include/libusb-1.0/
mingw-w64-x86_64-libusb /mingw64/include/libusb-1.0/libusb.h
mingw-w64-x86_64-libusb /mingw64/lib/
mingw-w64-x86_64-libusb /mingw64/lib/libusb-1.0.a
mingw-w64-x86_64-libusb /mingw64/lib/libusb-1.0.dll.a
mingw-w64-x86_64-libusb /mingw64/lib/pkgconfig/
mingw-w64-x86_64-libusb /mingw64/lib/pkgconfig/libusb-1.0.pc

Add the mingw64 folder to the Windows 10 environment variables.
example:
Path >>> C:msys64mingw64bin

Reference:
https://www.architectryan.com/2018/03/1 … indows-10/

Install the pkg-config using msys2 — run command (at MSYS prompt)
$ pacman -S mingw-w64-x86_64-pkg-config

Test the Libusb installation with these commands. Make sure the folders are correct (very important).
Examples:
C:Usersjgust>pkg-config —cflags libusb-1.0
-IC:/msys64/mingw64/include/libusb-1.0

C:Usersjgust>pkg-config —libs libusb-1.0
-LC:/msys64/mingw64/lib -lusb-1.0


nachiiiketa03

Posts: 34
Joined: Fri Feb 19, 2021 9:09 am

Re: How do I install libusb on Windows ?

Wed Mar 30, 2022 1:37 pm

gigamegawatts wrote: ↑

Tue Mar 09, 2021 11:44 pm


Hi,

I had the same problem as you, and couldn’t find any other build instructions. I don’t know libusb at all, and barely know cmake, but I hacked at it anyway and got a successful build.

If you want to try my hack, here’s what I did (just a 2 step process):

1. Made the following change to cmakeFindLIBUSB.cmake. (I added 2 lines with «HINTS», and modified the library name to libusb-1.0.)

Code: Select all

diff --git a/cmake/FindLIBUSB.cmake b/cmake/FindLIBUSB.cmake
index c8cc62c..e3fb3c0 100644
--- a/cmake/FindLIBUSB.cmake
+++ b/cmake/FindLIBUSB.cmake
@@ -19,8 +19,10 @@ else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
         pkg_check_modules(PC_LIBUSB libusb-1.0)
     ENDIF(NOT WIN32)
     FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h
+            HINTS $ENV{LIBUSB_INCLUDE}
             PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
-    FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0
+    FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb-1.0
+            HINTS $ENV{LIBUSB_LIBRARY}
             PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
     include(FindPackageHandleStandardArgs)
     FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)

2. I set the 2 environment variables used by the «HINTS» command added in step 1 — you will, of course, need to change the path the location where you extracted your libusb-1.0.24.7z file::

Code: Select all

set LIBUSB_INCLUDE=C:UsersgigamDownloadsdeveloperlibusb-1.0.24includelibusb-1.0
set LIBUSB_LIBRARY=C:UsersgigamDownloadsdeveloperlibusb-1.0.24VS2019MS32static

Incidentally, for the library path, you have to use the MS32 version (it won’t build if you try to MS64 version, even on an x64 PC), and you have to use the static version (the dll version builds, but won’t run).

And, as mentioned earlier in the thread (for those who didn’t read it), you have to install the libusb driver as documented in Appendix A of the Getting Started guide (i.e. the same driver you need if using picoprobe).

Regards,

Dan.

Thank you so much for the fix! This worked and helped a lot. Earlier I had to use picotool in Linux which increased the time!! Thanks a lot.
This is what my FindLIBUSB.cmake file is like now:

Code: Select all

# - Try to find the libusb library
# Once done this defines
#
#  LIBUSB_FOUND - system has libusb
#  LIBUSB_INCLUDE_DIR - the libusb include directory
#  LIBUSB_LIBRARIES - Link these to use libusb
# Copyright (c) 2006, 2008  Laurent Montel, <montel@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
    # in cache already
    set(LIBUSB_FOUND TRUE)
else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)
    IF (NOT WIN32)
        # use pkg-config to get the directories and then use these values
        # in the FIND_PATH() and FIND_LIBRARY() calls
        find_package(PkgConfig)
        pkg_check_modules(PC_LIBUSB libusb-1.0)
    ENDIF(NOT WIN32)
    FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h
            HINTS $ENV{LIBUSB_INCLUDE}
            #HINTS $ENV{LIBUSB_ROOT}/include/libusb-1.0
            PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS})
    FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb-1.0 usb-1.0 usb
            HINTS $ENV{LIBUSB_LIBRARY}
            PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS})
    include(FindPackageHandleStandardArgs)
    FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR)
    MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES)
endif (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES)

I am using MinGW Makefiles as the Cmake Generator.


Return to “General”

Сначала немного общих слов о пакете (библиотеке) V-USB (старое название AVR USB) компании Objective Development, и библиотеке libusb.

V-USB — пакет, содержащий библиотеку подпрограмм (и примеры её использования), которая позволяет с помощью микроконтроллеров семейства AVR (производитель Atmel) делать низкоскоростные (low-speed, стандарт USB 1.0) USB-устройства. В этих устройствах протокол USB реализован программно — в firmware, прошиваемом в микроконтроллер. Кроме того, пакет V-USB содержит пример программ для хоста (компьютер, к которому подключаются USB-устройства), которые реализуют обмен данными с разработанными устройствами USB. Библиотека V-USB разработана компанией Objective Development и доступна как для свободного, так и для коммерческого использования (в зависимости от выбранной Вами лицензии).

Программы для хоста используют, в свою очередь, другую библиотеку — libusb [13]. Будем для простоты называть программы, прошиваемые в микроконтроллер термином firmware, а программы, которые работают на компьютере и общаются с разрабатываемыми нами устройствами USB — термином ПО хоста. Итак, процесс работы с пакетом AVR-USB (V-USB) и библиотекой libusb на платформе Windows по шагам.

1. Для просмотра и редактирования файлов Makefile и исходников нужно обзавестись хорошим текстовым редактором, поддерживающим окончания строк в стиле Unix (для тех, кто в танке — в Windows принято заканчивать строки в текстовых файлах как 0x0D, 0x0A, а в Unix более экономно — 0x0A). Я рекомендую скачать notepad2 — все просто и без затей, программа даже не требует установки, см. [14]. Там же описано, как прикрутить notepad2 заместо стандартного notepad.

2. Скачайте пакет библиотеки V-USB со странички [2], ищите там кнопку Download. Версия пакета была представлена под именем avrusb-YYYYMMDD.zip. Скачивайте самую последнюю версию. 24 сентября 2008 года я скачал avrusb-20080418.zip размером в 424594 байт.

3. Распакуйте в любое место папку, содержащуюся в архиве. В моем архиве была папка avrusb-20080418, я её распаковал в папку c:avrprj.

4. В папке c:avrprjavrusb-20080513examples находятся примеры firmware и ПО хоста. Всего там 5 папок, каждая из которых хранит отдельный проект:
custom-class — пример firmware и ПО хоста, показывающую работу с разработанным USB-устройством типа custom class.
hid-custom-rq — пример firmware и ПО хоста, показывающую работу с USB-устройством HID-класса путем отправки ему управляющих запросов (control request). Демонстрируется обмен данными в обоих направлениях.
hid-data — пример firmware и ПО хоста, также показывающую работу с устройством HID. Демонстрируется обмен данными в обоих направлениях.
hid-mouse — пример firmware, реализующего HID устройство типа мышь.
usbtool — пример ПО хоста — универсальная программа, работающая с USB-устройствами.

Для компиляции firmware и ПО хоста нужны специальные программные пакеты, установку и использование которых рассмотрим далее.

5. Начнем с firmware. Понадобится либо avr-gcc, либо IAR Embedded Workbench for AVR. В этой статье я рассматриваю установку и работу с avr-gcc. Пакет avr-gcc на платформе Windows входит в состав пакета WinAVR [6]. Я скачал WinAVR-20080610-install.exe размером 23433168 байт — обычный инсталлятор. После завершения закачки запустите его. Выбор языка установки ни на что не влияет, я выбрал русский. Инсталлятор предлагает выбрать папку для установки, я согласился на предлагаемую по умолчанию папку C:WinAVR-20080610. Далее запросит установить снять галочки — выбрать состав устанавливаемых компонентов (Install Files, Add Directories to PATH (Recommended), Install Programmers Notepad) — я оставил все компоненты выбранными, как и предлагалось. После установки в переменную окружения Path пропишутся пути C:WinAVR-20080610bin и C:WinAVR-20080610utilsbin. Второй путь важен для работы утилиты make. Чтобы изменения для переменной Path вступили в силу для окружения пользователя, нужно перелогиниться (по крайней мере у меня так было под w2k), либо перезапустить экземпляр командного интерпретатора cmd (чтобы обновились для него переменные окружения).

6. Откомпилируем firmware из папки c:avrprjavrusb-20080418exampleshid-custom-rqfirmware. Запустим cmd, перейдем в эту папку (cd c:avrprjavrusb-20080418exampleshid-custom-rqfirmware). Введем команду make, которая откроет файл Makefile в текущей папке и выполнит имеющиеся там команды. Makefile в текущей папке сделан так, что если ввести просто make без параметров, то выведется подсказка:

C:avrprjavrusb-20080418exampleshid-custom-rqfirmware>make
This Makefile has no default rule. Use one of the following:
make hex ……. to build main.hex
make program … to flash fuses and firmware
make fuse …… to flash the fuses
make flash ….. to flash the firmware (use this on metaboard)
make clean ….. to delete objects and hex file

Для компиляции firmware нужно ввести make hex, что и сделаем:

c:avrprjavrusb-20080418exampleshid-custom-rqfirmware>make hex
cp -r ../../../usbdrv .
avr-gcc -Wall -Os -DF_CPU=16000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=atm-ga168 -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o
avr-gcc -Wall -Os -DF_CPU=16000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=atm-ga168 -x assembler-with-cpp -c usbdrv/usbdrvasm.s -o usbdrv/usbdrvasm.o
avr-gcc -Wall -Os -DF_CPU=16000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=atm-ga168 -c usbdrv/oddebug.c -o usbdrv/oddebug.o
avr-gcc -Wall -Os -DF_CPU=16000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=atm-ga168 -c main.c -o main.o
avr-gcc -Wall -Os -DF_CPU=16000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=atm-ga168 -o main.elf usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o main.o
rm -f main.hex main.eep.hex
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
avr-size main.hex
text data bss dec hex filename
0 1694 0 1694 69e main.hex

В результате в текущей папке получим файл main.hex, который и является прошивкой для микроконтроллера. Если у Вас подключен программатор avrdude (Makefile настроен на него), то для программирования кристалла просто введите make program.

Я здесь не рассматриваю, каким образом выбирается тактовая частота для микроконтроллера или его тип — это делается путем редактирования содержимого Makefile. Все хорошо расписано как в комментариях Makefile, исходного кода, а также в файлах readme.txt — на английском языке. Переведенный на русский язык пакет V-USB скачайте по ссылке [15].

7. Теперь займемся ПО хоста. Для его компиляции нам понадобится gcc.exe, который есть в составе пакета MinGW [7]. Пакет MinGW — это набор портированных с Unix утилит командной строки. Я скачал MinGW-5.1.4.exe, файл размером в 140095 байт. Это хитрый инсталлятор, который при установке скачивает из интернета все необходимое. При запуске он запросит выбрать «Download and install» или «Download only», выбираем «Download and install». Далее спросит, какой пакет устанавливать — Previous, Current или Candidate. Выбираем то, что предлагается по умолчанию — Current. Далее запросят выбрать устанавливаемые компоненты. По умолчанию предлагается только «MinGW base tools», но я еще поставил галочку на всякий случай на «g++ compiler». Утилиту Make выбирать не стал, поскольку она у меня уже работает (поставилась из пакета WinAVR). Далее предложат выбрать папку для установки — C:MinGW, соглашаемся. Далее предложат выбрать место для ярлыков, потом начнется процесс загрузки. Грузилось у меня долго, около часа, на скорости примерно 22 кбайт/сек (если верить информации инсталлятора). Грузится все в текущую папку, откуда запускали MinGW-5.1.4.exe. После установки gcc.exe оказывается в папке c:MinGWbin, но в переменной Path этот путь не прописан, надо добавить вручную, см. скриншоты.

8. Теперь надо установить библиотеку libusb. См. ссылку на закачку релизов [13]. Найдите там ссылку для скачки наподобие libusb-win32-filter-bin-0.1.12.1.exe (цифры версии могут быть другие, выбирайте самую свежую версию). Это установщик бинарников библиотеки (бинарники позволяют работать любым приложениям Windows, использующим LibUSB), а также мастер-инсталлятор драйвера фильтра). Ставим, установщик предлагает по умолчанию в папку «C:Program FilesLibUSB-Win32», соглашаемся. После установки, создания ярлычков инсталлятор предложит запустить тест-программу («C:Program FilesLibUSB-Win32bintestlibusb-win.exe«), которая может показать все USB устройства, с которыми можно работать через библиотеку libusb (в принципе, это все устройства USB, которые распознаны системой и имеют установленный драйвер). Программа очень полезная, может пригодиться в дальнейшем для просмотра информации об USB-устройствах. Она показывает все USB-устройства, которые корректно определены в Windows и имеют драйвера (на скриншоте ниже видны два USB-устройства — флешка Kingston DataTraveler 2.0 и debugWIRE эмулятор ATMEL JTAGICE mkII).

testlibusb-win01.PNG

Опишу установку драйверов поподробнее, потому что иногда у пользователей библиотеки бывают с этим проблемы, особенно когда они подключают новое USB-устройство к компьютеру, с другими VID и PID (даже если на нем уже ранее была установлена библиотека libusb). Проблема заключается в том, что новому устройству USB (с новыми VID и PID) требуется новый так называемый драйвер фильтра (filter driver). В процессе установки libusb-win32-devel-filter-X.X.X.X как раз и будет предложено установить драйвер фильтра на все обнаруженные USB устройства, а Ваша задача выбрать именно то устройство, которое нужно, и установить драйвер фильтра именно на него. Итак, скачиваем libusb-win32-devel-filter, например libusb-win32-devel-filter-1.2.2.0.exe, и запускаем. На запрос подтверждения запуска (если нельзя проверить издателя) щелкните на кнопку «Выполнить»:

libusb-win32-devel-filter-001.PNG

На приветствии визарда установки библиотеки LibUSB-Win32 тупо жмем Next:

libusb-win32-devel-filter-002.PNG

На запрос подтверждения принятия лицензии выбираем как обычно «I accept the agreement» и жмем Next:

libusb-win32-devel-filter-003.PNG

На окошке «важной информации» тупо жмем Next:

libusb-win32-devel-filter-004.PNG

Дальше предложат поменять путь и название папки, в которую будет установлена библиотека. Ничего менять не надо, тупо жмем Next:

libusb-win32-devel-filter-005.PNG

Дальше предложат поменять путь и название папки, в которой будут лежать ярлычки. Ничего менять не надо, тупо жмем Next:

libusb-win32-devel-filter-006.PNG

На этом установка библиотеки LibUSB завершена. Если оставить галочку «Launch filter installer wizard» и нажать кнопку Finish, то запустится мастер установки драйвера фильтра на найденные USB-устройства. Это важный шаг, который я решил вынести в отдельный раздел 8a.

libusb-win32-devel-filter-007.PNG

Теперь должны нормально компилироваться примеры ПО хоста командной строки, предназначенные для GCC. Если компиляция идет с ошибками, то возможно, что у Вас в папке C:Program FilesLibUSB-Win32 не хватает папок include и lib. Можете скачать установленный каталог LibUSB-Win32 полностью по ссылке [9].

8a. Установка драйвера фильтра. Как я уже упоминал, программы ПО хоста, написанные с использованием библиотеки libusb, на платформе Windows общаются с устройствами USB через так называемый драйвер фильтра. Если драйвер фильтра USB-устройства не установлен, то при попытке обращения к USB-устройству Вы можете получить сообщения типа «Could not find USB device «hardctrl-HID» with vid=0x16c0 pid=0x5df» (в этом примере отображены параметры «hardctrl-HID», vid=0x16c0, pid=0x5df, задаваемые в файле usbconfig.h, макросы USB_CFG_DEVICE_NAME, USB_CFG_VENDOR_ID, USB_CFG_DEVICE_ID соответственно). Проблема устраняется установкой драйвера фильтра на устройство. Визард установки драйвера фильтра запускается в процессе установки библиотеки libusb (процесс описан на предыдущем шаге), но можно также запустить визард драйвера фильтра (Filter Wizard) и отдельно из меню запуска программ:

libusb-win32-devel-filter-012.PNG

После запуска фильтра появится окно, где выбирается необходимое действие — установить драйвер фильтра на USB-устройство, удалить ранее установленный на USB-устройство драйвер фильтра, удалить все установленные драйвера фильтра со всех USB-устройств. В случае проблем с доступом к USB-устройству нам нужно установить драйвер фильтра, поэтому выбираем 1-й пункт, «Install a device filter»:

libusb-win32-devel-filter-008.PNG

Далее появится окошко, в котором визард отобразит все найденные USB-устройства, на которые можно установить драйвер фильтра библиотеки libusb. Нужно по значениям VID и PID найти в списке наше проблемное USB-устройство, выбрать его и нажать кнопку Install.

libusb-win32-devel-filter-009.PNG

Далее произойдет быстрая процедура установки драйвера фильтра:

libusb-win32-devel-filter-010.PNG

По окончании установки драйвера фильтра получим соответствующее сообщение. Теперь проблем с обращением к USB-устройству через библиотеку libusb не будет.

libusb-win32-devel-filter-011.PNG

9. Попробуем откомпилировать c:avrprjavrusb-20080418exampleshid-custom-rqcommandline (это ПО хоста, которое может управлять нашим устройством USB). Сначала отредактируем файл c:asmavrusb-20080513exampleshid-custom-rqcommandlineMakefile. Эти 2 строки надо закомментировать (комментарий начинается с символа # в начале строки):

#USBFLAGS = `libusb-config —cflags`
#USBLIBS = `libusb-config —libs`

далее, нужно изменить пути до файлов библиотеки. Было так:

USBFLAGS = -I/usr/local/include
USBLIBS = -L/usr/local/lib -lusb

теперь должно быть так (не спрашивайте меня, почему. Это мне стоило нескольких часов «плясок с бубном»):

#USBFLAGS = -I/usr/local/include
USBFLAGS = -I»c:/Program Files/LibUSB-Win32/include»
#USBLIBS = -L/usr/local/lib -lusb
USBLIBS = -L»c:/Program Files/LibUSB-Win32/lib/gcc» -lusb

Все, теперь можно компилировать. Как обычно, запускаем cmd и переходим в нашу папку (cd c:avrprjavrusb-20080418exampleshid-custom-rqcommandline). Вводим make, без параметров:

c:avrprjavrusb-20080418exampleshid-custom-rqcommandline>make
gcc -I»c:/Program Files/LibUSB-Win32/include» -O -g -Wall -c opendevice.c
gcc -I»c:/Program Files/LibUSB-Win32/include» -O -g -Wall -c set-led.c
gcc -o set-led opendevice.o set-led.o -L»c:/Program Files/LibUSB-Win32/lib/gcc» -lusb

Процесс компиляции закончен, в текущей папке появятся объектные файлы (расширение *.o) и исполняемый файл set-led.exe — этот исполняемый файл и есть та программа, которая работает с разрабатываемым USB-устройством.

10. Теперь нужно собрать USB устройство по одной из схем в папке c:avrprjavrusb-20080418circuits. Можно купить готовую плату AVR-USB-MEGA16 или metaboard, см. [1].

11. Теперь нужно прошить программу в микроконтроллер (прошивку c:avrprjavrusb-20080418exampleshid-custom-rqfirmwaremain.hex). Как это делать, рассказывать не буду, в Интернете полно информации по теме. Ищите по ключевым словам ISP, avrdude, PonyProg, ITAJICE mkII.

12. Подключите Ваше устройство к компьютеру. Если Вы его собрали и прошили правильно, то появится сообщение, что обнаружено новое устройство LEDCtlHID:
insert-LEDCtlHID1.jpg

а потом еще одно, USB Human Interface Device:
insert-LEDCtlHID2.jpg

Если посмотреть в Диспетчере Устройств, то в папке Human Interface Devices появится 2 новых устройства:
insert-LEDCtlHID3.jpg

Если посмотреть свойства USB Human Interface Device, то мы увидим имя LEDCtlHID, которое было задано в макросе USB_CFG_DEVICE_NAME (файл c:avrprjavrusb-20080513exampleshid-custom-rqfirmwareusbconfig.h):
insert-LEDCtlHID4.jpg

Никакие драйвера нам не потребовались — наше устройство USB принадлежит к классу HID!

13. Теперь попробуем поуправлять устройством. Сначала запустим set-led.exe без параметров, выведется подсказка:

c:avrprjavrusb-20080418exampleshid-custom-rqcommandline>set-led.exe
usage:
set-led.exe on ……. turn on LED
set-led.exe off …… turn off LED
set-led.exe status … ask current status of LED

Теперь мы можем командой «set-led.exe on» зажечь светодиод на макетной плате, а командой «set-led.exe off» его погасить. Наше устройство работает!

На этом все! Остается только изучать пробовать примеры один за другим (примеры описаны на шаге 4), изучать их код, а еще лучше на основе примера сделать собственное USB-устройство и программу для него.

[Устранение проблем]

1. Устройство hid-data работает, а hid-custom-rq — нет. Утилита управления светодиодом set-led.exe выдает сообщение об ошибке «Could not find USB device «LEDCtlHID» with vid=0x16c0 pid=0x5df». При этом Диспетчер устройств показывает наличие подключенного устройства «USB HID-coвмecтимoe устройство» LEDCtlHID (как и должно быть), а утилита TestLibUsb — это устройство не показывает. Причина — у Вас не установлена библиотека libusb, либо её установка была испорчена (например, так произошло у меня после заражения вирусом — Касперский все вылечил, но при этом кое-что поломал). Устранить просто — установите библиотеку libusb (повторите шаг 8).

2. ПО хоста не запускается с ошибкой «Приложению не удалось запуститься, поскольку libusb0.dll не был найден. Повторная установка приложения может исправить эту проблему». Причина — в папке %SystemRoot%system32 отсутствует файл libusb0.dll. Устранить просто — нужно скопировать этот файл с другого компьютера, где установлена библиотека libusb, либо переустановить библиотеку libusb.

3. Часто встречающаяся проблема у начинающих работать с библиотекой V-USB — использование прерываний. Желательно таких ситуаций избегать, оставлять одно прерывание INT0, которое работает для V-USB, и использовать код только основной программы. Если все же нужно организовать еще один другой обработчик прерывания, то это надо делать максимально осторожно. В этом случае наилучшим выходом будет написание обработчика на ассемблере.

4. Новички часто пытаются неумело подсунуть примеры из пакета V-USB (avr-usb-russian.rar [15]) в AVR Studio, и у них ничего не получается — проект не компилируется, вылезают ошибки. На самом деле все примеры V-USB предназначены для компилирования из командной строки командами make.

5. Забывают также перед сборкой проекта (make, make hex) делать очистку — make clean. Команда make clean удаляет все объектные файлы, что гарантирует корректную компиляцию во всех случаях — и при изменении настроек makefile, и при изменении исходников.

6. В файле makefile лежат важные настройки проекта firmware — тип микроконтроллера (DEVICE), его тактовая частота (F_CPU). Иногда частота кварца на микроконтроллере не соответствует переменной F_CPU, и USB-устройство из-за этого не работает. Необходимо также помнить, что допустима частота кварца из ряда 12, 15, 16, 16.5, 20 МГц, другие кварцы работать не будут.

7. Важны также настройки в файле usbconfig.h — в нем определены все параметры USB-устройства, например указаны используемые ножки для сигналов D+ и D-. Назначение каждой опции подробно задокументировано. Файл usbconfig.h является общим для firmware (папка firmware) и ПО хоста (папка commandline).

8. Решение многих проблем описано в статье FAQ [10].

9. Трудности с поиском и закачкой программного обеспечения (MinGW, WinAVR, LibUSB, V-USB)? См. [16].

[Ссылки]

1. Макетные платы с интерфейсом USB.
2. V-USB site:obdev.at — библиотека V-USB — виртуальный порт USB для микроконтроллеров AVR.
3. Автомат управления освещением ledlight на макетной плате AVR-USB-MEGA16 (параметры автомата, хранящиеся в EEPROM, настраиваются консольной программой через интерфейс USB).
4. Как использовать библиотеку libusb в Visual Studio на языке C (пример управления светодиодом макетной платы AVR-USB-MEGA16).
5. Как использовать библиотеку libusb в Visual Studio на языке C# (пример использования AVR-USB-MEGA16 для получения входных данных).
6. Download WinAVR install site:sourceforge.net.
7. MinGW — Minimalist GNU for Windows site:sourceforge.net — пакет MinGW.
8. V-USB и libusb: обмен с устройством USB HID с помощью управляющих сообщений (USB control messages).
9. Установленная библиотека LibUSB-Win32.
10. AVR-USB-MEGA16, V-USB, FAQ: переписка по вопросам программирования.
11. V-USB + libusb + Python = быстрый старт site:12mhz.com (как начать программировать для USB с использованием Python на Linux и Windows).
12. AVR-USB-MEGA16: управление устройством USB из GCC, Visual Studio CPP, VB6, Python, Delphi.
13. LibUSB download site:sourceforge.net — ссылки на закачку релизов библиотеки libusb.
14. Notepad2 site:flos-freeware.ch.
15. avr-usb-russian.rar — библиотека V-USB версии 2008-05-03 с переведенными на русский язык документацией и комментариями в коде.
16. avr-usb-tools.rar — все программное обеспечение (V-USB, WinAVR, MinGW, LibUSB), упоминавшееся в этой статье.

Содержание

  1. libusb0.dll
  2. Пути устранения ошибки с libusb0.dll
  3. Как установить libusb на windows 10
  4. libusb0 dll не был найден
  5. Всё равно выдаёт ошибку libusb0.dll не был найден?
  6. Нужна помощь в установке libusb0.dll?
  7. Ошибки libusb0.dll
  8. Пути устранения ошибки с libusb0.dll
  9. Скачать libusb0.dll
  10. Как исправить ошибку?
  11. Способ 1.
  12. Способ 2.
  13. Русские Блоги
  14. Один, загрузка libusb
  15. Во-вторых, установка libusb
  16. Три, тест libusb

libusb0.dll

Файл 0.dll — это файл динамически подключаемой библиотеки. Если быть точным, это компонент библиотеки LibUSB, которая отвечает за работу так называемого «ПО хоста USB», например, за работу программ, обеспечивающих взаимодействие ОС смартфона с операционной системой Вашего персонального компьютера. Ошибка в работе этих программ, сопровождающаяся соответствующим системным сообщением, нередко вызвана отсутствием этого файла.

libusb0

В чем причина того, что отсутствует файл? Причин может быть много. Сюда входит как неправильная установка LibUSB, так и сбой в работе библиотеки при экстренной остановке компьютера, а также многие другие причины, которых насчитывается в общей сложности более десяти. Результат же всегда один — отсутствие файла не дает Вам работать с любимым приложением и Вы не можете, например, перевести Ваш iPhone с помощью ПО на компьютере в режим восстановления. Что делать, если файл не найден?

Пути устранения ошибки с libusb0.dll

Многие пользователи пытаются сразу скачать libusb0.dll бесплатно для Windows и установить его вручную. Более правильным однако является первый вариант действий — переустановить весь пакет библиотеки LibUSB. Последнее сделать несложно, пакет доступен для скачивания в Сети, а его установка предполагает лишь следование подсказкам Мастера установки приложений.

Однако нередко бывает так, что после полной переустановки пакета сообщение об ошибке никуда не девается: файл все также отсутствует. В этом случае логичнее всего прибегнуть ко второму варианту: скачать libusb0.dll и установить его в ручную в необходимую системную папку. Еще один вариант развития событий — это случай, когда файл наличествует, но система постоянно сообщает об его отсутствии. Скорее всего, файл поврежден, а его замена на работоспособный также легко исправит данную ситуацию.

Как установить DLL файл вы можете прочитать на страницы, в которой максимально подробно описан данный процесс.

Источник

Как установить libusb на windows 10

Сначала немного общих слов о пакете (библиотеке) V-USB (старое название AVR USB) компании Objective Development, и библиотеке libusb.

2. Скачайте пакет библиотеки V-USB со странички [2], ищите там кнопку Download. Версия пакета была представлена под именем avrusb-YYYYMMDD.zip. Скачивайте самую последнюю версию. 24 сентября 2008 года я скачал avrusb-20080418.zip размером в 424594 байт.

3. Распакуйте в любое место папку, содержащуюся в архиве. В моем архиве была папка avrusb-20080418, я её распаковал в папку c:avrprj.

Для компиляции firmware и ПО хоста нужны специальные программные пакеты, установку и использование которых рассмотрим далее.

6. Откомпилируем firmware из папки c:avrprjavrusb-20080418exampleshid-custom-rqfirmware. Запустим cmd, перейдем в эту папку (cd c:avrprjavrusb-20080418exampleshid-custom-rqfirmware). Введем команду make, которая откроет файл Makefile в текущей папке и выполнит имеющиеся там команды. Makefile в текущей папке сделан так, что если ввести просто make без параметров, то выведется подсказка:

Для компиляции firmware нужно ввести make hex, что и сделаем:

В результате в текущей папке получим файл main.hex, который и является прошивкой для микроконтроллера. Если у Вас подключен программатор avrdude (Makefile настроен на него), то для программирования кристалла просто введите make program.

testlibusb win01

Опишу установку драйверов поподробнее, потому что иногда у пользователей библиотеки бывают с этим проблемы, особенно когда они подключают новое USB-устройство к компьютеру, с другими VID и PID (даже если на нем уже ранее была установлена библиотека libusb). Проблема заключается в том, что новому устройству USB (с новыми VID и PID) требуется новый так называемый драйвер фильтра (filter driver). В процессе установки libusb-win32-devel-filter-X.X.X.X как раз и будет предложено установить драйвер фильтра на все обнаруженные USB устройства, а Ваша задача выбрать именно то устройство, которое нужно, и установить драйвер фильтра именно на него. Итак, скачиваем libusb-win32-devel-filter, например libusb-win32-devel-filter-1.2.2.0.exe, и запускаем. На запрос подтверждения запуска (если нельзя проверить издателя) щелкните на кнопку «Выполнить»:

libusb win32 devel filter 001

На приветствии визарда установки библиотеки LibUSB-Win32 тупо жмем Next:

libusb win32 devel filter 002

На запрос подтверждения принятия лицензии выбираем как обычно «I accept the agreement» и жмем Next:

libusb win32 devel filter 003

На окошке «важной информации» тупо жмем Next:

libusb win32 devel filter 004

Дальше предложат поменять путь и название папки, в которую будет установлена библиотека. Ничего менять не надо, тупо жмем Next:

libusb win32 devel filter 005

Дальше предложат поменять путь и название папки, в которой будут лежать ярлычки. Ничего менять не надо, тупо жмем Next:

libusb win32 devel filter 006

На этом установка библиотеки LibUSB завершена. Если оставить галочку «Launch filter installer wizard» и нажать кнопку Finish, то запустится мастер установки драйвера фильтра на найденные USB-устройства. Это важный шаг, который я решил вынести в отдельный раздел 8a.

libusb win32 devel filter 007

Теперь должны нормально компилироваться примеры ПО хоста командной строки, предназначенные для GCC. Если компиляция идет с ошибками, то возможно, что у Вас в папке C:Program FilesLibUSB-Win32 не хватает папок include и lib. Можете скачать установленный каталог LibUSB-Win32 полностью по ссылке [9].

8a. Установка драйвера фильтра. Как я уже упоминал, программы ПО хоста, написанные с использованием библиотеки libusb, на платформе Windows общаются с устройствами USB через так называемый драйвер фильтра. Если драйвер фильтра USB-устройства не установлен, то при попытке обращения к USB-устройству Вы можете получить сообщения типа «Could not find USB device «hardctrl-HID» with vid=0x16c0 pid=0x5df» (в этом примере отображены параметры «hardctrl-HID», vid=0x16c0, pid=0x5df, задаваемые в файле usbconfig.h, макросы USB_CFG_DEVICE_NAME, USB_CFG_VENDOR_ID, USB_CFG_DEVICE_ID соответственно). Проблема устраняется установкой драйвера фильтра на устройство. Визард установки драйвера фильтра запускается в процессе установки библиотеки libusb (процесс описан на предыдущем шаге), но можно также запустить визард драйвера фильтра (Filter Wizard) и отдельно из меню запуска программ:

libusb win32 devel filter 012

libusb win32 devel filter 008

Далее появится окошко, в котором визард отобразит все найденные USB-устройства, на которые можно установить драйвер фильтра библиотеки libusb. Нужно по значениям VID и PID найти в списке наше проблемное USB-устройство, выбрать его и нажать кнопку Install.

libusb win32 devel filter 009

Далее произойдет быстрая процедура установки драйвера фильтра:

libusb win32 devel filter 010

По окончании установки драйвера фильтра получим соответствующее сообщение. Теперь проблем с обращением к USB-устройству через библиотеку libusb не будет.

libusb win32 devel filter 011

9. Попробуем откомпилировать c:avrprjavrusb-20080418exampleshid-custom-rqcommandline (это ПО хоста, которое может управлять нашим устройством USB). Сначала отредактируем файл c:asmavrusb-20080513exampleshid-custom-rqcommandlineMakefile. Эти 2 строки надо закомментировать (комментарий начинается с символа # в начале строки):

далее, нужно изменить пути до файлов библиотеки. Было так:

теперь должно быть так (не спрашивайте меня, почему. Это мне стоило нескольких часов «плясок с бубном»):

Все, теперь можно компилировать. Как обычно, запускаем cmd и переходим в нашу папку (cd c:avrprjavrusb-20080418exampleshid-custom-rqcommandline). Вводим make, без параметров:

10. Теперь нужно собрать USB устройство по одной из схем в папке c:avrprjavrusb-20080418circuits. Можно купить готовую плату AVR-USB-MEGA16 или metaboard, см. [1].

11. Теперь нужно прошить программу в микроконтроллер (прошивку c:avrprjavrusb-20080418exampleshid-custom-rqfirmwaremain.hex). Как это делать, рассказывать не буду, в Интернете полно информации по теме. Ищите по ключевым словам ISP, avrdude, PonyProg, ITAJICE mkII.

12. Подключите Ваше устройство к компьютеру. Если Вы его собрали и прошили правильно, то появится сообщение, что обнаружено новое устройство LEDCtlHID:
insert LEDCtlHID1

а потом еще одно, USB Human Interface Device:
insert LEDCtlHID2

Если посмотреть в Диспетчере Устройств, то в папке Human Interface Devices появится 2 новых устройства:
insert LEDCtlHID3

Если посмотреть свойства USB Human Interface Device, то мы увидим имя LEDCtlHID, которое было задано в макросе USB_CFG_DEVICE_NAME (файл c:avrprjavrusb-20080513exampleshid-custom-rqfirmwareusbconfig.h):
insert LEDCtlHID4

13. Теперь попробуем поуправлять устройством. Сначала запустим set-led.exe без параметров, выведется подсказка:

Теперь мы можем командой «set-led.exe on» зажечь светодиод на макетной плате, а командой «set-led.exe off» его погасить. Наше устройство работает!

На этом все! Остается только изучать пробовать примеры один за другим (примеры описаны на шаге 4), изучать их код, а еще лучше на основе примера сделать собственное USB-устройство и программу для него.

[Устранение проблем]

8. Решение многих проблем описано в статье FAQ [10].

9. Трудности с поиском и закачкой программного обеспечения (MinGW, WinAVR, LibUSB, V-USB)? См. [16].

Источник

libusb0 dll не был найден

Первым делом:
Скачайте библиотеку — скачать libusb0.dll

Затем:
Поместите libusb0.dll в одну из следующих папок:

Если у вас 64-битная версия Windows, то поместите файл в:
«C:WindowsSysWOW64»

Если у вас 32-битная версия Windows, то поместите файл в:
«C:WindowsSystem32»

После этого
Перезагрузите компьютер, чтобы изменения вступили в силу.

Всё равно выдаёт ошибку libusb0.dll не был найден?

Тогда придётся установить этот файл вручную. Для этого:

Зайдите в меню «Пуск».
В строчке поиска введите «cmd». И запустите найденную программу от имени администратора.
В открывшемся окне введите «regsvr32 libusb0.dll «.

После этого снова перезагрузите компьютер. Теперь ошибка должна быть исправлена.

Если что-то не понятно прочитайте более подробную инструкцию — как установить dll файл. скачать dle 11.3

Описание

Автор

Architecture

Название

Размер

: 42496 Byte ( 41.5 KB )

Скачал сам поделись с друзьями. Поддержи сайт.

Нужна помощь в установке libusb0.dll?

Администрация сайта не несет ответственности за ваши действия

В Windows x64 необходимо поместить файл в директорию C:WindowsSysWOW64

Ошибки libusb0.dll

repair dНаиболее распространенные ошибки связанные с файлом.

Файл 0.dll — это файл динамически подключаемой библиотеки. Если быть точным, это компонент библиотеки LibUSB, которая отвечает за работу так называемого «ПО хоста USB», например, за работу программ, обеспечивающих взаимодействие ОС смартфона с операционной системой Вашего персонального компьютера. Ошибка в работе этих программ, сопровождающаяся соответствующим системным сообщением, нередко вызвана отсутствием этого файла.

libusb0

В чем причина того, что отсутствует файл? Причин может быть много. Сюда входит как неправильная установка LibUSB, так и сбой в работе библиотеки при экстренной остановке компьютера, а также многие другие причины, которых насчитывается в общей сложности более десяти. Результат же всегда один — отсутствие файла не дает Вам работать с любимым приложением и Вы не можете, например, перевести Ваш iPhone с помощью ПО на компьютере в режим восстановления. Что делать, если файл не найден?

Пути устранения ошибки с libusb0.dll

Многие пользователи пытаются сразу скачать libusb0.dll бесплатно для Windows и установить его вручную. Более правильным однако является первый вариант действий — переустановить весь пакет библиотеки LibUSB. Последнее сделать несложно, пакет доступен для скачивания в Сети, а его установка предполагает лишь следование подсказкам Мастера установки приложений.

Однако нередко бывает так, что после полной переустановки пакета сообщение об ошибке никуда не девается: файл все также отсутствует. В этом случае логичнее всего прибегнуть ко второму варианту: скачать libusb0.dll и установить его в ручную в необходимую системную папку. Еще один вариант развития событий — это случай, когда файл наличествует, но система постоянно сообщает об его отсутствии. Скорее всего, файл поврежден, а его замена на работоспособный также легко исправит данную ситуацию.

Как установить DLL файл вы можете прочитать на страницы, в которой максимально подробно описан данный процесс.

Источник

Скачать libusb0.dll

libusb0

Указанная библиотека реализована на языке программирования Си. Входит в пакет LibUsb. Функции библиотеки предназначены для обеспечения взаимодействия приложений с внешними устройствами по протоколу USB. Первая версия библиотеки разработана под Linux. В последствии появилась реализация под Windows. Библиотека находится в свободном доступе и используется программистами для подключения вышеназванных функции при написании офисных либо служебных приложений.

Ошибка может возникнуть по различным причинам. Файл может быть удален либо некорректно распакован в процессе установки приложения. Как правило, отсутствует файл при некорректном завершении процесса установки приложения. Либо при перезагрузке, связанной с внезапным отключением питания компьютера. Удаление файла могло произойти благодаря аппаратным сбоям, например, наличию поврежденных секторов на жестком диске, программным либо иным воздействиям. Могла быть вызвана в результате некорректной очистки реестра неопытным пользователем.

Для устранения ошибки следует либо установить пакет LibUsb либо скачать libusb0.dll и импортировать его в реестр. Следует убедиться, что библиотека будет корректно работать. Для этого необходимо скачать libusb0.dll бесплатно для Windows либо для иной операционной системы. Вариант переустановки приложения рассматривать не стоит, так как высока вероятность того, что в инсталляционном пакете искомый файл отсутствует. В этом случае переустановка попусту отнимет время, не приведя к желаемому результату. Файл библиотеки будет не найден.

Как исправить ошибку?

Способ 1.

Способ 2.

Это дополнительный вариант исправление данной ошибки, в котором добавляется файлы вручную и производиться их регистрация в системе.

Источник

Русские Блоги

Один, загрузка libusb

На официальном сайте http://libusb.info/ Его можно скачать, как показано ниже:

5ba0e771f8c82803cdc7ac9f56935f20

Загрузите libusb-1.0.22.tar.bz2 внутри

6a4d5cf02dbe507255f85a82cafccc1d

Во-вторых, установка libusb

1. Среда Ubuntu 16.04

2. Установка в основном делится на 3 этапа, а именно:

B: Выполните make для компиляции установочного пакета.

C: выполнить make install для установки

3. Конкретный рабочий процесс:

1) В домашнем каталоге создайте новый каталог libusb (mkdir libusb), как показано ниже:

facd35fb7c4e96644ae2cc57361a014c

Разархивируйте libusb-1.0.22.tar.bz2: tar xjvf libusb-1.0.22.tar.bz2

b07b731a4acba7ff9f6f7484b8415296

Каталог после распаковки выглядит следующим образом:

705d550cbe264a57c22af5d1a45dd9e3

b4933cac1bbe81ea330d822a55910a64

Выполните команду, вы обнаружите ошибку выполнения, configure: error: udev support requested but libudev header not installed

—build = i686-linux указать платформу компиляции программного обеспечения

—host = arm-linux Укажите операционную платформу программного обеспечения

—prefix Укажите каталог установки программного обеспечения

Если в Платформа встроенного процессора руки Application, то вам необходимо настроить следующее:

73235d46933fe9140b28c8875a5f7ad7

Если он используется на локальном ПК, требуется следующая конфигурация:

874156d81de76ec710bc59a765b14630

bde3426e84ce166e7642b7156fd160f5

feceb1486480c81e678d2ef08ecbf87e

5. Выполните команду make install, как показано ниже:

928001ab85b554e1cc25ec3f3a65b1e7

Обычно он может работать нормально, но если текущий пользователь системы является обычным пользователем, будет сообщено об ошибке, как показано ниже:

e3c73844daaddfbc865221d8b2bfe284

Сообщение об ошибке заключается в том, что разрешения нет, поэтому вам нужно добавить sudo, поэтому выполните команду, sudo make install

Импорт завершен, как показано ниже:

3c50d0fddc6e244b11e926be92a8dae3

f3cfae7baa9b1a11ac937308889f511e

Libraries have been installed in:

27136f168f378c252f4b1d7ecc2c50a7

На этом этапе libusb успешно установлен.

Три, тест libusb

В исходном каталоге libusb есть пример папки, в которой содержится исходный файл тестовой программы listdev.c, предоставленный libusb (список устройств USB)

При компиляции мы можем использовать встроенный make-файл для создания исполняемых файлов или использовать следующие операции:

Если во время работы вы столкнетесь со следующими проблемами, решения следующие:

Источник

Понравилась статья? Поделить с друзьями:
  • Как установить microsoft edge в windows 10 ltsc
  • Как установить libreoffice на windows 10
  • Как установить microsoft defender в windows 10
  • Как установить lexia 3 на windows xp
  • Как установить microsoft access на windows 10 бесплатно