You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Steevee

Professional

  • "Steevee" started this thread

Posts: 565

Location: Hessen

  • Send private message

1

Sunday, January 4th 2009, 11:41am

Touch-TFT einrichten

Hallo,

ich habe hier ein Touch-TFT, das ich zum laufen (touchen) überreden will.
Testen tu ich unter EasyVDR.

lsusb zeigt:

Source code

1
Bus 004 Device 002: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen


also wird laut Liste unterstützt und eGalax-Touchs soll ja hier auch bei diversen Leuten laufen. Also Hardwaremäßig wohl nichts aussergewöhnliches.

So. Um jetzt das Touch ansprechen zu können brauch ich ja den Handler. Um diesen rauszubekommen mach ich ein:

cat /proc/bus/input/devices

Source code

1
2
3
4
5
6
7
8
9
I: Bus=0003 Vendor=0eef Product=0001 Version=0100
N: Name="USB Touchscreen 0eef:0001"
P: Phys=/input0
S: Sysfs=/class/input/input4
U: Uniq=
H: Handlers=mouse1 event4 ts1
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3

Hier bekomme ich also event4 raus, was ich ja beim graphtft eintragen muss, bzw. vorher zum testen dem evtest übergeben muss.

Hier die erste Frage: Der Handler ändert sich bei jedem booten. Wie kann ich denn den Handler immer gleich setzen, damit ich dann was sinnvolles im graphtft eintragen kann?

So, nun sollte ich ja mit evtest /dev/input/event4 den Touch testen können. Als Ausgabe erhallte ich:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Input driver version is 1.0.0
Input device ID: bus 0x3 vendor 0xeef product 0x1 version 0x100
Input device name: "USB Touchscreen 0eef:0001"
Supported events:
  Event type 0 (Reset)
    Event code 0 (Reset)
    Event code 1 (Key)
    Event code 3 (Absolute)
  Event type 1 (Key)
    Event code 330 (Touch)
  Event type 3 (Absolute)
    Event code 0 (X)
      Value      0
      Min        0
      Max     2047
    Event code 1 (Y)
      Value      0
      Min        0
      Max     2047
Testing ... (interrupt to exit)
jedoch reagiert er auf kein Touch. Solange ich hier keine Funktion hinbekomme, brauche ich ja auch gar nicht mit dem graphtft-Plugin zu probieren.

Was kann ich denn noch ausprobieren? Hab ich irgendwas vergessen? Gibt es irgendwelche config-files anzupassen? Muss in bestimmten Log-Dateien noch was stehen?

Unter Windows funktioniert das Touch. Hardware-Fehler sollten also ausgeschlossen sein.

Log-Dateien:
irgendwo in dmesg steht

Source code

1
2
3
4
...
[    9.035000] input: USB Touchscreen 0eef:0001 as /class/input/input4
[    9.035000] usbcore: registered new interface driver usbtouchscreen
...


im syslog steht auch was von

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
Jan  4 09:34:53 (none) kernel: [    9.035000] input: USB Touchscreen 0eef:0001 as /class/input/input4
Jan  4 09:34:53 (none) kernel: [    9.035000] usbcore: registered new interface driver usbtouchscreen
...
Jan  4 09:35:06 (none) vdr: [5666] starting plugin: graphtft
Jan  4 09:35:06 (none) vdr: [5666] Device is '/vdr/0'
Jan  4 09:35:06 (none) vdr: [5666] Loading themes
Jan  4 09:35:06 (none) vdr: [6182] CAM 1: module present
Jan  4 09:35:06 (none) vdr: [6184] CAM 4: module present
Jan  4 09:35:06 (none) vdr: [6182] CAM 1: module reset
Jan  4 09:35:06 (none) vdr: [6184] CAM 4: module ready
Jan  4 09:35:07 (none) vdr: [5666] loading /etc/vdr/plugins/graphTFT/themes/avp/avp.theme
Jan  4 09:35:07 (none) vdr: [6183] CAM 2: no module present
Jan  4 09:35:07 (none) vdr: [6183] CAM 3: no module present
Jan  4 09:35:07 (none) vdr: [5666] loading /etc/vdr/plugins/graphTFT/themes/DeepBlue/DeepBlue.theme
Jan  4 09:35:07 (none) vdr: [5666] Loaded 2 themes
Jan  4 09:35:07 (none) vdr: [5666] Activated theme 'Alien vs. Predator 0.3.1'
Jan  4 09:35:07 (none) vdr: [6204] GraphTFT plugin tcp communication thread started (pid=6204)
Jan  4 09:35:07 (none) vdr: [6205] TouchTFT-Thread thread started (pid=6205, tid=6205)
Jan  4 09:35:07 (none) vdr: [6182] CAM 1: module ready
Jan  4 09:35:07 (none) vdr: [6208] GraphTFT dvbrenderer player thread started (pid=6208, tid=6208)
...


