Здравствуйте, я пишу open source проект для LINUX. Этот проект включает в себя разработку прибора основанном на протоколе HID USB.
Я уже написал FIRMWARE для этого прибора и он работает в среде WINDOWS. Также, команда lsbusb показывает, что прибор обнаружен.
Сейчас мне надо написать программу для линукса которая будет соединяться с моим прибором и посылать ему данные по средствам USB HID протокола.
Я уже долго бьюсь над этой программой но нечего вразумительного не могу не найти не написать
Вопрос такой:
1. Какими библиотеками и функциями надо пользоваться, что бы обнаружить девайс (разговор идет о программировании на языке С)? Если можно дать пример кода, я буду блогадарен.
2. Может, кто подскажет хорошую литературу для новичков в плане программирования USB под линукс.
3. Может, кто сможет дать ссылку на качественный пример кода.
Заранее благодарен всем ответившим.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Сам не сталкивался, но гугл выдал статью «Writing a Simple USB Driver» (http://www.linuxjournal.com/article/7353) от одного из ключевых разработчиков Linux-ядра Greg Kroah-Hartman. Вдруг поможет :-)
И, конечно же, никто не отменял родную документацию по реализации USB в Linux-ядре. Она поставляется с исходниками ядра. Можно найти и в онлайне — например, здесь: http://www.mjmwired.net/kernel/Documentation/usb/
Там есть и ссылки на другие ресурсы документации — http://www.mjmwired.net/kernel/Documentation/usb/usb-help.txt
Среди перечисленных там ресурсов стоит выделить http://www.linux-usb.org/
Тогда такой вопрос, когда я подлючаю HID device то Линукс уже находит для него стандартный драйвер. Написание нового дравера разве не приведет к конфликту? Да и надо ли вообще писать драйвер, когда уже есть в системе решение.
Тогда…
«USB HID for Linux USB": http://www.frogmouth.net/hid-doco/Linux-HID.pdf
«This document is an early draft of a guide to using USB Human Interface Devices with the GNU/Linux operating system. It describes how Human Interface Device (HID) class devices are handled, and how to program them, primarily focussing on user-space interfaces.»
Единственный минус — «This document is matched to Linux kernel revision 2.4.19-pre7. Some of this information may not work in exactly the same way on earlier or kernel revisions. Known differences to the 2.5. series kernels are also included where appropriate.»
Там нет инфвы как обнаружить девайс, там написано как в него писать.
Я читал этот докемент он мне помог, но нет что бы.
Может этим кто то уже занимался, и имеет опыт?
Dmitry Shurupov спасибо за то что вы дали мне ссылку LINUX JOURNAL, я думаю что я нашел то что нужно:
http://www.linuxjournal.com/article/8145
А вот я бился в этом гугле несколько дней…
О, замечательно! :-)
Будем рады увидеть здесь какие-нибудь результаты. Чтобы следующим, кто столкнется с подобной проблемой, было проще.
Докопался до истины !!! Работаю с libusb, там всё очень просто. Но вот такая проблема, я не могу открыть доступ к девайсу если я не запускаю скомпелированный код через sudo. Можно ли как то с этим бороться? Что бы всё время не писать sudo?
Из средств операционной системы (без вмешательства в код программы)… Сменить права доступа на файл устройства? Поставить suid bit на исполняемый файл программы (опасное мероприятие в плане безопасности)?