Libusb linux для чего

libusb-0.1.8

Введение в libusb

Пакет libusb содержит библиотеку, используемую некоторыми приложениями для доступа к USB устройствам.

Информация о пакете

Контрольная сумма: 75655870fb7bb661e6fbd57cbfe81bb2

Требуемое дисковое пространство: 4.5 MB (включая установку HTML документации)

Расчетное время сборки: 0.25 SBU

Зависимости libusb

Опционально

OpenJade-1.3.2 и DocBook SGML DTD-3.1 (оба необходимы для сборки HTML документации)

Установка libusb

Установим libusb запуском следующих команд:

А теперь, как пользователь root:

Если вы собрали HTML документацию, установите ее запуском следующих команд:

Описание команд

libtoolize -f : Эта команда заставит сборку использовать систему установленных средств libtool , так что разделяемые библиотеки создаются правильно.

autoreconf -f : Эта команда пересоздаст некоторые из средств Autotools, необходимые для запуска libtoolize .

—disable-build-docs: Этот ключ выключит сборку документации. Если вы захотите собрать документацию, вам может понадобиться удалить описание каталога OpenSP из системы каталогов SGML . Используйте следующую команду перед сборкой пакета для выполнения этого:

Конфигурация libusb

libusb требует файловую систему ядра usbfs, подмонтированную в /proc/bus/usb. Приложения требуют, чтобы файлы в этой директории были доступны пользователю, иногда и для чтения и для записи. Для ограничения доступа к USB устройствам, убедитесь, что группа usb присутствует в вашей системе. Если необходимо, создайте группу usb используя следующую команду:

Убедитесь, что у вас поддержка “ файловой системы USB устройств ” вкомпилирована прямо в ядро или выполнена в виде модуля (наличие модуля “ usbcore ” в файле /etc/sysconfig/modules). У вас должно быть содержимое, похожее на строку ниже, в файле /etc/fstab Установленные программы: usb-config

Короткое описание

скрипт, предоставляющий правильные флаги для компилятора и компоновщика программ, использующих libusb.

библиотеки, содержащие функции C для доступа к USB устройствам.

Последнее обновление 2005-02-06 14:09:05 -0700

Источник

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

Linux libusb USB development (два) — установка и отладка libusb

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

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

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

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

1. Среда Ubuntu 16.04

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

О: Запустите ./configure, чтобы настроить установочный пакет.

Читайте также:  Что делать если при включении windows выключается

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

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

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

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

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

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

2) Выполните команду ./configer, чтобы настроить пакет установки, как показано ниже:

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

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

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

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

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

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

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

В то же время вам нужно добавить —disable -udev после команды ./configure

Таким образом, команда выглядит так: ./configure —build = x86_64-linux —disable-udev

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

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

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

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

Libraries have been installed in:

В красном кружке над / usr / local / lib / * Это говорит о том, что библиотека была добавлена ​​в каталог / usr / local / lib, поэтому, когда мы программируем на основе libusb, нам нужно включить эту библиотеку * / Добавить при компиляции —lusb-1.0 По этой причине библиотека помещается в этот каталог, и ее необходимо связать.

Как показано ниже:

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

Три, тест libusb

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

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

gcc -I/usr/local/include/libusb-1.0 listdevs.c -L/usr/local/lib -lusb-1.0

(-I содержит файлы заголовков; -L библиотека ссылок)

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

Источник

Libusb linux для чего

A cross-platform user library to access USB devices

Overview

libusb is a C library that provides generic access to USB devices. It is intended to be used by developers to facilitate the production of applications that communicate with USB hardware.

Читайте также:  Настройка автозапуска windows server

It is portable: Using a single cross-platform API, it provides access to USB devices on Linux, macOS, Windows, etc.

It is user-mode: No special privilege or elevation is required for the application to communicate with a device.

It is version-agnostic: All versions of the USB protocol, from 1.0 to 3.1 (latest), are supported.

What platforms are supported?

Linux, macOS, Windows (Vista and newer), Android, OpenBSD/NetBSD, Haiku, Solaris.

Sounds good! How do I get started?

If you are using Linux, chances are your distribution already includes libusb, so you probably just need to reference the libusb header in your source.

For other platforms, or if you want to use the very latest, you are encouraged to recompile from source. Please check the Downloads menu.

