Control: tag -1 + patch pending

[Petter Reinholdtsen]
> We could use something like this to set it:
> 
>   echo 0 > /sys/class/rtc/rtc0/wakealarm
>   date -u --date "Jul 1, 2008 10:32:00" +%s > /sys/class/rtc/rtc0/wakealarm

I've commited this patch to fix it.  Need to test it a bit before
uploading.

Index: shutdown-at-night
===================================================================
--- shutdown-at-night   (revision 81777)
+++ shutdown-at-night   (revision 81778)
@@ -37,12 +37,17 @@
     return 1
 }
 
+whentowakeup() {
+    wakeuptime=$1
+    # Spread the BIOS wakeup time across a 20 minute period, to avoid
+    # all of them waking up at the same time, killing a fuse.
+    echo $(( $(date -u +%s -d "tomorrow $wakeuptime") - 600 + $RANDOM % 1200))
+}
+
 nvramwakeup() {
 # 
http://www.vdr-portal.de/board/thread.php?threadid=75582&sid=b7aced20e710aef12ffa56b5197fe168
     wakeuptime=$1
-    # Spread the BIOS wakeup time across a 20 minute period, to avoid all of 
them
-    # waking up at the same time, killing a fuse.
-    when=$(( $(date +%s -d "tomorrow $wakeuptime") - 600 + $RANDOM % 1200))
+    when=$(whentowakeup $wakeuptime)
 
     # Make sure HW clock is correct, as it is used to decide when to
     # wake up.
@@ -60,6 +65,25 @@
     fi
 }
 
+# This method might not work if the hardware clock is updated during
+# shutdown.  Changing /etc/default/hwclock to list HWCLOCKACCESS=yes
+# to disable it.
+acpiwakeup() {
+    wakeuptime="$1"
+    if [ -e /sys/class/rtc/rtc0/wakealarm ] ; then
+       when=$(whentowakeup $wakeuptime)
+
+        # First reset alarm
+       echo 0 > /sys/class/rtc/rtc0/wakealarm
+
+        # Next, set it to our selected time
+       echo $when > /sys/class/rtc/rtc0/wakealarm
+       return 0
+    else
+       return 1
+    fi
+}
+
 prepare_wakeonlan() {
     interface="$(/sbin/route -n | awk '/^0\.0\.0\.0 / { print $8 }')"
     ethtool -s $interface wol g
@@ -97,6 +121,7 @@
        if type nvram-wakeup >/dev/null 2>&1 ; then
            nvramwakeup $wakeuptime
        fi
+       acpiwakeup $waketime
        prepare_wakeonlan || fatal "unable to enable wake-on-lan - aborting 
shutdown."
        shutdown -h 5 "Unused host being turned off for the night (cron)." < 
/dev/null > /dev/null 2>&1 &
     else 

-- 
Happy hacking
Petter Reinholdtsen


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to