Pytanie o sterownik dla Linux Debian w zasadzie czysto teoretyczne, bo raczej przekracza to moje obecne umiejętności. Czy urządzenie podłączone do komputera musi do jego obsługi mieć sterownik? Czy można obsługiwać je czysto z poziomu programu?
Pytanie dość nieprecyzyjne chyba, więc podam przykład.
Mając urządzenie podłączone do USB programowałem je zawsze by było widoczne jako wirtualny UART. Sterownika nie robiłem, obsługę robiłem bezpośrednio z aplikacji, wysyłając instrukcje do tego UART. Czy można napisać sterownik by... No właśnie, po co?
A co sprawiło, że się zastanawiam. Mam czytnik linii papilarnych. LSUSB go pokazuje. Wydaje mi się, że skoro Linux rozpoznał po nazwie to mogłoby to działać... Natomiast fprintd-enroll stwierdza, że brak czytników linii papilarnych (które lsusb widzi). Tu się zastanawiam, czy jestem w stanie zrobić aplikację, która skomunikuje się bezpośrednio z czytnikiem.
@defoxe: znaczy sterownik jakis byc musi - moze byc ogolny do obslugi portu dajmy na to, ale jakis musi byc. Im bardziej ogolny tym wiecej musisz zrobic po stronie programu ot i cala zagwozdka.
Ponieważ użyłeś UART, czytnik powinien być dostępny bez pisania żadnych sterowników w /dev/ttyACMnumer (jeżeli to jest konwerter USB-UART zgodny ze standardem USB CDC)
@jacekprim: nie, nie... Ja tutaj miałem na myśli urządzenia jakie sam do tej pory robiłem. Zawsze używałem USB CDC i faktycznie był on widoczny w /dev.
Natomiast na tą chwilę zastanawiam się nad pokonaniem tej "bariery". Takim impulsem jest właśnie czytnik który mam w laptopie. Przedstawia mi się
skoro to czytnik linii papilarnych to może działa w zwykłym trybie HID
@passage: otóż właśnie tak sobie kombinuję w tym kierunku. Dlaczego by miał nie działać? Co prawda nigdy nic nie pisałem dla HID i czytnikowi linii papilarnych zbyt nie ufam ale jak pisałem, to głównie filozoficzne rozmyślania na chwilę obecną.
@defoxe: sterowniki do drukarek to kilka stopni abstrakcji, a tam, gdzie brak standardu i oszczednosci to dodatkowo sterownik musi realizowac wiecej, w innych wypadkach w zasadzie przesyla plik w zrozumialym formacie. Tak byly takie drukarki, gdzie sterowanie bylo wieksze od strony sterownika i to tez na rozne sposoby, albo kodami sterujacymi wplatanymi w plik, albo specjalnymi komendami (w zaleznosci od drukarki i portu podlaczeniowego).
@defoxe: odpowiadając na twoje pytanie z wpisu: nie jesteś w stanie napisać programu do obsługi czytnika dopóki w pierwszej kolejności nie poczytasz właśnie pisaniu sterowników.
@defoxe: jak to zalezy od urzadzenia. Dlatego wlasnie chcialem pokazac na przykladzie dysku, bo to latwiej samemu sprawdzic. Co do urzadzenia, to juz zalezy od konkretnego, czasem posylasz bajty a czasem cale sekwencje sterujace na najnizszym poziomie. i to nie tylko pod linuksem tak to dziala ale pod kazdym systemem. Po prostu sterownik jest takim tlumaczem pomiedzy api systemu a konkretnym urzadzeniem. W Twoim przypadku musisz wiedziec czego system oczekuje
Po prostu sterownik jest takim tlumaczem pomiedzy api systemu a konkretnym urzadzeniem.
@Kaczus2B: to rozumiem i zerkałem na źródła sterowników. Natomiast nie wiem jak odbywa się komunikacja z API. oraz w jaki sposób jest to uniwersalizowane.
@defoxe: ktos juz tez mial problem, zaczal z nim walczyc tutaj. W kernelu z tego co widze nie ma driverow do skanera (w kernelu androida juz sa). Wychodzi na to ze bedziesz musial podzialac z libfprint
@MikelThief: bez urazy, nie jesteś na Elektrodzie. Chciałem tylko z kimś doświadczonym porozmawiać. Jeśli nie chcesz czegoś dodać w tym temacie, przecież cię nie zmuszam, a ty widzę zaczepki szukasz. Zapytałem tylko ogólnie o sposób działania systemu a nie o wklejanie mi kodu. ( ͡°( ͡°͜ʖ( ͡°͜ʖ͡°)ʖ͡°) ͡°)
@defoxe: jest tak, jak się domyślasz. System ma różne podsystemy które są bardzo ogólne(nie dotyczą sprzętu bezpośrednio - w sensie adresów i rejestrów) i to zapewnia warstwę abstrakcji sprzętowej to słynne Hardware Abstraction Layer(HAL) sam sterownik odpowiada za to żeby gadać ze sprzętem i systemem w zrozumiały dla nich sposób.
Typów i klas sprzętu jest bardzo bardzo dużo - zoba ile katalogów w linuksowych źródłach, a w tych katalogach kolejne katalogi ze sterownikami.
Pytanie o sterownik dla Linux Debian w zasadzie czysto teoretyczne, bo raczej przekracza to moje obecne umiejętności.
Czy urządzenie podłączone do komputera musi do jego obsługi mieć sterownik? Czy można obsługiwać je czysto z poziomu programu?
Pytanie dość nieprecyzyjne chyba, więc podam przykład.
Mając urządzenie podłączone do USB programowałem je zawsze by było widoczne jako wirtualny UART. Sterownika nie robiłem, obsługę robiłem bezpośrednio z aplikacji, wysyłając instrukcje do tego UART. Czy można napisać sterownik by... No właśnie, po co?
A co sprawiło, że się zastanawiam. Mam czytnik linii papilarnych. LSUSB go pokazuje. Wydaje mi się, że skoro Linux rozpoznał po nazwie to mogłoby to działać...
Natomiast fprintd-enroll stwierdza, że brak czytników linii papilarnych (które lsusb widzi).
Tu się zastanawiam, czy jestem w stanie zrobić aplikację, która skomunikuje się bezpośrednio z czytnikiem.
Komentarz usunięty przez autora
@jacekprim: nie, nie... Ja tutaj miałem na myśli urządzenia jakie sam do tej pory robiłem. Zawsze używałem USB CDC i faktycznie był on widoczny w /dev.
Natomiast na tą chwilę zastanawiam się nad pokonaniem tej "bariery". Takim impulsem jest właśnie czytnik który mam w laptopie.
Przedstawia mi się
@passage: otóż właśnie tak sobie kombinuję w tym kierunku. Dlaczego by miał nie działać?
Co prawda nigdy nic nie pisałem dla HID i czytnikowi linii papilarnych zbyt nie ufam ale jak pisałem, to głównie filozoficzne rozmyślania na chwilę obecną.
Tak byly takie drukarki, gdzie sterowanie bylo wieksze od strony sterownika i to tez na rozne sposoby, albo kodami sterujacymi wplatanymi w plik, albo specjalnymi komendami (w zaleznosci od drukarki i portu podlaczeniowego).
Tak ujednolica sie na poziomie api
@Kaczus2B: może lepiej by było z klawiaturą ( ͡° ͜ʖ ͡°)
¯\_(ツ)_/¯
Jak pisałem, nie zależy mi koniecznie na czytniku, zastanawia mnie działanie sterownika np. na jego przykładzie.
@Kaczus2B: to rozumiem i zerkałem na źródła sterowników. Natomiast nie wiem jak odbywa się komunikacja z API. oraz w jaki sposób jest to uniwersalizowane.
W kernelu z tego co widze nie ma driverow do skanera (w kernelu androida juz sa).
Wychodzi na to ze bedziesz musial podzialac z libfprint
Jeśli nie chcesz czegoś dodać w tym temacie, przecież cię nie zmuszam, a ty widzę zaczepki szukasz. Zapytałem tylko ogólnie o sposób działania systemu a nie o wklejanie mi kodu. ( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°) ͡°)
Typów i klas sprzętu jest bardzo bardzo dużo - zoba ile katalogów w linuksowych źródłach, a w tych katalogach kolejne katalogi ze sterownikami.