Mantis Ir-Tables überschrieben durch /etc/rc_maps.cfg

  • Hallo,


    Der Treiberpatch für mantis bezüglich IR-Support enthält drei KeyTables welche abhängig von subsystem_vendor geladen werden um im Idealfall die Keytable für die mitgelieferte Fernbedienung zu laden.


    Leider wird in yavdr durch einen Eintrag in rc_maps.cfg die Keytable für alle unterschiedlichen vendors durch /lib/udev/rc_keymaps/skystarhd2 überschrieben. Dies sollte jedoch nur bei der eine Karte (Technisat Skystar HD2) überschrieben werden.


    lg
    Christoph

  • Hallo, kannst du beschreiben wie das genau umgesetzt wird?
    Ich weiß, dass die Regel in /etc/rc_maps.cfg ungenau ist, da sie nur auf den Treiber mantis_core matcht - wo wären denn die drei Keytables und deren Namen zu finden?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo,


    Die drei Keytables und die Unterscheidung hatte ich direkt im Treiberpatch includiert.


    https://github.com/yavdr/yavdr…-support-for-mantis.patch




    Hier sieht man, dass vp1041 für das Device MANTIS_VP_1041_DVB_S2 die Keytable RC_MAP_TWINHAN_DTV_CAB_CI ansonsten RC_MAP_TERRATEC_CINERGY_S2_HD geladen wird. Man müsste also eine weiter Keytable hinzufügen diese in /linux/include/media/rc-map.h definieren und anschließend die switch clausel erweitern. Bei Tables für andere Karten kann auch direkt in der Struktur mantis_hwconfig eine Table mittels .ir_codes hinzugefügt werden.


    lg
    Christoph


    edit:


    Möglicherweiße wäre hier auch eine eigene Udev-Rule möglich:


    Code
    ACTION=="add", SUBSYSTEM=="rc", \
     ATTRS{subsystem_vendor}=="0x1ae4", ATTRS{subsystem_device}=="0x0001", \
     RUN+="/usr/bin/ir-keytable -c -w /lib/udev/rc_keymaps/skystarhd2 -s mantis_core"
    ACTION=="add", SUBSYSTEM=="rc", \
    ATTRS{subsystem_vendor}=="0x1ae4", ATTRS{subsystem_device}=="0x0003", \
    RUN+="/usr/bin/ir-keytable -c -w /lib/udev/rc_keymaps/skystarhd2 -s $name"


    Hier beide Rules da es anscheinend zwei verschiedene versionen der Skystar hd gibt


    /drivers/media/dvb/mantis/mantis_vp1041.h

    Code
    [...]#define SKYSTAR_HD2_10 0x0001
    #define SKYSTAR_HD2_20 0x0003[...]


    Habe mir die Udev-Rules aus Beispielen zusammengebaut da ich mich damit noch nicht beschäftigt habe sie enthalten jedoch bereits die richtigen vendor und device id's (nicht getestet). Es wäre wenn ich mir die Man-Page von ir-keytables so ansehe auch möglich direkt für ein konkretes device "-d /dev/input/event*" die Table zu setzen leider weiß ich nicht ob ich diese Information in Udev-Rules erhalte.

  • Also das Laden der Keytable davonn abhängig zu machen welche Treiber-Keytable Kombination durch rc-core erkannt wird kann ich gerne in die rc_maps.cfg einbauen.
    Für Veränderungen am linux-media-dkms Paket selbst müssten unsere Spezialisten steffen_b oder traxanos ran (das übersteigt meine Fähigkeiten) - wenn du einen entsprechenden Patch lliefern kannst, mach am besten einen Feature-Request hier auf: https://bugs.yavdr.com/projects/yavdr-dkms-scripts

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • hallo,


    Was ist euch lieber, das hinzufügen von suddev_[vendor|device] abfragen in rc_maps.cfg bzw eigene udev-Rules für die devices (siehe post oben) oder die Erweiterung meines Patches um die keytable kann meinen Patch leicht anpassen? leider kann ich die Änderungen selbst nicht testen.


    lg
    Christoph

  • Irgendwie verstehe ich da noch nicht ganz was da passieren soll.


    Aktuell sieht unsere Regel ja so aus, dass alles was mit dem Treiber mantis_core läuft die Keytable für die skystarhd2 bekommt:

    Code
    mantis_core * /lib/udev/rc_keymaps/skystarhd2


    Wenn man nun weiß. dass der Treiber erkennt, welche Karte da vorhanden ist und dann entsprechend liefert, ob er gerne die Keytable "rc-twinhan-dtv-cab-ci", "rc-terratec-cinergy-s2-hd" oder "rc-twinhan-dtv-cab-ci" für die Karte laden möchte,
    kann man die Regel entsprechend spezifisch erweitern (und AFAIK geht nur dann der Weg über die rc_maps.cfg):

    Code
    mantis_core rc-terratec-cinergy-s2-hd /lib/udev/rc_keymaps/rc-terratec-cinergy-s2-hd
    mantis_core rc-twinhan-dtv-cab-ci /lib/udev/rc_keymaps/rc-twinhan-dtv-cab-ci
    mantis_core rc-twinhan-dtv-cab-ci /lib/udev/rc_keymaps/rc-twinhan-dtv-cab-ci


    Nach meinem Verständnis wäre es am besten deinen Patch so anzupassen, dass er die entsprechende(n) Keytables für rc-core richtig setzt (IMHO als Patch zu unserem aktuellen Stand im Git - aber da wissen traxanos und steffen_b mehr als ich).

    leider kann ich die Änderungen selbst nicht testen.


    Uns geht es da ähnlich - wir können hauptsächlich nur reagieren, wenn sich ein User mit entsprechender Hardware wundert, warum da etwas nicht klappt.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo,


    stimmt habe die Funktion von rc_maps.cfg anscheinend zu schnell überflogen. Das würde natürlich auch funktionieren.


    Ich muss jetzt auf die Uni. Werde erst heute am Abend oder Morgen im laufe des Tages dazu kommen den Patch anzupassen und eine Feature-Request zu erstellen.


    Danke lg
    Christoph

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!