If you prefer, you can also access the source directly from github.

Once you have secured your access to the library and its header, please check the libusb API or the libusb samples.

What happened to the old site?

The old site (.org) is now obsolete, please use libusb.info.
All of the current libusb development team has moved to libusb.info.

For additional information, please consult the FAQ or the Wiki.

Источник

codebot

LibUSB. Документация

libusb описание.

Эта документация даст обзор работе API v0.1 libusb и какое имеет это отношение к USB. Работа быстро развивается в новую версию libusb, чтобы стать v1.0,в которой будет переработанны API и собирается устаревший v0.1. Вы можете желать проверить сайт libusb, чтобы видеть — стабильное и рекомендуемое.

Эта документация допускает что вы имеете хорошее понимание USB и как это работает. Если у вас нет хорошего понимания USB, рекомендовано, чтобы вы почитали спецификацию USB v2.0.

libusb работает с USB 1.1, тем не менее в перспективах libusb, USB 2.0 не будет значительно изменен для libusb.

2. Поддержка современных ОС

    Linux (2.2, 2.4 and on)
    FreeBSD, NetBSD and OpenBSD
    Darwin/MacOS X

Это внешний API для использования в приложений.
API — сравнительно небольшой и разработанн, чтобы иметь закрытые аналогий в спецификации USB. v0.1 API по большей части был хакнут и kludged вместе без значительной преднамеренности и в результате, пропускается довольно много особенностей. В v1.0 собираемся исправить это.

Читайте также:  Open core legacy patcher mac os monterey

Устройства и интерфейсы
libusb API связывают открытое устройство со специфическим интерфейсом. Это означает, что если Вы хотите потребовать многочисленные интерфейсы на устройстве, вы должны открывать долгое время устройства, чтобы получать один usb_dev_handle для каждого интерфейса с которого вы хотите передавать. Не забывайте вызывать usb_claim_interface.

Тайм-ауты
Тайм-аут в libusb всегда определены в течение миллисекунд.

Типы Данных
libusb использует как абстрагировавшее так и не абстрагированные структуры, чтобы поддерживать мобильность.

Синхронный
Все функции в libusb v0.1 синхронные, это означает, что функции блокируют и ждут операцию, чтобы завершиться или тайм-аут перед обратным выполнением в вызывающее приложение. Асинхронная операция будет поддержана в v1.0, но не v0.1.

Источник

Обмениваемся данными с USB девайсом при помощи libusb

LibUsb — библиотека для языка C, которая позволяет обмениваться данными с устройствами по протоколу usb.

У меня есть устройсво на базе STM32F407VGT6 микроконтроллера.
Давайте рассмотрим механизм посылки и принятия данных.

Прежде всего стоит отметить, что данные можно слать разными способами. Мы рассмотрим асинхронную передачу прерывания ( interrapt transfer )
Этот тип передачи позволяет передавать небольшие объёмы данных без получения подтверждения о получении. Тобеш послали и забыли))

При работе с libusb следует помнить, что его нужно инициализировать:

Теперь получим handle устройства:

Я считаю, что вы знаете Vendor ID и Product ID вашего устройства. Эти данные редко меняются, поэтому я задал их define`ом.

Если устройство не обнаружено handle = NULL :

Кроме того, если система уже захватила контроль над устройством его нужно у неё забрать! Ато малоли чего она туда нашлёт.

DEV_INTF — интерфейс устройства. Он тоже статичен, а указывать нужно из-за того, что он может быть не один.
Такие параметры удобно узнавать при помощи команды

Теперь захватываем интерфейс:

Теперь можно читать данные. У меня «реализация usb мышки» такчто читаем по 4 байта:

Всё это можно делать в бесконечном цикле. Для наглядности.
В первой строке мы читаем данные в буфер buf из устройства handle, через точку EP_IN (для мыши это 0x81).
Читаем DATA_SIZE байт. Причём int ret получит число реально считанных байт. А ждать данные мы будем не больше 1000мс.
Буфер я объявлял так:

Самое забавное, что для посылки данные делается всё точно также, за исключением выбора конечной точки EP_OUT (у мыши 0x01 но смысла туда чтот слать я не вижу). Ну и конечно буфер перед этим нужно заполнить.

Для компиляции в linux нужно прилинковать библиотеку usb-1.0.

Источник

Оцените статью