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)
andlibusbK (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
andlibusbK
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
, whenLIBUSB_RECIPIENT_INTERFACE
is used for the transfer, theWinUSB
DLL forces the low byte ofwIndex
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 Windowslibusb_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 changeSourceDisksFiles.NTamd64
toSourceDisksFiles.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 не является известной в кругах начинающих пользователей, поскольку практически никто не сталкивается с ней в ходе своего обычного взаимодействия с операционной системой. Большинство узнает об этом файле только при запуске стороннего программного обеспечения, когда на экране появляется уведомление об его отсутствии. В рамках сегодняшнего материала мы бы хотели рассказать все о данном файле и рассмотреть доступные методы решения возникшей неполадки.
Изначально небольшая утилита с графическим интерфейсом под названием LibUSB была предназначена исключительно для формирования файлов форматов INF из информации подключенных USB-устройств. Это помогало пользователям обмениваться драйверами, генерировать их особенные копии или даже использовать в текущей операционной системе. Позже сторонние разработчики начали добавлять элементы этого компонента в свои продукты, переделав функционирование утилиты под формат DLL. Теперь это ПО не пользуется популярностью, однако многие до сих пор задействуют его в своем софте, назначая этому компоненту выполнение определенных опций.
Если по каким-то причинам файл действительно отсутствует, вы можете как найти его самостоятельно в исходниках (Способ 6), так и скачать его отдельно, например, с нашего сайта.
Скачать libusb0.dll
Полученную библиотеку необходимо переместить в основную папку приложения, которое сообщает об отсутствии DLL, или в системную директорию C:WindowsSystem32
или C:WindowsSysWOW64
(отталкивайтесь от разрядности ОС). Возможно, при повторном появлении ошибки, понадобится провести регистрацию файла (Способ 4).
Способ 2: Обновление драйверов Windows
Если вы пропустили предыдущий вариант, обратите внимание не на сам рассматриваемый файл, а на актуальность абсолютно всех драйверов операционной системы, обязательно включая в этот список и периферийные устройств, которые соединяются через USB. Виндовс иногда некорректно понимает ошибку библиотеки, интерпретировав ее по-своему, однако на самом деле файл все это время присутствовал, а его нормальное функционирование невозможно из-за конфликта с другими объектами. Потому вам следует выбрать оптимальный метод и с его помощью проверить наличие апдейтов для каждого оборудования. Детальнее об этом читайте в инструкции далее.
Подробнее: Обновление драйверов в Windows
Способ 3: Установка последней версии сборки LibUSB
Этот вариант подойдет только тем юзерам, кто использует программу LibUSB. Как уже было сказано ранее, ее основное предназначение заключается в создании файлов-драйверов для подключенных USB-устройств. Использование устаревшей версии данного софта может привести к тому, что во время обращения к нему на экране появится уведомление об отсутствии рассматриваемой динамически подключаемой библиотеки. Поэтому обязательным условием использования LibUSB является загрузка последней версии. Сделать это можно на официальном сайте, что выглядит следующим образом:
Скачать LibUSB с официального сайта
- Перейдите по ссылке выше, где нажмите на кнопку «Скачать».
- Загрузка архива начнется автоматически. По завершении его нужно будет распаковать через любой удобный соответствующий софт.
- Для дальнейшего запуска программы требуется перейти в папку «bin».
- Дважды кликните левой кнопкой мыши по находящемуся там исполняемому файлу.
- Ознакомьтесь с информацией о программе и переходите далее, кликнув по кнопке «Next».
- Если уже на этом этапе не возникло никаких неполадок, скорее всего, инсталляция последней версии LibUSB помогла решить существующие неполадки, а значит, можно смело приступать к созданию INF-файлов.
Если вы не ставите перед собой цель работать с рассмотренным софтом, все равно рекомендуется установить его. В некоторых случаях это помогает избавиться от существующей проблемы, однако нет абсолютно никаких гарантий действенности такого варианта.
Способ 4: Ручная регистрация libusb0.dll
Давайте теперь рассмотрим ту ситуацию, когда при инсталляции стороннего софта стандартная процедура регистрации libusb0.dll не произошла или что-то спровоцировало ее сброс. Встречается такое довольно редко, но не стоит исключать возможность появления подобной трудности. Справиться с ней можно самостоятельно, проверив регистрацию и произведя ее заново, что осуществляется путем ввода соответствующих команд в стандартной консоли.
- Запустите «Командную строку» через меню «Пуск». Обязательно делайте это от имени администратора, чтобы не получить уведомление об отсутствии прав для запуска системных утилит.
- После появления привычного окна консоли введите туда команду
regsvr32 /u libusb0.dll
, активировав ее нажатием по клавише Enter. Это действие отменит текущую регистрацию, о чем будет свидетельствовать всплывающее окно. Закройте его и переходите к следующему шагу. - Осталось только написать команду
regsvr32 /i libusb0.dll
, которая создаст повторную регистрацию для динамически подключаемой библиотеки.
После этого рекомендуется сразу же перейти к проверке эффективности способа, поскольку перезагрузка компьютера в этом случае не требуется и изменения вступают в силу сразу же после активации команд. Если это не принесло никакого результата, переходите к рассмотрению следующих инструкций.
Способ 5: Восстановление системных файлов Windows
Существует небольшая вероятность того, что при работе операционной системой произошел какой-либо сбой, вызвавший нарушение целостности важных файлов. Это может привести не только к проблемам с объектом libusb0.dll, но и вызвать более глобальные трудности. К счастью, проверить ОС на подобные повреждения очень просто, ведь все действия за пользователя осуществляют утилиты SFC и DISM. Первая производит исправление системных файлов, а если появляется ошибка, свидетельствующая о повреждении резервного хранилища, следует запустить DISM для его восстановления, а потом уже возвращаться к SFC. Обо всем этом в максимально развернутом виде читайте в руководстве далее.
Подробнее: Использование и восстановление проверки целостности системных файлов в Windows
Способ 6: Использование исходников libusb
На последнее место мы поставили способ, подходящий исключительно для разработчиков программного обеспечения. Его суть заключается в том, чтобы рассказать опытным юзерам о доступности исходников библиотек от libusb. Если во время тестирования софта у вас возникли проблемы с рассматриваемым сегодня файлом, рекомендуем обратить внимание именно на этот пакет последней версии. Сейчас мы не будем останавливаться на правильном его применении в своем проекте, а лишь продемонстрируем банальную процедуру скачивания.
Скачать libusb с GitHub
- Переместитесь на официальный ресурс GitHub, кликнув по ссылке выше. Выберите один из предложенных вариантов загрузки.
- Ознакомьтесь с полным содержимым каталога и нажмите на зеленую кнопку «Clone or download».
- Кликните по «Download ZIP».
- Ожидайте окончания скачивания каталога, а затем откройте его через любой удобный архиватор.
- Теперь вы можете ознакомиться с содержанием пакета и использовать необходимые его элементы при взаимодействии со своим проектом.
Выше мы предложили вашему вниманию шесть возможных вариантов решения неполадки с отсутствием 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.
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.
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 (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» ..
nmakeTried 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
-
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).
Опишу установку драйверов поподробнее, потому что иногда у пользователей библиотеки бывают с этим проблемы, особенно когда они подключают новое 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 тупо жмем Next:
На запрос подтверждения принятия лицензии выбираем как обычно «I accept the agreement» и жмем Next:
На окошке «важной информации» тупо жмем Next:
Дальше предложат поменять путь и название папки, в которую будет установлена библиотека. Ничего менять не надо, тупо жмем Next:
Дальше предложат поменять путь и название папки, в которой будут лежать ярлычки. Ничего менять не надо, тупо жмем Next:
На этом установка библиотеки LibUSB завершена. Если оставить галочку «Launch filter installer wizard» и нажать кнопку Finish, то запустится мастер установки драйвера фильтра на найденные USB-устройства. Это важный шаг, который я решил вынести в отдельный раздел 8a.
Теперь должны нормально компилироваться примеры ПО хоста командной строки, предназначенные для 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) и отдельно из меню запуска программ:
После запуска фильтра появится окно, где выбирается необходимое действие — установить драйвер фильтра на USB-устройство, удалить ранее установленный на USB-устройство драйвер фильтра, удалить все установленные драйвера фильтра со всех USB-устройств. В случае проблем с доступом к USB-устройству нам нужно установить драйвер фильтра, поэтому выбираем 1-й пункт, «Install a device filter»:
Далее появится окошко, в котором визард отобразит все найденные USB-устройства, на которые можно установить драйвер фильтра библиотеки libusb. Нужно по значениям VID и PID найти в списке наше проблемное USB-устройство, выбрать его и нажать кнопку Install.
Далее произойдет быстрая процедура установки драйвера фильтра:
По окончании установки драйвера фильтра получим соответствующее сообщение. Теперь проблем с обращением к USB-устройству через библиотеку libusb не будет.
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:
а потом еще одно, USB Human Interface Device:
Если посмотреть в Диспетчере Устройств, то в папке Human Interface Devices появится 2 новых устройства:
Если посмотреть свойства USB Human Interface Device, то мы увидим имя LEDCtlHID, которое было задано в макросе USB_CFG_DEVICE_NAME (файл c:avrprjavrusb-20080513exampleshid-custom-rqfirmwareusbconfig.h):
Никакие драйвера нам не потребовались — наше устройство 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), упоминавшееся в этой статье.
Содержание
- libusb0.dll
- Пути устранения ошибки с libusb0.dll
- Как установить libusb на windows 10
- libusb0 dll не был найден
- Всё равно выдаёт ошибку libusb0.dll не был найден?
- Нужна помощь в установке libusb0.dll?
- Ошибки libusb0.dll
- Пути устранения ошибки с libusb0.dll
- Скачать libusb0.dll
- Как исправить ошибку?
- Способ 1.
- Способ 2.
- Русские Блоги
- Один, загрузка libusb
- Во-вторых, установка libusb
- Три, тест libusb
libusb0.dll
Файл 0.dll — это файл динамически подключаемой библиотеки. Если быть точным, это компонент библиотеки LibUSB, которая отвечает за работу так называемого «ПО хоста USB», например, за работу программ, обеспечивающих взаимодействие ОС смартфона с операционной системой Вашего персонального компьютера. Ошибка в работе этих программ, сопровождающаяся соответствующим системным сообщением, нередко вызвана отсутствием этого файла.
В чем причина того, что отсутствует файл? Причин может быть много. Сюда входит как неправильная установка 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.
Опишу установку драйверов поподробнее, потому что иногда у пользователей библиотеки бывают с этим проблемы, особенно когда они подключают новое 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 тупо жмем Next:
На запрос подтверждения принятия лицензии выбираем как обычно «I accept the agreement» и жмем Next:
На окошке «важной информации» тупо жмем Next:
Дальше предложат поменять путь и название папки, в которую будет установлена библиотека. Ничего менять не надо, тупо жмем Next:
Дальше предложат поменять путь и название папки, в которой будут лежать ярлычки. Ничего менять не надо, тупо жмем Next:
На этом установка библиотеки LibUSB завершена. Если оставить галочку «Launch filter installer wizard» и нажать кнопку Finish, то запустится мастер установки драйвера фильтра на найденные USB-устройства. Это важный шаг, который я решил вынести в отдельный раздел 8a.
Теперь должны нормально компилироваться примеры ПО хоста командной строки, предназначенные для 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) и отдельно из меню запуска программ:
Далее появится окошко, в котором визард отобразит все найденные USB-устройства, на которые можно установить драйвер фильтра библиотеки libusb. Нужно по значениям VID и PID найти в списке наше проблемное USB-устройство, выбрать его и нажать кнопку Install.
Далее произойдет быстрая процедура установки драйвера фильтра:
По окончании установки драйвера фильтра получим соответствующее сообщение. Теперь проблем с обращением к USB-устройству через библиотеку libusb не будет.
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:
а потом еще одно, USB Human Interface Device:
Если посмотреть в Диспетчере Устройств, то в папке Human Interface Devices появится 2 новых устройства:
Если посмотреть свойства USB Human Interface Device, то мы увидим имя LEDCtlHID, которое было задано в макросе USB_CFG_DEVICE_NAME (файл c:avrprjavrusb-20080513exampleshid-custom-rqfirmwareusbconfig.h):
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
Наиболее распространенные ошибки связанные с файлом.
Файл 0.dll — это файл динамически подключаемой библиотеки. Если быть точным, это компонент библиотеки LibUSB, которая отвечает за работу так называемого «ПО хоста USB», например, за работу программ, обеспечивающих взаимодействие ОС смартфона с операционной системой Вашего персонального компьютера. Ошибка в работе этих программ, сопровождающаяся соответствующим системным сообщением, нередко вызвана отсутствием этого файла.
В чем причина того, что отсутствует файл? Причин может быть много. Сюда входит как неправильная установка LibUSB, так и сбой в работе библиотеки при экстренной остановке компьютера, а также многие другие причины, которых насчитывается в общей сложности более десяти. Результат же всегда один — отсутствие файла не дает Вам работать с любимым приложением и Вы не можете, например, перевести Ваш iPhone с помощью ПО на компьютере в режим восстановления. Что делать, если файл не найден?
Пути устранения ошибки с libusb0.dll
Многие пользователи пытаются сразу скачать libusb0.dll бесплатно для Windows и установить его вручную. Более правильным однако является первый вариант действий — переустановить весь пакет библиотеки LibUSB. Последнее сделать несложно, пакет доступен для скачивания в Сети, а его установка предполагает лишь следование подсказкам Мастера установки приложений.
Однако нередко бывает так, что после полной переустановки пакета сообщение об ошибке никуда не девается: файл все также отсутствует. В этом случае логичнее всего прибегнуть ко второму варианту: скачать libusb0.dll и установить его в ручную в необходимую системную папку. Еще один вариант развития событий — это случай, когда файл наличествует, но система постоянно сообщает об его отсутствии. Скорее всего, файл поврежден, а его замена на работоспособный также легко исправит данную ситуацию.
Как установить DLL файл вы можете прочитать на страницы, в которой максимально подробно описан данный процесс.
Источник
Скачать libusb0.dll
Указанная библиотека реализована на языке программирования Си. Входит в пакет LibUsb. Функции библиотеки предназначены для обеспечения взаимодействия приложений с внешними устройствами по протоколу USB. Первая версия библиотеки разработана под Linux. В последствии появилась реализация под Windows. Библиотека находится в свободном доступе и используется программистами для подключения вышеназванных функции при написании офисных либо служебных приложений.
Ошибка может возникнуть по различным причинам. Файл может быть удален либо некорректно распакован в процессе установки приложения. Как правило, отсутствует файл при некорректном завершении процесса установки приложения. Либо при перезагрузке, связанной с внезапным отключением питания компьютера. Удаление файла могло произойти благодаря аппаратным сбоям, например, наличию поврежденных секторов на жестком диске, программным либо иным воздействиям. Могла быть вызвана в результате некорректной очистки реестра неопытным пользователем.
Для устранения ошибки следует либо установить пакет LibUsb либо скачать libusb0.dll и импортировать его в реестр. Следует убедиться, что библиотека будет корректно работать. Для этого необходимо скачать libusb0.dll бесплатно для Windows либо для иной операционной системы. Вариант переустановки приложения рассматривать не стоит, так как высока вероятность того, что в инсталляционном пакете искомый файл отсутствует. В этом случае переустановка попусту отнимет время, не приведя к желаемому результату. Файл библиотеки будет не найден.
Как исправить ошибку?
Способ 1.
Способ 2.
Это дополнительный вариант исправление данной ошибки, в котором добавляется файлы вручную и производиться их регистрация в системе.
Источник
Русские Блоги
Один, загрузка libusb
На официальном сайте http://libusb.info/ Его можно скачать, как показано ниже:
Загрузите libusb-1.0.22.tar.bz2 внутри
Во-вторых, установка libusb
1. Среда Ubuntu 16.04
2. Установка в основном делится на 3 этапа, а именно:
B: Выполните make для компиляции установочного пакета.
C: выполнить make install для установки
3. Конкретный рабочий процесс:
1) В домашнем каталоге создайте новый каталог libusb (mkdir libusb), как показано ниже:
Разархивируйте libusb-1.0.22.tar.bz2: tar xjvf libusb-1.0.22.tar.bz2
Каталог после распаковки выглядит следующим образом:
Выполните команду, вы обнаружите ошибку выполнения, configure: error: udev support requested but libudev header not installed
—build = i686-linux указать платформу компиляции программного обеспечения
—host = arm-linux Укажите операционную платформу программного обеспечения
—prefix Укажите каталог установки программного обеспечения
Если в Платформа встроенного процессора руки Application, то вам необходимо настроить следующее:
Если он используется на локальном ПК, требуется следующая конфигурация:
5. Выполните команду make install, как показано ниже:
Обычно он может работать нормально, но если текущий пользователь системы является обычным пользователем, будет сообщено об ошибке, как показано ниже:
Сообщение об ошибке заключается в том, что разрешения нет, поэтому вам нужно добавить sudo, поэтому выполните команду, sudo make install
Импорт завершен, как показано ниже:
Libraries have been installed in:
На этом этапе libusb успешно установлен.
Три, тест libusb
В исходном каталоге libusb есть пример папки, в которой содержится исходный файл тестовой программы listdev.c, предоставленный libusb (список устройств USB)
При компиляции мы можем использовать встроенный make-файл для создания исполняемых файлов или использовать следующие операции:
Если во время работы вы столкнетесь со следующими проблемами, решения следующие:
Источник