ACPI Wakeup

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Beschreibung)
Zeile 1: Zeile 1:
==Beschreibung==
+
http://bagi5480.007gb.com/pinch-hitter-2-games.html gamefowl of the
'''ACPI''' (''Advanced Configuration and Power Interface'') ist eine Schnittstellenspezifikation für das Zusammenspiel moderner Rechnerhardware und Betriebssysteme. Dadurch benötigt das Betriebssystem keine Informationen über die vorhandene Hardware, um gewisse Hardwarefunktionen nutzen zu können. ACPI ist eine Weiterentwicklung von APM, PNPBIOS und weiteren Techniken und bietet unter anderem Funktionen zur Kontrolle des Energieverbrauchs, zur Versetzung von Rechnern in den Ruhezustand und zur Aktivierung und Deaktivierung von Geräten.  
+
http://pivo3652.007gb.com/tribal-star-tattoo.html star flower tattoo
 
+
http://shel2563.007gb.com/john-jay-high-school.html sumner high school
'''ACPI-Wakeup''' bedeutet also vor diesem Hintergrund, dass der Rechner über das ACPI-Kernelinterface geweckt werden kann. Dazu schreibt man die Weckzeit in eine bestimmte Datei, die sich je nach Kernelversion entweder im proc- oder sysfs-Verzeichnisbaum befindet. Danach wird der Rechner schlafen gelegt, denn standardmäßig wird das Aufwachen nur aus den Schlafmodi Standby und Suspend to RAM unterstützt. Suspend to Disk ist optional, ist aber bei vielen Boards implementiert. Wenn alles klappt, wacht der Rechner dann zur übergebenen Uhrzeit wieder auf und fährt hoch.
+
http://serg9500.700megs.com/gamespy-arcade-201.html pregame warmup music
 +
http://temp8824.yourfreehosting.net/portable-toilet-service.html portable toilets rental
 +
http://elda1674.700megs.com/bishon-frise-dogs-for-sale.html colies dogs
 +
http://elda1350.yourfreehosting.net/rosy-rupeeland-recipes.html reubin sandwich recipe
 +
http://shel6666.freehostia.com/recipe-for-cream-brulee.html recipe for kringle
 +
http://nick5810.hostshield.com/a-list-of-dogs.html ectropian in dogs
 +
http://shel1212.900megs.com/vista-ultimate-untouched.html vista transmision pack
 +
http://nika0521.110mb.com/rtp1000-ultimate-portable.html second hand transportable buildings
 +
http://shel4532.700megs.com/the-cinematic-body.html gallexy cinemas
 +
http://dana0085.fusedtree.com/feedin-dogs.html excess salivating in dogs
 +
http://bagi0651.my3gb.com/cinemaxx-copenhagen.html cinemaxx wurzburg
 +
http://serg3210.900megs.com/wire-haired-ibizan-hound.html panteen donate hair
 +
http://coal4493.yourfreehosting.net/bardot-head-office.html avoyelles parish sheriff office
 +
http://elda0616.fusedtree.com/one-skillet-recipes.html tenderloin steak recipes
 +
http://drow9446.700megs.com/sheesh-kabab-recipe.html and broccli recipes
 +
http://riva0554.hostshield.com/police-officer-job-description.html viking office supply
 +
http://shel0147.freewhost.com/cinemania-film-festival.html cinemar tv baia
 +
http://alek0102.fizwig.com/high-school-hassal-grove.html high school for girlsd
 +
http://soli1236.900megs.com/addicting-games-tv.html hyperscan game pack
 +
http://pivo6592.freehostia.com/pride-and-prejudice-published.html pride and prejudice stage
 +
http://shel6655.yourfreehosting.net/parsley-tea-recipe.html flounder fillets recipes
 +
http://irma2681.freehostia.com/mui-language-pack.html language competence
 +
http://dana5647.hostshield.com/women-hairy-legs.html high chair reviews
 +
http://nika0121.rack111.com/microsoft-office-sku111-cab.html ashtead post office
 +
http://pivo9669.fusedtree.com/markie-dogs.html man mauled by dogs
 +
