[debian-edu-commits] debian-edu/ 53/64: Add support for using the ACPI RTC wakeup interface to wake up the machine (Closes: #717441).

Mike Gabriel sunweaver at debian.org
Wed Oct 23 09:51:56 UTC 2013


This is an automated email from the git hooks/post-receive script.

sunweaver pushed a commit to branch master
in repository shutdown-at-night.

commit b9017d8990c2dc97eeb09ac6cdab215778b7d4ca
Author: Petter Reinholdtsen <pere at hungry.com>
Date:   Sun Jul 21 06:22:05 2013 +0000

    Add support for using the ACPI RTC wakeup interface to wake up the
    machine (Closes: #717441).
    
    git-svn-id: svn+ssh://svn.debian.org/svn/debian-edu/trunk/src/shutdown-at-night@81778 6e500793-9bee-0310-a5b0-9d0909bd054d
---
 debian/changelog  |    7 +++++++
 shutdown-at-night |   31 ++++++++++++++++++++++++++++---
 2 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 11ea1e3..855fffc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+shutdown-at-night (0.12) UNRELEASED; urgency=low
+
+  * Add support for using the ACPI RTC wakeup interface to wake up the
+    machine (Closes: #717441).
+
+ -- Petter Reinholdtsen <pere at debian.org>  Mon, 15 Jul 2013 17:26:08 +0200
+
 shutdown-at-night (0.11) unstable; urgency=low
 
   * Quiet down cron job to wake up client to not complain when fping
diff --git a/shutdown-at-night b/shutdown-at-night
index 0a417b7..5d83a27 100755
--- a/shutdown-at-night
+++ b/shutdown-at-night
@@ -37,12 +37,17 @@ enabled_for_host() {
     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 @@ nvramwakeup() {
     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 enabled_for_host ; then
 	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 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-edu/pkg-team/shutdown-at-night.git



More information about the debian-edu-commits mailing list