nvram kann nicht gesetzt werden

  • hallo,


    hab auf meiner hardware (siehe unten) c't vdr 5 installiert.
    funktioniert auch nach ein paar tagen fummeln soweit alles.
    das prob was ich aber noch hab ist das mein nvram wakeup nicht laufen will.


    meine vorgehensweise:
    da mein mainboard ( asus cusi-m mit sis chipsatzt und p3 800) nicht autimatsich erkannt wurde habe ich das guess-helper skript gestartet.


    Code
    /usr/sbin/guess-helper


    da mir das mit dem direktisa nix sag hab ich mich für nvram entschieden.
    folgende nvram-wakeup.conf wurde erstellt:



    ich hab die dann nach /etc/ kopiert und die alte überschieben.


    danach hab ich die


    Code
    /etc/vdr/vdr-nvram-wakeup.conf


    bearbeitet und wie folgt geändert:




    danach in /boot/grub/menu.lst folgenden Eintrag hinzufügen:


    Code
    title NVRAM
    root (hd0) <--- eigene Partition eintragen
    halt


    und zum schluss noch :


    Code
    modprobe nvram


    sowie "nvram" in die /etc/modules eingetragen




    zum schluss dann rebootet.
    wenn ich jetzt einen timer im osd erstelle und den vdr ausschalte steht im osd:
    "nvram-wakeup could not set timer"


    mach ich hier was falsch bzw. hab ich was vergessen.
    ich bin nicht der linux crack darum hoffe ich um ein wenig hilfe.


    thx
    mfg


    mrtom

    HW Test VDR: Hetis 865GV-E Giga, Pentium 4 2400Mhz, 512MB Ram, 1x TT S2300 Premium "modded" + Hauppauge Nova se
    HW VDR: Pentium 3 700Mhz, 512MB Ram, 1x TT S2300 Premium "modded"
    OS: Debian Etch 2.6.24.7, VDR 1.6.0.1, xineliboutput

    Einmal editiert, zuletzt von mrtom ()

  • mrtom


    lies dir eventull mal diesen Artikel durch:
    http://www.vdr-wiki.de/wiki/index.php/NVRAM_WakeUp


    Insbesonder solltest du den darin enthaltenen Test durchführen.


    nvram-wakeup -s $((`date +%s` + 11 * 60))


    Natürlich musst du hier noch angeben, wo deine nvram-wakeup.conf liegt. Eventuell musst du auch noch directisa verwenden ( --directisa oder -A)


    Hierzu hilft ein


    man nvram-wakeup weiter.


    Nachtrag:
    Du gehst in meinen Augen falsch an die Sache ran. Nvram setzt eine Kette von funktionierenden Einstellungen voraus. Du willst alles in einem Schritt richtig machen. Das wird nichts. Arbeite dich lieber Schritt für Schritt voran.


    Gruß
    Wicky

  • ok das das die falsche vorgehensweise ist kommt mir jetzt auch so vor.


    hier hab mal nvram-wakeup ausgührt:



    oder muss ich hier noch ne zeit angeben ?? parameter date??


    und man nvram-wakeup gibt es nicht bei mir:

    Code
    vdr:~# man nvram-wakeu
    Kein Manual-Eintrag für nvram-wakeu vorhanden

    HW Test VDR: Hetis 865GV-E Giga, Pentium 4 2400Mhz, 512MB Ram, 1x TT S2300 Premium "modded" + Hauppauge Nova se
    HW VDR: Pentium 3 700Mhz, 512MB Ram, 1x TT S2300 Premium "modded"
    OS: Debian Etch 2.6.24.7, VDR 1.6.0.1, xineliboutput

    Einmal editiert, zuletzt von mrtom ()


  • Aber ich hatte doch geschrieben, dass du noch angeben musst wo deine nvram-wakeup.conf liegt. Und ein Blick in die Manpage (man nvram-wakeup) verrät dir wie du den Parameter angibst.


    Gruß
    Wicky

  • Hi,


    Code
    addr_stat        = 0x56
    shift_stat       = 4
    addr_stat        = 0x6D   # but differs somewhere else
    shift_stat       = 4
    addr_stat        = 0x70   # but differs somewhere else
    addr_chk_h       = 0x56   # guessed
    addr_chk_l       = 0x57


    Sollte von der addr_stat nicht nur 1 existieren ? bzw. addr_stat und addr_chk_h sind gleich. ?!


    shift_stat kannste auch einen rausnehmen.


    Kannst mal folgende konstelation Probieren.


    Code
    shift_stat       = 4
    addr_stat        = 0x6D   # but differs somewhere else
    #addr_stat        = 0x70   # but differs somewhere else
    addr_chk_h       = 0x56   # guessed
    addr_chk_l       = 0x57
    need_reboot  = ON_ANY_CHANGE


    bzw. mal die addr_stat ändern.


    Aufruf mit --directisa, und testen, natürlich alles auf eigene Gefahr ;)


    gruß chrisz

  • ...na dann werde ich auch mal konktreter:


    1. Die Option mit der man angibt wo die nvram-wakeup.conf liegt lautet -C


    also:


    nvram-wakeup -C /etc/nvram-wakeup.conf ....


    2. Die nvram-wakeup.conf ist so nicht korrekt, wie es chrisz auch schon geschrieben hat.


    Du solltest daher den Prozess mit dem guess-helper unbedingt wiederholen !!!


    3. Die Option need_reboot würde ich zunächst nicht mit aufnehmen, sondern erst dann, wenn ersichtlich wird, dass sie notwendig ist.


    Gruß
    Wicky

  • ok thx


    jetzt bin ich einiges schlauer.
    ich probier es mal aus und berichtet danach wie es gelaufen ist.


    mrtom

    HW Test VDR: Hetis 865GV-E Giga, Pentium 4 2400Mhz, 512MB Ram, 1x TT S2300 Premium "modded" + Hauppauge Nova se
    HW VDR: Pentium 3 700Mhz, 512MB Ram, 1x TT S2300 Premium "modded"
    OS: Debian Etch 2.6.24.7, VDR 1.6.0.1, xineliboutput

  • ich hab den guess-helper noch mal durch laufen lassen.



    es sind jetzt aber immer och mehrere "addr_stat".
    oder ist die datei jetzt so in ordnung.


    hier ist noch die "nvram-error.log"


    mfg


    mrtom

    HW Test VDR: Hetis 865GV-E Giga, Pentium 4 2400Mhz, 512MB Ram, 1x TT S2300 Premium "modded" + Hauppauge Nova se
    HW VDR: Pentium 3 700Mhz, 512MB Ram, 1x TT S2300 Premium "modded"
    OS: Debian Etch 2.6.24.7, VDR 1.6.0.1, xineliboutput

  • mrtom


    ...das sieht in meinen Augen nicht gut aus. Ich habe bezüglich guess-helper keinen Rat.


    Aber: Es gibt nicht nur nvram-wakeup als Wakeup-Methode. Da wären noch Wakeup mit ACPI oder auch Settime. Settime dürfte sich allerdings nur mit großem Aufwand bei c't realisieren lassen. Bei linvdr läuft settime jedoch prächtig.


    Daher mit Tip:
    Such doch mal hier im Forum und im vdr-wiki nach ACPI oder wechsle zu linvdr. Mit linvdr gibt es deine Probleme nicht, da settime und ACPI dort sehr einfach ein zu richten sind.


    Gruß
    Wicky

  • Hi,


    ich würde mich mal mit Bistr-o-math in verbindung setzen. Der hat dazu eigentlich immer Rat.


    Ansonsten mit viel Mut diese probieren, ist vom FX Board. Allerdings könnte es Dein Bios schrotten, wenn man mit den Werten herum Experimentiert.



    Nachzulesen hier > addr_rtc_day


    Allerdings, wie ich schon sagte ist dass das FX Board, mit einer anderen Revision.


    gruß chrisz

  • Zitat

    Settime dürfte sich allerdings nur mit großem Aufwand bei c't realisieren lassen.


    ... hm? Geht doch ganz einfach unter c't VDR 5:


    "Wenn ACPI Wakeup und NVRAM Wakeup nicht funzen:
    Einfach set_timer aus dem NVRAM Wakeup Paket nehmen."


    Prinzip: Beim Runterfahren des Rechners haut der VDR nicht die Aufwachzeit am NVRAM-Schutzmechanismus vorbei ins BIOS, geht dann schlafen und wacht zur hoffentlich korrekt verstandenen Aufwachzeit wieder auf (so wie bei NVRAM Wakeup).


    Sondern: Ein VDR Rechner wacht immer am 31.7. um 23.59 Uhr auf (manuell im BIOS einmal genau so eingetragen), hat aber vor dem Schlafengehen die Hardware-Zeit der Maschine klugerweise auf ein paar Stunden oder Tage vor besagtem 31.7. verstellt (dies geschieht praktischerweise mit einem Betriebssystem-Standardbefehl und ist technisch kein "Hack", hoechstens ein "logischer";).


    Der Rechner "schlaeft" also eine vorher berechnete Zeit lang.


    Dazu muss man aber ein paar Dinge geradeziehen:


    (0) "nvram-wakeup" sollte also installiert sein, ACPI Wakeup nicht.


    (1) in /etc/init.d/bootmisc.sh irgendwo einfuegen:
    /usr/bin/set_timer
    (Damit wird die "verbogene" Hardware-Zeit beim Hochfahren gradegerückt)


    (2) in /etc/default/rcS aendern/einfuegen:
    HWCLOCKACCESS=no
    (So wird verhindert, dass ein anderer Prozess beim Runterfahren die Systemzeit der laufenden Maschine in die Hardwarezeit schreibt und alles wieder zunichte macht)


    (3) in /etc/vdr/vdr-nvram-wakeup.conf aendern:
    auf "enabled"
    (Ansonsten wird der NVRAM-Wakeup ignoriert, das set_timer ist ja ein Teil davon)


    (4) als Paket nachinstallieren:
    apt-get install sudo
    (Mit SUDO kann auch ein nicht-ROOT-User an der Hardwarezeit rumpfuschen)


    (5) "sudo" durch eintippen von "visudo" konfigurieren, Konfigdatei ist /etc/sudoers
    vdr ALL=NOPASSWD: /usr/sbin/set_timer
    (Wenn set_timer als root läuft, wird auch /sbin/hwclock darin als root gestartet)


    (6) in /usr/share/vdr/shutdown-hooks/S90.nvram-wakeup an 2 Stellen abaendern:


    #NVRAMCMD=/usr/sbin/nvram-wakeup
    NVRAMCMD="sudo /usr/sbin/set_timer"


    #$LOG "$NVRAMCMD -ls $TIMER $COMMANDLINE"
    #$NVRAMCMD -ls $TIMER $COMMANDLINE
    $LOG "$NVRAMCMD $1 $2"
    $NVRAMCMD $1 $2


    (7) fertig


    Funzt bei mir prima (ausser, wenn ein apt-get upgrade eine neue Version des S90.nvram-wakeup einspielt und meine Änderungen überschreibt und ich mich wundere, warum der Rechner nicht mehr runterfährt...)


    'nen schönen Gruß,


    Mike

  • ich habe deine anleitung befolgt.


    was ich nicht ganz verstanden hab ich ob ich den automatischen wakeup im bios auf die 23:59 oder die bios uhr auf die zeit einstellen muss.


    ich bin mal davon ausgegangen das du die bios uhr meinst und hab sie auf die zeit gestellt.


    nach dem hochfahren hab ich mit " hwclock" mal geguckt wie die uhr ist und da hatte der vdr sich auf irgend was von 2 uhr gestellt (aktuelle zeit ist 22:21).
    da ich in den osd einstellungen eingestellt hab das der die uhrzeit von dem "ard" epg daten nehmen soll stellt sich die vdr uhr nach kurzer zeit auf die richtige uhrzeit.


    aber leider startet der pc nicht wenn ich einen timer eingestellt hab.


    ist das soweit richtig oder mache ich was falsch???


    mrtom

    HW Test VDR: Hetis 865GV-E Giga, Pentium 4 2400Mhz, 512MB Ram, 1x TT S2300 Premium "modded" + Hauppauge Nova se
    HW VDR: Pentium 3 700Mhz, 512MB Ram, 1x TT S2300 Premium "modded"
    OS: Debian Etch 2.6.24.7, VDR 1.6.0.1, xineliboutput

    3 Mal editiert, zuletzt von mrtom ()

  • Zitat

    Originally posted by mrtom
    was ich nicht ganz verstanden hab ich ob ich den automatischen wakeup im bios auf die 23:59 oder die bios uhr auf die zeit einstellen muss.


    ich bin mal davon ausgegangen das du die bios uhr meinst und hab sie auf die zeit gestellt.


    Sorry für die Verspätung beim Antworten, ich bin nur 1-2 mal die Woche hier.


    Du musst nicht die BIOS-Uhr, sondern den BIOS-Wakeup ein mal fest auf 23:59 stellen (und aktivieren).


    Nochmal der Unterschied:


    NVRAM-Wakeup "Standard" versucht, beim Herunterfahren des VDR aus dem Betriebssystem heraus die Aufwachzeit zu setzen. Klingt ja auch logisch. Das ganze wird aber durch die diversen BIOS-Schutzmechanismen sehr schwer gemacht, man hat echt Glück, wenn das für das eigene Board von jemandem entsprechend gehackt wurde.


    Für diesen Trick ("set-timer"-Variante aus dem NVRAM-Wakeup Paket) setzt Du die Aufwachzeit einmalig manuell auf 23:59. Der VDR verstellt beim Herunterfahren nun die BIOS-Uhr entsprechend, denn zum Stellen der BIOS-Uhr gibt es Standardbefehle im Betriebssystem (hwclock) und das wird wohl von jedem BIOS prima unterstützt. Keine Hacks, funktioniert prima.


    Das Resultat ist das gleiche - der Rechner legt sich für die berechnete Zeitspanne (Aufwachzeit minus Uhrzeit) schlafen ...


    Man muss nur den Betrachtungspunkt verändern, dreht sich die Erde um die Sonne oder die Sonne um die Erde...


    Also: Angenommen, es ist jetzt 13:00 Uhr und der VDR soll 5 Stunden lang schlafen.


    Dann ist es eigentlich "egal", ob ich nun die BIOS-Aufwachzeit auf 18:00 Uhr stelle und die BIOS-Uhr läuft regulär weiter und 5 Stunden später geht die Kiste wieder an.
    Oder aber die BIOS-Aufwachzeit ist auf 23:59 fest eingestellt, die Kiste soll 5 Stunden lang schlafen: Dann muss ich beim Runterfahren die BIOS-Uhrzeit eben auf 18:59 verstellen. Dann ist es nach einer Stunde 19:59, nach 2 Stunden 20:59 und so weiter und nach 5 Stunden ist es 23:59 und die Aufwachzeit ist erreicht, die Kiste fährt wieder hoch und beim Hochfahren wird die Uhr wieder "zurechtjustiert", weil wir uns praktischerweise beim Runterfahren gemerkt haben, um wieviel Stunden (oder Minuten) wir die Uhr verstellt hatten...


    Kommt dann aufs Gleiche raus.


    Etwas klarer geworden?


    Viele Grüße,


    Mike

  • Zitat


    (1) in /etc/init.d/bootmisc.sh irgendwo einfuegen:
    /usr/bin/set_timer
    (Damit wird die "verbogene" Hardware-Zeit beim Hochfahren gradegerückt)


    Der Eintrag muß heißen:
    /usr/sbin/set_timer

    Asus Pundit P1-PH1; Celeron 2,8GHz; 1TB + 1TB USB; Technotrend Premium DVB-C 2300; SATELCO EasyWatch PCI DVB-C "Basic Edition"; easyVDR 0.602, VDR 1.4.7
    Plugins: ExtRecMenu, PIN, ...

  • Hi,


    auch mal mein Senf dazu: set_timer funktioniert wirklich klasse und ist (wenn man denn eine Anleitung hat) leicht einzurichten. Ich benutze es bei meinem c'tVDR (siehe Sig) seit einer digitalen Ewigkeit...


    Aber: Das ganze funzt nur richtig, wenn bei einem aktivierten Timer nicht ein anderes System zwischendurch gestartet wird (das wuerde evtl. deine OS-Zeit wieder verstellen und die Zeit bis zum Aufwachen waere falsch). Ist fuer einen reinen VDR kein Problem, man sollte aber daran denken...


    Gruss,
    - berndl

  • Hallo zusammen,


    ich hab die Anleitung von meando soweit befolgt, hab' jetzt nur noch das Problem, das der VDR nicht per FB ausschalten lässt (nvram bricht Shutdown ab: in der var/log/messages steht:


    Code
    Dec 10 15:24:38 VDR5WZ vdr-shutdown: Shutdown aborted by /usr/share/vdr/shutdown -hooks/S90.nvram-wakeup with exitcode 2


    )


    Frage: Muss der VDR per FB runtergefahren werden damit das funzt? Habe testweise einen Timer 12 Min. in der Zukunft gesetzt und den VDR dann per Hand (shutdown -h now) runtergahren und abgewartet


    ---> Ergebnis: geht nicht.


    Kann mir jemand helfen?


    Ich versuche jetzt mal die hwclock manuell zu setzen, ob das überhaupt klappt...

    1.) AMD K6-2 350 auf ASUS P5A Rev. 1.03, 128MB RAM, 140GB HDD, 1x TT DVB-S 1.6, 1x TT S1100 i.M. ctvdr1
    2.) Celeron 400 auf Gigabyte GA6-BXE, 128MB RAM, 200GB HDD, 1x TT DVB-S 2.3 modded, 1x TT S1400, ctvdr4 mit 2.6.14.3 Kernel
    3.) PC Chips M789CG 2000+ (800Mhz C3 Prozessor), 1x TT DVB-S 1.6, 1x TT S1100m, ctvdr5

    Einmal editiert, zuletzt von ElCapitano ()

  • So, habe mal gestestet ob das Setzen des hwclock funzt. Als root eingeloggt klappt alles


    mit date -s xxx ein Datum übernommen
    mit hwclock -w ins Bios geschossen
    nach dem Neustart kontrolliert
    alles ok...


    Ich konnte mcih seltasamerweise nicht als VDR anmelden, hab das Passwort geändert, trotzdem gehts nicht...keine Ahnung warum. Egal, habe dann mal nen user test angelegt und die Zeile


    Code
    test ALL=NOPASSWD: /usr/sbin/set_timer


    unter die Zeile



    Code
    vdr ALL=NOPASSWD: /usr/sbin/set_timer


    in der /etc/sudoers hinzugefügt.


    Es sollte doch jetzt dem user test möglich sein das Kommando hwclock auszuführen, oder?


    Geht aber nicht! Liegt hier der Hund begraben?

    1.) AMD K6-2 350 auf ASUS P5A Rev. 1.03, 128MB RAM, 140GB HDD, 1x TT DVB-S 1.6, 1x TT S1100 i.M. ctvdr1
    2.) Celeron 400 auf Gigabyte GA6-BXE, 128MB RAM, 200GB HDD, 1x TT DVB-S 2.3 modded, 1x TT S1400, ctvdr4 mit 2.6.14.3 Kernel
    3.) PC Chips M789CG 2000+ (800Mhz C3 Prozessor), 1x TT DVB-S 1.6, 1x TT S1100m, ctvdr5

  • Zitat

    Originally posted by ElCapitano
    Frage: Muss der VDR per FB runtergefahren werden damit das funzt?


    Ja, denn die Zeit muss von den VDR-Shutdownskripten gesetzt werden. Sie wird *nicht* von den Debian-Shutdownskripten gesetzt!


    Zitat

    Originally posted by ElCapitano
    Habe testweise einen Timer 12 Min. in der Zukunft gesetzt und den VDR dann per Hand (shutdown -h now) runtergahren und abgewartet
    ---> Ergebnis: geht nicht.


    12 Min. hört sich etwas kurz an. Da gibt es diverse Zeitpuffer, die das Herunterfahren abbrechen.


    Tip zum Testen, auch wenn man ungeduldig wird: Größere Abstände programmieren. Hab schon mal nen halben Tag mit Debuggen verbracht, nur um festzustellen, dass es mit 40 Min. Abstand zum nächsten Timer wunderbar gefunzt hätte...


    Zitat

    Originally posted by ElCapitano
    Ich konnte mcih seltasamerweise nicht als VDR anmelden, hab das Passwort geändert, trotzdem gehts nicht...keine Ahnung warum. Egal, habe dann mal nen user test angelegt
    ...
    Es sollte doch jetzt dem user test möglich sein das Kommando hwclock auszuführen, oder?
    Geht aber nicht! Liegt hier der Hund begraben?


    Der User test oder vdr oder sonst jemand sollte nicht hwclock ausführen können, sondern /usr/sbin/set_timer ausführen (im Idealfall der vdr user beim Shutdown), denn das /usr/sbin/set_timer stuft sich erst als "root" hoch und ruft dann als root /sbin/hwclock auf und verstellt dadurch die Zeit.

  • Danke für deine Antwort,


    hab's aber jetzt mit ACPI Wakeup hinbekommen.
    Denke der Settime hätte auch gefunzt, aber ich hab' ja nicht per FB sondern manuell runtergefahren...

    1.) AMD K6-2 350 auf ASUS P5A Rev. 1.03, 128MB RAM, 140GB HDD, 1x TT DVB-S 1.6, 1x TT S1100 i.M. ctvdr1
    2.) Celeron 400 auf Gigabyte GA6-BXE, 128MB RAM, 200GB HDD, 1x TT DVB-S 2.3 modded, 1x TT S1400, ctvdr4 mit 2.6.14.3 Kernel
    3.) PC Chips M789CG 2000+ (800Mhz C3 Prozessor), 1x TT DVB-S 1.6, 1x TT S1100m, ctvdr5

Jetzt mitmachen!

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