[gelöst] Problem mit extb-poweroff.pl

  • Hallo zusammen,
    folgende Konfiguration:
    c't VDR 4.5, Tobis VDR 1.3.41, Kernel 2.6, ein Extension-Board von TBE (FW 1.9), Plugin fürs Extb ist installiert .
    Damit sollte es eigentlich möglich sein, einen Timer zu setzen, der beim Herunterfahren des VDR in den PIC auf dem Extb geschrieben wird und den VDR später wieder aufweckt.
    Der Shutdown-Hook S91.extb sollte das Script extb-poweroff.pl aufrufen, das diese Aufgabe übernimmt.
    Fahre ich meinen VDR jetzt mit gesetztem Timer herunter, werden die Daten leider nicht in den PIC auf dem Extb übertragen, so dass der VDR auch nicht aufwachen kann.
    Im Log sieht man aber, dass er zumindest den Shutdown-Hook findet (executing shutdown-hook S91.extb).
    Auszuführen scheint er ihn aber nicht.
    Rufe ich nach dem setzen des Timers bei laufendem VDR die extb-poweroff.pl manuell ohne Pameter auf, setzt er den Timer korrekt im Extb, d.h. ich kann den VDR herunterfahren und er fährt um nächsten Timer automatisch hoch.
    Also funktioniert das Script und die Kommunikation mit dem Extb ist auch ok.
    Aber warum macht er es nicht automatisch?
    Aufgefallen ist mir nur, dass selbst der eingeschaltete Debug-Mode in der extb-poweroff.pl keine Einträge im syslog hinterlässt.
    Aufgefallen ist mir auch noch, dass er beim Shutdown-Hook S90.custom im syslog beim abarbeiten schreibt "executing shutdown-hook S90.custom as shell script", beim S91.extb aber nur "executing shutdown-hook S91.extb", das "as blabla" fehlt hier.
    Die Rechte auf der S91.extb sowie der extb-poweroff.pl sind auf 755.
    Die aufgerufenen Dateien sind auch alle am richtigen Platz.


    Was zum Geier macht der VDR da mit mir?
    Wäre für Tipps sehr dankbar...


    MfG,
    MadOne


    P.S.
    Logs kann ich erst später dazu stellen, bin im Moment auf der Arbeit...

  • Moin MadOne



    Du hast das Extb Plugin bein c't VDR, zum laufen gebracht?
    Hast Du es einfach per apt-get installiert oder hast Du es selber übersetzt.


    Wenn Du es per Apt Installiert hast, könntest Du mal deine sources.list Posten? Ich habe mittlerweile fast alles durch, ohne durchschlagenden Erfolg :(


    Und das selber übersetzen wollte ich vermeiden



    Gruß


    rowdy


  • Sources.list folgt später, wenn ich zu Hause bin.
    Und, ja, das Extb-Plugin läuft und wurde per apt-get installiert.


    MfG,
    MadOne

  • Hallo,


    bei mir (LinVDR) habe ich die runvdr in Bezug auf poweroff.pl angeaßt.
    Danach ging alles wie gewünscht.


    Gruß Kail

    VDR: ASUS P4P800-VM, Celeron 2.5 GHz, 256 MB-RAM, 2 x 160 GB Samsung SV1604N, TT 1.5 (4MB), TT-Budget, Extension-Board (TBE)
    LinVDR0.7 + Dr.Seltsam 2.6.18 + vdr-1.4.7 + BP + diverse Plugins
    Betatester v. steini-Paketen
    Test-VDR: ASUS P5QL Pro, E7500, 4 GB RAM, 1TB WD EADS, Media-Pointer S2, Ubuntu10.10 + vdr-1.7.16

  • Quote

    Original von MadOne
    Aufgefallen ist mir auch noch, dass er beim Shutdown-Hook S90.custom im syslog beim abarbeiten schreibt "executing shutdown-hook S90.custom as shell script", beim S91.extb aber nur "executing shutdown-hook S91.extb", das "as blabla" fehlt hier.
    Die Rechte auf der S91.extb sowie der extb-poweroff.pl sind auf 755.


    Das "... as shell script" kommt nur, wenn der Shutdown-Hook keine ausführbare Datei ist. Bei deinem S91.extb ist aber das x-Flag gesetzt, da ist "executing shutdown-hook S91.extb" völlig korrekt.


    Der Grund für dein Problem ist wahrscheinlich, dass der VDR nicht mehr als root ausgeführt wird. Das kannst du ändern, indem du in /etc/default/vdr die Zeile "USER=root" einträgst.


    Tom

  • Ohne jetzt eine Grundsatzdiskussion anfangen zu wollen:
    Bei so vielen Nebeneffekten des "Nicht-Root-VDR", wäre es da nicht geschickter gewesen, erstmal einen VDR-Testballon zu starten?
    Aber OK, danke für den Tip, werde ich mal ausprobieren, hoffe dass es hilft.
    Ansonsten gehen mir allmählich die Optionen aus ... :(


    MfG,
    MadOne

  • Hi,


    folgende Hinweise...


    1. Am wichtigsten ist, das zu dem Zeitpunkt von extb-poweroff.pl muss lircd noch lebt,
    vielleicht ist die Reihenfolge in den Runlevel (rc.d) falsch...


    2. Thema Berechtigungen dürfte relativ unkritisch sein, sonst würde irsend(rcsend) meckern,
    bzw. der VDR hätte auch keinen Zugriff ( /dev/lircd ist socket von lircd)


    Andreas

  • Ja, das mit der Reihenfolge habe ich mir auch schon überlegt ...
    Wie ließe sich das denn beeinflussen?
    Die Shutdown-Hooks führt er ja über diesen Shutdown-Wrapper aus ...
    Und direkt nach dem Ausführen (laut Log ca. 5 sek) des Shutdown-Hooks jammert Lirc über einen "Error read ()" im syslog...
    Sollte ich Lircd in den rcs erst später oder vielleicht gar nicht abschießen lassen?
    Oder würde es im Shutdown-Hook selbst ne "programmierte Wartezeit" (wait oder so) von 10 oder 15 Sekunden auch tun, bevor er den Hook mit Exitcode 0 beendet?


    MfG,
    MadOne

  • Also, user=root bewirkt keine Lösung des Problems. :(
    Ein "sleep 10" in der S91.extb verändert auch nichts an dem Problem.
    Von Hand kann ich bei "Debug=0" in der extb-poweroff.pl den Timer übertragen, das geht.


    So sieht es aus, wenn der VDR runterfährt:



    Irgendjemand noch eine Idee oder einen Workaround?


    MfG,
    MadOne

  • Jo, er lief als "root".
    Stand auch so im Syslog - "switching to user root" :)
    Ging aber trotzdem nicht, schade. Probiere gerade noch eine Variante, mal sehen, was mit der passiert ...


    So, hier noch meine Sources.list wegen der Anfrage von ROW DY:


    Code
    1. deb [URL]http://ftp2.de.debian.org/debian[/URL] sarge main non-free contrib
    2. deb [URL]http://security.debian.org/[/URL] sarge/updates main contrib non-free
    3. deb [URL]ftp://ftp.nerim.net/debian-marillat[/URL] sarge main
    4. deb [URL]http://e-tobi.net/vdr-experimental[/URL] sarge base backports addons vdr-multipatch
    5. deb [URL]http://www.heise.de/ct/ftp/projekte/vdr45[/URL] updates/


    MfG,
    MadOne

  • Hallo MadOne


    Ich verwende das TBE-Board mit dem extb-plugin in der ct 3.0.
    Bei mir funktioniert das wunderbar.
    Habe Dir mal meinen shutdown aus der syslog angehängt.


    Feb 17 02:50:28 vdr vdr: [1420] executing '/usr/lib/vdr/vdr-shutdown.wrapper 1140203400 62372 13 "Out of Sight" 1'
    Feb 17 02:50:28 vdr vdr-shutdown: executing /usr/share/vdr/shutdown-hooks/S50.noad as shell script
    Feb 17 02:50:29 vdr vdr-shutdown: executing /usr/share/vdr/shutdown-hooks/S90.custom as shell script
    Feb 17 02:50:29 vdr vdr-shutdown: executing /usr/share/vdr/shutdown-hooks/S91.extb as shell script
    Feb 17 02:50:29 vdr lircd 0.7.1pre2[867]: accepted new client on /dev/lircd
    Feb 17 02:50:30 vdr lircd 0.7.1pre2[867]: removed client
    Feb 17 02:50:35 vdr lircd 0.7.1pre2[867]: read() failed
    Feb 17 02:50:35 vdr lircd 0.7.1pre2[867]: Connection reset by peer
    Feb 17 02:50:35 vdr lircd 0.7.1pre2[867]: removed client
    Feb 17 02:50:35 vdr last message repeated 2 times
    Feb 17 02:50:36 vdr shutdown[1683]: shutting down for system halt
    Feb 17 02:50:36 vdr init: Switching to runlevel: 0
    Feb 17 02:50:38 vdr lircd 0.7.1pre2[867]: caught signal
    Feb 17 02:50:42 vdr kernel: Kernel logging (proc) stopped.
    Feb 17 02:50:42 vdr kernel: Kernel log daemon terminating.
    Feb 17 02:50:42 vdr exiting on signal 15


    Wieleicht findest Du was, dass Dir helfen kann.


    Pit

    Intel 1800Mhz c´t 6.1 VDR 1.6.0 Multipatch (Tobi) Plugin Timelinie Nordlicht-EPG Epgsearch Noad

  • Hi MadOne


    Was mir noch eingefallen ist:
    Verwendest Du lirc mit der Option als With transmitter diode verwenden.
    Weil sonst wird das nie etwas.


    mfg
    Pit

    Intel 1800Mhz c´t 6.1 VDR 1.6.0 Multipatch (Tobi) Plugin Timelinie Nordlicht-EPG Epgsearch Noad

    The post was edited 1 time, last by Pit Carlo ().

  • So, jetzt scheint es zu funktionieren...
    VDR läuft jetzt als Root, das scheint eine Grundvoraussetzung zu sein.
    Außerdem waren in dem Script S91.extb die Rechte auf 644 zu setzen, und die erste Zeile zu entfernen (#!/bin/sh).
    Danach hat die Timerfunktion zumindest einmal funktioniert, wenns beim zweiten Mal auch noch geht - atomsuperduperfreu. :)


    MfG,
    MadOne

  • Quote

    Original von MadOne
    So, jetzt scheint es zu funktionieren...
    VDR läuft jetzt als Root, das scheint eine Grundvoraussetzung zu sein.
    Außerdem waren in dem Script S91.extb die Rechte auf 644 zu setzen, und die erste Zeile zu entfernen (#!/bin/sh).
    Danach hat die Timerfunktion zumindest einmal funktioniert, wenns beim zweiten Mal auch noch geht - atomsuperduperfreu. :)


    Schön das es funktioniert :]



    Aber wenn nur als root funktioniert würde ich mal auf eine Designschwäche des c't Hooksystem tippen :mua


    Hier bei meinem handgestrickten System funktioniert es auch ohne das der VDR als root läuft,
    von einer generellen Grundvoraussetzung würde ich deshalb nicht ausgehen wollen... ;D


    Andreas

  • Ich gebe zu, dass ich außer mit dem ct-VDR (der immer gleich nach der Installation auf Tobis Pakete umgestellt wurde ;) ) keine Erfahrungen habe (Linux-Nub -> planloser Windozen-Uhsähr).
    Mal sehen, ob er den nächsten Timer auch so schön frisst.
    Ob der VDR rootet oder nicht, ist mir primär trötegal.
    Habe den Grund für die plötzliche nichtmehrverwurzelung des VDR leider immer noch nicht verstanden.
    Aus dem I-Net ist er sowieso nicht zu erreichen, zumindest müsste man dazu gleich drei Passwörter hacken...


    MfG,
    MadOne

  • Die Datei hatte original 644, hatte sie nur zum Testen auf 755 hochgedreht.
    Mit 644 und VDR nicht als root ging sie aber trotzdem nicht.
    Erst als ich zusätzlich zur Zeile USER=root in der /etc/default/vdr die /bin/sh - Zeile aus der S91.extb entfernt habe, tat das Script, was es soll.
    Die Timer funktionieren jetzt, er frisst sie.
    Danke für die Hilfe(n). :)


    MfG,
    MadOne