lsusb -v

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
...
Bus 004 Device 002: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x0eef D-WAV Scientific Co., Ltd
  idProduct          0x0001 eGalax TouchScreen
  bcdDevice            1.00
  iManufacturer           1
  iProduct                5
  iSerial                 3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 USB TouchController
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               5
Device Status:     0x0000
  (Bus Powered)
...


Gruß
Steevee
VDR1: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, TT S2-6400, ...
VDR2: EasyVDR 2.0.0, MB Asus M4N78 Pro, AMD Athlon II X2 250, DVB-S2 TeVii S464, 2*DVB-S Budget, GraphTFT an VGA, TV an HDMI
VDR3: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, DVB-S FF1.3, DVB-S Budget, Atric-IR, GraphTFT an FF, TV an DVI
#VDR4: EasyVDR 0.8.x, DVB-S FF1.3, DVB-S Budget, TV über AV-Board
sonstige VDR Test-Hardware: Skystar HD2, Touch-TFT, IMON-LCD, Fritz-Box, ...

gda

Im Forum Zuhause

Posts: 13,338

Location: HH

  • Send private message

2

Sunday, January 4th 2009, 1:22pm

RE: Touch-TFT einrichten

Läuft bei dir ein X-Server? Der greift sich dann nämlich den Touchscreen und Graphtft bekommt
nichts ab. War zumindest bei mir so, ich habe es bei mir aber auch noch nicht fertig konfiguriert.

Zeitmangel und kleine Kinder die alles touchen was vor ihre kleinen, klebrigen Finger kommt :).

Gerald

HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 12.04.2, Plex Media Server
Samsung UE55H6470

3

Sunday, January 4th 2009, 2:35pm

RE: Touch-TFT einrichten

Ich würde Dir empfehlen, TouchKit zu installieren, damit ist das Einrichten und Kalibrieren ein Kinderspiel.

:!: Hier nicht klicken!!



dreipo.cc

"Ubuntu" -- An african Word, meaning: "Gentoo is too hard for me".

my VDR


Gen2VDR V4.3PO

VDR: vdr-2.1.6
Mainboard: ASUS Z97-PRO (Wi-Fi ac)
CPU: i7-4770K
RAM: 16G
System HDD: OCZ-VERTEX4 SSD, 120 GB
Video HDD: WD Caviar Green, 3 TB
BD-ROM: Samsung SH-B123L
Gehäuse: Thermaltake DH202 Touch (VM90051N2Z)
DVB: DD Cine S2 V6.5 & DuofleX C/T
IR/FB: yaUSBIR v3 ; Harmony 885

This post has been edited 1 times, last edit by "C-3PO" (Jan 4th 2009, 2:36pm)


data

Intermediate

Posts: 360

Location: Stadt Dorfen / Bayern

  • Send private message

4

Sunday, January 4th 2009, 3:29pm

Hi Steevee,

Quoted

Jan 4 09:35:07 (none) vdr: [6205] TouchTFT-Thread thread started (pid=6205, tid=6205)

Hast Du das TouchTFT Plugin auch aktiviert? Zusammen mit dem neuen graphTFT Plugin blockieren die sich gegenseitig.
Du bräuchtest nur graphTFT.

Gruß
data
VDR: easyVDR 0.8.0 - VDR 1.7.0
CPU: Athlon 4850e; MB: Gigabyte GA-MA78GM-S2H; RAM: 2 GB DDR2; HDD: 2TB SATA; DVD-Brenner; DVB-C: Hauppauge WinTV DVB-C 4MB Mod; STB AVBoard 1.3; Case: Thermaltake DH 202

Steevee

Professional

  • "Steevee" started this thread

Posts: 565

Location: Hessen

  • Send private message

5

Sunday, January 4th 2009, 4:01pm

Hallo,

bei mir läuft fluxbox. Die Ausgabe auf den Fernseher läuft über DVI (xineliboutput). Das TFT hängt momentan noch an der FF.
Ich hatte am Anfang ein anderes TFT, dass ich nur über Video einspeisen konnte.

Eigentlich will ich das TFT an VGA hängen und den TV an HDMI an einem Asus M2N-VM HDMI Board. Habe ich bis jetzt aber auch noch nicht hinbekommen. Soll wohl mit grapftft-fe funktionieren, gibts aber auch wenig Infos drüber. Da weiß ich auch noch nicht, wie ich fluxbox für 2 Bildschirme konfiguriere. Wenn mir zu dem Thema jemand ein Tipp geben kann ...
Für den Touch-Teil müsste das aber doch eigentlich egal sein, oder? Der wird ja unabhängig davon über USB angeschlossen.

Zum testen hab ich mal VDR und fluxbox beendet. evtest zeigt aber immer noch keine Touchs.

Das TouchTFT-plugin habe ich nicht aktiviert. Hab nur das GraphTFT-Plugin 0.3.1 und mit den nötigen Patchen usw.. Das Plugin funktioniert soweit auch, bis halt auf den Touch-Teil.

@C-3PO
Kannst Du noch was zu dem Touchkit sagen. Die Beschreibung ist wenig aussagekräftig für mich.

Gruß
Steevee
VDR1: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, TT S2-6400, ...
VDR2: EasyVDR 2.0.0, MB Asus M4N78 Pro, AMD Athlon II X2 250, DVB-S2 TeVii S464, 2*DVB-S Budget, GraphTFT an VGA, TV an HDMI
VDR3: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, DVB-S FF1.3, DVB-S Budget, Atric-IR, GraphTFT an FF, TV an DVI
#VDR4: EasyVDR 0.8.x, DVB-S FF1.3, DVB-S Budget, TV über AV-Board
sonstige VDR Test-Hardware: Skystar HD2, Touch-TFT, IMON-LCD, Fritz-Box, ...

6

Sunday, January 4th 2009, 5:39pm

Quoted

Original von Steevee
[...]
@C-3PO
Kannst Du noch was zu dem Touchkit sagen. Die Beschreibung ist wenig aussagekräftig für mich....


Guckst Du hier und hier

:!: Hier nicht klicken!!



dreipo.cc

"Ubuntu" -- An african Word, meaning: "Gentoo is too hard for me".

my VDR


Gen2VDR V4.3PO

VDR: vdr-2.1.6
Mainboard: ASUS Z97-PRO (Wi-Fi ac)
CPU: i7-4770K
RAM: 16G
System HDD: OCZ-VERTEX4 SSD, 120 GB
Video HDD: WD Caviar Green, 3 TB
BD-ROM: Samsung SH-B123L
Gehäuse: Thermaltake DH202 Touch (VM90051N2Z)
DVB: DD Cine S2 V6.5 & DuofleX C/T
IR/FB: yaUSBIR v3 ; Harmony 885

wino

Professional

Posts: 706

Location: Schneeberg/Erzg.

  • Send private message

7

Sunday, January 4th 2009, 7:04pm

Hallo Steevee,

die Daten Deines Displays stimmen mit meinem überein. Hier läuft das Plugin wunderbar. Damit der Event immer gleich ist, habe ich mir ein Ruleseintrag (dritte Zeile) angelegt. Vielleicht hilft Dir das bei Deinem Problem.

10-dvb-remote.rules

Source code

1
2
3
KERNELS=="input*", ATTRS{name}=="DVB on-card IR receiver", SYMLINK+="input/ir" 
KERNELS=="input*", ATTRS{name}=="cx88 IR (Hauppauge Nova-S-Plus", SYMLINK+="input/ircx88"
KERNEL=="event*", UBSYSTEM=="input",SYSFS{idProduct}=="0001", SYSFS{idVendor}=="0eef", SYMLINK+="input/touch"
Der Eintrag im graphtft Setup heißt demnach /dev/input/touch.

MfG
wino
MSI H55M-E33 |Intel Core i3 530| 4 GB RAM | TT DVB-S2 6400 | Ubuntu 12.04 | Kernel-3.5.0-28 | VDR-2.0.1 | v4l-dvb| eigene Distri.

ischgucke

Intermediate

Posts: 460

Location: Bremen

  • Send private message

8

Tuesday, February 17th 2009, 10:14pm

Hallo,

leider muss ich das thema noch mal auf greifen und brauche eure Hilfe.

Gen2VDR mit VDR1.6
Graphtft 0.3.1 mit dem AvP Theme.
Ein 10,4" TFT Touchsreen angeschlossen über USB
der Touchscreen wir erkannt als:

I: Bus=0003 Vendor=0eef Product=0001 Version=0112
N: Name="eGalax Inc. Touch"
P: Phys=usb-0000:00:1d.0-2/input0
S: Sysfs=/class/input/input2
U: Uniq=
H: Handlers=mouse0 event2
B: EV=b
B: KEY=401 0 30000 0 0 0 0 0 0 0 0
B: ABS=f

Wenn ich nun im Plugin/graphtft Menu Kalinbrieren aufrufe, kann ich wunderbar die "Sternchen" touchen. bei jeder Berührung springt das Sternchen zum nächsten Kalibrierungspungt. Nach dem alle 4 Punkte angefahren wurden kommt "Kalibrierung abgeschlossen" - Wunderbar!

Nur wenn ich jetzt, egal in welchem Menu ich gerade bin, auf den Bildschirm klicke passiert nichts.

Im Test-Menu vom graphtft kann ich auch auf den Bildschirm klicken und es werden auch Positionen angezeigt - das war es dann auch schon!

Was kann ich machen oder nachsehen damit es richtig funktioniert?

"Touchkit" wollte ich auch mal installieren doch für Gentoo habe ich keine sourcen gefunden. Ich wüßte auch nicht ob mir das weiter helfen könnte!

wer weiß rat?

Danke
André
SW: yavdr 0.5
Client: Intel DG41TY, E8400, 1GB RAM, SSD16GB, Nvidia G220 , Graphtft 10,4" TFT-Display
Server: stable-VDR + Main vom "yaVDR" team - ca.10 TB HDD, 2xDVB-s2

This post has been edited 1 times, last edit by "ischgucke" (Feb 17th 2009, 10:16pm)


ischgucke

Intermediate

Posts: 460

Location: Bremen

  • Send private message

9

Wednesday, February 18th 2009, 11:29pm

Kann mir jemand bitte helfen den Touchsreen zu kalibrieren? Es klappt einfach nicht.
Wo werden denn die Kalibrierungsdaten hin geschrieben?

Danke
SW: yavdr 0.5
Client: Intel DG41TY, E8400, 1GB RAM, SSD16GB, Nvidia G220 , Graphtft 10,4" TFT-Display
Server: stable-VDR + Main vom "yaVDR" team - ca.10 TB HDD, 2xDVB-s2

10

Sunday, April 12th 2009, 11:16pm

Hi Steevee
Hast du dein TouchScreen zum Laufen gebracht? Mir scheint ich hätte das gleiche Problem, TouchScreen TM-868. Ich verwende neu easyVDR 0.6.02, VDR 1.6 0, graphtft 0.3.1. Bei unendlich vielen versuchen zu kalibrieren habe ich bei 2 (!) touches einen Erfolg gehabt. Bei evtest passieert garnix.

Grüße
doe

11

Tuesday, April 28th 2009, 9:56pm

Hallo alle zusammen
Hat eigentich jemand schon einmal solch ein Problem gehabt und gelöst?

doe

12

Friday, May 22nd 2009, 11:06pm

Hallo zusammen
Ich baue immer noch an meinem TouchScreen, leider immer noch mit wenig erfolg! Ich habe versucht das TouchKit zu installieren, hat auch nichts geholfen. Es ist das modul

Source code

1
2
 Module Size Used by
usbtouchscreen 10756 0
geladen (>lsmod). Vielleicht hilft das jemanden! MIr sagt das nur, der Treiber ist nicht in Gebrauch. Für einen Rat und Tips wäre ich dankbar.

doe

omo

Beginner

Posts: 12

Location: GERMANY

  • Send private message

13

Sunday, June 7th 2009, 2:09am

Hallo Steve,

ich habe selbigen TouchScreen mittlerweile auch touchend zum Laufen bekommen und hatte dieselben Probleme wie Du. Es war aber eine längere Reise...

Als Grundlage dient mir ein EasyVDR 0.6.06, der ja nur die v0.1.9 vom GraphTFT-Plugin enthält. Die aktuellen TouchKit-Beta-Treiber von http://210.64.17.162/web20/eGalaxTouchDriver/linuxDriver.htm enthalten den Source für den Kernel-Treiber TKUSB und ein x-basiertes eGalaxTouchscreen Tool, was zum Kalibrieren unter X verwendet werden kann. Der TKUSB-Treiber stellte sich aber als sehr langsam heraus, so dass ich von dessen Verwendung abraten würde.

Als Basis für die Installation dienten mir die folgenden Howtos (bitte beide komplett lesen):

http://wiki.easy-vdr.de/index.php/GraphTFT
http://www.vdr-wiki.de/wiki/index.php/Graphtft-plugin

