[gelöst] [0.4] lirc mit senden für extb-plugin?

  • hallo,


    das was sich hier mit der suche gefunden habe hilft bei mir nicht, ich habe die entsprechenden conf's angepast aber es will nicht
    das extb plugin wird über die plugin datei zwar mit dem "-d \var\run\..." versorgt aber der pic wird nicht initialisiert (blinkt nur grün)


    mir fällt jetzt nur noch ein den lirc aus dem source packet selbst neu zu kompilieren aber das ist eigentlich nicht so vorgesehen und wäre nur eine notlösung


    hat jemand mit extb noch ein paar tips?


    PS: nein ich möchte nicht auf das extension board und lirc verzichten

  • ok, da war ich nicht spezifisch genug, DAS hatte ich bei der suche schon gefunden und es so gemacht - hat nur nicht dazu geführt das das extb plugin beim laden das board initialisiert
    hast du ein ext-board, funktionierte das bei dir mit yavdr 0.4 so?

  • Hi,
    ich habe in allen meinen VDRs ein extb. Als YaVDR 0.4 raus kam, hab ich das auf meiner Testkiste installiert und das extb-plugin aktiviert. Nach den Änderungen im oben genannten link wird das extb einwandfrei initialisiert, ich konnte z.B. LEDs schalten... Ich hatte nur Probleme mit der Fernbedienung, was aber ziemlich sicher mit meiner lircd.conf zusammen hängt. Aus Zeitmangel (und weil yavdr0.3 auf der "Produktivkiste" einwandfrei läuft) hab ich da aber noch nicht weiter gemacht. Ob seitdem durch Updates irgendwas an lirc verändert wurde, kann ich leider nicht sagen, könnte das aber einfach mal probieren. Dauert allerdings ein paar Tage, weil ich nicht immer zuhause bin.


    Und nachdem ich soviel Gutes über Johns softhddevice gelesen habe, gibt's für mich nun einen guten Grund, da eh wieder aktiv zu werden. ;) Schnellere Umschaltzeiten würden die Kiste deutlich aufwerten...


    Gruß
    Stefan


    PS: Da fällt mir ein, kontrollier die conf-Files des Plugins, ich habe noch in Erinnerung, dass man schauen muß, ob "irsend" oder "rc" in der conf als Kommando eingetragen ist, und dass das Programm dann auch da ist. Außerdem kontrollier den Pfad zu svdrpsend.pl in der conf-Datei.

  • hi,


    also auch ohne vdr nur mit irsend tut sich nichts


    sudo irsend -d /var/run/lirc/lircd send_once EXTB_TX M1
    irsend: timeout


    in der lircd.conf in /etc/lirc/ stehen die sachen für das extension board und die FB geht über das ir vom extension board, ist also auch das richtige lirc device und an sich ist alles da

  • Hi,
    und das hast Du in die /etc/modprobe.d/lirc.conf eingetragen?

    Code
    options lirc_serial type=0
    options lirc_serial io=0x3F8
    options lirc_serial irq=4
    options lirc_serial softcarrier=0


    bzw. in die /etc/modprobe.d/lirc-serial.conf

    Code
    #COM1 equivalent, /dev/ttyS0
    
    
    
    
    options lirc_serial irq=4 io=0x3f8


    Ob man folgendes braucht, weiß ich nicht, ich trag's immer ein (/etc/lirc/lirc-modules-source.conf):

    Code
    LIRC_MODULES="serial"
    
    
    LIRC_SERIAL_PORT="0x03f8"
    LIRC_SERIAL_IRQ="4"
    LIRC_SERIAL_CFLAGS=" -DLIRC_SERIAL_TRANSMITTER"


    Ich mache heute Abend mal ein Update und schaue ob das bei mir noch geht.


    Gruß
    Stefan

  • Hi,
    so, hatte auf der Testkiste 0.4pre1 drauf, damit ging's problemlos. (Ich bin mir aber nicht sicher, ich meine, da konnte man im Web-Interface noch eventlirc abschalten und das hatte ich damals vielleicht auch gemacht...)


    Dann eine Neuinstallation der 0.4 incl. aller updates, lirc im Web-Interface aktiviert und extb-plugin installiert und nix geht. VDR startet nicht mehr, sobald das extb-plugin geladen wird, kommt folgende Fehlermeldung im log:

    Zitat

    extb: cLirc::open, could not connect to socket: Datei oder Verzeichnis nicht gefunden


    Lirc läuft aber mit /dev/lirc0.


    Hat jemand spontan eine Idee? Ich lese nun erst mal die Doku von Seahawk bzw. suche in den unzähligen Fernbedienungs-Threads...


    Gruß
    Stefan

  • Lirc läuft aber mit /dev/lirc0.


    Hat jemand spontan eine Idee?


    Eigentlich ist der Lirc-Socket unter /var/run/lirc/lircd.<pid des Lircd-Prozess> - und der (vermutlich in diesem Fall wichtigere) eventlircd-Socket unter /var/run/lirc/lircd ...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • hi,


    es war soweit alles richtig nur musste ich als socket /var/run/lirc/lircd.[pid] benutzen
    irsend -d /var/run/lirc/lircd.2018 send_once EXTB_TX M1 hat jetzt das board richtig initialisiert
    da die pid aber dynamisch sein wird habe ich noch keine idee wie ich das in den vdr start integrieren soll

  • Also entweder das Upstart-Skript von Lircd abändern (im Prinzip darf Lircd ja auch einen statischen Socket haben, die potentiellen zusätzlichen Lircd-Instanzen durch USB-Lircempfänger heißen sowieso anders) oder die /var/run/lirc/lircd.pid im VDR-Startskript auslesen und den Pfad für die Startargumente des Plugins dynamisch anpassen lassen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • hi,


    nachdem ich das nochmal überschlafen habe denke ich das das modifizieren der startscripte vieleicht nicht der optimale weg ist
    ich denke mal um das "yavdr konform" zu machen müsste man eventlircd anpassen so das die befehle die in der lircd.conf (und lircrc?) stehen auch eventlircd bekannt sind
    nach der übersicht hier
    http://www.yavdr.org/documentation/de/ch02s03.html#eventlirc
    sitzt eventlircd über lircd und vdr kommuniziert mit eventlircd

  • Solange du dich an den durch die input.h definierten Namespace/Tastennamen hältst, lässt eventlircd alles durch (von lircd an den vdr) - nur wenn Tastennamen genutzt werden, die dem nicht entsprechen, muss man auf dem Lircd-Socket lauschen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • man müsste für das device "extension board" also eine evmap datei schreiben in der die möglichen events mit funktionen aus der input.h verbunden werden (LED1 an, LED1 aus, ...)?


    oder die extb funktionen in der lircd.conf umbenennen so das sie zu input.h passen?


    edit:


    ist also so das das extb-plugin wie eine FB zu behandeln ist das seine taten (befehle) an eventlird gibt und in der keymap wird dann ein kommando aus der lircd.conf zugeordnet?

  • oder die extb funktionen in der lircd.conf umbenennen so das sie zu input.h passen?


    Da ich das "extension board" nicht kenne - in welcher Richtung läuft das genau ab? Sendet da das Plugin was über lircd an das Board? Dann bin ich mir nicht sicher, ob Eventlircd das überhaupt abbilden kann.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • > Sendet da das Plugin was über lircd an das Board?


    ja


    > Dann bin ich mir nicht sicher, ob Eventlircd das überhaupt abbilden kann.


    das habe ich mir auch grade beim durchdenken überlegt
    mann muss also dem vdr sein eventlircd lassen und dem plugin die richtige lircd.[pid] zuweisen

  • hi,


    so einfach wie ich dachte geht es leider nicht
    damit kann ich den aufruf für das ini t vom board auf der kommandozeile machen
    irsend -d /var/run/lirc/lircd.$(pidof lircd) send_once EXTB_TX M1


    aber in der /etc/vdr/plugins/plugin.extb.conf geht folgendes nicht
    -d /var/run/lirc/lircd.$(pidof lircd)
    ich denke mal das liegt daran das es nachher beim zusammensetzen im vdr start script nicht zur ausführung kommt aber leider habe ich keine idee wie ich es anders machen soll

  • Ich habe bei mir im init Script ne generelle Ersetung von Platzhaltern drin. Damit kann ich in den /etc/vdr/plugins/plugin.<pluginname>.conf Platzhalter setzen die dann später mit dynamischen Inhalt gefüllt werden.


    Code
    until [ "$(echo "$PLUGINS" | grep "%VDR_TMP_DIR%")" = "" ]; do PLUGINS="$(echo "$PLUGINS" | sed s:%VDR_TMP_DIR%:$VDR_TMP_DIR:)"; done
    	until [ "$(echo "$PLUGINS" | grep "%VDR_BIGTMP_DIR%")" = "" ]; do PLUGINS="$(echo "$PLUGINS" | sed s:%VDR_BIGTMP_DIR%:$VDR_BIGTMP_DIR:)"; done
    	until [ "$(echo "$PLUGINS" | grep "%VDR_DVD_IMAGE_DIR%")" = "" ]; do PLUGINS="$(echo "$PLUGINS" | sed s:%VDR_DVD_IMAGE_DIR%:$VDR_DVD_IMAGE_DIR:)"; done
    	until [ "$(echo "$PLUGINS" | grep "%VDR_AUDIO_GRAB_DIR%")" = "" ]; do PLUGINS="$(echo "$PLUGINS" | sed s:%VDR_AUDIO_GRAB_DIR%:$VDR_AUDIO_GRAB_DIR:)"; done
    	until [ "$(echo "$PLUGINS" | grep "%VDR_CONFIG_BASE_DIR%")" = "" ]; do PLUGINS="$(echo "$PLUGINS" | sed s:%VDR_CONFIG_BASE_DIR%:$VDR_CONFIG_BASE_DIR:)"; done
    	until [ "$(echo "$PLUGINS" | grep "%%")" = "" ]; do PLUGINS="$(echo "$PLUGINS" | sed s:%%:%:)"; done


    Müsste bei yaVDR in das Script rein welches die plugins zusammenbastelt (/usr/lib/vdr/plugin-loader.sh).


    In deinem Fall

    Code
    until [ "$(echo "$PLUGINS" | grep "%LIRC_PID%")" = "" ]; do PLUGINS="$(echo "$PLUGINS" | sed s:%LIRC_PID%:$(pidof lircd):)"; done
    	until [ "$(echo "$PLUGINS" | grep "%%")" = "" ]; do PLUGINS="$(echo "$PLUGINS" | sed s:%%:%:)"; done


    Dann in der /etc/vdr/plugins/plugin.extb.conf

    Code
    -d /var/run/lirc/lircd.%LIRC_PID%


    Ungetestet, aber so ungefähr würde das gehen ohne das du zuviel Umbasteln musst.


    cu

  • Hi IG88,
    ich schreibe mal zusammen, was ich alles geändert habe, so dass das extb wieder alles macht, was es soll. (auch für mich als Gedächtnisstütze)
    Es geht ja nun leider nicht nur darum, dass das extb initialisiert wird, zumindest ich nutze nach wie vor das extb zum Aufwachen des Rechners bei anstehenden Timern und nicht nvram, acpiwakup, etc..


    - Alle Änderungen die hier oben im Thread stehen, um lirc mit den richtigen Optionen zu betreiben
    - in der /etc/init/lirc.conf einen statischen Socket eintragen (heißt bei mir /var/run/lirc/lircd.extb), ich glaube in der Funktion BUILD_ARGS ganz unten REMOTE.SOCKET.$$ gegen "/var/run/lirc/lircd.extb" austauschen.
    - in die /etc/vdr/plugins/plugin.extb.conf "-d /var/run/lirc/lircd.extb" eintragen (ohne Hochkomma)
    - in der /etc/lirc/lircd.conf in Section3 "power" in "KEY_POWER2" ändern, dann klappt's auch mit dem ausschalten.
    - unter /usr/bin die Datei /usr/share/vdr/shutdown-hooks/S91.extb unter dem Namen "vdrpoweroff.sh" ablegen und ausführbar machen
    - in /etc/init/vdr.conf das shutdown-Kommando in /usr/bin/vdrpoweroff.sh ändern
    - in der Datei /etc/vdr/plugins/extb/extb-poweroff.conf RCCMD von "irsend" in "irsend -d /var/run/lirc/lircd.extb" ändern und das shutdown-Kommando aktivieren und dort das ursprüngliche shutdown-Kommando aus der originalen /etc/init/vdr.conf eintragen "/usr/lib/vdr/vdrshutdown.wrapper"


    Ich habe das jetzt alles aus dem Kopf aufgeschrieben, daher keine Gewähr auf die Richtigkeit der Pfade, Dateinamen und auf Vollständigkeit.


    Gruß
    Stefan

  • - unter /usr/bin die Datei /usr/share/vdr/shutdown-hooks/S91.extb unter dem Namen "vdrpoweroff.sh" ablegen und ausführbar machen
    - in /etc/init/vdr.conf das shutdown-Kommando in /usr/bin/vdrpoweroff.sh ändern


    Gibt man damit nicht die ganzen anderen Shutdown-Hooks auf?

    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!