###########################################################
#Grub,nvram-wakeup Gentoo HowTo
#von Nelvin
#18.05.2004
#UPDATE: 27.05.2004
###########################################################
1. Die richtige Grub-Version
Ganz wichtig ist die richtige Grub-Version, weil alle Versionen ab 0.93 das savedefault
Kommando nicht richtig verstehen!
Also die Version 0.92-r1 (zumindest ist es bei Gentoo die richtige Version)
Achtung:
Falls schon eine höhere Version installiert ist, muß die komplett vom System gelöscht
werden.
a. grub.conf aus dem Verzeichnis /boot/grub/ in /root kopieren
b. grub deinstallieren (Gentoo: emerge -C grub)
c. Das Verzeichnis /boot/grub löschen (rm /boot/grub -rf)
d. grub-0.92-r1 installieren (Gentoo: emerge /usr/portage/sys-boot/grub/grub-0.92-1.ebuild)
e. grub in der Kommandozeile eingeben
f. Die Datei grub.conf aus dem /root Verzeichnis in das grub-Verzeichnis kopieren. (cp /root/grub.conf /boot/grub/)
g. In der grub-shell folgende Befehle eingeben:
root (hd0,0) Achtung: Nur eingeben, wenn /dev/hda1 die Root-Partition ist (siehe info grub)
setup (hd0)
savedefault
quit
2. Die grub.conf anpassen
ZitatAlles anzeigentimeout 10
default saved
title Gentoo VDR
root (hd0,0)
kernel (hd0,0)/boot/bzImage root=/dev/hda1
title PowerOFF
root (hd0,0)
kernel (hd0,0)/boot/bzImage root=/dev/hda1 0oder
title PowerOFF
halt
saved:
Dieser Eintrag ist sehr wichtig, weil mit ihm immer nur der mit "savedefault" festgelegte Eintrag gestartet wird!
0:
Diese Null bewirkt, daß der Rechner sofort in den runlevel 0 springt und sich ausschaltet.
title PowerOFF
halt:
Die Option funktioniert nur bei manchen Mainboards! Einfach mal ausprobieren ob es klappt!
3. Testlauf a
Jetzt machen wir erstmal einen Trockentest, ob auch der Rechner über den "PowerOFF"-Eintrag herunterfährt.
Einfach, wenn der Grub auf dem Bilschirm bei Start erscheint, "PowerOFF" auswählen.
Jetzt sollte der Rechner kurz hochfahren und sich anschließend ausschalten!
Anschließend den Rechner ganz normal wieder hochfahren.
4. Testlauf b
Bitte folgenden Befehl in der Kommandozeile eingeben:
echo "savedefault --default=1 --once quit" | grub
reboot
Mit dieser Befehlszeile wird grub übergeben, daß er bei nächten Neustart den "PowerOFF"-Eintrag nehmen soll. Mit reboot wird der Rechner neu gestartet.
Grub sollte jetzt automatisch den "PowerOFF"-Eintrag wählen und den Rechner herunterfahren.
5. Anpassungen für den User VDR
Der VDR wird unter GENTOO als User VDR ausgeführt, doch der darf folglich nicht mit grub herumspielen.
a. emerge sudo
b. visudo
c. Folgenden Eintrag hinzufügen:
vdr ALL=(ALL) NOPASSWD: /sbin/grub
d. su vdr
e. echo "savedefault --default=1 --once quit" | sudo /sbin/grub
f. reboot
Der Rechner wird jetzt heruntergefahren und der "PowerOFF"-Eintrag automatisch gewählt!
6. nvram-wakeup
Für die Installation von nvram-wakeup möchte ich gerne auf die HowTo von Hubertus Sandmann verweisen.
NVRAM-WakeUp, der automatische Wakeup für VDR
7. Anpassungen für das Setzen des Timers
Ich habe für das automatische Setzen des Timers ein kleines Skript geschrieben, der die Datei /etc/vdr/timers.conf ausliest und entsprechend den Timer setzt.
/usr/bin/wakeup-set
#!/bin/bash
#################################################
#Programm zum Setzen der Weckzeit #
#Erstell am 19.05.2004 #
#Author: Nelvin #
#################################################
#Ist die timers.conf leer?
TIMER=`cat /etc/vdr/timers.conf`
if [[ $TIMER = "" ]];
then
logger -t vdr-wakeup "Kein Timer vorhanden"
sudo /sbin/halt
else
#Auslesen der timers.conf (nur der erste Eintrag wird untersucht)
JAHR=`date +%Y`
MONAT=`date +%m`
TAG=`head -n 1 /etc/vdr/timers.conf | cut -f 3 -d :`
STUNDE=`head -n 1 /etc/vdr/timers.conf | cut -f 4 -d : | cut -c 1-2`
MINUTE=`head -n 1 /etc/vdr/timers.conf | cut -f 4 -d : | cut -c 3-4`
#Umrechnung UTC-Zeit in Sekunden
WECKEN=`date --date="$JAHR-$MONAT-$TAG $STUNDE:$MINUTE" +%s`
#Ueberpruefung ob Weckzeit schon gesetzt ist
TEST=`sudo /usr/bin/nvram-wakeup | tail -n -7`
TEST2=`sudo /usr/bin/nvram-wakeup -s $WECKEN --nowrite | tail -n -7 | cut -f 2-9 -d " "`
if [[ $TEST = $TEST2 ]];
then
logger -t vdr-wakeup "Timer schon gesetzt"
sudo /sbin/halt
else
#Setzen der Weckzeit
sudo /usr/bin/nvram-wakeup -ls $WECKEN
logger -t vdr-wakeup "Weckzeit gesetzt"
#Reboot wird mit Aenderung des Default-Wertes in grub durchgefuehrt
echo "savedefault --default=1 --once quit" | sudo /sbin/grub
logger -t vdr-wakeup "Reboot wird durchgefuehrt"
sudo /sbin/reboot
fi
fi
Alles anzeigen
Die Befehle /sbin/halt /sbin/reboot, /sbin/grub und /usr/bin/nvram-wakeup werden über den sudo-Befehl ausgeführt, deshalb ist wie oben beschrieben eine Anpassung mit visudo notwendig.
vdr ALL=(ALL) NOPASSWD: /sbin/grub, /sbin/reboot, /sbin/halt, /usr/bin/nvram-wakeup
So jetzt nur noch eine kleine Änderung an der Datei /etc/conf.d/vdr und dann sollte der "Standby-Aufnahme" nichts mehr im Wege stehen!
# call CMD to shutdown the computer
SHUTDOWN="/usr/bin/wakeup-set"
Ganz wichtig noch zum Schluß:
/usr/bin/wakeup-set mit chmod +x ausführbar machen.
Viel Spaß und ich hoffe es klappt auch bei Euch!
Nelvin