Insgesamt musste ich folgendes tun, um nicht nur ein Bild, sondern auch das Touchen zu ermöglichen:

  1. Kernel 2.6.29.4 kompilieren und installieren.
  2. graphtft-plugin 0.3.3 aus dem SVN-Repository laden.
  3. VDR mit GraphTFT-Plugin 0.3.3 unter allen weiteren Plugins übersetzen und installieren.
  4. UDEV-Regel setzen für permanentes Input-Device /dev/input/touch.
  5. USBHID-Treiber für TS USB-Device 0eef:001 quirksen
    [/list=1]


    KERNEL 2.6.29.4:

    Mit dem vorhadenen Kernel 2.6.22.15 konnte ich den TS nicht einbinden. Ich habe daher den aktuellen Kernel 2.6.29.4 von http://www.kernel.org als Source geladen und kompiliert. Als Grundlage zur Erstellung kann die ".config" Datei aus /usr/src/linux-2.6.22.15 verwendet werden.

    Benötigt wird der "USB Touchscreen Driver" als Module. Der "Generic HID support" ist bei mir im Kernel.


    VDR:

    Als VDR habe ich die vorhandenen v1.4.7-Quellen verwendet und dort unter /usr/local/src/VDR/PLUGINS/src die GraphTFT-Plugin-Sourcen durch die v0.3.3 aus dem SVN Repository ersetzt:

    Source code

    1
    2
    3
    4
    5
    6
    
    cd /usr/local/src/VDR/PLUGINS/src
    rm graphtft
    mkdir graphtft-0.3.3
    ln -s graphtft-0.3.3 graphtft
    cd graphtft-0.3.3
    svn co https://vdr-graphtft.svn.sourceforge.net/svnroot/vdr-graphtft


    Danach habe ich den VDR und die Plugins komplett kompiliert und installiert, so wie dies in http://wiki.easy-vdr.de/index.php/GraphTFT beschrieben wird (auf -march in der Make.config achten!).


    UDEV:

    Um das Input-Device permanent unter /dev/input/touch ansprechen zu können, muss eine Regel in /etc/udev für das Device 0eef:001 erstellt werden. Ich habe dazu die Datei 10-remotes.rules mit folgendem Inhalt erstellt:

    Source code

    1
    
    KERNEL=="event*", SUBSYSTEM=="input", SYSFS{idVendor}=="0eef", SYSFS{idProduct}=="0001", SYMLINK+="input/touch"


    Danach noch einen symbolischen Link unter /etc/udev/rules.d erzeugen (vgl. http://www.vdr-wiki.de/wiki/index.php/Graphtft-plugin).


    USBHID-TREIBER QUIRKSEN:

    Damit sich der USBHID-Treiber nicht den TS unter den Nagel reißt, habe ich unter /etc/modprobe.d die Datei usbhid mit folgendem Inhalt angelegt:

    Source code

    1
    
    options usbhid quirks=0x0eef:0x0001:0x0004



    NACH DEM RESET:

    Nach einem Neustart sollte sich der Treiber usbtouchscreen dem Device 0eef:001 angenommen haben, wenn man die USB-Devices mittels

    Source code

    1
    
    cat /proc/bus/usb/devices
    anzeigen lässt. Mittels

    Source code

    1
    
    cat /dev/input/touch
    sollten nun bei Berührung des TS kryptische Ausgaben in der Konsole erscheinen. Auch

    Source code

    1
    
    evtest /dev/input/touch
    sollte nun Ausgaben produzieren.


    EINRICHTUNG DES GRAPHTFT-PLUGINS:

    Ist der eigen-kompilierte EasyVDR gestartet, so kann man die Einstellungen des GraphTFT-Plugins ändern. Es muss zunächst das Input-Device /dev/input/touch angegeben werden. Nun sollte das Kalibrieren gehen (F3/gelb). Erst danach kann man es testen (F2/grün), da sonst ggf. ein Neustart des VDR erfolgt.

    Der EasyVDR bindet ein aktiviertes GraphTFT-Plugin gleich als Framebuffer-Device /dev/fb0 ein, so dass nach dem Start sofort eine Ausgabe für den aktullen Sender erfolgt.


    Framebuffer vs. X

    Standardmäßig bindet EasyVDR das GraphTFT-Plugin als Framebuffer-Device /dev/fb0 ein, was ja bei Verwendung einer FF-Karte ausreicht. Will man xineliboutput verwenden, so kommt man meines Wissens nicht um X mit zwei Displays herum. Dem EasyVDR muss man dann als Device statt /dev/fb0 ein none übergeben, sonst gibt es Geflacker im X-Display.


    HARDWARE:

    Getestet habe ich mit einem M3A78-EMH Board und dem TS an VGA und einem alten Board mit einer Matrox G200 und dem TS an deren VGA Ausgang. Für beide Boards mussten im EasyVDR kein weiteren Einstellungen vorgenommen werden.

14

Tuesday, July 28th 2009, 10:28pm

Hallo omo
endlich etwas Bewegung in diesem Threat. Ich versuche auch schon länger das gleiche TS dazu zu bringen auf Berührung zu reagieren, die Anzeige funktioniert wunderbar. Aber bevor ich auch ein Kernel update als weiteren Versuch durchführe habe ich noch Fragen zum quirksen (?)
a) was ist das
b) wie kommst du zum dritten Parameter (0x0eef:0x0001:0x0004). Die ersten beiden habe ich auch aus den udev settings.
Zur Zeit reagiert das TS auf den ersten touch beim kalibrieren des Plugins, danach ist Schluss. Daher ist der Tipp, dass ein anderer Treiber das TS blockiert, ein weiterer Ansatz.

