lircrc-Plugin binär inkompatibel

  • Hallo,


    ich habe es gerade mal in Angriff genommen mit meiner X10 (konfiguriert über lirc) auch andere Programme außerdem dem VDR steuern zu können. Dazu brauche ich das lircrc-Plugin.


    Leider startet es weder unter Precise noch unter Trusty. Hier im Forum habe ich eine Aussage gefunden, dass es wohl seit 2.0.2 nicht mehr läuft.


    Gibt es Bestrebungen die Kompatibilität wieder herzustellen oder ist das Plugin tot? Gibt es Alternativen?


    Sonst könnte man theoretisch auch per .lircrc die Kommandos an vdr-sxfe senden. Aber das wäre halt nicht so elegant. Dachte ich frage mal kurz nach.


    Grüße
    MPW

    [VDR1] AS J3455M mit 2x2 Device Bonding Digital Devices DuoFlex L4M-Twin S2 ver. 6.2, Ubuntu 14.04 64bit mit yavdr-experimental-repo und xine-Ausgabe mit vaapi, vdr 2.0.6
    [VDR2] ASRock N3050B-ITX SoC mit TBS 6281 2x DVB-C und Easyvdr als Komplettsystem mit einer X10 an einem Fernseher

  • Leider startet es weder unter Precise noch unter Trusty.


    Konkrete Fehlermeldungen bzw. ein Backtrace von einem Crash wären hilfreich...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo,


    natürlich :)


    Code
    $ sudo service vdr restart
    Restarting Linux Video Disk Recorder: vdr - seems not to be running 
    Searching for plugins (VDR 2.0.6/2.0.6) (cache hit): conflictcheckonly xineliboutput markad quickepgsearch streamdev-server live xine epgsearchonly epgsearch extrecmenu
    WARNING: The following plugins have been left out due to really binary incompatibility: lircrc.


    Also es geht natürlich auch über irxevent, das hab ich gestern mal getestet. Aber das passende Plugin wäre denke ich eleganter.


    Grüße
    MPW

    [VDR1] AS J3455M mit 2x2 Device Bonding Digital Devices DuoFlex L4M-Twin S2 ver. 6.2, Ubuntu 14.04 64bit mit yavdr-experimental-repo und xine-Ausgabe mit vaapi, vdr 2.0.6
    [VDR2] ASRock N3050B-ITX SoC mit TBS 6281 2x DVB-C und Easyvdr als Komplettsystem mit einer X10 an einem Fernseher

  • Also es geht natürlich auch über irxevent, das hab ich gestern mal getestet. Aber das passende Plugin wäre denke ich eleganter.

    Du bist vmtl. der Erste der das Plugin mal wirklich getestet hat, seit dem letzten Umbau und dem Versuch es über 2.0.2 hinaus lauffähig zu halten. Geplegt wird es schon laaaange nimmer, der Build im PPA enthält so die letzten Anpassungen von "Keine_Ahnung", dem einzigen der wohl noch mal Patches dafür geschrieben hatte, also alles in allem nicht überraschend ...


    Regards
    fnu

    HowTo: APT pinning

  • Jo, das hatte ich eben in dem oben verlinken Thema auch gelesen.


    Ich frage mich gerade im Detail wo auch die Vorteile des Plugins gegenüber irxevent sind. Ich dachte, dass es eventuell eleganter sei.


    Ohne Plugin:


    - Zusätzliche Tasten auf der Tastatur vergeben, in remote.conf (das meiner Meinung nach unschönste daran)
    - Lirc-Einträge löschen
    - /etc/default/vdr lirc auf /dev/null stellen, sonst versucht der VDR ständig die FB neu anzulernen
    - Einträge in .lircrc rezeugen
    - irxevent starten (recht unschön, da es nach jedem Neustart von lirc händisch neu gestartet werden muss)


    Mit Plugin:


    - Müsste man eigentlich trotzdem Einträge in der remote.conf machen vermute ich mal
    - und auch trotzdem in .lircrc
    + Nur das Abschalten von lirc würde entfallen, das ist ja nicht die große Sache
    + Man muss nicht immer irxevent starten, das wäre noch ein Vorteil



    Oder hast das Plugin sonst noch Vorteile, die mir entfallen?


    Ich denke mal dann kann es auch weg aus dem Repo. Die meisten nutzen vermutlich dann ohnehin XBMC.


    Ich kenne mich da halt im Detail auch nicht aus und weiß nicht genau, woran es liegt, dass es nicht mehr läuft. Hat sich die Plugin-Schnittstelle geändert? An Lirc kann es ja nicht liegen.


    Grüße
    MPW


    /edit: Wollte mir gerade mal die Quellen ansehen. Aber im yavdr scheint es kein Quellpaket dafür zu geben.


    Code
    /usr/src$ apt-get source vdr-plugin-lircrc
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.       
    Statusinformationen werden eingelesen.... Fertig
    E: Quellpaket für vdr-plugin-lircrc kann nicht gefunden werden.


    Gibt es noch irgendwo ein Git/SVN-Repo oder wo könnte ich mir die Quellen ansehen?

    [VDR1] AS J3455M mit 2x2 Device Bonding Digital Devices DuoFlex L4M-Twin S2 ver. 6.2, Ubuntu 14.04 64bit mit yavdr-experimental-repo und xine-Ausgabe mit vaapi, vdr 2.0.6
    [VDR2] ASRock N3050B-ITX SoC mit TBS 6281 2x DVB-C und Easyvdr als Komplettsystem mit einer X10 an einem Fernseher

  • Offen gestanden würde ich nicht die Vor- und Nachteile auflisten, sondern mir Gedanken machen wie mit verfügbaren Mitteln am Besten umsetzen. Das ist vmtl. zukunft- und upgrade-sicherer, das Plugin wird ja nicht besser in der weiteren Zukunft, ausser jemand kümmert sich evtl. drum ...


    Regards
    fnu

    HowTo: APT pinning

  • Ich hab "Keine_Ahnung" mal eine PN geschickt, evtl. hat er Zeit und Lust etwas dazu zusagen. Ich hab es mir jetzt mal mit lircrc+irxevent eingerichtet. Letztendlich braucht man in einem X-Server ohnehin irexec um das Frontend zu starten und zu schließen.


    Am Ende ist auch die Frage, welche Gründe es gibt, dass der VDR selbst die Lirc-Standards etwas anders auslegt. Da kenne ich mich nicht aus, denke mal das liegt darin begründet, wozu er eigentlich geschrieben wurde. Wenn es so implementiert wäre, wie die LIRC-Macher sich das gedacht haben, würde man halt die Befehle nicht in der remote.conf festlegen sondern in der Systemweiten lircrc und würde ohne das Plugin auskommen. Oder aber das geht gar nicht, weil es dann nur in einem XServer laufen würde. Ist eh alles historisch gewachsen :D

    [VDR1] AS J3455M mit 2x2 Device Bonding Digital Devices DuoFlex L4M-Twin S2 ver. 6.2, Ubuntu 14.04 64bit mit yavdr-experimental-repo und xine-Ausgabe mit vaapi, vdr 2.0.6
    [VDR2] ASRock N3050B-ITX SoC mit TBS 6281 2x DVB-C und Easyvdr als Komplettsystem mit einer X10 an einem Fernseher

  • Ich hab "Keine_Ahnung" mal eine PN geschickt, evtl. hat er Zeit und Lust etwas dazu zusagen.

    Er ist nicht der Maintainer von lircrc, da gab/gibt es IMHO im Prinzip keinen und an seinem Avatar sieht man das, "Keine_Ahnung" seit Oktober 2013 leider nimmer hier war ...


    Ich hab es mir jetzt mal mit lircrc+irxevent eingerichtet. Letztendlich braucht man in einem X-Server ohnehin irexec um das Frontend zu starten und zu schließen.

    Genau, ich hab auch irexec am laufen, für einige Notfall Aktionen, sollte der VDR nimmer reagieren. Hinzu kommt, das IR heute doch eh alles Event-basiert ist, insofern passt das schon elegant zusammen ...


    Quellcode gibt es btw. keinen im yaVDR PPA für trusty, weil das Paket rausgenommen wurde. Wenn Du möchtest, kannst den aus meinem PPA ziehen, dort hatte ich damals den Build geprüft, bevor ich diesen ins yaVDR PPA bugsiert hatte.


    Code
    #/> dget -xu https://launchpad.net/~fnu/+archive/stable-vdr-fnu/+files/vdr-plugin-lircrc_0.0.2-ka-0fnu5~trusty.dsc


    Regards
    fnu

    HowTo: APT pinning

  • Die Fehlermeldung besagt, dass das Plugin für einen anderen vdr übersetzt wurde.
    Ein lokaler Build gegen den installierten vdr dürfte es eigentlich beheben.


    Lars

  • Ist aber beides aus dem yavdr-testing-Repo.


    [VDR1] AS J3455M mit 2x2 Device Bonding Digital Devices DuoFlex L4M-Twin S2 ver. 6.2, Ubuntu 14.04 64bit mit yavdr-experimental-repo und xine-Ausgabe mit vaapi, vdr 2.0.6
    [VDR2] ASRock N3050B-ITX SoC mit TBS 6281 2x DVB-C und Easyvdr als Komplettsystem mit einer X10 an einem Fernseher

  • (mit sudo, mein User darf nicht auf das Aufnahme-Verzeichnis zugreifen)




    [..] Wenn es abstürzt, kannst du einen Backtrace davon erstellen?


    Bisher nicht, hab's mal kurz gegoogelt, und bin nach dieser Anleitung vorgegangen. Leider versteht gdb keine Parameter.



    Wie macht man das denn mit Parametern? Hab auch probiert, den Aufruf in ein Skript zu wrappen, dann beschwert er sich, dass es nicht binär sei, was bzgl. des Skriptes auch korrekt ist.


    /edit: Dumme Frage, das weiß Google natürlich auch.



    Aber das bringt mich nicht weiter. Muss ich dazu einen speziellen VDR installieren? Oder ihn anders kompilieren?

    [VDR1] AS J3455M mit 2x2 Device Bonding Digital Devices DuoFlex L4M-Twin S2 ver. 6.2, Ubuntu 14.04 64bit mit yavdr-experimental-repo und xine-Ausgabe mit vaapi, vdr 2.0.6
    [VDR2] ASRock N3050B-ITX SoC mit TBS 6281 2x DVB-C und Easyvdr als Komplettsystem mit einer X10 an einem Fernseher

  • Aber das bringt mich nicht weiter


    Code
    sudo gdb --args vdr -Plircrc
    #und dann in gdb den vdr auch starten lassen:
    run

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • [VDR1] AS J3455M mit 2x2 Device Bonding Digital Devices DuoFlex L4M-Twin S2 ver. 6.2, Ubuntu 14.04 64bit mit yavdr-experimental-repo und xine-Ausgabe mit vaapi, vdr 2.0.6
    [VDR2] ASRock N3050B-ITX SoC mit TBS 6281 2x DVB-C und Easyvdr als Komplettsystem mit einer X10 an einem Fernseher

  • mach mal:

    Code
    ldd /usr/lib/vdr/plugins/libvdr-lircrc.so.2.0.6


    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 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Code
    $ ldd /usr/lib/vdr/plugins/libvdr-lircrc.so.2.0.6
            linux-vdso.so.1 =>  (0x00007fff133df000)
            libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa3e72f5000)
            libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa3e70df000)
            libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa3e6d1e000)
            libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa3e6a22000)
            /lib64/ld-linux-x86-64.so.2 (0x00007fa3e7826000)

    [VDR1] AS J3455M mit 2x2 Device Bonding Digital Devices DuoFlex L4M-Twin S2 ver. 6.2, Ubuntu 14.04 64bit mit yavdr-experimental-repo und xine-Ausgabe mit vaapi, vdr 2.0.6
    [VDR2] ASRock N3050B-ITX SoC mit TBS 6281 2x DVB-C und Easyvdr als Komplettsystem mit einer X10 an einem Fernseher

  • Weißt du schon welche? Und nur so Interesse halber, wieso merkt der Kompiler das nicht?

    [VDR1] AS J3455M mit 2x2 Device Bonding Digital Devices DuoFlex L4M-Twin S2 ver. 6.2, Ubuntu 14.04 64bit mit yavdr-experimental-repo und xine-Ausgabe mit vaapi, vdr 2.0.6
    [VDR2] ASRock N3050B-ITX SoC mit TBS 6281 2x DVB-C und Easyvdr als Komplettsystem mit einer X10 an einem Fernseher

  • Weißt du schon welche? Und nur so Interesse halber, wieso merkt der Kompiler das nicht?


    Wenn überhaupt, dann müsste das der Linker merken. Da aber bei einer Shared Library immer unresolved externals dabei sind, die von anderen Libs resolved werden, kann er keinen Unterschied machen.


    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 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Also soweit ich das sehe sollte lirc_deinit aus liblircclient-dev stammen:

    Code
    $ grep -n lirc_deinit /usr/include/lirc/lirc_client.h
    78:	int lirc_deinit(void);

    Das ist vom Paket auch als Builddependency gelistet und in lircrc.c wird der Header auch eingebunden.

    Code
    #include <lirc/lirc_client.h>


    Im Makefile sieht das so aus:

    Code
    libvdr-$(PLUGIN).so: $(OBJS)
            $(CXX) $(CXXFLAGS) -shared -llirc_client $(OBJS) -o $@
            @cp $@ $(LIBDIR)/$@.$(APIVERSION)


    Das wieder die Geschichte mit der Reihenfolge im Makefile:

    Damit passt es wieder:

    Code
    ldd debian/vdr-plugin-lircrc/usr/lib/vdr/plugins/libvdr-lircrc.so.2.1.6 
    	linux-vdso.so.1 =>  (0x00007fff1989d000)
    	liblirc_client.so.0 => /usr/lib/liblirc_client.so.0 (0x00007fced0b84000)
    	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fced0880000)
    	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fced0669000)
    	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fced02a3000)
    	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcecff9d000)
    	/lib64/ld-linux-x86-64.so.2 (0x00007fced0fac000)

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

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