Verständnisfrage: KEY_NUMERIC_1 vs. KEY_1 bei CIR und eventlircd

  • Hallo Leute,
    hat jemand einen Tip wo das KEY_NUMERIC_1 erzeugt wird wenn in der keytable nur KEY_1 steht? (gilt für alle Zifferntasten).


    Ich habe eine eigene /etc/rc_keymaps/rc-rc6-mce-rc5-81 für zwei Fernbedienungen erstellt. Alle anderen Tasten funktionieren. Damit ist bewiesen das meine keytable verwendet wird. Am Tag als ich die keytable erstellt habe, haben die Ziffern auch funktioniert (manuelles laden der keytable). Jetzt wird sie automatisch geladen und irw liefert KEY_NUMERIC_1.
    Ich vermute die KEY_1 werden als "normale" Taste irgendwo umgewandelt.


    Was mich wundert:
    Die keytables im Kern verwenden alle KEY_NUMERIC_, aber remote.conf hat KEY_ ?



    Details:

    Code
    ir-keytable
    Found /sys/class/rc/rc0/ (/dev/input/event7) with:
    	Driver nuvoton-cir, table rc-rc6-mce
    	Supported protocols: NEC RC-5 RC-6 JVC SONY LIRC other 
    	Enabled protocols: RC-5 RC-6 
    	Repeat delay = 500 ms, repeat period = 125 ms


    Code
    ir-keytable -r
    scancode 0x0500 = KEY_0 (0x0b)
    scancode 0x0501 = KEY_1 (0x02)
    ...
    scancode 0x800f0400 = KEY_0 (0x0b)
    scancode 0x800f0401 = KEY_1 (0x02)


    (ir-keytable sortiert numerisch, die keytable ist nach protocol sortiert)

    Code
    cat /etc/rc_keymaps/rc-rc6-mce-rc5-81 
    # table rc-rc6-mce-rc5-81, type: RC-6,RC-5 
    0x800f0400 = KEY_0
    0x800f0401 = KEY_1
    .....
    0x0500 = KEY_0
    0x0501 = KEY_1

    Grüße, Dieter :)

  • hat jemand einen Tip wo das KEY_NUMERIC_1 erzeugt wird wenn in der keytable nur KEY_1 steht?


    Wie sieht deine /etc/rc_maps.cfg aus?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Was mich wundert:
    Die keytables im Kern verwenden alle KEY_NUMERIC_, aber remote.conf hat KEY_ ?


    Das ist bei den Fernbedienungen ziemlich inkonsistent gelöst. Da wir für eventlircd einen vereinheitlichenden Namespace brauchen ist das einfach eine Konvention in yaVDR geworden, siehe https://bugs.yavdr.com/projects/yavdr/wiki/IR_Integration_04

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo Seahawk,
    Danke!


    In die /etc/rc_maps.cfg habe ich diese Zeile eingefügt (am Anfang). Weil alle RC5-Tasten funktionieren, bin ich sicher daß diese keytable auch geladen wird.


    Code
    nuvoton-cir	rc-rc6-mce       /etc/rc_keymaps/rc-rc6-mce-rc5-81


    Als Workaround habe ich die KEY_NUMERIC_x zusätzlich in die remote.conf geschrieben. Damit ist zunächst egal welche Version der Zifferentasten ankommt (WAF!). Das wäre vielleicht auch als Standard interessant.


    Nur möchte ich halt wissen was da passiert. Vielleicht werden meine Zifferneinträge in der keytable ignoriert? (aber: ir-keytable -r zeigt sie ja an). Notfalls müssen ein paar printk herhalten.

    Grüße, Dieter :)

  • Nur möchte ich halt wissen was da passiert.


    Du hast die keytable in ihrem Header falsch benannt, daher kann die nicht greifen. Entweder du nennst sie richtigerweise

    Code
    # table rc-rc6-mce, type: RC-6,RC-5


    oder du musst die Regel unschärfer auslegen

    Code
    nuvoton-cir	*  /etc/rc_keymaps/rc-rc6-mce-rc5-81

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo Seahawk,
    dies Regel hatte bis gestern
    [CODE
    ]* * /etc/rc_keymaps/rc-rc6-mce-rc5-81
    [/CODE]


    Hat aber nichts geändert. Zur Fehlereingrenzung habe ich dann schritweise die * ersetzt.
    Alle anderen Einträge in der Tabelle werde ja richtig verwendet (RC5 ! und KEY_MENU,KEY_POWER2 gehen mit der Kerntabelle nicht)..


    PS: Habe gerade gesehen dass die alte remote.conf (0.4) in Deinem Link auch beide Einträge hat.

    Grüße, Dieter :)

  • PS: Habe gerade gesehen dass die alte remote.conf (0.4) in Deinem Link auch beide Einträge hat.


    Ja, aber das braucht es eigentlich schon lange nicht mehr...


    Sicher, dass du da nicht noch irgendwo einen Syntax-Fehler drin hast? Was liefert "ir-keytable -t" für die Taste wenn eventlircd gestoppt ist? Ändert sich etwas, wenn du die keytable manuell lädst?

    Code
    sudo ir-keytable -c -w /etc/rc_keymaps/rc-rc6-mce-rc5-81

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi,
    ohne eventlird kommen die KEY_x ("ir-keytable -t"). Damit ist die keytable wohl korrekt veerwendet.


    Mit eventlircd (service eventlircd start) kommen die KEY_NUMERIC_x.
    Manuelles laden ändert nichts.


    Habe übrigens die Regel verändert, auch das hat nichts geändert (nach reboot!).

    Code
    nuvoton-cir	*  /etc/rc_keymaps/rc-rc6-mce-rc5-81


    Idee:
    Mein System ist kein reines yaVDR! Ist ein Precise-64 mit vielen Paketen von yaVDR-testing. (ISO installieren ist zu langweilig, man lernt ja nichts).
    Vielleicht ist im reinen yaVDR ja noch eine weitere Tabelle von der ich noch nichts weiß?

    Grüße, Dieter :)

  • Vielleicht ist im reinen yaVDR ja noch eine weitere Tabelle von der ich noch nichts weiß?


    Dann ist es aber unsinnig im yaVDR-Unterforum zu posten. Hier gehen wir einfach von der Standard-Konfiguration eines yaVDR-Systems aus (und es wäre zumindest angebracht das explizit zu erwähnen wenn man was anderes nutzt)...
    Ich vermute dann spielt bei dir die /etc/eventlircd.d/ircore.evmap rein - aber ohne die genaue Konfiguration der udev-Regeln auf deinem System zu kennen kann ich das nicht sicher sagen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo Seahawk,
    sorry! Das wollte ich eigentlich im ersten Post erwähnen, habe es aber leider vergessen.


    Die evmap ist schuld, dort stehen die NUMERIC-Ersetzungen drin. Vermutlich habt ihr diese in einem Paket ersetzt das ich nicht installiert habe. Wieder etwas gelernt, deshalb mache ich das ja so. Mein VDR soll schrittweise an den yaVCDR angenähert werden, aber als Basis ein std. Ubuntu benutzen.


    Und DANKE für eure unermüdlichen Einsatz für yaVDR. Das erleichtert vielen so ein System aufzusetzen.


    Grüße, Dieter :)

  • Die evmap ist schuld, dort stehen die NUMERIC-Ersetzungen drin. Vermutlich habt ihr diese in einem Paket ersetzt das ich nicht installiert habe.

    Nein, haben wir nicht, die evmap ist bei einer yaVDR-Installation weiterhin vorhanden. Was wir nicht mehr haben ist eine udev-Regel, die diese evmap jedem rc-core Empfänger zuweist: https://github.com/yavdr/yavdr…v/98-eventlircd.rules#L60 (ist damals rausgeflogen als ich mit der rc-core Belegung für die Hauppauge PVR 350 angefangen habe: https://github.com/yavdr/yavdr…acaeb812c053976546c01da8f )

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!