konto usunięte

Temat: Linux mouse driver

Witam,
Mam pytanie odnośnie sterowników do obsługi urządzeń wejścia a w tym przypadku myszy, o ile w samym kernelu jest moduł gpm, o tyle nie wiem za bardzo jak się ma to do X11. Powiem więcej nie wiem jak sam interfejs graficzny komunikuję się z myszą, tzn domyślam się że są to jakieś eventy podpięte z interfejsu graficznego do sterownika (pewnie przez jakiś adapter) do informowania o przesunięciu się myszy, ale jaką rolę pełni tutaj X11? W dodatku same ustawienia (konfiguracja) zachowań przycisków, scrollingu są pewnie typowe dla danej myszy, czułość scrolla etc... Czy ktoś mógłby mi przybliżyć oczywiście teoretycznie diagram sekwencji w tej kwestii?

Z góry dziękuje.

konto usunięte

Temat: Linux mouse driver

Z urządzeniami HID to jest tak:
- reprezentacja kernelowa o której już wspomniałeś. Takie urządzenie reprezentowane w user space jest na kilka sposobów
* /dev/input/mice
* /dev/input/mouse[0-9]+ dla urządzeń których możliwości pokrywają się z myszką czyli np. przesunięcia relatywne
* /dev/input/joy[0-9]+ dla urządzeń eksportujących położenie absolutne
* /dev/input/event[0-9]+ - wszystkie urządzenia wejściowe

W Xorgu sa moduły dla tych urządzeń. Teraz w zależności od sposobu podpięcia danego urządzenia przez Xorga możesz odpowiednio skonfigurować te urządzenia: czyli dla klawiatur np. ustawienia narodowe, dla myszek skonfigurować przyciski etc.

Jeżeli Xorg jest konfigurowany ręcznie to w xorg.conf trzeba w odpowiednich sekcjach dodać ustawienia. Jeżeli (tak jak jest to teraz najczęściej robione) Xorg konfigurowany jest automatycznie to dane urządzenia dodawane są w tle przez moduł komunikujący sie z udev-em.
Konfiguracja urządzeń wpinanych przez udev-a jest możliwa przez dodawanie odpowiednich opcji w regułach udev. wot wsio :)

Podsumowując w dzisiejszych czasach na desktopie działa to tak:
kernel (detekcja i operacje) -> udev (utworzenie w u/s pliku urządzenia i notifikacja) -> Xorg / InputDriver (załadowanie do xorga i konfiguracja)

Najlepiej obejrzeć sobie źródła konfiguratora Xorgowego (są dwa bazujący na HALu i UDEVie) (bodajże w xorg_src/config/{udev,hal}.c. Tam znajdziesz najwięcej informacji.

Następna dyskusja:

PROGRAMISTA C/LINUX




Wyślij zaproszenie do