Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
HELP: LIRC + Hauppauge WinTV Nexus-S -> Tasten prellen
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Master One
l33t
l33t


Joined: 25 Aug 2003
Posts: 754
Location: Austria

PostPosted: Tue Sep 21, 2004 2:38 pm    Post subject: HELP: LIRC + Hauppauge WinTV Nexus-S -> Tasten prellen Reply with quote

Ich bin nun schon seit zwei Tagen am rumspielen, und weiß nicht mehr weiter.

Ich habe hier eine neue Hauppauge WinTV Nexus-S eingebaut, und bekomme die Sache mit der Fernbedienung nicht richtig zum Laufen:

- Kernel 2.6.8.1 (mit aktiviertem Event-Interface)
- lirc-0.7.0_pre7-r1 (mit LIRC_OPTS=--with-driver=devinput)
- Die silbergraue Hauppauge Fernbedienung mit den Farbtasten
- Fernbedienungsempfänger an Nexus-S angeschlossen
- Auslesen über AV7110 & Event-Interface

Damit das Event-Interface die Signale der Fernbedienung nicht auch über den Tastaturtreiber auf die Konsole ausgibt, habe ich die keyboard.c des Kernels gepatched:
Code:
+   if (dev->name[0]=='D' && dev->name[1]=='V' && dev->name[2] == 'B')
+      return NULL;
+
    if (!(handle = kmalloc(sizeof(struct input_handle), GFP_KERNEL)))
       return NULL;
    memset(handle, 0, sizeof(struct input_handle));

Dies ergibt, daß kbd beim Input-Device nicht mehr als Event-Handler aufscheint:
Code:
root # cat /proc/bus/input/devices

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="DVB on-card IR receiver"
P: Phys=
H: Handlers=event2
B: EV=100003
B: KEY=3883c000 2045 0 0 0 0 0 4180 801 921680 0 0 ffc

/proc/av7100_ir habe ich mit der auppauge_grey.rc5 geladen und lircd mit LIRCD_OPTS="-d /dev/input/event2" gestartet.

Prinzipiell funktioniert es ja, wenn da nicht dieses lästige Tastenprellen wäre. Wenn man eine Taste ganz vorsichtig und wirklich nur ganz kurz drückt, zeigt irw das Event auch nur als einen Tastendruck an, aber sobald ich eine Taste einigermaßen normal drücke (wie man es eben gewohnt ist), wird das Tastenevent zweimal registriert, also das typische Prellen.

Folgende Ausgabe verdeutlicht das Problem bei Verwendung von irw:
Code:
root # irw
000000008001006c 00 Ch- hauppauge_pvr
000000008001006c 00 Ch- hauppauge_pvr

Taste Ch- wurde ganz normal nur einmal gedrückt, scheint aber zweimal auf. Die "00" sollte eigentlich eine Wiederholung anzeigen, tut es aber nicht, d.h. das Event wird offenbar nicht korrekt ausgewertet, denn folgende Ausgabe dieses Versuchs erscheint im System-Log:
Code:
0.7.0pre7[26004]: accepted new client on /dev/lircd
0.7.0pre7[26004]: initializing '/dev/input/event2'
0.7.0pre7[26004]: devinput_rec
0.7.0pre7[26004]: time 1095776329.495043  type 1  code 108  value 1
0.7.0pre7[26004]: code 8001006c
0.7.0pre7[26004]: devinput_decode
0.7.0pre7[26004]: devinput_rec
0.7.0pre7[26004]: time 1095776329.607626  type 1  code 108  value 2
0.7.0pre7[26004]: code 8001006c
0.7.0pre7[26004]: devinput_decode
0.7.0pre7[26004]: devinput_rec
0.7.0pre7[26004]: time 1095776329.857182  type 1  code 108  value 0
0.7.0pre7[26004]: code 0001006c
0.7.0pre7[26004]: devinput_decode
0.7.0pre7[26004]: removed client
0.7.0pre7[26004]: closing '/dev/input/event2'

Meiner Ansicht nach ist die Empfindlichkeit zu hoch, denn obwohl die Taste nur kurz gedrückt wurde, ist gleich mit "value 2" das "Taste-gedrückt-halten" registriert worden, was dann das doppelte Event ausgelöst hat.