doe

omo

Beginner

Posts: 12

Location: GERMANY

  • Send private message

15

Thursday, July 30th 2009, 7:39pm

Hallo doe,

ich habe den Tipp mit dem Quirksen aus der Touchscreenkonfiguration zum Thermaltake Gehäuse DH102 Beispielkonfiguration - Thermaltake DH 102 (etwas weiter unten). Das ist zwar ein anderer TS Hersteller mit einer anderen USB Geräte-Id (0x15c2:0x0034), aber der Vorgang sollte derselbe sein (google 'mal 0x15c2:0x0034:0x0004).

Das Quirksen soll nach meinem Verständnis verhindern, dass das angegebene USB-Device (0x0eef:0x001) über den usbhid Treiber angesprochen wird. Zumindest funktionierte mein Touchscreen nicht mit dem usbhid Treiber. Der dritte Parameter ist der "quirks" (definiert in /usr/src/linux/include/linux/hid.h). Das 0x0004 steht für HID_QUIRK_IGNORE, also anscheinend das Ignorieren des zuvor angegebenen Devices.

Ich habe den Eintrag testweise wieder entfernt aber usbtouchscreen bleibt derzeit trotzdem der Treiber für das Device 0x0eef:0x001. Die Gegenprobe mit dem Quirksen von usbtouchscreen führt dann aber dazu, das dann wieder usbhid das Device übernimmt.

Seit Erstellung des Eintrages habe ich allerdings das Test-Board gegen ein Asus P5N7A-VM getauscht.

Mein TS hat mit dem Orignalkernel des EasyVDR 0.6.06 (2.6.29.4) auf keinerlei Berührungen reagiert. Dabei sehen die Ausgaben von cat /proc/bus/usb/devices genau so aus. Auch das Inputdevice /dev/input/touch war vorhanden.

EIB-Freak

Professional

Posts: 636

Location: Überlingen/Bodensee

Occupation: Elektrotechnikermeister

  • Send private message

16

Sunday, October 31st 2010, 7:30pm

Ich hole den Beitrag mal aus der Versenkung, da ich seit etwa 2 Monaten mit dem DH-202 und insbesondere dessen eingebauten Touch-TFT zu kämpfen habe.

Ist-Zustand:
Das Touch-TFT ist am VGA-Port der OnBoard-Grafikkarte des Mainboards GA-880GA-UD3H angeschlossen und liefert auch die Konsolen- bzw. graphTFT-Ausgabe via Framebuffer.

Soll-Zustand:
Touch soll fürs graphTFT-Plugin funktionieren und der IR-Empfänger fürs Remote-Plugin fürn VDR.

lsusb -v:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
Bus 005 Device 002: ID 15c2:0034 SoundGraph Inc. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x15c2 SoundGraph Inc.
  idProduct          0x0034 
  bcdDevice            0.16
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     121
          Report Descriptor: (length is 121)
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x02 ] 2
                            Mouse
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Local ): Usage, data= [ 0x01 ] 1
                            Pointer
            Item(Main  ): Collection, data= [ 0x00 ] 0
                            Physical
            Item(Global): Report ID, data= [ 0x01 ] 1
            Item(Global): Usage Page, data= [ 0x09 ] 9
                            Buttons
            Item(Local ): Usage Minimum, data= [ 0x01 ] 1
                            Button 1 (Primary)
            Item(Local ): Usage Maximum, data= [ 0x03 ] 3
                            Button 3 (Tertiary)
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x03 ] 3
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x05 ] 5
            Item(Main  ): Input, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Direction-X
            Item(Local ): Usage, data= [ 0x31 ] 49
                            Direction-Y
            Item(Global): Logical Minimum, data= [ 0x81 ] 129
            Item(Global): Logical Maximum, data= [ 0x7f ] 127
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Report Count, data= [ 0x02 ] 2
            Item(Main  ): Input, data= [ 0x06 ] 6
                            Data Variable Relative No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Local ): Usage, data= [ 0x38 ] 56
                            Wheel
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x06 ] 6
                            Data Variable Relative No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x3c ] 60
                            Motion Wakeup
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Feature, data= [ 0x22 ] 34
                            Data Variable Absolute No_Wrap Linear
                            No_Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x07 ] 7
            Item(Main  ): Feature, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Local ): Usage, data= [ 0x06 ] 6
                            Keyboard
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x02 ] 2
            Item(Global): Usage Page, data= [ 0x07 ] 7
                            Keyboard
            Item(Local ): Usage Minimum, data= [ 0xe0 ] 224
                            Control Left
            Item(Local ): Usage Maximum, data= [ 0xe7 ] 231
                            GUI Right
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x08 ] 8
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Input, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x05 ] 5
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Usage Page, data= [ 0x07 ] 7
                            Keyboard
            Item(Local ): Usage Minimum, data= [ 0x00 ] 0
                            No Event
            Item(Local ): Usage Maximum, data= [ 0xff 0x00 ] 255
                            (null)
            Item(Main  ): Input, data= [ 0x00 ] 0
                            Data Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      50
          Report Descriptor: (length is 50)
            Item(Global): Usage Page, data= [ 0xcc 0xff ] 65484
                            (null)
            Item(Local ): Usage, data= [ 0x01 ] 1
                            (null)
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Local ): Usage, data= [ 0x02 ] 2
                            (null)
            Item(Main  ): Collection, data= [ 0x00 ] 0
                            Physical
            Item(Global): Usage Page, data= [ 0xcd 0xff ] 65485
                            (null)
            Item(Local ): Usage, data= [ 0x03 ] 3
                            (null)
            Item(Local ): Usage, data= [ 0x04 ] 4
                            (null)
            Item(Global): Logical Minimum, data= [ 0x80 ] 128
            Item(Global): Logical Maximum, data= [ 0x7f ] 127
            Item(Global): Physical Minimum, data= [ 0x00 ] 0
            Item(Global): Physical Maximum, data= [ 0xff ] 255
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Report Count, data= [ 0x08 ] 8
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x05 ] 5
                            (null)
            Item(Global): Logical Minimum, data= [ 0x80 ] 128
            Item(Global): Logical Maximum, data= [ 0x7f ] 127
            Item(Global): Physical Minimum, data= [ 0x00 ] 0
            Item(Global): Physical Maximum, data= [ 0xff ] 255
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Report Count, data= [ 0x08 ] 8
            Item(Main  ): Output, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Main  ): End Collection, data=none
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)


