Hilfsskript für rc-core Empfänger

  • Hallo,
    eine der großen Herausforderungen bei yaVDR 0.4 schein die Erstellung passender Keymaps für rc-core Empfänger zu sein bzw. die Umbelegung wenn Tasten nicht durch den Treiber Namespace-konform benannt sind. Das generelle Vorgehen ist bereits in der Dokumentation beschrieben: http://www.yavdr.org/documenta…/ch02s03.html#ir-keytable


    Für den Fall, dass zwar alle Tastendrücke bereits erkannt werden (es also Tastencodes + Tastennamen bei "sudo ir-keytable -t" gibt), aber die Belegung nicht zum Schema für yaVDR passt habe ich folgendes Skript geschrieben, um das Erstellen von eigenen Keytables zu erleichtern:
    list-rc-core.sh


    Benutzung:

    Code
    1. wget http://dl.dropbox.com/u/960809/list-rc-core.sh
    2. chmod +x list-rc-core.sh
    3. sudo ./list-rc-core.sh # gibt Vorschläge für Keytables und einen Eintrag in der /etc/rc_maps.conf aus


    Das Skript listet alle rc-core Empfänger und die aktuell für sie geladenen Keytables so auf, dass man die Ausgabe direkt in eine eigene Keytable kopieren (und dort die Tastennamen anpassen) kann. Ein Vorschlag für einen Eintrag in der /etc/rc_maps.cfg (Achtung: die Datei ist getemplated) wird ebenfalls erstellt.


    Experimentell kann das Skript die Einträge auch selbst vornehmen:

    Code
    1. sudo ./list-rc-core.sh set # !Experimentell! Erstellt die Keytables unter /etc/rc_keymaps und erzeugt custom Templates für die /etc/rc_maps.cfg


    Die erstellten Keytables landen unter /etc/rc_keymaps/<Tabellenname>, außerdem wird ein custom Template unter /etc/yavdr/templates_custom/etc/rc_maps.cfg/99_<Tabellenname> angelegt und die /etc/rc_maps.cfg neu aus den Templates erstellt. Die Tastennamen sollte man dann sillvollerweise an die eigenen Bedürfnisse anpassen ;)


    Edit: Zwei kleinere Fehler beim set-Teil gefixt. Bitte Skript erneut laden.


    Die Benutzung des Skriptes erfolgt auf eigene Gefahr :P

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Dieser Beitrag wurde bereits 3 Mal editiert, zuletzt von seahawk1986 ()

  • Achja: über Rückmeldungen ob das mit dem automatischen Erstellen und Laden der anpassbaren Keymaps klappt würde ich mich natürlich sehr freuen :unsch

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hab es mal angetestet. Sieht gut aus. Ich habe es mal angeheftet, damit man es einfacher wiederfinden kann.


    Wenn man das sckript mit set ausgeführt hat kann man dann die angegebene keymap editieren und nach dem editieren mit


    ir-keytable -w <keymapname> [ -s rcX ] die editierte version laden. Neu gestartet werden muss da nix, d.h. man kann sich seinem Wunschmapping nach und nach nähern :)


    Setzt voraus, das man eine FB benutzt die das rc-core framework benutzt :)

  • kurzes feedback und meine erfahrungen,


    vorerst einmal danke für das skript :respekt , es hat bei mir wunderbar funktioniert
    bis auf zwei tasten


    KEY_MENU
    KEY_POWER2


    Die beiden tasten habe ich in der /etc/rc_keymaps/rc-rc6-mce datei angepasst
    und den rechner neu gestartet, hat danach leider nicht funktioniert.


    Demnach habe ich mit dem befehl ir-keytable –c die aktuelle keytable entladen
    und manuell mit folgenden befehl neu geladen


    ir-keytable –w /etc/rc_keymaps/rc-rc6-mce 
    leider mit dieser fehlermeldung:
    Protocol LIRC invalid
    Invalid parameter on line 1 of /etc/rc_keymaps/rc-rc6-mce
    Invalid parameter(s)
    ir-keytable: -w: (PROGRAM ERROR) Option should have been recognized!?
    Try `ir-keytable --help' or `ir-keytable --usage' for more information.


    cat /etc/rc_keymaps/rc-rc6-mce

    Code
    1. # table rc-rc6-mce, type:NEC,RC-5,RC-6,JVC,SONY,LIRC,other
    2. 0x800f0400 = KEY_NUMERIC_0
    3. 0x800f0401 = KEY_NUMERIC_1
    4. 0x800f0402 = KEY_NUMERIC_2
    5. ....


    Erste zeile gelöscht neu geladen
    Nun funktionieret alles :lachen2


    Da ich kein Spezialist hätte ich noch eine kurze frage, was war an dieser zeile falsch?
    könnte es auswirkungen haben?


    seahawk1986
    Ich möchte mich nicht nur für das script bedanken sondern auch dafür das du mich
    auf den richtigen weg gebracht hast, und mir viele stunden arbeit erspart hast. :respekt


    jetzt habe ich nur noch einen punkt offen, dass ich mit einer taste mein xbmc starten kann
    aber das ist eine andere geschichte.


    DANKE für alles

    VDR
    AsRock ION 330-BD yaVDR 0.3 => 0.4
     :D 
    HDD - 320 GB


    TT-36050-CI



    Verstärker:
    Kenwood DVR7000

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von faithful ()

  • Da ich kein Spezialist hätte ich noch eine kurze frage, was war an dieser zeile falsch?
    könnte es auswirkungen haben?


    Ich vermute, dass der rc-core Treiber für deinen Empfänger zu viele Protokolle als aktiv gemeldet hat (Steht ja da: "Protocol LIRC invalid" - d.h. der Empfänger unterstützt das Protokoll nicht). Das Skript macht da nichts anderes als mittels "sudo ir-keytable" die aktuell aktivierten Protokolle abzufragen und diese in den Header der Keytable zu schreiben. Ich kenne da leider noch keine Möglichkeit da sinnvolles von nicht sinnvollem zu trennen, so dass man da ggf. noch Anpassungen vornehmen muss.


    # table rc-rc6-mce, type:NEC,RC-5,RC-6,JVC,SONY,LIRC,other


    Die Zeile müsste man auch einfach auf das Protokoll der Fernbedienung (AFAIK müsste das RC-6 sein) anpassen können, dann sollte es klappen:

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

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • seahawk1986



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



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

    Code
    1. Read rc-rc6-mce table
    2. Old keytable cleared
    3. Wrote 63 keycode(s) to driver
    4. Protocols changed to RC-6



    TIP hat funktioniert


    @steffen_p
    ich glaube nuvoton-cir

    cat /etc/rc_maps.cfg | grep rc-rc6-mce

    Code
    1. nuvoton-cir rc-rc6-mce /etc/rc_keymaps/rc-rc6-mce

    VDR
    AsRock ION 330-BD yaVDR 0.3 => 0.4
     :D 
    HDD - 320 GB


    TT-36050-CI



    Verstärker:
    Kenwood DVR7000

  • Ich habe jetzt dank des Skriptes die FB zur Terratec Cinergy S2 HD zum laufen gebracht.


    Folgende manuelle Anpassungen waren noch nötig:


    /etc/rc_keymaps/rc-terratec-cinergy-s2-hd

    Code
    1. # table rc-terratec-cinergy-s2-hd, type: RC-5
    2. ...
    3. 0x0016 = KEY_PVR
    4. ...
    5. 0x003e = KEY_POWER2


    Das Skript hatte keinen type geschrieben.
    Mit KEY_PVR werden jetzt mit der Taste "Video" die Aufzeichnungen aufgerufen.
    Mit KEY_POWER2 ist der Powerknopf korrekt belegt.
    Leider gibt die Taste "PIC" keinen Code aus, womit ich die leider nicht sinnvoll belegen kann.


    In /etc/rc_maps.cfg standen zwei Zeilen mit dem Treiber mantis_core.
    Ich habe eine auskommentiert, damit läuft es jetzt.


    /etc/rc_maps.cfg

    Code
    1. # mantis_core * /lib/udev/rc_keymaps/skystarhd2
    2. mantis_core * /etc/rc_keymaps/rc-terratec-cinergy-s2-hd


    seahawk1986 : Danke für deine Arbeit, ich habe keine Ahnung, ob du in deinem Skript einen Fehler hast, aber vielleicht kannst du dir das noch einmal ansehen.

  • Der Fehler liegt in der zu weit gefassten Regel:
    So in der Art wäre es richtig - müssen wir mal schauen welche tables noch zu mantis_core gehören und noch ergänzen.


    In dieser Art würde es nur für deine Table gelten:
    mantis_core rc-terratec-cinergy-s2-hd rc-terratec-cinergy-s2-hd


    Wenn du einmal die komplette table hier posten würdest, würden wir das dann im selben Zuge übernehmen :)


  • Wenn du einmal die komplette table hier posten würdest, würden wir das dann im selben Zuge übernehmen :)


    Es hat ein wenig gedauert, aber jetzt sind alle tasten sinnvoll belegt:


    /etc/rc_keymaps/rc-terratec-cinergy-s2-hd

  • hallo Seahawk,
    das kommt bei meinem INtel CIR raus:
    Merkwürdigerweise passen bei mir die Menü, exit & Power Taste nicht. Sie werden als KEY_MENU ; KEY_EXIT und KEY_SLEEP von IRW und Keytable erkannt. Wenn ich das Script richtig verstanden habe sollte damit einfach eine eigene Keytable erzeugt werden, die als custom template automatisch mit "set" erzeugt wird.
    Beim erzeugen gibt es aber am Ende einen Fehler.


    Edit: Zeile 1 bearbeitet und nur rc6 angegeben ergibt nun keinen Fehler. Aber die 3 Tasten funtkionieren weiterhin nicht. Habe ich da vom Scriptprinzip etwas falsch verstanden?

    Proxmox VE, Tyan Xeon Server, OMV, MLD-Server 5.1
    MLD 5.1 64bit: Asus AT5iont-t, ION2, 4GB Ram, SSHD 2,5" 1Tb, HEX TFX 300W 82+, Cine S2 V6.2 , 38W max.
    Yavdr 0.5:
    Zotac D2550ITXS-A-E mit GT610 OB, TT S2-4100 PCI-e ,Joujye NU-0568I-B
    Yavdr 0.5:
     Sandy Bridge G840, Tests und Energieverbrauch , CoHaus CIR, Cine S2 V6.2
    MLD 5.1 Beebox N3150
    , DVBSky S960 und 1Tb WD Blue

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Torsten73 ()

  • Das Script legt "nur" das custom template und die keymap an, macht aber nicht schon automatisch Ersetzungen (auch wenn es bei einigen Tasten technisch wohl möglich wäre) - wenn wir schon einen Eintrag in der /etc/rc_maps.cfg haben weiss ich auch nicht ob das Skript 100% funktioniert.

  • # table rc-rc6-mce, type: NEC RC-5 RC-6 JVC SONY LIRC other


    Mh, das muss ich mir am Freitag noch mal ansehen... IIRC müssen da Kommata zwischen die Protokolle.
    Die Fehlermeldung am Ende stammt von ir-keytable -a und tritt dann auf, wenn die Syntax der automatisch erzeugten Datei noch Fehler hat.


    Die KEY_NUMERIC_<Ziffer> Sachen könnte man sicher auch gleich ersetzen lassen... Noch weitere Feature-Wünsche?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • D.h. ich muß z.B. für KEY_SLEEP der lt. irw

    Code
    1. root@yavdr-dt:/home/torsten# irw
    2. 8e 0 KEY_SLEEP devinput


    sendet den Eintrag von 0x800f040c = KEY_SLEEP in der /etc/rc_keymaps/rc-rc6-mce auf 0x800f048e = KEY_SLEEP ändern?


    Edit: Neu laden bekomme ich auch nicht hin:

    Code
    1. root@yavdr-dt:/home/torsten# ir-keytable -w /etc/rc_keymaps/rc-rc6-mce
    2. ir-keytable: Too many arguments


    Ist wahrscheinlich zu spät für meine Augen, aber ich sehe keinen Syntaxfehler.

    Proxmox VE, Tyan Xeon Server, OMV, MLD-Server 5.1
    MLD 5.1 64bit: Asus AT5iont-t, ION2, 4GB Ram, SSHD 2,5" 1Tb, HEX TFX 300W 82+, Cine S2 V6.2 , 38W max.
    Yavdr 0.5:
    Zotac D2550ITXS-A-E mit GT610 OB, TT S2-4100 PCI-e ,Joujye NU-0568I-B
    Yavdr 0.5:
     Sandy Bridge G840, Tests und Energieverbrauch , CoHaus CIR, Cine S2 V6.2
    MLD 5.1 Beebox N3150
    , DVBSky S960 und 1Tb WD Blue

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Torsten73 ()

  • Hallo Torsten73,
    maßgeblichn ist die Ausgabe von "sudo ir-keytable -t" bei gestopptem Eventlircd für die Taste um den scancode zu ermitteln. Wenn irw sie schon anzeigt, heißt das, dass sie bereits erkannt wird, nur hat sie OOTB in yaVDR 0.4 keine Funktion. Für für den VDR belegte Tasten siehe http://www.yavdr.org/documentation/de/ch02s03.html#id460598

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zitat

    Ist wahrscheinlich zu spät für meine Augen, aber ich sehe keinen Syntaxfehler


    Sollte es nicht

    Code
    1. ir-keytable -a /etc/rc_keymaps/rc-rc6-mce

    sein ?
    VG Kurt

    [font='Verdana, sans-serif'][size=8]vdr hd: Core i3 2100T, 2GB, Intel DH67BL, Tevii S480, Sandisk G25 SSD, 2TB HDD, Intel CIR, Harmony 300, MSI G210, yavdr 0.5

  • Sollte es nicht

    Code
    1. ir-keytable -a /etc/rc_keymaps/rc-rc6-mce


    sein ?


    Nein, da -a eine Konfigurationsdatei mit Regeln für Keymaps auswertet (bei yaVDR liegen die unter /etc/rc_maps.cfg), -w hingegen eine angegebene Keymap direkt lädt.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo


    ich hol das mal hoch. Ich bin nun am letzten Baustein meines VDR angelangt...


    Ich habe das linux-media-dkms installiert. Nun geht auch das Scrollrad meiner X10 (Funktion wie rauf runter passt!!)


    Sodala. Nun möchte ich nur noch einige Tasten umbelegen:
    - Der "Zap" - Knopf sollte als Fullscreen Toggle funktionieren.


    Das wäre mir das wichtigste. Bevor ich jetzt zu basteln anfange und wieder die arbeit der letzten vielen Stunden zerstöre - wie gehe ich da vor?


    Wenn ich "sudo ir-keytable -t" aufrufe und tasten drücke erhalte ich KEINE ausgabe.


    Muss ich jetzt einfach dein Skript ausführen?


    Danke.. Grüße

  • Wenn ich "sudo ir-keytable -t" aufrufe und tasten drücke erhalte ich KEINE ausgabe.


    Da kommt nur was an, wenn eventlircd zuvor gestoppt wurde, da das exklusiv das Device ausliest.

    Muss ich jetzt einfach dein Skript ausführen?


    Wenn du es einfach ausführst (also ohne "set"), erhältst du nur einen Vorschlag, wie die Basis-Konfiguration aussehen könnte. Das sollte man sich dann in Ruhe ansehen und ggf. korrigieren, bevor man es einbaut. Falls du Fragen dazu hast, am besten die Ausgabe des Skripts in einem neuen Thread posten.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zitat

    Da kommt nur was an, wenn eventlircd zuvor gestoppt wurde, da das exklusiv das Device ausliest.

    Bingo, danke!


    Jetzt kriege ich bei jeder Taste eine Ausgabe. Wo belege ich das jetzt am blödsten um? Mit deinem Skript oder manuell in irgendwelchen Konfigdateien?