ubuntuusers.de

ubuntuusers.deWikiTouchscreen

Touchscreen

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Die meisten Touchscreens funktionieren mittlerweile unter Ubuntu ohne weitere Anpassung problemlos. Jedoch ist es in der Standardinstallation des Systems nicht vorgesehen, einen angeschlossenen Touchscreen zu konfigurieren oder zu kalibrieren. Dies wird in diesem Artikel behandelt.

Hinweis:

Erfreulicherweise werden gerade Touchscreens für Spezialanwendungen (z.B. für Car-Pcs) oftmals auch herstellerseitig mit Treibern und Tools für Linux versorgt. Sollte der Screen bereits mit Boardmitteln funktionieren, ist von einer nachträglichen Installation von Herstellersoftware jedoch abzuraten, da diese entweder für ältere/veraltete Systeme (Stichwort xorg, evtouch) entwickelt wurde und/oder tiefere Eingriffe in das System und den Kernel erfordert.

Installation und Konfiguration

Ab Ubuntu Natty Narwal 11.04

Ab Natty wird der Touchscreen ausschließlich über evdev angesteuert.

Kalibrierung

Um den Screen zu kalibrieren, kann das Tool xinput-calibrator verwendet werden.

  • xinput-calibrator

Wiki/Vorlagen/Installbutton/button.png

Das Programm ist nach der Installation in der Systemverwaltung unter "Touchscreen kalibrieren" zu finden; im Terminal lässt es sich mit dem Befehl

xinput_calibrator 

starten. Nach Ausführen und Durchlaufen des Programms werden einige Parameter ausgegeben, die manuell in /etc/X11/xorg.conf.d/99-calibration.conf einzufügen sind (normalerweise müssen Datei und Verzeichnis vorher erst noch angelegt werden).

Unter Ubuntu Lucid Lynx 10.04

Unter Lucid kann der Touchscreen bereits mit evdev angesteuert werden, die Vorgehensweise gleicht dann der bei Natty. Alternativ lassen sich viele Screens auch mit dem Xorg-Treiber evtouch einrichten. Voraussetzung ist die Installation [1] des Xorg-Treibers:

  • xserver-xorg-input-evtouch universe

Wiki/Vorlagen/Installbutton/button.png

Einrichtung

Ubuntu 10.04 benützt sogenannte xorg.conf.d-snippets. Es muss die Datei 50-evtouch.conf im Ordner /usr/share/X11/xorg.conf.d/ bearbeitet werden:

Section "InputClass"
        Identifier "touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evtouch"

        # hier Optionen einfügen

EndSection

Diese Optionen werden nur dann geladen, wenn ein Touchscreen angeschlossen wurde.

Um die Änderungen zu übernehmen, muss der XServer neu gestartet werden:

sudo service gdm restart 

(für GNOME, für KDE statt gdm kdm einsetzen)

Die eleganteste Lösung wäre eigentlich, eine neue Datei anzulegen (wie unter xorg.conf.d beschrieben), aber dies kann dazu führen, dass der XServer versucht, diese Einstellungen auch auf die Maus anzuwenden, worauf sich dann das ganze System aufhängen kann (siehe auch LG 1730SF on Ubuntu 10.04 Lucid Lynx {en}).

Einstellungen

Option Default Verhalten
Device Gerätedatei für das Touchscreen. Üblicherweise /dev/input/event1, /dev/input/event2 oder höher. Wird hier ein falscher Wert eingetragen, ist der Touchscreen meist verwendbar, doch sind alle Einstellungen wirkungslos.
MinX Pixel, an dem der Touchscreen links beginnt.
MinY Pixel, an dem der Touchscreen oben beginnt.
MaxX Pixel, an dem der Touchscreen rechts endet.
MaxY Pixel, an dem der Touchscreen unten endet.
TapTimer 200 Zeit in Millisekunden, die man den Touchscreen berühren muss, damit ein Klick-Ereignis ausgelöst wird.
LongTouchTimer 400 Zeit in Millisekunden, die man den Tochscreen berühren muss, damit ein Lang-Klick-Ereignis ausgelöst wird.
Emulate3Buttons true Emulation einer Drei-Tasten-Maus
Emulate3Timeout 50 Zeit in Millisekunden, die man die zwei Tasten drücken muss, damit ein Mittel-Klick-Ereignis ausgelöst wird.
MoveLimit 30 Radius in Pixeln, innerhalb dessen man beim Klicken bleiben muss, damit der Klick nicht zu einem Ziehen wird.
SwapX false X-Achse umkehren (links wird zu rechts und anders herum)
SwapY false Y-Achse umkehren (oben wird zu unten und anders herum)
Rotate Drehung des Touchscreens: cw (im Uhrzeigersinn) oder ccw (gegen den Uhrzeigersinn)

Hinweis:

Die Gerätedatei kann sich durch das nachträgliche Anschließen mehrerer USB-Geräte verändern. Mit dem Programm udev kann man sich einen symbolischen Link /dev/input/touchscreen erstellen, der dann immer auf die richtige Gerätedatei verweist.

Kalibrierung

Um die Kalibrationsdaten für minX/maxX und minY/maxY zu erhalten, kann xinput_calibration {en} verwendet werden. Diesem Werkzeug sollte jedoch die aktuelle Konfiguration übergeben werden, damit die Resultate auch stimmen:

./xinput_calibrator --output-type xorg.conf.d --precalib <minX> <maxX> <minY> <maxY> 

Mehrere Bildschirme

Falls der Touchscreen nicht der einzige ist (Beispielsweise ein TouchNotebook mit Beamer), gibt es eine modifizierte Version von xinput {en}, der man mittels --geometry-Parameter mitteilen kann, welcher Schirm der richtige ist:

cd <Ordner wo xinput hin soll>
git clone https://github.com/floe/xinput_calibrator.git
sh autogen.sh --with-gui=x11
make
cd src/
./xinput_calibrator --output-type xorg.conf.d --precalib <minX> <maxX> <minY> <maxY> --geometry <Breite>x<Höhe>+<X>+<Y> 

Problembehandlung

Vertauschte Achsen

Bei einigen Touchscreens kann es nach dem Anschließen passieren, dass das Device zwar erkannt wird und auch Eingaben verarbeitet, allerdings eine Achse (meist die X-Achse) spiegelverkehrt interpretiert wird ("Drück links auf den Schirm - Maus springt nach rechts"). Um das Problem beheben zu können, muss man erst einmal die ID des Touchscreens ermitteln. Dazu wird im Terminal der Befehl

xinput list 

eingegeben. Aus der Ausgabe lässt sich die ID des Touchscreens ablesen (bei Mehrfachnennung einfach ausprobieren). Mit

xinput set-prop <ID> 'Evdev Axis Inversion' <X> <Y> 

lassen sich nun die Eingabekoordinaten spiegeln (<X>: X-Achse, horizontal; <Y>: Y-Achse, vertikal; zu spiegelnde Achse auf "1" setzen, ansonsten "0"). Damit man den Befehl nicht mit jedem Systemstart erneut ausführen muss, empfiehlt es sich, die Zeile in Startprogramme zu kopieren oder sich ein Skript zu schreiben.

Alternative Lösung

Füge /etc/X11/xorg.conf.d/99-calibration.conf folgende Zeile hinzu:

        Option "InvertX" "on"
        Option "InvertY" "on"

Diese Revision wurde am 12. April 2012 20:19 von frustschieber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, System

Passwort vergessen?