Und:

Source code

1
2
3
vdr2:/proc/bus # cat /proc/bus/usb
cat: /proc/bus/usb: Ist ein Verzeichnis
vdr2:/proc/bus # 


Und:

Source code

1
2
3
vdr2:/proc/bus/usb # cat /etc/udev/10-remotes.rules
KERNEL==event*, SUBSYSTEM==input, SYSFS{idVendor}==15c2, SYSFS{idProduct}==0034, SYMLINK+=input/mein_touch_device
vdr2:/proc/bus/usb #


und:

Source code

1
2
3
4
5
6
7
8
9
vdr2:/proc/bus/usb # ls -l /dev/input
insgesamt 0
drwxr-xr-x 2 root root     80 31. Okt 2010  by-path
crw-r----- 1 root root 13, 64 31. Okt 2010  event0
crw-r----- 1 root root 13, 65 31. Okt 2010  event1
crw-r----- 1 root root 13, 66 31. Okt 2010  event2
crwxrwxrwx 1 root root 13, 67 31. Okt 2010  event3
crw-r----- 1 root root 13, 63 31. Okt 2010  mice
vdr2:/proc/bus/usb # 

Event3 ist der IR-Empfänger von der DVB-C-Karte.

Und:

Source code

1
2
3
vdr2:/proc/bus/usb # uname -a
Linux vdr2 2.6.34.7-0.5-desktop #1 SMP PREEMPT 2010-10-25 08:40:12 +0200 i686 athlon i386 GNU/Linux
vdr2:/proc/bus/usb # 
(OpenSuse 11.3).

Und auch:

Source code

1
2
3
vdr2:/proc/bus/usb # cat /etc/modprobe.d/usbhid
options usbhid quirks=0x15c2:0x0034:0x0004
vdr2:/proc/bus/usb # 


Was mache ich falsch? Was fehlt ?
Gruss,
Michael

VDR1: openSuSe Linux 10.2 Kernel 2.6.22.9, P4 650, VDR 1.6.0-2, Terratec Cinergy C-1200 & S-2300 modded+Full_TS-&4MB-Mod, Kabel-BW (DVB-C), GraphLCD,AvBoard. Plugins: femon,remote,live,dvd,radio,wirbelscan,burn,epgsearch,extrecmenu,fritzbox,streamdev;
VDR2: openSuSe Linux 12.2 Kernel 3.4.11-2.16-default, AMD 2,9Ghz, VDR 1.7.37, TT-S2 6400 DVB-S, TouchTFT. Plugins: remote,dvbhddevice,live,graphtft,epgsearch,extrecmenu,fritzbox

