Jakim językiem programowania pisze się sterowniki do drukarek,skaner itd. pod dany system operacyjny.Skąd czerpać informacje przed napisaniem sterownika

0

Dzień dobry
W jakim języku programowania pisane są sterowniki do urządzeń wielofunkcyjnych laserowych, drukarek, skanerów, routerów, całego komputera oraz innych urządzeń.
Czy są jakieś książki na ten temat lub e-books.

Wiem, że każda drukarka oraz inne urządzenia posiadają swój identyfikator nie pamiętam nazwy czytałem o tym książkę pod tytułem "USB programowanie Windows API".

Pytanie 1.
Czy każdy Windows od Windows 95, 98, me, 2000, xp, 7, 8, 8.1, 10 ma inaczej zbudowany rejestr. Skąd takie pytanie ponieważ Windows przed instalacją sterownika wyświetla komunikat, że na przykład "nie można zainstalować sterowników na tym systemie Windows, zainstaluj nowsze oprogramowanie".
Czy muszę za każdym nowym wydaniem Windows, czy Linux kupować książkę o Windows lub Linux, a żeby określić lokalizację w rejestrze Windows o dodaniu sterownika urządzenia. Jeżeli tak to jak nazywają się te książki. Prosiłbym o podanie tytułów. Czy takich książkach o Windows będzie opisane co dodać do danego rejestru.

Pytanie 2.
Posiadam drukarkę Brother i zamierzam kupić nową drukarkę, ale niestety nowa drukarka już nie obsłuży Windows xp, więc chciałbym spróbować napisać sterownik do drukarki pod Windows xp oraz się nauczyć pisania sterowników do urządzeń, a żeby na nowej drukarce drukować pod Windows xp.
Ale gdzie znajdę odpowiednie informacje, komendy, polecenia na ten temat, wiem, że identyfikacja urządzenia to dopiero początek.
Może się mylę, ale każde urządzeni ma swoje parametry co do swoich podzespołów w swoim urządzeniu i do tych podzespołów trzeba się odwołać, tylko jakimi komendami i gdzie znajdę o tym informacje, a żeby nie uszkodzić urządzenia.

Pytanie 3.
Czy każde urządzenie drukarka, skaner, router, itp. posiadają swoje własne komendy do programowania swoich urządzeń.

Pytanie 4.
Czy trudno jest napisać sterownik do drukarki, skanera pod inny system operacyjny Windows, czy Linux.

Pytanie 5.
Gdzie na ten temat szukać informacji i pod jakim hasłem. Jakie książki, e-books, czy www. Co muszę wiedzieć, a żeby móc napisać sterownik do urządzenia.

Dziękuje za odpowiedz

5
ccomp napisał(a):

Dzień dobry

W jakim języku programowania pisane są sterowniki do urządzeń wielofunkcyjnych laserowych, drukarek, skanerów, routerów, całego komputera oraz innych urządzeń.
Czy są jakieś książki na ten temat lub e-books.

Pod Windows nie pisałem sterowników, więc odpowiem jak to jest w Linuxie bo akurat Linuxa oprogramowywałem. W Linuxie sterowniki do takich urządzeń jak podałeś pisze się głównie w C.

Odnośnie e-bokoów - to tak są takowe zarówno w PDF-ie jak i w postaci papierowej:

  • Linux Kernel Module Programming (pdf)
  • Linux Device Drivers
  • Understanding the Linux Kernel
  • Linux kernel Architecture
  • Linux Device Drivers Development
  • MAstering Linux Kernel development
    etc

jest tego trochę.

Wiem, że każda drukarka oraz inne urządzenia posiadają swój identyfikator nie pamiętam nazwy czytałem o tym książkę pod tytułem "USB programowanie Windows API".

Zgadza się - jest tak w USB że dane urządzenie zazwyczaj ma wpisaną kwalifikację do określonej grupy urządzeń.

Pytanie 1.
Czy każdy Windows od Windows 95, 98, me, 2000, xp, 7, 8, 8.1, 10 ma inaczej zbudowany rejestr. Skąd takie pytanie ponieważ Windows przed instalacją sterownika wyświetla komunikat, że na przykład "nie można zainstalować sterowników na tym systemie Windows, zainstaluj nowsze oprogramowanie".

Sorry -Windows - więc się nie wypowiem.

