C't-VDR - NVRAM Wakeup für VIA EPIA M10000

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Howto - NVRAM Wakeup für VIA EPIA M10000

Die Anleitung beschreibt die Einrichtung von NVRAM Wakeup für ein VIA EPIA M10000 Board (müsste für andere EPIAs ähnlich sein!) mit dem c't VDR Version 4. In der 4. Version des c't VDR wird als Standard Bootloader GRUB v0.95 verwendet (mit v0.97 geht es nicht!), wie auch in v2. Voraussetzung ist die Installation der Pakete nvram-wakeup per apt-get install Paketname.

Ausserdem muss im Bios "Instant Off" unter Power Management gewählt sein!

Anpassungen bei c't-VDR6

Die Version 6 von c't-VDR bringt standardmäßig oben erwähnten Bootloader GRUB 0.97 mit - damit klappt zwar der Reboot auf einem Epia-Board, allerdings erwacht der VDR nicht mehr. Man holt sich entsprechend von http://ftp.riken.go.jp/pub/Linux/debian/debian-archive/pool/main/g/grub/grub_0.95+cvs20040624-17sarge1_i386.deb die Version 0.95 (am besten in ein selbst angelegtes Verzeichnis mittels wget http://ftp.riken.go.jp/pub/Linux/debian/debian-archive/pool/main/g/grub/grub_0.95+cvs20040624-17sarge1_i386.deb), anschließend führt man folgende Befehle aus:

dpkg -i grub_0.95+cvs20040624-17sarge1_i386.deb
grub-install /dev/hda

Der erste Befehl, dpkg, installiert das angegebene Paket. Der zweite Befehl, grub-install, installiert den Bootloader auf der angegebenen Festplatte (Details siehe: http://www.gnu.org/software/grub/manual/html_node/Invoking-grub-install.html) - muss also auf die eigene Festplattenkonfiguration angepasst werden.

Möchte man in Zukunft verhindern, dass GRUB durch apt-get ein Update erfährt, trägt man in der Datei /etc/apt/preferences Folgendes ein:

Datei
/etc/apt/preferences
Package: grub
Pin: version 0.95*
Pin-Priority: 1005

Package: grub-doc
Pin: version 0.95*
Pin-Priority: 1005

Package: grub-splashimages
Pin: release v=3.1*,o=Debian
Pin-Priority: 1005


Allgemeine Konfiguration

Datei
/etc/vdr/vdr-nvram-wakeup.conf
#
# Configuration file for the VDR nvram-wakeup shutdown hook
#
# This is NOT the nvram-wakeup configuration file, which you can find in
# /etc/nvram-wakeup.conf and which must be set in COMMANDLINE (see below),
# if your mainboard ins not detected automatically.
#

# Set to "yes" to enable nvram-wakeup for VDR
#
ENABLED="yes"

# Here you can specify additional command line parameters, that will be passed
# to nvram-wakeup.
#
# i.e.:
#       COMMANDLINE="-I ecs_k7s5au"              # mainboard of type K7S5au
#       COMMANDLINE="-C /etc/nvram-wakeup.conf"  # use config file
#
# see "man nvram-wakeup"
#
COMMANDLINE="-I via_epia_m"

# If your mainboard needs to reboot before shutting down, set the command(s) to
# do this here. i.e.:
#
# SPECIALSHUTDOWN="lilo -R PowerOff ; shutdown -r now"
# SPECIALSHUTDOWN="savedefault --default=POSITION --once quit | /sbin/grub --batch; shutdown -r now"
# POSITION wird von 0 an gezählt, deshalb ist der 3. Eintrag Nr.2!
# SPECIALSHUTDOWN="savedefault --default=2 --once quit | /sbin/grub --batch; shutdown -r now"
#
# oder besser:
SPECIALSHUTDOWN="echo \"y\" | /sbin/grub-reboot 2 --no-floppy"

# To force a reboot whenever nvram-wakeup sets the time, independently of
# whether a reboot is required, enable this option.
# FORCE_REBOOT="yes"
#

# If you want your VDR machine to wakeup in regular intervals (i.e. for
# updating EPG data), specify a day interval and a wakeup time:
#
REGULAR_DAYS=0       # 0=disabled, 1=each day, 2=each 2'nd day, 3=...
REGULAR_TIME=01:00   # HH:MM


Datei
/boot/grub/menu.lst
# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
default         0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout         5

# Pretty colours
color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title         Windows 95/98/NT/2000
# root          (hd0,0)
# makeactive
# chainloader   +1
#
# title         Linux
# root          (hd0,1)
# kernel        /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specifiv kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
# kopt=root=/dev/hda1 ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd0,0)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(recovery mode) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## ## End Default Options ##

title           Debian GNU/Linux, kernel 2.6.8-2-686
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.8-2-686 root=/dev/hda1 ro
initrd          /boot/initrd.img-2.6.8-2-686
savedefault
boot

title           Debian GNU/Linux, kernel 2.6.8-2-686 (recovery mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.8-2-686 root=/dev/hda1 ro single
initrd          /boot/initrd.img-2.6.8-2-686
savedefault
boot

### END DEBIAN AUTOMAGIC KERNELS LIST

title NVRAM-Timer
root (hd0,0)
savedefault
halt


Bei mir hat der "halt"-Befehl nicht funktioniert; deshalb habe ich folgenden poweroff-Lösung (aus dem vdr-Portal) übernommen:

Datei
/boot/grub/menu.lst
title           POWEROFF NVRAM 
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.8-2-686 root=/dev/hda1 ro init=/sbin/poweroff
initrd          /boot/initrd.img-2.6.8-2-686
savedefault     0


Testen

Auf der Console bzw. per SSH Folgendes eingeben:

nvram-wakeup --debug -C /etc/nvram-wakeup.conf -s `date -d"+20min" +%s`

WICHTIG: Unbedingt vorher /etc/nvram-wakeup.conf anpassen, sonst wird das NVRAM verwüstet und man muss es im BIOS per "Clear ESCD" rücksetzen:

Datei
/etc/nvram-wakeup.conf
################################################
##  Mainboard autodetection information:
##
##    - Mainboard vendor:   ""
##    - Mainboard type:     "EPIA-M"
##    - Mainboard revision: ""
##    - BIOS vendor:        "Award Software International, Inc."
##    - BIOS version:       "6.00 PG"
##    - BIOS release:       "01/06/2004"

addr_stat        = 0x4B
shift_stat       = 3

addr_day         = 0x4C
addr_hour        = 0x4D
addr_min         = 0x4E
addr_sec         = 0x4F

addr_chk_h       = 0x6D
addr_chk_l       = 0x6E

need_reboot	 = ON_ANY_CHANGE


Wenn hierbei der Fehler: "nvram-wakeup: WakeUp Second value (63) not correct." kommt, einfach im BIOS unter "Power Management" "Special features" den Eintrag "Wake on RTC" auf "Enabled" stellen und alle Zahlenwerte darunter (Datum und Zeit) etwas ändern (egal auf welche Werte) und dann sollte es klappen!

Links

Thread mit nützlichen Infos im VDR-Portal