http://shel1196.my3gb.com/gurad-dogs.html yalebulldogs cstv com
 +
http://nika0125.101freehost.com/rabid-rabbits-wii-game.html from meridell castle game guide
 +
http://nick4877.700megs.com/blood-pregnant-test.html blood pressure monitor test
 +
http://elda3510.freewhost.com/the-rails-game-nitrome.html treatment for strained ligaments
 +
http://pivo2112.sitebooth.com/german-gluhwein-recipe.html dosakaya pachadi recipe
 +
http://bagi1844.sitebooth.com/disney-princes-games.html 6125 free games
 +
http://nika0142.fusedtree.com/staroffice-8-writer.html statesville post office
 +
http://shel5555.fusedtree.com/tattoo-design-galleries.html floral tattoo designs
 +
http://drow1263.sitebooth.com/veal-paprikash-recipe.html oaxacan mole recipe
 +
http://alek0011.700megs.com/most-usefull-language-to.html most spra language
 +
http://nika6540.sitebooth.com/recipes-for-sauteed-shrimp.html recipes for dumplins
 +
http://elda0497.110mb.com/language-school-arequipa.html language typer
 +
http://nick1012.sitebooth.com/ogden-utah-rodeo.html provo utah 4th of july
 +
http://shel7777.700megs.com/norwegian-language-course.html japanese the spoken language
 +
http://rita0508.110mb.com/games-of-phineas-and-ferb.html gamesarcade net fire
 +
http://bagi0255.110mb.com/slanting-language.html tinymce importpluginlanguagepack
 +
http://pivo7732.freehostguy.com/vivisection-dogs.html hot dogs saurkraut
 +
http://drow0000.my3gb.com/quotes-on-pride-and-prejudice.html memorable quotes from pride and prejudice
 +
http://serg7744.my3gb.com/watch-the-office-booze-cruise.html watch the office uk free
 +
http://temp8228.900megs.com/laser-hair-removal-specialist.html rebonding of hair
 +
http://shel1209.freehostguy.com/portable-sawmill-rental.html serious reportable events
 +
http://temp3569.700megs.com/pledge-of-alligance-in-sign-language.html peral language
  
 
==Anwendung==
 
==Anwendung==

Version vom 3. Dezember 2008, 14:14 Uhr

