Timeraufnahme... ohne ACPI und NVRAM (mit settime von cooper)

  • Hi,


    also ich hab das jetzt alles nochmal überarbeitet und erste Tests haben funktioniert. Nun folgt der Alltagstest. Es würde mich freuen, wenn andere meine Ergebnisse bestätigen könnten. Deshalb poste ich hier mal die einzelnen Skripte.


    Ich habe die settime und correcttime Skripte im Verzeichnis /etc/_settime abgelegt. Deshalb müssen bei anderen Verzeichnissen die Pfade entsprechend angepasst werden.
    Die "Originale" der angepassten Skripte poweroff.pl befinden sich in /usr/bin , das Startskript rcStart in /etc/init.d


    Wer diese Möglichkeit testen möchte, sollte die Originaldateien sichern. Ich übernehme für mögliche Fehler KEINE Garantie.


    Überall wo ich Änderungen vorgenommen habe sind die originalen Einträge mit ### auskommentiert.



    Also zuerst AUSZUGSWEISE die angepasste rcStart


    Dann die angepasste poweroff.pl



    Nun das eingentliche settime Skript von cooper, welches durch seine Hinweise für localtime, also für LinVDR angepasst wurde.



    Zum Abschluß noch das correcttime Skript, ebenfalls für localtime abgeändert.




    So nun folgt der Alltagstest. Die Funktionalität von LinVDR bleibt voll erhalten, sowohl was die 5Min Vorlauf beim Einschalten als auch was das Ausschalten betrifft.


    Viel Spaß.




    cooper
    Der 5Minuten Versatz beim wiedereinschalten ist nicht mehr aufgetreten, vermutlich zu viel auf einmal gedreht...

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

    4 Mal editiert, zuletzt von Scorp ()

  • Hi,


    ich habe noch einen Fehler im settime Skript gefunden, dadurch wurde die Zeit beim Start nicht korrekt wiederhergestellt.


    Anstatt:

    Code
    # Zeitdifferenz zwischen BiosWakeup und jetzt in Sekunden in Datei speichern
    echo "$[${Now}-${Bios}]" > /etc/timediff


    muss es so lauten:

    Code
    # Zeitdifferenz zwischen BiosWakeup und jetzt in Sekunden in Datei speichern
    echo "$[${Now}-${Bios}+${Diff}]" > /etc/timediff



    So nun aber erstmal WE...

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

    3 Mal editiert, zuletzt von Scorp ()

  • Scorp: Erstmal ein dickes, großes Lob für Deine Arbeit und Deiner Beharrlichkeit das Problem in den Griff zu kriegen. Wäre nicht mein Epia Board zwischenzeitlich abgeraucht dann hätte ich bereits alles testen können. So tut es zur Zeit mein "Abit KT7A" Motherboard: Und der läuft ausgerechnet OHNE jegliche Timer-Aufwachprobleme :] Habe dennoch mal die Scripte rüberkopiert und den Bios-Timer eingestellt - an Treibern war ja nix upzudaten, oder? Da ja wieder mal auf Kabel1 Star Trek Next Generation läuft (diesmal nur Montags, also pro Woche nur 1 Folge) kann ich ja meine versäumten Folgen "retten". Werde später meine Erfahrungen posten:prost1

    Hardware:MSI K8N NEO-FSR V2.0,AMD Sempron 3000+,BeQuiet Pro 530W,Infineon 512MB DDR CL3,2xSP2514N,1xSP2014N,1xSP1614N
    0-AGP/1..5-PCI Slots:0:MSI Nvidia MX400,1:RT8139,2:Hauppauge Nexus-S Rev.2.1,3+4:Hauppauge Win-TV Nova-S SE2(cx88_dvb),5:frei
    BIOS:Auto Einstellungen,FSB:200MHz, alle IO-Devices: disabled
    System:easyVDR 0.4, XXV 0.80,ACPI WakeUp
    Status seit dem 04.06.2007::lovevdr läuft traumhaft

  • Fuselfasel


    An Treibern wird nichts verändert. Lediglich die Skripte müssen wie gepostet angepasst werden.


    Nach fast einer Woche mit Tests gab es bis jetzt keine Probleme.


    Wäre aber wie gesagt schön noch etwas Feedack zu haben.



    cooper


    Für diejenigen die eben Probleme mit ACPI haben könntest Du die Skripte ja als Alternative in der 0.7 anbieten. Das sollte auch jedem zumutbar sein. Im Gegensatz zu NVRAM...

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

  • Servus,


    Zitat

    Für diejenigen die eben Probleme mit ACPI haben könntest Du die Skripte ja als Alternative in der 0.7 anbieten. Das sollte auch jedem zumutbar sein. Im Gegensatz zu NVRAM...


    ... drei mal darfst du raten, warum es überhaupt den Artikel gab :D


    Ist in der 0.7 drin.


    Viele Grüße, Mirko

  • Na dann hat es sich ja gelohnt. :]

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

  • Hallo,


    danke erstmal für die vielen guten Tipps hier und die Arbeit, die ihr in das ganze Projekt gesteckt habt!


    Ich habe auch ein EPIA VE5000-Board, das nicht zuverlässig aufwacht (wie schon vorher erwähnt: in ca. 8/10 Fällen gehts...), dahe möchte ich das settime-Skript verwenden. Soweit ist mir auch klar, wie ich vorgehen muss.


    Nur eine Frage noch: Welches Wakeup-Datum muss ich denn jetzt im BIOS einstellen?


    Im Skript ist die Variable BiosWakeup="2004-05-31 23:59:59". Heißt das, ich muss den 31.05.2004 23:59:59 einstellen?


    Im Kommentar des Skriptes steht nämlich "auf den 1. des Monats um 00:00:00 Uhr". Was beduetet "des Monats"? Des aktuellen Monats (und jeden Monat neu einstellen? - doch hoffentlich nicht!). Oder ist der 1.6.2004 gemeint. Oder der 1.5.2004?


    Im Artikeln im Linux-Magazin steht dagegen, man solle "den 31. des Monats um 23:59:59 [Uhr]" einstellen!?


    Wäre nett, wenn mir jemand sagen könnte, welcher Termin definitv richtig ist. Vielen Dank schonmal!

  • Hi,


    der Wakeup muß auf "2004-05-31 23:59:59" eingestellt werden, wobei die Jahreszahl nicht in jedem Bios eingestellt werden kann, das macht aber nichts. Er würde dann halt nur auch 2005 aufachen falls die entsprechende Zeit abgelaufen ist, das ist aber wohl eher unwahrscheinlich ;) da der VDR ja nicht so lange aus bleiben wird. Aber auch so wird er sich am "2005-05-31 23:59:59" einschalten und nach dem eigestellten Timeout wieder ausschalten. Ich denke das ist zu verschmerzen.


    P.S.: Wenn ich geschnallt hätte wie man hier Dateien einfügt, dann hätte ich sie direkt gepostet. Aber per Copy and Paste sollte es auch gehen...

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

  • Hi Scorp,


    danke für die schnelle Hilfe. Hab's hingekriegt und die Aufnahme vom TuffStuff auf der RockAntenne heut abend hat auch schon erfolgreich geklappt :] Hoffen wir mal, dass es jetzt nicht nur in 8/10, sondern in 10/10 Fällen geht :)


    Ich weiß jetzt auch, warum in der Anleitung im Linux-Magazin "1. des Monats" steht - man kann (bei mir) im BIOS wirklich nur den Tag einstellen, nicht den Monat und das Jahr. Hatte die Maske ganz anders in Erinnerung...


    Verstehe ich das richtig, um das Teil geht jetzt jeden 31. um kurz vor Mitternacht an? Das wäre nicht so toll, da ich dann möglicherweise schlafen will :) Dürfte ja kein Problem sein, einfach eine andere Uhrzeit (am besten nachmittags, wenn ich eh nie da bin) einzustellen und die entsprechende Variable im Skript anzupsassen, oder?


    Jedenfalls vielen Dank an alle, die zu dieser Lösung beigetragen haben, endlich kann ich den Timer richtig ausnutzen!


    Peter

  • Hi,


    wenn Du keinen Monat einstellen kannst, dann wird der Rechner logischerweise am 31. um 23:59:59 aufwachen. Allerdings auch nur wenn KEIN Timer programmiert ist.


    Du kannst den "Referenzzeitpunkt" im Skript settime aber auch verändern.... BiosWakeup="2004-05-31 23:59:59". Weitere Änderungen sollten nicht erforderlich sein. Nun ist ja WE und Du kannst es ja mal probieren.

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

    Einmal editiert, zuletzt von Scorp ()

  • So ist es, werde es morgen mal ausprobieren. Bin sowieso am VDR am Arbeiten, da ich mir ein 20x4-Display besorgt habe :)


    Die settimer-Geschichte will ich hier nochmal kurz zusammen, falls das noch weitere Leute machen wollen, damit sie das auch schnell finden:


    1. Die Datei /bin/date durch die auf Seite 2 dieses Threads von cooper gepostete Version erstzen


    2. Die Skripte wie von scorp auf dieser Seite gepostet anpassen/anlegen


    3. Im BIOS-Setup die Wakeup-Zeit auf den 31.05.2004, 23:59:59 Uhr einstellen und, falls möglich, aktiv stellen. Wenn kein Jahr bzw. kein Jahr und kein Monat eingestellt werden kann, das Jahr/den Monat halt einfach weglassen.


    4. Die Datums/Uhrzeit-Einstellung im BIOS hat die Nebenwirkung, dass zu dieser Zeit der Rechner hochgefahren wird, wenn kein Timer gesetzt ist. Ist diese Zeit nicht genehm, kann eine andere eingestellt werden, die Variable BiosWakeup im settime-Skript ist dann entsprechend anzupassen.



    PS: Ich hab noch ne Idee zu 4). Warum stellt man beim Runterfahren die Zeit nicht einfach um - sagen wir - 30 Tage zurück, wenn kein Timer programmiert ist? Das man 30 Tage kein VDR anschaltet ist ja eher unwahrscheinlich. Ich werd das morgen mal probieren, zu implementieren...


    Update: Ich hab jetzt das poweroff.pl-Skript mal abgeändert wie folgt: (relevante Stellen mit ### !!!!! markiert)


    Was haltet ihr von dieser Version? Vor allem, sind die zusätzlichen settime-Aufrufe an der richtigen Stelle eingefügt? Vor allem beim letzten bin ich mir nicht sicher, ob er benötigt wird.

  • Hi,


    also Du kannst Dir die Mühe sparen wenn Du einfach einen wöchentlichen oder monatlichen Timer einstellst.


    Das ständige verschieben des Referenzeitpunktes finde ich etwas "unübersichtlich".


    Naja, wenns funktioniert...

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

  • Hallo Scorp,


    die Lösung mit der Zeitverschiebung auch bei nicht aktiviertem Timer hat halt den Vorteil, dass ich eben keinen (nicht benötigten) monatlichen Timer setzen muss, um den VDR am monatlichen Hochfahren zu hindern. Ich finde das auch nicht unübersichtlich: Wenn ein Timer gesetzt ist, wird die Uhr ja sowieso verstellt. Jetzt wird sie eben auch bei nicht gesetztem Timer verstellt. Funktionieren scheint's übrigens: Die Aufnahmen klappen, der Plattencheck ist gestern auch noch durchgelaufen und am Sonntag (war ja gerade der 31.) ist der Rechner nicht unerwartet nachts gestartet :) Trotzdem wär es mir nicht unrecht, wenn mal jemand über meine Änderungen drüber schauen könnte, denn ich bin erstens nicht so der perl-Experte und kenne zweitens nicht so 100%ig das Boot/Shutdown-Konzept von LinVDR.

  • Hi,


    also ich bin auch weder Perl noch Bash Scripting Guru, aber wenn es funktioniert...

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

  • Also Respekt! Die Lösung mit dem Verstellen der Uhrzeit ist ziemlich 'smart' und lässt mich dann endlich den VDR richtig nutzen. Ich hatte nämlich mal probiert VDR auf meinem Abit KT7Raid zu installieren, doch da ging leider kein ACPI-Wakeup, NVRam-Wakeup war zu umständlich für mich eingefleischten LinVDR-User. Gleiches Spiel mit meinem Asus A7V - kein ACPI-Wakeup X( NVRam mit reboot ist auch nicht immer das Wahre. Das uralte Iwill P55XU-Board wo ich jetzt den VDR drauf hab kann zwar ACPI, ignoriert aber das Datum und springt deshalb nervigerweise jeden Tag an.


    Nochwas wg. der Problematik, dass viele Boards keinen Monat und Jahr als Aufweckzeitpunkt anbieten. Theoretisch heisst das doch nur, dass man keine Timer programmieren kann, die weiter als 31 Tage in der Zukunft liegen, weil man ja sozusagen ein Countdown bis zum nächsten Timer programmiert.
    Wenn längere Zeitspannen (zB. Sendung in 5 Wochen) oder keine Timer ( = unendlich lange Zeitspanne bis zum Aufwachen) gefordert sind, müsste man halt die maximal mögliche Zeitspanne (also die 31 Tage bei den meisten Boards) programmieren. Das ist die einzige Sonderbehandlung, ohne Nachführen von Aufwachzeitpunkten oder ähnliche Nebeneffekte.
    Also zusammengefasst:
    - Zeitspanne bis zur nächsten Sendung ausrechnen
    - Diese Zeitspanne auf maximal 31 Tage kappen. (wichtig!)
    - Zeitspanne von dem im Bios eingestellten Aufweck-Zeitpunkt abziehen.
    - Auf diesen Wert die Uhrzeit stellen


    BTW:
    Kann man eigentlich die Uhrzeit irgendwie aus dem DVB-Datenstrom ermitteln? Im Videotext wird die Uhrzeit ja mitgesendet und Videotext kann man im VDR ja betrachten. Damit könnte man doch die Uhrzeit beim Starten des VDRs automatisch zurückkorrigieren und hätte auch ein Driften der Uhrzeit vermieden. Nicht jeder VDR hängt an LAN oder Internet und hat Zugriff auf einen Timeserver.

    Gruß
    Jarny

    MLD 3.0.3 Server. Aufnahmen schaue ich mit einem separaten XBMC (OpenElec Distribution) im Wohnzimmer am 47 Zoll HD Fernseher

  • Hi,


    also das das Datum mit ACPI nicht klappt wurde schon oft besprochen und das liegt wohl daran das die Bioshersteller nur sehr spärlich mit Informationen rüberkommen. Das ist also kein Problem eines einzelnen Boards.


    Das mit den 31 Tagen ist ein Problem aber wie gesagt, es reicht bereits ein monatlicher Timer um das Problem mehr oder weniger elegant zu umgehen. (Glücklicherweise kann ich bei mir Tag und Monat einstellen, das Jahr fehlt jedoch). Allerdings ist es ziemlich unwahrscheinlich das der VDR ein Jahr aus bleibt :]


    Die Uhrzeit kann mit hwclock -w --directisa an die RTC des Boards übergeben werden.
    Allerdings funktioniert coopers Lösung mit timediff sehr gut. Allerdings habe ich mir noch ein kleines Script gebaut und in commands eingebunden um die Zeit ab und zu per Internet angleichen zu können.


    Die RTC ist halt auch keine Rolex...

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

    Einmal editiert, zuletzt von Scorp ()

  • tiny


    Das hat dann nichts mehr mit ACPI zu tun. Ich hoffe das ist richtig rübergekommen...

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

  • Zitat

    Originally posted by Scorp
    Hi,


    also das das Datum mit ACPI nicht klappt wurde schon oft besprochen und das liegt wohl daran das die Bioshersteller nur sehr spärlich mit Informationen rüberkommen. Das ist also kein Problem eines einzelnen Boards.


    Umso schlimmer! Aber was hat das mit den Informationen der Boardhersteller zu tun? Sagen die den Kernelentwicklern wie man die Uhrzeit ablegen kann aber nicht wie man das Datum ablegt? Ich tippe eher auf unvollständig implementierte Hardware.


    Zitat


    Das mit den 31 Tagen ist ein Problem aber wie gesagt, es reicht bereits ein monatlicher Timer um das Problem mehr oder weniger elegant zu umgehen. (Glücklicherweise kann ich bei mir Tag und Monat einstellen, das Jahr fehlt jedoch). Allerdings ist es ziemlich unwahrscheinlich das der VDR ein Jahr aus bleibt :]


    Wieso muss man einen Timer programmieren, wenn man meine oben beschriebene Lösung (Abschneiden der Zeitdifferenz auf den maximal möglichern Wertes des Boards) implementiert? Bei dir wären Timer bis 365 tage möglich und bei mir bis zu 31 Tagen. Ist doch völlig ausreichend, und falls nicht, geht der VDR halt genau nach dieser Zeitspanne einmal an. Ich finde das persönlich besser und sauberer als ein Zombitimer in der Timerliste.
    Gruß
    Jarny

    MLD 3.0.3 Server. Aufnahmen schaue ich mit einem separaten XBMC (OpenElec Distribution) im Wohnzimmer am 47 Zoll HD Fernseher

  • jarny


    Ich hatte ja geschrieben das mit Tag und Montag logischerweise 365 Tage möglich sind usw..


    Das mit dem Monatstimer war ja nur ein Vorschlag. Wer sowieso eine wöchentliche Serie aufnimmt hat keine Probleme. Autotimer kann man nach 2 Tagen sowieso vergessen, da der EPG meist nur 48h im vorraus funktioniert. Deshalb stört das bei ACPI auch nur die wenigsten, das sich der Rechner einmal am Tag einschaltet und dann gleich nen EPG Scan macht.


    Das mit ACPI und Tagestimers hängt damit zusammen, das es wohl Probleme mit uneinheitlichen ACPI Tabellen gibt, ist wohl im Kernel inplementiert aber auskommentiert; soviel zum Thema Standards...

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

    Einmal editiert, zuletzt von Scorp ()

Jetzt mitmachen!

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