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.