http://bagi5480.007gb.com/pinch-hitter-2-games.html gamefowl of the http://pivo3652.007gb.com/tribal-star-tattoo.html star flower tattoo http://shel2563.007gb.com/john-jay-high-school.html sumner high school http://serg9500.700megs.com/gamespy-arcade-201.html pregame warmup music http://temp8824.yourfreehosting.net/portable-toilet-service.html portable toilets rental http://elda1674.700megs.com/bishon-frise-dogs-for-sale.html colies dogs http://elda1350.yourfreehosting.net/rosy-rupeeland-recipes.html reubin sandwich recipe http://shel6666.freehostia.com/recipe-for-cream-brulee.html recipe for kringle http://nick5810.hostshield.com/a-list-of-dogs.html ectropian in dogs http://shel1212.900megs.com/vista-ultimate-untouched.html vista transmision pack http://nika0521.110mb.com/rtp1000-ultimate-portable.html second hand transportable buildings http://shel4532.700megs.com/the-cinematic-body.html gallexy cinemas http://dana0085.fusedtree.com/feedin-dogs.html excess salivating in dogs http://bagi0651.my3gb.com/cinemaxx-copenhagen.html cinemaxx wurzburg http://serg3210.900megs.com/wire-haired-ibizan-hound.html panteen donate hair http://coal4493.yourfreehosting.net/bardot-head-office.html avoyelles parish sheriff office http://elda0616.fusedtree.com/one-skillet-recipes.html tenderloin steak recipes http://drow9446.700megs.com/sheesh-kabab-recipe.html and broccli recipes http://riva0554.hostshield.com/police-officer-job-description.html viking office supply http://shel0147.freewhost.com/cinemania-film-festival.html cinemar tv baia http://alek0102.fizwig.com/high-school-hassal-grove.html high school for girlsd http://soli1236.900megs.com/addicting-games-tv.html hyperscan game pack http://pivo6592.freehostia.com/pride-and-prejudice-published.html pride and prejudice stage http://shel6655.yourfreehosting.net/parsley-tea-recipe.html flounder fillets recipes http://irma2681.freehostia.com/mui-language-pack.html language competence http://dana5647.hostshield.com/women-hairy-legs.html high chair reviews http://nika0121.rack111.com/microsoft-office-sku111-cab.html ashtead post office http://pivo9669.fusedtree.com/markie-dogs.html man mauled by dogs http://shel1196.my3gb.com/gurad-dogs.html yalebulldogs cstv com http://nika0125.101freehost.com/rabid-rabbits-wii-game.html from meridell castle game guide http://nick4877.700megs.com/blood-pregnant-test.html blood pressure monitor test http://elda3510.freewhost.com/the-rails-game-nitrome.html treatment for strained ligaments http://pivo2112.sitebooth.com/german-gluhwein-recipe.html dosakaya pachadi recipe http://bagi1844.sitebooth.com/disney-princes-games.html 6125 free games http://nika0142.fusedtree.com/staroffice-8-writer.html statesville post office http://shel5555.fusedtree.com/tattoo-design-galleries.html floral tattoo designs http://drow1263.sitebooth.com/veal-paprikash-recipe.html oaxacan mole recipe http://alek0011.700megs.com/most-usefull-language-to.html most spra language http://nika6540.sitebooth.com/recipes-for-sauteed-shrimp.html recipes for dumplins http://elda0497.110mb.com/language-school-arequipa.html language typer http://nick1012.sitebooth.com/ogden-utah-rodeo.html provo utah 4th of july http://shel7777.700megs.com/norwegian-language-course.html japanese the spoken language http://rita0508.110mb.com/games-of-phineas-and-ferb.html gamesarcade net fire http://bagi0255.110mb.com/slanting-language.html tinymce importpluginlanguagepack http://pivo7732.freehostguy.com/vivisection-dogs.html hot dogs saurkraut http://drow0000.my3gb.com/quotes-on-pride-and-prejudice.html memorable quotes from pride and prejudice http://serg7744.my3gb.com/watch-the-office-booze-cruise.html watch the office uk free http://temp8228.900megs.com/laser-hair-removal-specialist.html rebonding of hair http://shel1209.freehostguy.com/portable-sawmill-rental.html serious reportable events http://temp3569.700megs.com/pledge-of-alligance-in-sign-language.html peral language

Inhaltsverzeichnis

Anwendung

Kernel < 2.6.22

Der Pfad lautet /proc/acpi/alarm. Die Weckzeit wird im Format YYYY-MM-DD HH:MM:SS erwartet. Unbedingt darauf achten, ob die HW-Uhr in UTC oder in lokaler Zeit läuft! Gegebenenfalls muss man eine oder zwei Stunden abziehen.

Beispiel:

 echo 2006-02-09 23:05:00 > /proc/acpi/alarm

Kernel >= 2.6.22

Der Pfad lautet /sys/class/rtc/rtc0/wakealarm. Näheres zur benötigten Kernelkonfiguration siehe MythTV-Wiki-Eintrag zu ACPI-Wakeup. Die Weckzeit wird als Anzahl der Sekunden seit dem 01.01.1970 erwartet und ohne Beachtung der jeweiligen Zeitzone in YYYY-MM-DD HH:MM:SS umgerechnet. Es ist daher ratsam, die Systemuhr in UTC laufen zu lassen, um im Shutdown-Skript keine Zeitzonen-abhängige Korrektur der vom VDR kommenden UTC-Zeiten vornehmen zu müssen.

Ist bereits ein Wert gesetzt, so muss der Alarm erst wieder deaktiviert werden, sonst schlägt ein zweites Setzen fehl. Dies geschieht durch Setzen eines Datums in der Vergangenheit (z.B. 0).

Beispiel:

 echo 0 > /sys/class/rtc/rtc0/wakealarm
 date +%s -d "Fri Feb 22 21:00:00 MET 2008" > /sys/class/rtc/rtc0/wakealarm

Test

Bei beiden Varianten kann mittels...

 cat /proc/driver/rtc

