2017-05-15 3 views
-1

Debian-Image ist auf HDD installiert. Wenn das Debian-Image gestartet und die Bildschirmposition horizontal ist, funktioniert der Touchscreen ordnungsgemäß, die Kalibrierung funktioniert. Wenn der Bildschirm jedoch um 90 Grad gedreht wurde, funktioniert die Touchscreen-Kalibrierung nicht ordnungsgemäß. Es muss kalibriert werden. Ich versuchte xinput_calibrator, aber es hat nicht funktioniert.Touchscreen-Kalibrierungsfehler bei gedrehtem debian-Touchscreen

Wie kann ich die Kalibrierung lösen, wenn der Touchscreen gedreht wurde?

Antwort

1

Wenn Sie xinput_calibrator verwenden, erstellt es einen Satz von Kalibrierungswerten unter (zum Beispiel: 1399 15891 421 15482). Diese Werte funktionieren für den Bildschirm in der "normalen" horizontalen Richtung.

Wenn Sie den Bildschirm drehen, ist der Austausch von Werten und Achse nicht automatisch, daher funktioniert es nicht richtig. Dies ist ein wenig kompliziert, aber Sie können dies beheben, indem Sie ein bash Skript erstellen, um die Achsentausch- und Kalibrierungswerte zu korrigieren.

Ich habe ein solches Programm erstellt, das wir in unserem Unternehmen verwenden - es ist kostenlos zu benutzen. Unten ist das Programm, beachten Sie, dass Sie ein wenig damit spielen müssen und finden Sie, was für Sie genau funktioniert (Sie müssen nicht alle Zeilen auskommentieren, es variiert von einem Bildschirm zum anderen). In dem folgenden Fall habe ich Fujitsu Component USB Touch Panel als Name des Bildschirms verwendet, Sie sollten Ihren Bildschirmnamen mit xinput identifizieren und ersetzen. Außerdem ist es wichtig, das "Panel" nach dem Drehen neu zu starten, in unserem Fall verwenden wir LXDE, also starte ich das mit lxpanelctl restart neu, in Ihrem Fall könnte es anders sein.

Versuchen Sie, die Logik des Skripts zu verstehen und es für Ihre Bedürfnisse anpassen:

#!/bin/bash 

# Copyright (C) 2014-2016 AdoraDeal LLC (www.adoradeal.com) 
# 
# This program is free software: you can redistribute it and/or modify 
# it under the terms of the GNU General Public License as published by 
# the Free Software Foundation, either version 3 of the License, or 
# (at your option) any later version. 
# 
# This program is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY; without even the implied warranty of 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
# GNU General Public License for more details. 
# 
# You should have received a copy of the GNU General Public License 
# along with this program. If not, see <http://www.gnu.org/licenses/>. 
# 
## rotatezz version 1.0.0 
## This file is part of the rotatezz program. This program will attempt 
## to rotate the screen orientation of your computer in a clockwise way. 

## Important notes: in case of a wacom being present, need to update the device name (or number, if many devices present with same name, 
## although risky because numbers can change), and comment/uncomment specific lines below, including the "xsetwacom set" line. 
## Also, when rotating, the touchscreen not always invert the touch map; in addition, the calibration (that works for normal) won't work well 
## because it will be inverted. Thus, uncomment lines below (changing the device name) to swap axis as it rotates, and also swap calibration 
##(1st value swaps with 3 value, and the second swaps with the 4th) 

varinormal="normal" 
varileft="left" 
variinvert="inverted" 
variright="right" 
rotando="$(xrandr -q --verbose 2>/dev/null | grep -si "connected" | grep -svi "disconnected" | grep -osi ') normal (\|) left (\|) inverted (\|) right (' | grep -osi 'normal\|left\|inverted\|right')" 
rotandolow="${rotando,,}" 
if [[ -z "$rotandolow" ]]; then rotandolow="nulo"; fi 
if [[ "$rotandolow" != "$varinormal" ]] && [[ "$rotandolow" != "$varileft" ]] && [[ "$rotandolow" != "$variinvert" ]] && [[ "$rotandolow" != "$variright" ]]; then 
    rotando="$(xrandr -q --verbose 2>/dev/null | grep -si ' connected ' | grep -osi 'normal\|left\|inverted\|right' | grep -si -m 1 'normal\|left\|inverted\|right')" 
    rotandolow="${rotando,,}" 
    if [[ -z "$rotandolow" ]]; then rotandolow="nulo"; fi 
fi 

#if normal, rotate to "right". 
if [[ "$rotandolow" == "$varinormal" ]]; then 
    xrandr -o right 
    #xsetwacom set "9" rotate cw 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axes Swap" 1 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axis Inversion" 0 1 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axis Calibration" 1399 15891 421 15482 
    sleep 0.3 
    lxpanelctl restart 

#if right, rotate to "inverted" 
elif [[ "$rotandolow" == "$variright" ]]; then 
    xrandr -o inverted 
    #xsetwacom set "9" rotate half 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axes Swap" 0 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axis Inversion" 1 1 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axis Calibration" 421 15482 1399 15891 
    sleep 0.3 
    lxpanelctl restart 

#if inverted, rotate to "left" 
elif [[ "$rotandolow" == "$variinvert" ]]; then 
    xrandr -o left 
    #xsetwacom set "9" rotate ccw 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axes Swap" 1 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axis Inversion" 1 0 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axis Calibration" 1399 15891 421 15482 
    sleep 0.3 
    lxpanelctl restart 

#if left, rotate to "normal" 
elif [[ "$rotandolow" == "$varileft" ]]; then 
    xrandr -o normal 
    #xsetwacom set "9" rotate none 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axes Swap" 0 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axis Inversion" 0 0 
    ##xinput set-prop "Fujitsu Component USB Touch Panel" "Evdev Axis Calibration" 421 15482 1399 15891 
    sleep 0.3 
    lxpanelctl restart 

#if something else, then exit 
else exit; 
fi 

exit 0 

Dieses Programm dann ist keybinded mit der Taste, die den Bildschirm macht sich zu drehen (jedes Mal wenn Sie den Drehknopf drücken, diese Programm sollte starten). Ich hoffe das hilft!

+0

Ich speichere die Werte von xinput_calibrator zu ** 99_calibration_conf ** und starte den Computer neu. Aber nach dem Neustart kommen alte Einstellungen zurück. Änderungen sind nicht dauerhaft. Wie können die Änderungen dauerhaft werden? – MuminCelal

+0

'xinput' speichert die (normalen horizontalen Bildschirm-) Werte bereits in' 99_calibration_conf'. Diese Werte sind die richtigen für den "normalen" horizontalen Bildschirm. Wenn Sie den Bildschirm drehen, sind diese Werte nicht mehr genau, daher passt sich das obige Programm dann im Handumdrehen an (nicht permanent). Wenn Sie den Bildschirm IMMER für die vertikale Ansicht einstellen möchten, passen Sie das Programm so an, dass es bei jedem Start automatisch startet und nur die Werte/Codes enthält, die für die korrekte Funktion des vertikalen Bildschirms erforderlich sind. –

+0

Also, in welcher Datei sollte ich das Programm speichern, welchen Ordner führt Linux bei jedem Start aus? – MuminCelal

Verwandte Themen