[Pm-utils] Question about hooks and suspend-hybrid.
Victor Lowther
victor.lowther at gmail.com
Tue Jul 1 19:37:28 PDT 2008
On Tue, 2008-07-01 at 20:59 -0500, Victor Lowther wrote:
> On Tue, 2008-07-01 at 17:10 +0200, Stefan Seyfried wrote:
> > Hi,
> >
> > Victor Lowther wrote:
> > > Does just passing $METHOD as the second parameter work for you?
> >
> > Yes, it's even easier ;-)
>
> We have a plan.
Code to implement two-parameter sleep hooks (against fd.o git master):
pm/HOWTO.hooks | 18 +++++++++++-------
pm/sleep.d/01grub | 5 +++--
src/pm-action.in | 4 ++--
3 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/pm/HOWTO.hooks b/pm/HOWTO.hooks
index 816ebba..bf68813 100644
--- a/pm/HOWTO.hooks
+++ b/pm/HOWTO.hooks
@@ -2,24 +2,28 @@ How to write a pm-utils hook:
PARAMETERS
-A pm-utils hook is simply an executable file that accepts a single parameter.
-For hooks in sleep.d, the potential values of that parameter are:
+A pm-utils hook is simply an executable file that accepts at least one
+parameter.
+
+For hooks in sleep.d, the potential values of the first parameter are:
suspend -- The hook MUST perform whatever action is appropriate when the
- system is preparing for S3 sleep (or its equivalent).
-suspend_hybrid -- The hook MUST perform whatever action is appropriate
- when entering suspend mode. The hook SHOULD also save
- any state it may need to bring the system back from
- hibernate mode.
+ system is preparing for memory sleep (or its equivalent).
resume -- The hook MUST perform whatever action is appropriate when the
system is coming out of suspend.
+
hibernate -- The hook MUST perform whatever action is appropriate when
the system is preparing for suspend-to-disk.
thaw -- The hook MUST perform whatever action is appropriate when the system
is coming out of suspend-to-disk.
+
help -- If your hook parses the PM_CMDLINE environment variable for switches,
this function SHOULD output text describing the parameters it parses
in a format easily understandable by an end-user.
+The actual sleep method being used will be passed as the second parameter --
+if your hook needs to handle suspend-hybrid (or any other platform-specific
+sleep method), it should examine the second parameter.
+
For hooks in power.d, the potential values of that parameter are:
true -- the hook MUST perform whatever action is appropriate when the system
transitions TO battery power.
diff --git a/pm/sleep.d/01grub b/pm/sleep.d/01grub
index 096ffa7..db1d53b 100644
--- a/pm/sleep.d/01grub
+++ b/pm/sleep.d/01grub
@@ -4,6 +4,7 @@
default_resume_kernel()
{
+ [ "$1" = "suspend" ] && return $NA
case $(uname -m) in
i?86|x86_64|athlon)
;;
@@ -25,8 +26,8 @@ default_resume_kernel()
}
case "$1" in
- hibernate|suspend_hybrid)
- default_resume_kernel
+ hibernate|suspend)
+ default_resume_kernel $2
;;
*) exit $NA
;;
diff --git a/src/pm-action.in b/src/pm-action.in
index 58a20b6..c5b560c 100755
--- a/src/pm-action.in
+++ b/src/pm-action.in
@@ -82,7 +82,7 @@ rm -f "${INHIBIT}"
# run the sleep hooks
log "$(date): Running hooks for $ACTION."
-if run_hooks sleep "$ACTION"; then
+if run_hooks sleep "$ACTION $METHOD"; then
# Sleep only if we know how and if a hook did not inhibit us.
log "$(date): performing $METHOD"
sync
@@ -93,7 +93,7 @@ else
fi
log "$(date): Running hooks for $REVERSE"
# run the sleep hooks in reverse with the wakeup action
-if run_hooks sleep "$REVERSE" reverse; then
+if run_hooks sleep "$REVERSE $METHOD" reverse; then
log "$(date): Finished."
else
exit 1
It is also available as the two-parameter-sleep-hooks branch in fd.o
git:
http://cgit.freedesktop.org/pm-utils/log/?h=two-parameter-sleep-hooks
If there are no objections, I will include it in the 1.2 pm-utils
series.
> > Thanks,
> >
> > Stefan
--
Victor Lowther
Ubuntu Certified Professional
More information about the Pm-utils
mailing list