...der Erfolg des Setzens überprüft werden.

Überprüfen der Hardwarefähigkeiten

Voraussetzung für das Funktionieren von ACPI-Wakeup ist natürlich ein ACPI-fähiges Motherboard, was auf alle Consumer-Boards ab dem Jahr 2000 zutreffen sollte. Bevor man sich genauer mit der Thematik auseinandersetzt, ist es sinnvoll, die Fähigkeiten des Boards herauszufinden. Interessant ist hier besonders, ob das Setzen des Datums und das Aufwachen aus dem SoftOff-Zustand unterstützt wird.

Diese Informationen sind in einer standardisierten Tabelle, der Sog. FADT (Fixed ACPI Description Table) hinterlegt. Bei aktuellen Kerneln (>= 2.6.22) werden diese Informationen im Kernel-Log ausgegeben:

 ACPI: RTC can wake from S4
 ...
 rtc0: alarms up to one month

Hat man nur einen älteren Kernel zur Verfügung, muss man die FADT selber über eine Pseudodatei im proc-Verzeichnisbaum auslesen. Das geschieht wie folgt:

 cat /proc/acpi/fadt > ~/fadt.bin

Diese Datei kann nun in einem Hexeditor (z. B. xxd oder KHexEdit) geöffnet werden. Interessant sind die Bytes 0x6A (106) und 0x6B (107). Sind diese nicht null, sollte das Board das Setzten des Tages (106) und des Monats (107) unterstützen. Die Fähigkeit, aus Zustand S4 aufzuwachen, wird mit dem höchstwertigen Bit im Byte 0x70 (112) kodiert.