Czy muszę za każdym nowym wydaniem Windows, czy Linux kupować książkę o Windows lub Linux, a żeby określić lokalizację w rejestrze Windows o dodaniu sterownika urządzenia. Jeżeli tak to jak nazywają się te książki. Prosiłbym o podanie tytułów. Czy takich książkach o Windows będzie opisane co dodać do danego rejestru.

Linux - tu nie ma rejestru takiego jak w Windows. Ale jest baza danych identyfikatorów urządzeń i odpowiadających im sterowników.

Pytanie 2.
Posiadam drukarkę Brother i zamierzam kupić nową drukarkę, ale niestety nowa drukarka już nie obsłuży Windows xp, więc chciałbym spróbować napisać sterownik do drukarki pod Windows xp oraz się nauczyć pisania sterowników do urządzeń, a żeby na nowej drukarce drukować pod Windows xp.

W takiej sytuacji to chyba najlepiej postawić wirtualkę z Windows i stamtąd drukować. Pisanie sterowników to nie jest ot takie pisanie sobie, którego można nauczyć się w weekend.

Ale gdzie znajdę odpowiednie informacje, komendy, polecenia na ten temat, wiem, że identyfikacja urządzenia to dopiero początek.

Identyfikacja programowa danego urządzenia z poziomu sterownika to najprostsza rzecz do zrobienia. Potem jest już tylko pod górkę. Mówię poważnie.

Może się mylę, ale każde urządzeni ma swoje parametry co do swoich podzespołów w swoim urządzeniu i do tych podzespołów trzeba się odwołać, tylko jakimi komendami i gdzie znajdę o tym informacje, a żeby nie uszkodzić urządzenia.

Tak większość urządzeń ma swoje jakieś unikalne rozwiązania i raczej nie liczyłbym na to że producent udostępni schematy i protokoły komunikacyjne komukolwiek. Zwykle jeśli producent zleca napisanie sterownika firmie zewnętrznej to odbywa się to po podpisaniu odpowiedniego NDA.

Pytanie 3.
Czy każde urządzenie drukarka, skaner, router, itp. posiadają swoje własne komendy do programowania swoich urządzeń.

Zwykle tak jest - każde urządzenie może być inaczej programowane z punktu widzenia PC-ta. Producenci tego nie udostępniają. Pozostaje snifowanie i metoda prób i błędów.

Pytanie 4.
Czy trudno jest napisać sterownik do drukarki, skanera pod inny system operacyjny Windows, czy Linux.

Dosyć trudno jeśli nie masz specyfikacji np. protokołu komunikacji. Do tego żeby napisać sterownik musisz znać API kernela Linuxa. Powyżej podałem namiary na książki dotyczące API ale to API non stop się zmienia. Jak sam zobaczysz - te książki które podałem są tylko dobre do pewnych wersji kernela, bo bardzo szybko się deaktualizują.

Pytanie 5.
Gdzie na ten temat szukać informacji i pod jakim hasłem. Jakie książki, e-books, czy www. Co muszę wiedzieć, a żeby móc napisać sterownik do urządzenia.

Trzeba wiedzieć bardzo dużo na temat tego jak działa kernel i jak współpracują z nim sterowniki żeby nie narobić jakichś głupot. Nie sztuka jest napisać coś co można nazwać sterownikiem a co np. będzie monopolizować procesor. Sterowniki zwykle pisane są w wyższym poziomie uprzywilejowania - więc i odpowiedzialność jest duuużo większa. Jeden mały null ptr dereference i cały system leci w kosmos. Temat dosyć obszerny. Dla kogoś kto nigdy nie pisał sterowników to to nie jest zadanie na dni czy tygodnie, tylko znacznie dłużej.

0

Dziękuje za odpowiedz

3

Z praktycznych i prostych rozwiązań. Pewnie to nie będzie jeden komputer w domu i będziesz mógł np. udostępnić drukarkę, bądź też drukarka sama w sobie będzie miała jakąś możliwość podpięcia do sieci (LAN, WIFI), to możesz skorzystać z LPR. Wybierasz wtedy połączenie drukarki sieciowe i jako sterownik podajesz jakieś standardowe LPR i podstawy drukowania masz rozwiązane. Drukarki dzisiaj to mega kombajny z komunikacją informującą o milionie dziwnych rzeczy ( panel ustawień, poziom tuszu/tonera, wbudowany skaner).
Żeby nie było, nie przekonuję Cię do porzucenia planów nauki pisania sterowników. Po prostu wiedz, że są jakieś potencjalne alternatywy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1