da mir 3PO einen mimo 720s usb mini monitor mit touchscreen geschenkt hat, habe im framebuffer-treiber von serdisplib unterstuetzung fuer touchscreens dazuprogrammiert (generisch, falls von linux erkannt und als input-device unterstuetzt).
was wird dazu benoetigt:
die aktuellste trunk von serdisplib:
(achtung: geaenderte URL da sourceforge meine lib auf eine neue subversion-version umgestellt hat)
die aktuellste touchcol-version von graphlcd-base
informationen zum framebuffer-treiber inkl. konfiguration: https://sourceforge.net/apps/t…iki/SvnDisplayFramebuffer
kurz zusammengefasst:
der touchscreen bekommt vom system standardmaessig ein input-device mit einer mehr oder weniger unvorhersehbaren fortlaufende nummer.
mit einer udev-regel kann ein 'vorhersehbarer' symlink angelegt werden und gleichzeitig auch die zugriffsregeln gesetzt werden:
beispiel fuer das vom mimo 720s verwendete touchscreen:
SUBSYSTEM=="input",ATTRS{idVendor}=="1ac7", ATTRS{idProduct}=="0001", GROUP="uucp",MODE="0660", SYMLINK+="input/touchscreen"
uucp durch eine gruppe ersetzten in der der vdr-benutzer zumindest leseberechtigt ist.
in graphlcd.conf kann nun ein abschnitt fuer das touchscreen eingefuegt werden, zum beispiel:
[mimo720s]
Driver=serdisp
Controller=framebuffer
Options=FBDEV=/dev/fb1;TOUCHDEVICE=/dev/input/touchscreen;TOUCHSWAPY=1
wird nun ein skin verwendet, der touchscreens unterstuetzt (derzeit gibt es nur den fuer 320x240 angepassten skin 'touchcol', zum testen ist dieser aber ausreichend), kann ueber den touchscreen die menuefuehrung aufgerufen werden.
einschraenkungen:
- das framebuffer-device muss vom system konfiguriert / initialisiert werden (aufloesung, farbtiefe). der framebuffer-treiber von serdisplib kann selbst keine fb-modi setzen! in der regel muss aber ohnedies bei displaylink-basierenden geraeten nicht eingegriffen werden da diese vom betriebssystem bereits in einer brauchbaren konfiguration angelegt werden.
- der touchscreen muss vom kernel erkannt werden als input-device und das kernel-modul muss dann auch die entsprechenden touch-events liefern koennen (getestet mit dem Mimo 720s)
- displaylink-basierende monitore: mit dem neuen udl.ko (udldrmfb)-modul scheint es grobe probleme zu geben (kann EDID-informationen nicht auswerten und kann dadurch den framebuffer nicht initialiseren). das framebuffer-device ist in diesem fall nicht benutzbar. das aeltere 'udlfb.ko'-modul hat diese probleme nicht!
- hat ein system sowohl udl.ko als auch udlfb.ko, sollte bis zur reparatur von udl.ko dieser in der blacklist eingetragen werden ('blacklist udl').
- bietet ein system nur udl.ko an, muss udlfb.ko erst kompiliert und installiert werden (blacklist von udl.ko nicht vergessen!)
/wastl