Beispiel (interessante Bytes mit * markiert):

 xxd -g 1 ~/fadt.bin
 0000000: 46 41 43 50 74 00 00 00 01 bf 47 42 54 20 20 20  FACPt.....GBT   
 0000010: 41 57 52 44 41 43 50 49 31 2e 30 42 41 57 52 44  AWRDACPI1.0BAWRD
 0000020: 00 00 00 00 00 00 ef 03 c0 30 ef 03 00 00 09 00  .........0......
 0000030: b2 00 00 00 a1 a0 00 00 00 40 00 00 00 00 00 00  .........@......
 0000040: 04 40 00 00 00 00 00 00 00 00 00 00 08 40 00 00  .@...........@..
 0000050: 2c 40 00 00 28 40 00 00 04 02 00 04 04 04 10 00  ,@..(@..........
 0000060: 5a 00 84 03 00 00 00 00 01 01*0d*00*00 00 00 00  Z...............
 0000070:*a5*04 00 00

Dieses Board (Gigabyte GA-6OXM) unterstützt also das Aufwachen aus S4 (0xA5 = 10100101b) und das Setzten des Tages, nicht aber das Setzen des Monats.

Hinweise

  • Manche Mainboards sind etwas begriffsstutzig, so dass die Weckzeit zweimal in /proc/acpi/alarm geschrieben werden muss. Die Gentoo-VDR-Skripte machen das bereits.
  • Manche Mainboards wachen nicht auf, wenn nach dem Speichern der Aufwachzeit die Hardwareuhr verändert wird, was meist beim Herunterfahren mittels eines Init-Skriptes geschieht. Die meisten Distributionen halten einen Parameter in ihren Init-Skripten oder Konfigurationsdateien bereit, um dieses zu deaktivieren. Alternativ kann man das Skript auch so modifizieren, dass es direkten ISA-Zugriff verwendet. Dazu dem hwclock-Aufruf "hwclock --systohc" zusätzlich den Parameter "--directisa" mitgeben. Das Skript findet man mit:
 grep "hwclock" /etc/init.d/*
weitere ausführliche Lösungen für debian, redhat, suse mythtv.org
nur debian systeme: /etc/init.d/hwclock.sh editieren, unter help.ubuntu.com
  • Wenn ein Board aus S4 aufwachen kann, ist die Chance groß, dass es auch aus dem SoftOff erwacht, auch wenn dies vom ACPI-Standard nicht vorgesehen ist.
  • ACPI-Wakeup ist verwandt mit der BIOS-Option "Wake on RTC", bei der man im BIOS eine Aufwachzeit einstellt. Diese Option muss je nach Board mal aktiviert, mal deaktivert sein, damit ACPI-Wakeup funktioniert.

ACPI Test Script

#!/bin/bash

# Startet dem Rechner nach 3 Minuten über ACPI neu. 

min=`date "+%M"`
nextmin=`expr $min + 3`
nextboot=`date "+%Y-%m-%d %H:"$nextmin:00`
echo $nextboot > /proc/acpi/alarm  # Einige Mainboards sind etwas begriffsstutzig,
echo $nextboot > /proc/acpi/alarm  # sie kapieren erst nach zwei Aufrufen, was Sache ist.
  
echo "Aktuelle Zeit:         "`date "+%Y-%m-%d %H:%M:%S"`
echo "Starte Rechner neu um: "`cat /proc/acpi/alarm`
echo "Fahre Rechner nun runter." 

busybox poweroff
#/usr/bin/poweroff.pl
#poweroff

Konkretes VDR Shutdown Script

Meine Uhr läuft auf Localtime (UTS=no in /etc/rcS) - deshalb funktioniert bei mir folgendes Skript:

sudo hwclock --systohc --localtime
 
#ACPI
echo "Arguments:  $*"
echo "Next timer: $1 seconds from 1970/01/01, UTC"

naechsterTimer=$(/bin/date --date "now +$2 seconds" "+%Y-%m-%d %H:%M:%S")

sudo chmod a+wr  /proc/acpi/alarm

# wakealarm löschen (wenn schon gesetzt, muss er gelöscht werden)
echo 0 >  /proc/acpi/alarm
#alarm setzen
echo $naechsterTimer >  /proc/acpi/alarm
echo $naechsterTimer >  /proc/acpi/alarm

sudo /sbin/shutdown -h now
EXITSTATUS=0
exit $EXITSTATUS

Anmerkung: der Vdr ruft dieses Skript mit den Parametern "Uhrzeit des nächster Timerevent in utc" und "Sekunden bis dahin" wie unschwer zu erkennen ist bezieht sich $2 bei der Zuweisung von naechsterTimer auf diesen zweiten Parameter.

Liste getesteter Mainboards

Hier eine Liste von Mainboards, bei denen das Aufwachen per ACPI funktioniert oder aber auch nicht funktioniert.

Von VDR-Benutzern werden erfolgreich bzw. nicht erfolgreich eingesetzt:

Mainboard ACPI i.o. systohc bug-free Hinweise/Besonderheiten
VIA EPIA 800 nein Nur Wecken per set_timer funktioniert.
VIA EPIA ML5000 ja Ist mit dem ACPI Test-Script aus dem Standby gestartet.
VIA EPIA ME6000G nein siehe NVRAM_WakeUp
VIA EPIA M10000 ja nein Wakeup per RTC muss im BIOS deaktiviert werden.
VIA PC2500 ja nein Wakeup per RTC muss im BIOS deaktiviert werden.

In /etc/default/rcS einfügen: HWCLOCKACCESS=no

Asus A8V Deluxe ja
Asus P48X ja
Asus P5B WIFI Deluxe AP ja
Asus P5K ja nein Wakeup per RTC muss im BIOS deaktiviert sein.
Asus Pundit P1-AH2 ja nein Wakeup per RTC muss im BIOS deaktiviert sein.
Asus M2A-VM (HDMI) ja nein 1.) Im BIOS: APM Configuration - Power on by RTC Alarm = "disabled"
Asus M3N78-VM (HDMI) ja IMHO ja 1.) Im BIOS: APM Configuration - Power on by RTC Alarm = "disabled"

getestet mit /sys/class/rtc/rtc0/wakealarm

Asus M2NPV-VM ja nein Im BIOS: APM Configuration - Power on by RTC Alarm = "disabled"
Asus M2R68L (P2-M2A690G Barebone) ja nein Im BIOS: APM Configuration -> Power on by RTC Alarm = "disabled"

Bei Kernel >= 2.6.22 muss zusätzlich der Kernel-Paramter hpet=disable gesetzt werden.

Asus M3A-H/HDMI ja nein Im BIOS: Power -> APM Configuration -> Power on by RTC Alarm = "disabled"
Gigabyte GA-6VEML ja mit BIOS v7
DFI CA63-SN ja Resume on Alarm muss im BIOS aktiviert sein und Datum und Zeit müssen alle auf 0 stehen.
MSI K8N NEO-FSR V2.0 S.754 (Version 3.0) ja Nur Uhrzeit, kein Tag einstellbar.
MSI MS-6723 ver:1 (OEM Board im REAL Digitainer) ja Wakeup per RTC wurde im BIOS deaktiviert.

BIOS 6.02 und Kernel 2.6.23.9

MSI MS-7318 (OEM Board im Medion 8818) ja nein Wakeup per RTC wurde im BIOS deaktiviert.

ubuntu 8.04

MSI K9AG Neo2-Digital ja sowohl per /proc/alarm als auch /sys/class/rtc/rtc0/wakealarm im BIOS 'Resume by RTC Alarm' diabled'
Shuttle XPC SN68SG2 ja nein 1.) Im BIOS: APM Configuration -> Power on by RTC Alarm = "disabled"
Gigabyte GA-K8VT800 PRO ja nein 1.) Im BIOS: APM Configuration -> Power on by RTC Alarm = "disabled"
Gigabyte GA-5AX ja 1.) Im BIOS: APM Configuration -> PM by APM - RTC Alarm = "enabled" und feste Zeit eingestellt

(vermutlich egal, startet so aber nach zu langem Stromausfall das nächste Mal mit der eingestellten Zeit)

2.) Ist mit dem ACPI Test-Script nach 3 min neu gestartet (Nach Abzug von 1std. im Script, wegen "CET-Zeit")

Gigabyte GA-M61P-S3 ja nein 1.) Im BIOS: APM Configuration -> Power on by RTC Alarm = "disabled"

Siehe auch: http://linvdr.org/wiki/index.php?%20pagename=LinVDR-Mainboards

systohc bug = einige Mainboards wachen nicht auf, wenn nach dem setzen der Weckzeit die Hardwareuhr per hwclock --systohc aktualisiert wird. (bei vielen Distributionen der Fall) Details siehe Hinweise

ACPI Schlafmodus

Mit ACPI kann man ausserdem das System schlafen legen, wenn das Mainboard mitspielt. Je nach BIOS werden verschiedene Modi unterstützt, S1 (Standby), S3 (Suspend to RAM) oder S4 (Suspend to Disk). Im Gegensatz zum vollständigen Shutdown braucht das Reaktivieren des Systems viel weniger Zeit.

S1: CPU und einige andere Komponenten werden abgeschaltet. Das ist die einfachste, schnellste und schonendste Variante, die aber auch am wenigsten Strom spart.

 echo -n "standby" > /sys/power/state

S3: Ausser dem Speicher wird alles abgeschaltet. Der Inhalt des Speichers bleibt so erhalten. Beim Einschalten kehrt das System zum ursprünglichen Zustand zurück. Man muss jedoch drauf achten, dass vor dem Abschalten alle Dateisysteme unmounted werden (vor allem Festplatten oder Netzwerk-Dateisysteme), da sonst Datenverlust droht. Ausserdem sollte VDR beendet und die DVB-Treiber entladen werden, weil die DVB-Karten auch abgeschaltet werden und beim Reaktivieren neu initialisiert werden müssen.

 /etc/init.d/vdr stop
 /etc/init.d/dvb stop
 echo -n "mem" > /sys/power/state
 /etc/init.d/dvb start
 /etc/init.d/vdr start

Links

  1. acpi-wakeup-0.1.tar.bz2
  2. Anleitung
  3. "Computer programmgesteuert aufwecken" von Mirko Dölle, Linux-Magazin 8/2004
  4. ACPI-Projekthomepage (Dokumentation, Kernel-Patches, Wiki)
  5. ACPI 2.0 Spezifikation, Compaq/Intel/Microsoft/Phoenix/Toshiba 27. Juli 2000
In anderen Sprachen