[Solved] [0.6] Ausschalten per Fernbedienung funktioniert nicht

  • Zunächst mal: Vielen Dank für die neue Version!


    Ich habe sie heute neu installiert und inzwischen läuft fast alles so wie bei meinem bewährten 0.5.
    Es ist bisher eine Standard-Installation ohne größere Anpassungen, mit Ausnahme des graphlcd-Plugins und der Ausgabe über alsa.


    Nur das Ausschalten per Fernbedienung funktioniert nicht.


    Es erscheint die übliche Meldung "Taste drücken, um Shutdown abzubrechen", dann passiert längere Zeit nichts, schließlich erscheint ein Bild mit der Meldung "Frontend detached. Press any key on your remote to continue". Dieses Bild bleibt stehen und der VDR schaltet nicht aus.


    Ich habe sichergestellt, dass kein "Shutdown-Verhinderer" aktiv ist.


    Hier ein Logausschnitt beim Drücken der Powertaste:


    Ich habe dann mal den shutdown-wrapper mit den Argumenten wie im Log zu sehen auf der Kommandozeile ausgeführt. Das scheint zu funktionieren, im Log erscheint:


    Hierbei war natürlich noch eine SSH-Verbindung offen.


    Wo könnte das Problem liegen, bzw. wie sollte ich vorgehen, um das Problem weiter einzugrenzen?

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 20.04. Backup: yaVDR 0.5 Ubuntu 12.06


    Edited 3 times, last by wofritz ().

  • Das ist so gewollt, entweder die SSH Verbindung vorher beenden oder im Webinterface den Lifeguard für SSH dekativieren...


    Grüße Urknall

    VDR: yavdr-ansible/22.04 LTS auf Intel NUC (BOXNUC6CAYH), 2x Kingston KVR16LS11/4, One For All URC 2981

    VDR-Server: yavdr-ansible/22.04 LTS in ESXi VM

  • Wie sehen denn die Rechte für /usr/lib/vdr/vdr-shutdown.wrapper aus?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich habe sichergestellt, dass kein "Shutdown-Verhinderer" aktiv ist.


    Hoppla, das hatte ich wohl überlesen...

    VDR: yavdr-ansible/22.04 LTS auf Intel NUC (BOXNUC6CAYH), 2x Kingston KVR16LS11/4, One For All URC 2981

    VDR-Server: yavdr-ansible/22.04 LTS in ESXi VM

  • Wie sehen denn die Rechte für /usr/lib/vdr/vdr-shutdown.wrapper aus?


    Code
    wofritz@hdvdr(2):~$ ls -l /usr/lib/vdr/vdr-shutdown.wrapper 
    -rwsr-s--- 1 root vdr 6272 Dez 22 18:22 /usr/lib/vdr/vdr-shutdown.wrapper

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 20.04. Backup: yaVDR 0.5 Ubuntu 12.06


  • Code
    Dec 30 18:48:58 hdvdr vdr: video/vdpau: can't get output surface parameters: An invalid handle value was provided.
    Dec 30 18:48:58 hdvdr vdr: softhddev: grab unsupported

    Ist das dein 2. System aus der Signatur oder nutzt du da etwas anderes als eine GT630 mit den nvidia-Treibern?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Das ist das 2. System aus der Signatur (der 0.5 ist noch drauf auf einer anderen Partition)


    Die Meldung kommt ca. 10 s nach dem Drücken der Powertaste, ich würde mal schätzen in dem Moment wo das Bild mit "Frontend detached" kommt (schwer zu sagen).


    Ich werde mal versuchen zu verstehen, wie der Shutdown-Mechanismus funktioniert und versuchen, mehr Debug-Info zu liefern.


    Mir scheint als würde der shutdown-wrapper crashen. Aber ich werde mal alle Hooks deaktieren (wenn ich rauskriege, wie das geht) und nach und nach wieder reinnehmen, wenn nicht der wrapper selber crasht.


    Oder den wrapper mal durch ein Dummy ersetzen, das nur ausgibt, dass er aufgerufen wurde.

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 20.04. Backup: yaVDR 0.5 Ubuntu 12.06


  • Was hast du denn an Paketen gegenüber der Standard-Installation nachinstalliert und an der Konfiguration geändert?


    Generell ist es so, dass der vdr-shutdown.wrapper nur dazu dient die UID auf 0 zu setzen (und damit die weiteren Skripte mit root-Rechten ausführen kann) und dann https://github.com/flensrocker…yavdr/debian/vdr-shutdown aufruft, das die Shutdown-Hooks abarbeitet.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Laut meiner bash-history habe ich folgendes nachinstalliert:


    An der Konfiguration habe ich geändert:
    - Audioausgabe auf alsa mit asound.conf von meinem 0.5 wegen paralleler Ausagabe auf HDMI und analog
    - softhddevice-Konfig von 0.5 übernommen
    - dfatmo-Konfiguration von 0.5 übernommen
    - Timer- und epgsearch-Daten von 0.5 übernommen


    Hier noch die Ausgabe von vdr --showargs, falls man da was sehen kann.


    Ich bau mal in vdr-shutdown ein paar Debugausgaben ein um zu testen, ob das überhaupt aufgerufen wird.

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 20.04. Backup: yaVDR 0.5 Ubuntu 12.06


  • So, hab nun mal den Original-Wrapper durch ein einfaches Shellscript ersetzt:

    Bash
    #!/bin/bash
    
    
    log="logger -t vdr-dummy-shutdown.wrapper"
    
    
    $log "***** Entry args=<$@> *****"
    result=-1
    $log "***** Exit result=$result *****"
    exit $result


    Wenn ich diesem Script die normalen Exec-Rechte gebe, wird es vom VDR aufgerufen.
    Wenn ich ihm aber die gleichen Rechte wie dem Original gebe, wird es nicht aufgerufen.
    Von der Kommandozeile funktioniert es immer.


    Äusserst merkwürdig..

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 20.04. Backup: yaVDR 0.5 Ubuntu 12.06


  • Und weiter...


    Habe den Dummy um den Aufruf des Original-Wrappers erweitert. Der Dummy hat normale Exec-Rechte und wird aufgerufen. Es wird auch der Original-Wrapper aufgerufen, der tut aber nichts und kehrt mit exit-code 126 zurück:


    Code
    Dec 31 11:58:06 hdvdr vdr: [1349] Power button pressed
    Dec 31 11:58:06 hdvdr vdr: [1349] confirm: Taste drücken, um Ausschalten abzubrechen
    Dec 31 11:58:06 hdvdr vdr: [1349] warning: Taste drücken, um Ausschalten abzubrechen
    Dec 31 11:58:12 hdvdr vdr: [1349] confirmed
    Dec 31 11:58:12 hdvdr vdr: [1349] next timer event at Thu Dec 31 19:10:00 2015
    Dec 31 11:58:12 hdvdr vdr: [1349] executing '/usr/lib/vdr/vdr-shutdown.wrapper 1451585400 25908 20 "Neues aus Büttenwarder~Rosenkrieg" 1'
    Dec 31 11:58:12 hdvdr vdr: [1349] saved setup to /var/lib/vdr/setup.conf
    Dec 31 11:58:12 hdvdr vdr-dummy-shutdown.wrapper: ***** Entry args=<1451585400 25908 20 Neues aus Büttenwarder~Rosenkrieg 1> *****
    Dec 31 11:58:12 hdvdr vdr-dummy-shutdown.wrapper: ***** Exit result=126 *****


    Nun habe ich die Rechte des Original-Wrapper auf Standard-exec gesetzt:


    Funktioniert prinziell, aber die Hooks machen Mist, weil sie nicht als root aufgerufen werden.


    Es liegt also an den Rechten. Aber was ist da auf meiner Installation verkehrt, bzw. was könnte ich verbastelt haben?

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 20.04. Backup: yaVDR 0.5 Ubuntu 12.06


  • Wenn ich ihm aber die gleichen Rechte wie dem Original gebe, wird es nicht aufgerufen.

    Der Shutdown-Wrapper ist mit Absicht ein C-Programm und kein Skript, da sonst das Konstrukt mit setuid/setgid nicht funktionieren kann.


    --plugin=dfatmo

    Dann kommt der GRAB-Aufruf, den man im Log sieht vermutlich vom dfatmo Plugin - macht es eventuell Sinn (und einen Unterschied beim Shutdown-Verhalten) das Atmo-Light vor dem Power-Off abzuschalten?

    Code
    svdrpsend plug dfatmo off


    Der Ablauf beim Drücken auf die Power-Taste ist ja so, dass sowohl der VDR als auch das Frontend-Skript den Druck auf die Power-Taste sehen. Nach 15 Sekunden detached das Frontend-Skript dann das Softhddevice-Frontend. Wenn der VDR nach 5 Minuten noch nicht abgeschaltet wurde, versucht das Frontend-Skript dann erneut den Shutdown auszulösen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich werd weich....


    Nu gäht er.


    Für meine Tests hatte ich folgendes gemacht:


    1. mv vdr-shutdown-wrapper vdr-shutdown.wrapper.orig
    2. dummy vdr-shutdown.wrapper gebastelt, das vdr-shutdown.orig aufruft. Ergebnis: funktioniert, solange vdr-shutdown.wrapper und vdr-shutdown.wrapper.orig auf mode 755 standen.
    3. mv vdr-shutdown.wrapper vdr-shutdown.wrapper.dummy
    4. mv vdr-shutdown.wrapper.orig vdr-shutdown.wrapper. Funktioniert mit mode = 755
    5. chmod u+s vdr-shutdown.wrapper
    6. chmod g+s vdr-shutdown.wrapper


    Es sollte nun also alles wieder im Originalzustand sein und *nicht* funktionieren. Aber es funktioniert nun, die Kiste fährt sauber herunter! :wand


    Keine Ahnung was das war. Ich setze den Thread auf gelöst, obwohl ich das Problem nicht gelöst habe. Es hat sich ja nur von selbst aufgelöst.


    Danke für den Support & guten Rutsch!

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 20.04. Backup: yaVDR 0.5 Ubuntu 12.06


  • Es sollte nun also alles wieder im Originalzustand sein und *nicht* funktionieren.


    Falsch! Es ist nicht alles im Originalzustand.


    Die Original-Rechte (so sind sie auf meinem 0.5)

    Code
    -rwsr-s--- 1 root vdr   6224 Feb 20  2015 vdr-shutdown.wrapper


    Das funktioniert auf dem 0.6 nicht.


    Mit diesen Rechten funktioniert es auf dem 0.6:

    Code
    -rwsr-sr-x 1 root vdr  6272 Dez 22 18:22 vdr-shutdown.wrapper


    Vielleicht weiß ja jemand den Grund, ich nicht...

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 20.04. Backup: yaVDR 0.5 Ubuntu 12.06


  • Bei mir sehen die unter yaVDR 0.6 auch so aus:

    Code
    ~$ ls -l /usr/lib/vdr/vdr-shutdown.wrapper
    -rwsr-s--- 1 root vdr 6272 Dez 22 18:22 /usr/lib/vdr/vdr-shutdown.wrapper

    Und damit funktioniert es mit dem Abschalten seit August ohne Probleme...
    Wie sieht die Gruppenzugehörigkeit des Users vdr bei dir aus? Die Idee ist ja eigentlich, dass nur Mitglieder der Gruppe vdr den Wrapper aufrufen dürfen, der dann mit den Rechten des Besitzers ausgeführt wird:

    Code
    $ groups vdr
    vdr : vdr cdrom audio video plugdev

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Vielleicht weiß ja jemand den Grund, ich nicht...


    Nun weiß ich ihn. Und seahawk1986 hatte den richtigen Riecher. Es hat tatsächlich mit dfatmo zu tun:


    dfatmo muss auf /dev/ttyS1 zugreifen. Dazu muss User vdr in die Gruppe dialout aufgenommen werden. Dazu habe ich folgenden Befehl verwendet:

    Code
    usermod -g dialout vdr


    Und das ist verkehrt, denn dieser Befehl ändert die Standardgruppe des Users vdr auf dialout! Damit funktioniert natürlich der shutdown-wrapper nicht mehr. Fieserweise funktioniert dfatmo damit.


    Richtig ist

    Code
    usermod -a -G dialout vdr


    [Blocked Image: https://upload.wikimedia.org/wikipedia/commons/thumb/3/3b/Paris_Tuileries_Garden_Facepalm_statue.jpg/220px-Paris_Tuileries_Garden_Facepalm_statue.jpg]

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 20.04. Backup: yaVDR 0.5 Ubuntu 12.06


  • Interessant, ich hätte zum Hinzufügen eines Benutzers zu einer Gruppe spontan adduser genutzt, weil ich da nicht mit so vielen Argumenten um mich werfen muss:

    Code
    adduser vdr dialout


    Sollten wir das mit der Gruppe dialout für dfatmo eventuell automatisieren oder die grundsätzlich setzen? IIRC gibt es einen Hook in den VDR-Skripten für Plugins, die besondere Gruppenzugehörigkeiten benötigen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Fühlt sich wie Ostern an... :)


    Lars.


    Jau. Ein schönes Ei hab ich mir da gelegt. Und so gut versteckt.


    seahawk1986: Das war das erste was ich per Google gefunden hatte. Ich kann mir das einfach nicht merken: adduser, useradd, usermod...

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 20.04. Backup: yaVDR 0.5 Ubuntu 12.06


Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!