omo

Beginner

Posts: 12

Location: GERMANY

  • Send private message

17

Saturday, November 13th 2010, 2:17pm

Hallo EIB-Freak,

gibt es bei Dir unter "/proc/bus/usb" keine Einträge? Dann wird vermutlich das usbfs nicht eingebunden sein (siehe z.B. http://www.fibel.org/linux/lfo-0.6.0/node451.html). Die Ausgaben des usbfs werden nur für die Prüfung benötigt, ob das richtige Device den Touchscreen übernommen hat.

Ich habe mittlerweile meine Touchscreen-Einbindung auf die Treiber des Hertsellers EETI / eGalax umgestellt. Dazu habe ich diese selber in den Kernelbaum mitaufgenommen. Verglichen mit UDEV und Quirksen war das sogar verhältnismässig einfach. Ich habe es unter http://vdr-portal.de/board/thread.php?po…1629#post851629 beschrieben. Derzeit läuft bei mir Kernel 2.6.36. Diese Treiber sind zwar nur X-Treiber, so dass bei Verwendung der Framebufferausgabe keine Touchunterstützung möglich ist, aber dafür läuft es seitdem vollkommen stabil.

Bei der Verwendung eines Hersteller-Treibers für den X-Server werden die Touchscreen-Berührungen in Mauskoordinaten auf dem X-Server umgewandelt, so dass man für GraphTFT keine zusätzliche Touchunterstützung konfigurieren muss. Ich weiß aber nicht, ob SoundGraph und eGalax kompatibel sind.

EIB-Freak

Professional

Posts: 636

Location: Überlingen/Bodensee

Occupation: Elektrotechnikermeister

  • Send private message

18

Saturday, November 13th 2010, 4:03pm

Danke ! Ich denke Dein Tip bringt mich weiter. Nein, unter /proc/bus/usb sind keine weiteren Dateien vorhanden. Es hat aber mal funktioniert, ich vermute seit einem Kernelupdate ist das weg.

Ergo müsste ich mal kurz die Kernelconfig aufrufen und usbfs als Modul compilieren, oddr ?
Gruss,
Michael

VDR1: openSuSe Linux 10.2 Kernel 2.6.22.9, P4 650, VDR 1.6.0-2, Terratec Cinergy C-1200 & S-2300 modded+Full_TS-&4MB-Mod, Kabel-BW (DVB-C), GraphLCD,AvBoard. Plugins: femon,remote,live,dvd,radio,wirbelscan,burn,epgsearch,extrecmenu,fritzbox,streamdev;
VDR2: openSuSe Linux 12.2 Kernel 3.4.11-2.16-default, AMD 2,9Ghz, VDR 1.7.37, TT-S2 6400 DVB-S, TouchTFT. Plugins: remote,dvbhddevice,live,graphtft,epgsearch,extrecmenu,fritzbox

omo

Beginner

Posts: 12

Location: GERMANY

  • Send private message

19

Saturday, November 13th 2010, 5:52pm

Hallo EIB-Freak,

für openSuse 10.2 gibt es hier ein How-to dazu: https://experts.missouristate.edu/displa…SinopenSUSE10.2

EIB-Freak

Professional

Posts: 636

Location: Überlingen/Bodensee

Occupation: Elektrotechnikermeister

  • Send private message

20

Saturday, November 13th 2010, 10:07pm

Servus,

musste erstmal nur in der fstab den usbfs-eintrag ändern von noauto auf Auto. Jetzt werden zwar devices in /proc/bus/usb angezeigt (007/001, Touchscreen wird an USB 7 Port 1 erkannt....) aber es wird kein Input-Device erzeugt ?!?
Gruss,
Michael

VDR1: openSuSe Linux 10.2 Kernel 2.6.22.9, P4 650, VDR 1.6.0-2, Terratec Cinergy C-1200 & S-2300 modded+Full_TS-&4MB-Mod, Kabel-BW (DVB-C), GraphLCD,AvBoard. Plugins: femon,remote,live,dvd,radio,wirbelscan,burn,epgsearch,extrecmenu,fritzbox,streamdev;
VDR2: openSuSe Linux 12.2 Kernel 3.4.11-2.16-default, AMD 2,9Ghz, VDR 1.7.37, TT-S2 6400 DVB-S, TouchTFT. Plugins: remote,dvbhddevice,live,graphtft,epgsearch,extrecmenu,fritzbox