poweroff.pl - /alarm ausschalten?

  • ich habe die poweroff.pl aus der Original Linvdr 0.6 leicht angepasst im Einsatz unter Suse 9.0.
    (statt /bin/busybox poweroff für Poweroff verwende ich /sbin halt -p)
    Was mir auffiel ist, dass im Script der Aufruf zum Ausschalten der Alarmzeit (wenn kein Timer programmiert ist) auskommentiert ist.:


    Code
    if($next =~ /550 No active timers/) {
        # XXX turns alarm off, at least, i hope so
        #system("echo \"0003-10-20 99:00:00\" > /proc/acpi/alarm");


    Tatsächlich stelle ich fest, dass die Uhrzeit des letzten aktiven Timers drin bleibt und der Rechner so jeden Tag aufwacht. (Ich kann so spontan gar nicht sagen, ob das bei Linvdr genauso ist -?)


    Wenn ich die Raute entferne, will Susi aber nicht ins Bett gehen -das Runterfahren wird abgebrochen.


    Wenn ich

    Code
    echo "0003-10-20 99:00:00" > /proc/acpi/alarm

    (ohne die beiden backslash) manuell eintippe, wird alarm hinterher mit **:00:00 angezeigt.


    Kann mir jemand erklären, wie das Script eigentlich genau funktioniert bzw. was der Sollzustand ist? 8)

    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

    Einmal editiert, zuletzt von Dr. Seltsam ()

  • Servus,


    zum Abschalten wird einfach eine unsinnige Zeit eingefüttert -- was aber durchaus mal zu Problemen mit dem Board führen kann, deshalb ist das auskommentiert.


    Die \" sind nötig, um die Anführungszeigen zu quoten -- was du an der Shell eingibst ist das selbe wie der Perl-System-Aufruf.


    Viele Grüße, Mirko

  • Moin Mirko,


    o.k., wenn ich es manuell eingebe wird es ja auch gesetzt. Per Script hingegen nicht, auch wenn die Raute weg ist und keine Timer programmiert sind.


    Wie funktioniert denn die "Entcheidungsfindung", ob das Script die unsinnige Zeit einfüttert oder nicht? Soll das Script bei leerem Timer generell die unsinnige Zeit einfüttern? Bzw. welchen Grund kann es haben, dass dies bei mir per Script nicht funktioniert? Was hat es mit den 550 und 250 auf sich?


    setAlarm($Next) if($Next);
    PowerOff();
    } else {
    # called from cmdline
    $next = `svdrpsend.pl next abs`;
    if($next =~ /550 No active timers/) {
    # XXX turns alarm off, at least, i hope so
    system("echo \"0003-10-20 99:00:00\" > /proc/acpi/alarm");
    setTime();
    PowerOff();
    } elsif($next =~ /250 \d+ (\d+)/) { setAlarm($1);
    PowerOff();
    } else {
    PowerOff();
    }
    }

    In meiner Not habe ich jetzt in der commands.conf

    Code
    3 /proc/acpi/alarm anzeigen	?: /bin/cat /proc/acpi/alarm
    4 /proc/acpi/alarm deaktivieren	?: /bin/echo "0003-10-20 99:00:00" > /proc/acpi/alarm


    ergänzt, um das manuell machen zu können, aber das kann`s ja eigentlich auch nicht sein.


    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

  • nochwas, nur damit ich es richtig verstehe: standardmäßig ist der Versuch, die Alarmzeit durch Unsinnseinträge zu "entschärfen", ja im Script deaktiviert.


    Das heißt, per default ist es dann normal, dass der Rechner bei leerem Timer einmal täglich zur zuletzt programmierten Uhrzeit hochfährt und nach MinUserInactivity wieder runterfährt? Komisch, ist mir bei LinVDR noch nie aufgefallen...


    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

  • Servus,


    Zitat

    Wie funktioniert denn die "Entcheidungsfindung"


    Ähm, lese und verstehe das Script, dann siehst du, wie es funktioniert...


    Zitat

    Was hat es mit den 550 und 250 auf sich?


    Das sind Rückgaben von VDR. Schau dir mal das SVDRP-Protokoll an.


    Zitat

    standardmäßig ist der Versuch, die Alarmzeit durch Unsinnseinträge zu "entschärfen", ja im Script deaktiviert.


    Genau, und zwar wegen der schon angesprochenen Probleme bei einigen Boards. Zudem gibt es Boards, die ohne explizites Setzen der Alarm-Zeit schlicht nicht mehr aufwachen, so wie's also sein soll.


    Zitat

    Das heißt, per default ist es dann normal, dass der Rechner bei leerem Timer einmal täglich zur zuletzt programmierten Uhrzeit hochfährt


    Genau, bzw. um 2 Uhr in der Nacht, je nach Script-Version.


    Viele Grüße, Mirko

  • Zitat

    Original von cooper



    Ähm, lese und verstehe das Script, dann siehst du, wie es funktioniert...


    Moin Mirko,


    genau das ist ja mein Problem :D Ich habe null Ahnung von Perl und kann das Script nicht interpretieren.


    Ich möchte eigentlich nur wissen, warum -auch bei gelöschter Raute- die Unsinnszeit bei leerem Timer nicht übergeben wird. Bzw. ob ausser der Raute noch was verändert werden muss, damit das geschieht.


    Gruß
    Dr. Seltsam (nicht locker lassend ;) )

    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

  • Servus,


    warum das bei dir so nicht funktioniert, kann ich dir leider nicht sagen. Dazu müsstest du das ganze mal debuggen -- dazu müsstest du dich aber mit Perl auskennen.


    Was du dir angucken kannst ist die Ausgabe des Kommandos

    Code
    svdrpsend.pl next abs

    , wenn der nicht "550 irgendwas" liefert, wird der Code-Block auch nicht ausgeführt.


    Viele Grüße, Mirko

Jetzt mitmachen!

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