Seltsamerweise ist die Anzeige von lirc im System-Log zumindest korrekt, was den Status der Taste anbelangt (also value 0 für release, value 1 für press, value 2 für hold), nicht jedoch die Ausgabe von irw, da hierbei immer nur "00" aufscheint, auch wenn man eine Taste gedrückt hält. Ob das ein Bug ist, kann ich nicht sagen, ich kann mich aber erinnern, daß dies schon mal jemandem in der lirc-Mailingsliste aufgefallen ist.

Ich weiß nun jedenfalls nicht mehr weiter, in diesem Zustand kann man die Fernbedienung nicht sinnvoll nutzen, da die meisten einfachen Tastendrücke doppelt registriert werden.

Kann man das Problem irgendwie mit der Konfiguration in /etc/lircd.conf in den Griff bekommen???

Meine lircd.conf sieht folgdermaßen aus (ist das bekannte Standardfile zur hauppauge_grey):
Code:
begin remote

  name          hauppauge_pvr
  bits          13
  flags         RC5|CONST_LENGTH
  eps           30
  aeps          100

  one           969   811
  zero          969   811
  plead         1097
  gap           114605
  toggle_bit    2

      begin codes
          Power                    0x80010074
          Go                       0x80010162
          1                        0x80010002
          2                        0x80010003
          3                        0x80010004
          4                        0x80010005
          5                        0x80010006
          6                        0x80010007
          7                        0x80010008
          8                        0x80010009
          9                        0x8001000a
          Back/Exit                0x800100ae
          0                        0x8001000b
          Menu                     0x8001008b
          Red                      0x8001018e
          Green                    0x8001018f
          Yellow                   0x80010190
          Blue                     0x80010191
          Ch+                      0x80010067
          Ch-                      0x8001006c
          Vol-                     0x80010069
          Vol+                     0x8001006a
          Ok                       0x80010160
          Mute                     0x80010071
          Blank                    0x80010166
          Full                     0x8001016d
          Rewind                   0x800100a8
          Play                     0x80010197
          Forward                  0x8001019b
          Record                   0x800100a7
          Stop                     0x80010080
          Pause                    0x80010077
          Replay                   0x8001019c
          Skip                     0x8001019d
      end codes

end remote

Leider habe ich keine Ahnung, welche Optionen man hier mit welchen Werten testen könnte. Ich habe zwar von Versuchen mit "repeat" und "delay" gelesen, aber diese waren wohl auch nicht von Erfolg.

Oder gibt es eine Möglichkeit, lirc zu patchen, um die Empfindlichkeit zu beeinflussen???
_________________
Las torturas mentales de la CIA
Back to top
View user's profile Send private message
Master One
l33t
l33t


Joined: 25 Aug 2003
Posts: 754
Location: Austria

PostPosted: Thu Sep 23, 2004 8:07 am    Post subject: Reply with quote

Inzwischen habe ich meine lircd.conf geändert, sodaß das Event auf das Loslassen der Taste getriggert wird (also einfach 0x0001... statt 0x8001...), aber dies verhindert natürlich die Tastenwiederholung vollständig, und das ist nicht wirklich die gewünschte Lösung (zumal es sich auch seltsam anfühlt, wenn die Aktion erst nach Loslassen einer Taste ausgeführt wird).

Hat denn niemand eine Idee, wie man dieses Problem lösen kann???

Hat denn niemand sonst das selbe Problem???

Vielleicht hat es ja gar nichts mit lirc selbst zu tun, sondern mit evdev (dem Event-Interface-Kernelmodul).

Hat jemand eine Ahnung, ob man dieses Kernel-Modul irgendwie patchen kann, um die Empfindlichkeit des Eingabegeräts zu beeinflussen???

P.S. Ich habe es auch mit dem lirc-Treiber "hauppauge_dvb" versucht, aber ich vermute mal, daß dieses nur mit einem 2.4er Kernel funktioniert, da ich es mit dem /dev/lirc/lirc0 Interface erst gar nicht zum Laufen gebracht habe (zwar hat lirc-dev im System-Log bestätigt, daß ein Device an Device-Node 61 erzeugt wurde, aber es wurde nicht wirklich in /dev auf meinem UDEV System erzeugt, und manuell mit mknod nachzuhelfen hat nichts gebracht, denn lircd hat nach dem Start dann trotzdem "no such device" gemeldet). Oder hat es jemand geschafft, diesen Treiber auf einem 2.6er Kernel zum Laufen zu bringen???
_________________
Las torturas mentales de la CIA
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum