Ich habe noch einen alten Touchscreen (Elo TouchSystems AccuTouch 3000U) bei mir daheim rumfliegen, und würde diesen gerne zur Hausautomatisierung zu neuem Leben erwecken.
Leider stellte sich beim Anschließen heraus, dass die Touch Auflösung überhaupt nicht passte.
Deshalb muss der Touch-Screen mithilfe des xinput_calibator
vermessen werden.
Dafür installieren wir erstmal das besagte Kalibriertool. Außerdem installieren wir noch die evdev Libary, da der originale libinput die Kalibriereinstellung nicht funktioniert hat. Dies Installieren wir alles über unsere Paketverwaltung mit:
sudo apt-get install xserver-xorg-input-evdev xinput_calibrator
Außerdem stellen wir nun noch ein, das die Touchscreens und PointerDevices (ich weiß nicht warum, aber ich glaube der Touchscreen wird als Pointer-Device identifiziert) statt dem libinput
den evdev
Treiber benutzen. Hierfür müssen wir die entsprechenden Einträge in der Datei /usr/share/X11/xorg.conf.d/40-libinput.conf
ändern.
Nach einem Neustart können wir die Kalibrierung mit dem Aufruf von input_calibratior
vornehmen. Hierbei ist zu achten, das in der Umgebungsvariable die Displaynummer eingetragen ist. (Sollte bei der Konsole auf dem Display der Fall sein. Falls dies aus der Ferne per SSH gemacht wird, muss diese ggf. mit export DISPLAY=:0
gesetzt werden.
Anschließend wird ein Textblock ausgegeben, welcher in die X11 Konfiguration hinzugefügt werden muss. Diese sieht beispielsweise so aus:
Section "InputClass" Identifier "calibration" MatchProduct "Elo TouchSystems, Inc. Elo TouchSystems AccuTouch 3000U" Option "Calibration" "508 3614 644 3448" Option "SwapAxes" "0" EndSection
Dieser Block muss in die neu zu erstellende Datei sudo vim /usr/share/X11/xorg.conf.d/99-calibration.conf
eingefügt werden.
Anschließend sollte auch nach einem Reboot die Kalibrierung des TouchScreens erfolgreich funktionieren.
Hi,
Du schreibst:
„Hierfür müssen wir die entsprechenden Einträge in der Datei /usr/share/X11/xorg.conf.d/40-libinput.conf ändern.“
Aber leider erkenne ich nicht daraus, was ich wie ändern soll. Könntest Du das bitte näher anhand von Beispielen ausführen, damit auch Laien verstehen, was zu tun ist?
Ich danke Dir im Voraus und auch dafür, dass Du mich ein wenig weiter an die Lösung meines Problems gebracht hast.
Gruß,
Holli
Hey Holy,
sorry ist etwas undeutlich beschrieben.
Die Tags „Driver“ der jeweiligen Sections mussten von „libinput“ auf „evdev“ geändert werden:
Also bespielsweise so:
Section "InputClass"
Identifier "libinput pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
#Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
#Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
#Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
#Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Wobei die „#“ ein auskommentieren darstellt