Rechner wacht durch ACPI einmal am Tag auf - direkt abschalten? Hilfe beim Skript benötigt

  • Hallo,


    eine ellenlange Überschrift, aber kürzer hätte das Problem wohl nicht ausreichend beschrieben, ist nämlich schon etwas speziell.


    Ich habe folgende Situation:
    Mein Rechner fährt für Aufnahmen dank ACPI passend hoch und hinterher wieder runter. Dabei ignoriert er aber das Datum, d.h. wenn die nächste Aufnahme am Samstag um 21.00 Uhr ansteht, fährt er bis dahin jeden Tag um 20.55 Uhr hoch und bleibt dann MinUserActivity Minuten an.
    Meine MinUserActivity steht auf 420, weil ich ungern bei längeren Filmen gestört werden möchte.


    Der Rechner ist also, wenn ich jetzt (So, 22:20 Uhr) die o.g. Aufnahme programmiere, 5*420=2100 Minuten sinnlos an.


    Da es offenbar bislang keine Möglichkeit gibt, dass der VDR mitbekommt, dass der Rechner über ACPI-Wakeup gestartet wurde und ihn, wenn keine Aufnahme anliegt, gleich wieder herunterfährt, wollte ich selbst eine solche Funktion einbauen. Leider kenne ich mich weder mit sh-Skripten aus, noch kenne ich schon alle Feinheiten des VDR. Ein erfahrener VDRler sollte mir aber schnell weiterhelfen können.


    Ich habe meine /usr/share/vdr/shutdown-hooks/shutdown01.alarm.sh so modifiziert:



    Wenn also der nachste Timer mehr als 24h in der Zukunft liegt, fährt er in 24h hoch und schreibt 1 in die /video/shutdownatonce, ansonsten geht er passend zur Aufzeichnung (180 Sekunden vorher) an. Das erspart einiges an unnötigem Hochfahren, da ja auch, wenn zwischendurch eingeschaltet wird, das Aufwachern verschoben wird.


    Allerdings sind die Zeilen mit den Additionen und wohl auch das "1 > /video/shutdownatonce" syntaktisch falsch. Wie muss ich das schreiben? Was ich will, ist, denke ich, klar.
    Außerdem muss ich noch beim Start des VDR eine Abfrage wie
    if exits /video/shutdownatonce
    rm /video/shutdownatonce/
    shutdown
    fi
    eingebaut werden.
    Wie und wohin muss ich das schreiben?


    Ach so, das ganze bezieht sich auf die c't-Distribution, falls das von Bedeutung ist.


    Danke für eure Hilfe,


    Matthias

  • Hallo,


    mir fällt gerade auf, dass das ja so garnicht funktioniert. Wenn der VDR jetzt nämlich manuell eingeschaltet würde und shutdownatonce gesetzt ist, würde er auch sofort runterfahren. Minimieren könnte man dieses Problem, indem man die geplante Aufwachzeit in shutdownatonce schreibt und mit der tatsächlichen Hochfahrzeit vergleicht. Dann müsste man schon viel Pech haben, wenn man den VDR ausgerechnet zu dieser Zeit einschaltet.
    Optimal wäre es aber nur, wenn der Rechner irgendwie wüsste, dass er vom ACPI automatisch hochgefahren wurde. Das geht nicht, oder?


    Es wäre schön, wenn mir trotzdem jemand mit dem Skript helfen könnte. Auch wenn nur der erste Teil funktioniert (in 24h aufwachen) würde das schonmal einiges an unnötiger Laufzeit einsparen.


    Matthias

  • Hallo Monroe,


    Zitat

    Original von Monroe
    Müsste LinVDR 0.6 das nicht schon von Haus aus können?
    Was ist wenn du MinUserActivity=0 setzt?


    Was genau meinst du, das LinVDr können sollte? Die 24h-Schaltung, die ich oben beschrieben habe oder das sofortige Runterfahren nach ACPI-Wakeup? Zumindest zweiteres kann es nicht, das habe ich schonmal festgestellt, als mein VDR am zweiten Tag plötzlich hochfuhr und anblieb. Ich hatte damals noch keine Ahnung, warum, aber es war ein Timer am nächsten Tag.


    Wenn ich MinUserActivity=0 setze, müsste das dazu führen, dass er angeht und dann nie von allein wieder aus. Wenn ich MinUserActivity=1 setze, müsste ich im Minutentakt eine Taste drücken.


    Matthias

  • Hallo,

    Zitat

    Original von mhunstig
    Es wäre schön, wenn mir trotzdem jemand mit dem Skript helfen könnte. Auch wenn nur der erste Teil funktioniert (in 24h aufwachen) würde das schonmal einiges an unnötiger Laufzeit einsparen.
    Matthias


    probier mal

    Code
    NOW=`expr $NOW + 86400`


    und

    Code
    echo 1 > /video/shutdownatonce


    Gruß
    Achim


    my VDR: Asus AT3IONT-I deluxe, Digital Devices Cine S2 (dual DVB-S2 V5.5), yavdr 0.4, VDR 1.7.21
    OSD-Calender: PIM Plugin

  • Hallo,


    ich habe dank Achims Hilfe jetzt ein funktionierendes Skript /usr/share/vdr/shutdown-hooks/shutdown01.alarm.sh:


    Die shutdownatonce-Geschichte bleibt dabei erstmal unberücksichtigt.
    In Trockentests funktioniert das Skript, ich werde es die nächsten Tage in der Praxis testen. Wenn jemand anderes es verwendet und Fehler findet, bitte melden.


    Matthias

  • Hallo,


    noch ein kleiner Nachtrag zum Skript für die, die es nicht sofort erkennen: Es dokumentiert seine Arbeit in /video/alarm.txt. Der jeweils erste Eintrag ist der Sollwert, die zweite der Istwert in /proc/acpi/alarm.


    Bei mir funktioniert es einwandfrei. Für die shutdownatonce-Funktion reichen meine Kenntnisse noch nicht, wird vielleicht später mal nachgereicht. Wer seinen VDR mindestens alle 24 Stunden einmal anmacht, braucht sie aber sowieso nicht.


    Matthias

  • Zitat

    Original von mhunstig
    Mein Rechner fährt für Aufnahmen dank ACPI passend hoch und hinterher wieder runter. Dabei ignoriert er aber das Datum, d.h. wenn die nächste Aufnahme am Samstag um 21.00 Uhr ansteht, fährt er bis dahin jeden Tag um 20.55 Uhr hoch und bleibt dann MinUserActivity Minuten an.
    Meine MinUserActivity steht auf 420, weil ich ungern bei längeren Filmen gestört werden möchte.


    Der Rechner ist also, wenn ich jetzt (So, 22:20 Uhr) die o.g. Aufnahme programmiere, 5*420=2100 Minuten sinnlos an.


    das Problem hast Du ja nicht nur bei Timern in der Zukunft. Was ist, wenn der letzte Timer erledigt wurde? Der Eintrag in /proc/acpi/alarm bleibt ja bestehen, so dass der Rechner weiterhin jeden Tag zum zuletzt aktiven Timerbeginn hochfährt. Man müsste also versuchen, bei leerem Timer eine unsinnige Zeit in /proc/acpi/alarm zu schreiben, die das Aufwecken quasi deaktiviert. Im poweroff.pl-Script von linvdr ist das drin, aber deaktiviert, weil manche Mainbards da wohl Probleme machen.
    siehe auch http://www.vdr-portal.de/board/thread.php?sid=&postid=191752


    Hast Du inzwischen evtl. eine andere Lösung gefunden?


    Gruß
    Dr. Seltsam

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

Jetzt mitmachen!

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