2012-03-02 24 views
7

Badam sposoby komunikowania się z urządzeniem USB w systemie Linux i wolę nie pisać sterownika jądra Linuksa. Rozumiem, że libusb istnieje i jest biblioteką użytkownika, która działałaby, ale nasze wbudowane urządzenie nie obsługuje usbfs (i byłoby naprawdę ciężko zmienić jądra, aby dodać obsługę).Uzyskiwanie dostępu do Linux/dev/USB jako plików standardowych do komunikacji z urządzeniem USB

Moje pytanie brzmi w zasadzie: czy jest możliwe/zalecane komunikowanie się z urządzeniem USB przez bezpośrednie czytanie i pisanie do pliku/dev/USB lub udev odpowiadającego urządzeniu USB, tym samym pomijając potrzebę niestandardowego systemu Linux Sterownik i usbfs?

Mam nadzieję, że możliwe jest komunikowanie się za pomocą protokołu urządzeń USB poprzez odczytywanie/zapisywanie pakietów protokołów bezpośrednio poprzez polecenia odczytu/zapisu typu pliku po otwarciu pliku urządzenia/dev/USB lub udev.

Myśli i sugestie proszę.

FOLLOW UP:

Ponieważ urządzenie USB Musiałem porozmawiać jest urządzeniem klasy USB HID, byłem w stanie wykorzystać libudev a średnia Linux sterownik USB HID RAW przez czytanie/pisanie bezpośrednio do/dev/hidraw0 (lub odpowiednie urządzenie/dev/hidraw). Nie trzeba było pisać niestandardowego sterownika dla prostego urządzenia USB HID.

Odpowiedz

4

Jim, nie sądzę, że można uciec od konieczności napisania sterownika i po prostu uda się odczytać plik USB w /dev. Bo kto definiuje, co powinno się zdarzyć, gdy robisz read() na pliku urządzenia USB? I kto definiuje, jakie działanie należy zainicjować po wywołaniu sysioctl()? Twój sterownik! Innymi słowy, pliki urządzeń same nie są zdolne do niczego, dopóki nie są obsługiwane przez podstawowe sterowniki. W rzeczywistości możesz traktować pliki urządzeń jako abstrakcję podstawowego sterownika! Tak więc, bez kierowcy, nie korzystanie z pliku urządzenia :(

Proponuję przejść następujących artykułów o tym, jak napisać sterownik, a także zrozumieć USB internals-

  1. http://www.linux-usb.org/USB-guide/c15.html

  2. http://www.linuxjournal.com/article/4786 (Nieco przestarzały)

+0

Dziękuję Pavan, właśnie to uznałem za odpowiedź: nie powinno być zbyt trudno po prostu iść do przodu i używać li busb. – Chimera

+0

Sterownik USB to ciekawy element! Bardzo długo chciałem napisać coś na ten temat. Chciałbym poznać twoje postępy w tym, Jim! –

+0

Ok Pavan, będę Cię na bieżąco! :-) – Chimera

Powiązane problemy