NVRAM WakeUp
Inhaltsverzeichnis |
Einleitung
NVRAM-Wakeup ist ein Programm, das dafür sorgt, dass ein Rechner aus dem ausgeschalteten Zustand startet.
Dazu verwendet NVRAM-Wakeup die Fähigkeiten des BIOS, den Rechner mittels Echtzeituhr Alarm (RealTimeClock) zu einer bestimmten Zeit automatisch zu starten. Diese Fähigkeit wird von den meisten Mainboards mit ATX-Formfaktor und auch einigen AT/BAT-Mainboards mit ATX-Buchse unterstützt. NVRAM-Wakeup hängt nicht vom VDR ab, und kann aber sehr gut zum automatischen Starten des VDR rechtzeitig zur nächsten Aufnahme benutzt werden.
Der jeweils neueste Quellcode kann von der Projektseite bezogen werden.
Nach erfolgter Aufnahme lässt VDR den Rechner dann automatisch herunterfahren, soweit keine Benutzer-Aktivitäten festgestellt wurden und das Zeitlimit für Benutzerinaktivität erreicht wurde. Im shutdown-script des VDR wird NVRAM jedesmal beim Beenden des VDR aufgerufen und speichert den nächsten Aufwachzeitpunkt für die nächste Aufnahme im beschreibbaren Teil des BIOS.
Liste funktionierender Mainboards
Man unterscheidet hier zwischen Mainboards, die einen Reboot benötigen und solchen, die keinen Reboot benötigen: Bei ersteren kann die neue Aufwach-Zeit im BIOS nur aktiviert werden, wenn sie nach dem Eintragen der Zeit nochmals bis zum Laden des Kernels gebootet werden. Letztere können nach dem Setzen der Zeit einfach per APM oder ACPI abgeschaltet werden.
Eine Liste aller explizit von NVRAM-Wakeup unterstützter Mainboards findet sich auf der Projektseite: Von VDR Nutzern werden erfolgreich/nicht erfolgreich eingesetzt:
- Asus A7V600-X: braucht kein Reboot, ist jetzt im neuesten CVS enthalten (ist gleich wie A7V600)
- Asus A7v8x-x: braucht kein Reboot, keine Besonderheiten.
- Asus P5A: braucht kein Reboot, aber der Kernel muss für 128 Bytes in nvram Treiber gepatched sein. (oder seit Version 0.95 einfach die --directisa Option benutzen)
- Gigabyte GA-5AX: braucht Reboot, sonst keine Besonderheiten.
- DFI K6BV3+: BAT-Mainboard mit ATX-Netzteilbuchse, funktioniert einwandfrei bei Einsatz eines ATX-Netzteils
- Via Epia VE5000: NVRAM WakeUp kennt das Board nicht und kann die RTC-Parameter nicht ermitteln. Daher sollte set_timer verwendet/versucht werden (siehe unten).
- VIA Epia M-10000B: braucht Reboot, sonst keine Besonderheiten.
Wenn es mit NVRAM garnichts werden will, hilft nur noch externe Hardware.
Installation
Allgemein
- downloaden
- auspacken
- README lesen
- folgendes ausfuehren:
make devices make make install man nvram-wakeup
- wenn man glueck hatte, war's das schon
- wenn das Board nicht unterstuetzt wird,
guess-helper
- ausfuehren und der Anleitung folgen
- wenn die generierte nvram-wakeup.conf nicht funktioniert, auf VDR-Portal.de im NVRAM-Forum posten.
Mit Gentoo
Die Installation unter Gentoo ist auf einer eigenen Seite beschrieben: Gentoo_NvramWakeup
Mit set_timer für problematische Boards
Falls nvram_wakeup das Mainboard nicht kennt und auch guess_helper.sh zur Parameter-Ermittung nicht weiter hilft gibt es noch ein Script, das im Paket NVRAM-Wakeup enthalten ist und welches immer zum Ziel führen sollte. Das Script heisst set_timer.
- Installation ist im Script selbst beschrieben siehe hier
- Installation mit set_timer für die c't Distri siehe hier
Checkscript Beispiele
PC nicht ausschalten, wenn..
# user eingeloggt sind # USERCOUNT=`who | wc -l`; test $5 -eq 0 -a $USERCOUNT -gt 0 && { echo "$USERCOUNT users are logged in."; exit; } # vdr2divx activ ist # pgrep 2divx >/dev/null 2>&1 && { echo Divx-Conversion is still running; exit; } # noad activ ist # pgrep noad >/dev/null 2>&1 && { echo "NoAd is still running"; exit; } # cutinplace activ ist # pidof cutinplace >/dev/null 2>&1 && { echo "Cutinplace is still running"; exit; } # file existiert # test -a /some/file && { echo /some/file exists; exit; } # zugriffe per ssh offen sind # netstat -n|grep ^tcp|egrep -q ":22 " && { echo "ssh"; exit; } # Zugriffe auf samba shares offen sind # netstat -n|grep ^tcp|egrep -q ":139 " && { echo "smb"; exit; } # stremdev client activ ist # netstat -n|grep ^tcp|egrep -q ":2004 " && { echo "streamdev"; exit; } # nfs shares offen sind # grep -qs ^ /var/lib/nfs/rmtab && { echo "nfs"; exit; } # pc erreichbar ist # ping -c 1 192.168.1.2 >/dev/null && { echo "px xxx"; exit; }
Links
- Projektseite
- Installation nach Hubertus Sandmann
- Erklärung zu den verschiedenen Möglichkeiten
- Diskussionsforum im VDR-Portal