ActivyACPIWakeup
(M) |
Hulk (Diskussion | Beiträge) K (Schützte „ActivyACPIWakeup“ ([edit=autoconfirmed] (unbeschränkt) [move=autoconfirmed] (unbeschränkt))) |
||
(20 dazwischenliegende Versionen von 15 Benutzern werden nicht angezeigt) | |||
Zeile 5: | Zeile 5: | ||
==Vorraussetzung== | ==Vorraussetzung== | ||
− | * Das BIOS muss mindestens Version 1.09 sein. Ältere Versionen können mit einem auf | + | * Das BIOS muss mindestens Version 1.09 sein. Ältere Versionen können mit einem auf dieser [http://activy.ultimate-it-solutions.de/download.php?op=viewdownload&cid=1 Seite] erhältlichen Update geflasht werden. |
* Im BIOS muss ''Resume on time'' aktiviert sein (BIOS erreichbar per USB Tastatur, F2 drücken beim Booten) | * Im BIOS muss ''Resume on time'' aktiviert sein (BIOS erreichbar per USB Tastatur, F2 drücken beim Booten) | ||
* Eventuell braucht der Kernel die Option ''acpi=force'' | * Eventuell braucht der Kernel die Option ''acpi=force'' | ||
− | * Die Systemuhr darf nach Stellen der | + | * Die Systemuhr darf nach Stellen der Wakeupzeit nicht mehr geändert werden! |
+ | |||
==Vorgehen== | ==Vorgehen== | ||
− | Zuerst braucht man die ACPI Wakeup Programme. Ein Link zum Download befindet sich | + | Zuerst braucht man die ACPI Wakeup Programme. Ein Link zum Download befindet sich im [http://www.vdr-portal.de/board/thread.php?postid=336452#post336452 Activy-Forum]. |
− | Gemäß README muss noch das Programm ''unix2iso8601'' compiliert werden. Dieses kleine Progamm | + | Gemäß README muss noch das Programm ''unix2iso8601'' compiliert werden. Dieses kleine Progamm wandelt das Zeitformat, das VDR liefert in das Format, das ACPI erwartet: |
<pre> | <pre> | ||
gcc -o unix2iso8601 unix2iso8601.c | gcc -o unix2iso8601 unix2iso8601.c | ||
Zeile 17: | Zeile 18: | ||
Das resultierende Binary bringt man nun irgendwo im Pfad unter, zum Beispiel unter ''/usr/local/bin''. | Das resultierende Binary bringt man nun irgendwo im Pfad unter, zum Beispiel unter ''/usr/local/bin''. | ||
− | Das beim ACPI Wakeup mitgelieferte Beispielskript verdeutlicht, wie ''unix2iso8601'', kann aber auch direkt | + | Das beim ACPI Wakeup mitgelieferte Beispielskript verdeutlicht, wie ''unix2iso8601'' eingesetzt werden muss, es kann aber auch direkt aufgerufen werden. |
+ | |||
+ | Das Skript kann dem VDR für den Shutdown zur Verfügung gestellt werden mit der Option | ||
<pre> | <pre> | ||
-s <Pfad zum Shutdownskript> | -s <Pfad zum Shutdownskript> | ||
Zeile 24: | Zeile 27: | ||
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
− | newtime=$(($1 - 120 )) # 2 minutes earlier | + | if [ $1 -eq 0 ] ; then |
− | + | isotime="2005-01-01 99:00:00" | |
− | isotime=`/vdr/bin/unix2iso8601 - | + | else |
+ | newtime=$(($1 - 120 )) # 2 minutes earlier | ||
+ | logger "New time: $newtime" | ||
+ | isotime=`/vdr/bin/unix2iso8601 -l $newtime` | ||
+ | fi | ||
+ | /sbin/hwclock --systohc --localtime | ||
+ | logger "Setting time for acpi reboot: $isotime" | ||
echo $isotime >/proc/acpi/alarm | echo $isotime >/proc/acpi/alarm | ||
+ | echo $isotime >/proc/acpi/alarm | ||
+ | /sbin/shutdown -h now | ||
</pre> | </pre> | ||
Damit die Activy auch im ausgeschalteten Zustand von der Fernbedienung eingeschaltet werden kann muss der PIC im Frontpanel entsprechend programmiert werden. | Damit die Activy auch im ausgeschalteten Zustand von der Fernbedienung eingeschaltet werden kann muss der PIC im Frontpanel entsprechend programmiert werden. | ||
Zeile 40: | Zeile 51: | ||
printf "\x95\x03" > /dev/ttyS0 | printf "\x95\x03" > /dev/ttyS0 | ||
</pre> | </pre> | ||
+ | |||
==Hinweise== | ==Hinweise== | ||
* Steht die eigene Uhr nicht auf GMT sondern Lokalzeit, müssen die Aufrufe von ''hwclock'' und ''unix2iso8601'' entsprechend angepasst werden, bitte die Optionen beachten. | * Steht die eigene Uhr nicht auf GMT sondern Lokalzeit, müssen die Aufrufe von ''hwclock'' und ''unix2iso8601'' entsprechend angepasst werden, bitte die Optionen beachten. | ||
− | * Wird nicht das Beispielskript zum Herunterfahren verwendet, sollte die Hardwareuhr, wie oben zu sehen, vor dem Setzen der Wakeupzeit auf die aktuelle Zeit gesetzt werden. | + | Usage: unix2iso8601 [{-l|-u} {unix-time}] | [-h] |
− | + | -h Print help | |
− | == | + | -u Print time in UTC |
− | + | -l Print time in localtime | |
− | + | ||
− | + | * Wird nicht das Beispielskript zum Herunterfahren verwendet, sollte die Hardwareuhr, wie oben im Script zu sehen, vor dem Setzen der Wakeupzeit auf die aktuelle Zeit gesetzt werden. | |
− | + | ||
− | + | ==Links== | |
+ | # {{vdrportal board|20577|acpi wakeup & activy300}} | ||
+ | # {{vdrportal board|21079|Galagas Howto}} | ||
+ | # [[ACPI Wakeup]] | ||
+ | |||
+ | [[Kategorie:Activy]] |
Aktuelle Version vom 17. April 2011, 19:27 Uhr
Inhaltsverzeichnis |
[Bearbeiten] Einleitung
Die meisten moderne BIOSe sind zusammen mit der Echtzeituhr (engl. RTC) in der Lage, einen ausgeschalteten PC zu einem gegebenen Zeitpunkt automatisch zu starten. Gegenwärtig existieren unter Linux zwei Methoden, um dem BIOS die gewünschte Weckzeit mitzuteilen: ACPI Wakeup und NVRAM WakeUp. Die Activy unterstützt allerdings nur ACPI Wakeup
[Bearbeiten] Vorraussetzung
- Das BIOS muss mindestens Version 1.09 sein. Ältere Versionen können mit einem auf dieser Seite erhältlichen Update geflasht werden.
- Im BIOS muss Resume on time aktiviert sein (BIOS erreichbar per USB Tastatur, F2 drücken beim Booten)
- Eventuell braucht der Kernel die Option acpi=force
- Die Systemuhr darf nach Stellen der Wakeupzeit nicht mehr geändert werden!
[Bearbeiten] Vorgehen
Zuerst braucht man die ACPI Wakeup Programme. Ein Link zum Download befindet sich im Activy-Forum. Gemäß README muss noch das Programm unix2iso8601 compiliert werden. Dieses kleine Progamm wandelt das Zeitformat, das VDR liefert in das Format, das ACPI erwartet:
gcc -o unix2iso8601 unix2iso8601.c
Das resultierende Binary bringt man nun irgendwo im Pfad unter, zum Beispiel unter /usr/local/bin.
Das beim ACPI Wakeup mitgelieferte Beispielskript verdeutlicht, wie unix2iso8601 eingesetzt werden muss, es kann aber auch direkt aufgerufen werden.
Das Skript kann dem VDR für den Shutdown zur Verfügung gestellt werden mit der Option
-s <Pfad zum Shutdownskript>
Das Beispielskript sieht so aus:
#!/bin/sh if [ $1 -eq 0 ] ; then isotime="2005-01-01 99:00:00" else newtime=$(($1 - 120 )) # 2 minutes earlier logger "New time: $newtime" isotime=`/vdr/bin/unix2iso8601 -l $newtime` fi /sbin/hwclock --systohc --localtime logger "Setting time for acpi reboot: $isotime" echo $isotime >/proc/acpi/alarm echo $isotime >/proc/acpi/alarm /sbin/shutdown -h now
Damit die Activy auch im ausgeschalteten Zustand von der Fernbedienung eingeschaltet werden kann muss der PIC im Frontpanel entsprechend programmiert werden. Hierfür ein Beispielskript:
#!/bin/sh # Activy power button /bin/stty 38400 < /dev/ttyS0 printf "\x94\x30" > /dev/ttyS0 printf "\x90\x08" > /dev/ttyS0 printf "\x94\x12" > /dev/ttyS0 printf "\x95\x03" > /dev/ttyS0
[Bearbeiten] Hinweise
- Steht die eigene Uhr nicht auf GMT sondern Lokalzeit, müssen die Aufrufe von hwclock und unix2iso8601 entsprechend angepasst werden, bitte die Optionen beachten.
Usage: unix2iso8601 [{-l|-u} {unix-time}] | [-h] -h Print help -u Print time in UTC -l Print time in localtime
- Wird nicht das Beispielskript zum Herunterfahren verwendet, sollte die Hardwareuhr, wie oben im Script zu sehen, vor dem Setzen der Wakeupzeit auf die aktuelle Zeit gesetzt werden.