nixp.ru v3.0

18 октября 2017,
среда,
03:10:36 MSK

DevOps с компанией «Флант»
avroman написал 4 мая 2009 года в 14:42 (4222 просмотра) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 4 комментария на сайте.

Здравствуйте, я пишу open source проект для LINUX. Этот проект включает в себя разработку прибора основанном на протоколе HID USB.

Я уже написал FIRMWARE для этого прибора и он работает в среде WINDOWS. Также, команда lsbusb показывает, что прибор обнаружен.

Сейчас мне надо написать программу для линукса которая будет соединяться с моим прибором и посылать ему данные по средствам USB HID протокола.

Я уже долго бьюсь над этой программой но нечего вразумительного не могу не найти не написать

Вопрос такой:

1. Какими библиотеками и функциями надо пользоваться, что бы обнаружить девайс (разговор идет о программировании на языке С)? Если можно дать пример кода, я буду блогадарен.

2. Может, кто подскажет хорошую литературу для новичков в плане программирования USB под линукс.

3. Может, кто сможет дать ссылку на качественный пример кода.

Заранее благодарен всем ответившим.

Дмитрий Шурупов

Сам не сталкивался, но гугл выдал статью «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/

avroman

Тогда такой вопрос, когда я подлючаю 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.»

avroman

Там нет инфвы как обнаружить девайс, там написано как в него писать.

Я читал этот докемент он мне помог, но нет что бы.

Может этим кто то уже занимался, и имеет опыт?

avroman

Dmitry Shurupov спасибо за то что вы дали мне ссылку LINUX JOURNAL, я думаю что я нашел то что нужно:

http://www.linuxjournal.com/article/8145

А вот я бился в этом гугле несколько дней…

Дмитрий Шурупов

О, замечательно! :-)

Будем рады увидеть здесь какие-нибудь результаты. Чтобы следующим, кто столкнется с подобной проблемой, было проще.

avroman

Докопался до истины !!! Работаю с libusb, там всё очень просто. Но вот такая проблема, я не могу открыть доступ к девайсу если я не запускаю скомпелированный код через sudo. Можно ли как то с этим бороться? Что бы всё время не писать sudo?

Дмитрий Шурупов

Из средств операционной системы (без вмешательства в код программы)… Сменить права доступа на файл устройства? Поставить suid bit на исполняемый файл программы (опасное мероприятие в плане безопасности)?