0€

CarTFT.com: Professional CarPCs and Displays

«   Change to: MiniPC.de – Small, flexible, powerful

Sprache ändern:

Deutsch
Shop for mobile PC- and GPS-solutions

Touchscreen eGalax unter Linux, Mini-HowTo deutsch

Kurze Beschreibung um ein Touchscreen eGalax unter Linux mit Kernel 2.6.8 in Betrieb zu nehmen.

Hinweis :
Aktuelle Kernel unterstützen bereits viele Touchscreens.

Author:

Wilfried Hemp
24.08.2005

Wichtige Informationen habe ich hier gefunden:
http://stz-softwaretechnik.com/~ke/lifebook/lifebook-2.6.html
http://linux.chapter7.ch/touchkit/mini-howto.txt

Hardware:

TFT 7" Wide Screen LCD Color Monitor USB von CarTFT.com
(baugleich Xenarc 700 Serie?)

System:

SuSE 9.2 (ftp-Download)
Kernel 2.6.8
X-Server Xorg 6.8.1

hotplug muss installiert sein

Bei anderen Systemen müssen evetuell Dateinamen und Pfadangaben angepasst werden.

Installation:

Als Treiber für den X-Server wird "evtouch XFree86" von
http://stz-softwaretechnik.com/~ke/lifebook/lifebook-2.6.htm verwendet.
lt. Seite:
Precompiled driver for X V0.6.1 (This driver should work for XFree 4.x and Xorg 6.8.x)

z.Z. aktuell: evtouch-0.6.1.tar.gz

Die meisten Aktionen benötigen root-Rechte.
Alles aus einer Text-Konsole durchführen.(z.B. tty2).
Datei nach download in ein Verzeichnis Deiner Wahl z.B. /root/src/
kopieren, dann Datei entpacken:
host:~ # mkdir /root/src
host:~ #  cd  /root/src/
host:~/src/ #  tar xzvf evtouch-0.6.1.tar.gz
Dann Treibermodul ins X11 Verzeichnis kopieren:
host:~/src/ # cd evtouch-0.6.1 # 
host:~/src/evtouch-0.6.1 # cp evtoch_drv.o /usr/X11R6/lib/modules/input/
USB Stecker des Touchscreen stecken,
prüfen ob Kernelmodul touchkitusb geladen wurde.
host:~/src/evtouch-0.6.1 # lsmod  | grep touchkitusb
Falls nicht:
host:~/src/evtouch-0.6.1 # modprobe touchkitusb
Prüfen ob Kernelmodul evdev geladen wurde.
host:~/src/evtouch-0.6.1 # lsmod  | grep evdev
Falls nicht:
host:~/src/evtouch-0.6.1 # modprobe evdev
Prüfen der Daten des Touchscreen:
host:~/src/evtouch-0.6.1 # cat /proc/bus/input/devices
Ausgabe etwa:
...
I: Bus=0003 Vendor=0eef Product=0001 Version=0100
N: Name="eGalax Inc."
P: Phys=usb-0000:00:10.2-2/input0
H: Handlers=mouse1 event3
...
In diesem Fall ist das event3 wichtig.
Was bedeutet das, das Device event3 benutzt wird.
Das kann auf anderen Systemen anders sein.

Prüfen ob das Device vorhanden ist.
host:~/src/evtouch-0.6.1 # ls -al /dev/input/event*
...
crw-r-----  1 root root 13,  67 Dec  3  2004 /dev/input/event3
...
Zum sicherstellen, das das evdev Modul geladen wird, habe ich folgende Zeile:
alias char-major-13-67 evdev
in /etc/modprobe.conf.local eingetragen.

X-Server Konfiguration:

folgende Zeilen in die X-Server-Konfigurationsdatei /etc/X11/XF86Config eintragen:
Section "Files"
...
  InputDevices "/dev/input/event3" 	#Zeile hinzufügen falls nicht vorhanden
...
EndSection

Section "InputDevice"   		#  neue Section anlegen
    Identifier "touchscreen"
    Driver "evtouch"
    Option "Device" "/dev/input/event3"
    Option "DeviceName" "touchscreen"
    #########################################
    # ein guter Anfang, wird später editiert:
    #########################################
    Option        "MinX"        "0"
    Option        "MinY"        "0"
    Option        "MaxX"        "2000"
    Option        "MaxY"        "2000"
    #########################################
    Option "ReportingMode" "Raw"
    Option "Emulate3Buttons"
    Option "Emulate3Timeout" "50"
    Option "SendCoreEvents"
    Option "Calibrate"  "1"		# wird nur zur Kalibrierung gebraucht!
EndSection

Section "ServerLayout"
...
  InputDevice  "touchscreen" "CorePointer"	#Zeile hinzufügen
 ...
EndSection

Kalibration:

Datei ev_calibrate von evtouch-0.6.1 ins Binary-Verzeichnis des X-Server kopieren:
host:~/src/evtouch-0.6.1 # cp ev_calibrate /usr/X11R6/bin/
X-Server beenden
host:~/src/evtouch-0.6.1 # init 3
aus dem Verzeichnis evtouch-0.6.1
host:~/bin/evtouch-0.61 # ./calibrate.sh
aufrufen.

Auf dem Bildschirm sollte ein heller Hintergrund mit Kreuzen in der Mitte und Ecken erscheinen
ab der ersten Berührung erscheinen 2 Zeilen mit den Min/Max Werten für X/Y und
dem aktuellen Wert der Position.

Den Rand und die Ecken des Bildschirm mit einem Stift mehrmals abfahren.
Die Min/Max Werte für X und Y abschreiben.
(die Kalibration wie in der README.calibration funktionierte bei mir nicht)

X-Server killen mit [STRG] + [ALT] + [BACK]

In der /etc/X11/XF86Config
 
Section "InputDevice" 
...    
    #########################################
    # ein guter Anfang, wird später editiert:
    #########################################
    Option        "MinX"        "neuer Wert"
    Option        "MinY"        "neuer Wert"
    Option        "MaxX"        "neuer Wert"
    Option        "MaxY"        "neuer Wert"
    #########################################
...
EndSection
editieren mit den abgelesenen Werten,
und Zeile für Kalibration deaktivieren:
#    Option "Calibrate"  "1"
X-Server starten
host:~/bin/evtouch-0.61 # init 5
Geschafft! Touchscreen testen, wenn alles OK ist sollte es jetzt funktionieren.

Bei mir waren die Achsen und die Richtung vertauscht
durch einbinden der Optionen

  Option "SwapX" "1"
# Option "SwapY" "1"
  Option "Rotate" "cw"
# Option "Rotate" "ccw"
konnte ich das korrigieren.


Wilfried Hemp