Package: hibernate
Version: 1.12-1
Followup-For: Bug #336635
I would like the hibernate script to work out-of-the-box on whatever
suspend mechanism is available, preferring Suspend2 but falling back to
sysfs or acpi if necessary. I've attached a patch against hibernate
1.12-1 to do this.
The code to handle the case where more than one method is available is
untested, because I have only the sysfs method available; but I've
tested that after this patch the default hibernate.conf tries suspend2
and acpi but uses sysfs.
-- System Information:
Debian Release: testing/unstable
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14.4
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
hibernate depends on no packages.
Versions of packages hibernate recommends:
ii console-tools 1:0.2.3dbs-60 Linux console and font utilities
ii hdparm 6.3-3 tune hard disk parameters for high
pn vlock <none> (no description available)
-- no debconf information
diff -ur hibernate-1.12/hibernate.conf hibernate-1.12-tryall/hibernate.conf
--- hibernate-1.12/hibernate.conf 2006-01-06 17:59:39.000000000 -0800
+++ hibernate-1.12-tryall/hibernate.conf 2006-01-06 18:03:27.000000000
-0800
@@ -44,8 +44,8 @@
## To use /sys/power/state to suspend your machine (which may offer
## suspend-to-RAM, suspend-to-disk, standby, etc) comment out all the options
## above for Software Suspend 2, below for acpi_sleep, and uncomment this line.
-## You may replace mem with any one of the states from "cat /sys/power/state"
-# UseSysfsPowerState mem
+## You may replace disk with any one of the states from "cat /sys/power/state"
+UseSysfsPowerState disk
# PowerdownMethod shutdown
### acpi_sleep
@@ -53,7 +53,7 @@
## all the options above for Software Suspend 2 and sysfs, and uncomment this
## line. The number refers to the ACPI sleep state - 3 is suspend-to-RAM and
## 4 is suspend-to-disk.
-# UseACPISleep 4
+UseACPISleep 4
##############################################################################
### Some global settings
Only in hibernate-1.12: hibernate.spec
Only in hibernate-1.12: init.d
Only in hibernate-1.12: install.sh
diff -ur hibernate-1.12/scriptlets.d/acpi_sleep
hibernate-1.12-tryall/scriptlets.d/acpi_sleep
--- hibernate-1.12/scriptlets.d/acpi_sleep 2005-10-01 22:54:28.000000000
-0700
+++ hibernate-1.12-tryall/scriptlets.d/acpi_sleep 2006-01-06
19:35:26.000000000 -0800
@@ -15,8 +15,9 @@
ACPISleepConfigEnabler() {
[ "$1" != "useacpisleep" ] && return 1
[ -n "$USING_ACPI_SLEEP" ] && return 0
+ [ -n "$HIBERNATE_SUSPEND_METHOD" ] && return 0
+ EnsureACPISleepCapable || return 0
UsingSuspendMethod acpi_sleep
- AddSuspendHook 10 EnsureACPISleepCapable
AddSuspendHook 99 DoACPISleep
USING_ACPI_SLEEP=$2
return 0
Only in hibernate-1.12/scriptlets.d: modules_gentoo
diff -ur hibernate-1.12/scriptlets.d/suspend2
hibernate-1.12-tryall/scriptlets.d/suspend2
--- hibernate-1.12/scriptlets.d/suspend2 2005-10-01 22:54:28.000000000
-0700
+++ hibernate-1.12-tryall/scriptlets.d/suspend2 2006-01-06 19:35:26.000000000
-0800
@@ -66,9 +66,10 @@
[ "$1" != "usesuspend2" ] && [ "$1" != "useswsusp2" ] && return 1
BoolIsOn "$1" "$2" || return 0
[ -n "$USING_SWSUSP2" ] && return 0
- UsingSuspendMethod suspend2
AddConfigHandler Swsusp2ConfigOptions
- AddSuspendHook 10 EnsureSwsusp2Capable
+ [ -n "$HIBERNATE_SUSPEND_METHOD" ] && return 0
+ EnsureSwsusp2Capable || return 0
+ UsingSuspendMethod suspend2
AddSuspendHook 97 ChangeToSwsuspVT
AddSuspendHook 99 DoSwsusp2
AddResumeHook 97 ChangeFromSwsuspVT
@@ -162,6 +163,7 @@
vecho 0 "$EXE: Filewriter size is not numeric!"
exit 1
fi
+ [ -z "$USING_SWSUSP2" ] && return 0
AddSuspendHook 06 Swsusp2SetupFilewriter
AddResumeHook 06 Swsusp2CleanupFilewriter
;;
@@ -170,11 +172,13 @@
SWSUSP_FILEWRITER_NOVERIFY=1
;;
loadsuspendmodules)
+ [ -z "$USING_SWSUSP2" ] && return 0
AddSuspendHook 05 Swsusp2LoadModules
shift
SWSUSP_LOAD_MODULES=$@
;;
unloadsuspendmodulesafterresume)
+ [ -z "$USING_SWSUSP2" ] && return 0
BoolIsOn "$1" "$2" || return 0
AddResumeHook 05 Swsusp2UnloadModules
;;
@@ -196,6 +200,7 @@
SWSUSP_ENCRYPTOR=$2
;;
procsetting)
+ [ -z "$USING_SWSUSP2" ] && return 0
if [ -z "$OPT_DRY_RUN" ] ; then
if [ -z "$SWSUSP_EXTRA_PROC_SETTINGS" ] ; then
SWSUSP_EXTRA_PROC_SETTINGS=`mktemp
/tmp/tmp.hibernate.XXXXXX`
@@ -215,6 +220,7 @@
*)
return 1
esac
+ [ -z "$USING_SWSUSP2" ] && return 0
if [ -z "$SWSUSP2_HOOKED" ] ; then
AddSuspendHook 98 Swsusp2ConfigSet
SWSUSP2_HOOKED=1
diff -ur hibernate-1.12/scriptlets.d/sysfs_power_state
hibernate-1.12-tryall/scriptlets.d/sysfs_power_state
--- hibernate-1.12/scriptlets.d/sysfs_power_state 2005-10-01
22:54:28.000000000 -0700
+++ hibernate-1.12-tryall/scriptlets.d/sysfs_power_state 2006-01-06
19:35:26.000000000 -0800
@@ -18,9 +18,10 @@
SysfsPowerStateConfigEnabler() {
[ "$1" != "usesysfspowerstate" ] && return 1
[ -n "$USING_SYSFS_POWER_STATE" ] && return 0
- UsingSuspendMethod sysfs_power_state
AddConfigHandler SysfsPowerStateConfigOptions
- AddSuspendHook 10 EnsureSysfsPowerStateCapable
+ [ -n "$HIBERNATE_SUSPEND_METHOD" ] && return 0
+ EnsureSysfsPowerStateCapable $2 || return 0
+ UsingSuspendMethod sysfs_power_state
AddSuspendHook 99 DoSysfsPowerStateSuspend
USING_SYSFS_POWER_STATE=$2
return 0
@@ -69,8 +70,8 @@
vecho 0 "Your kernel does not have power management built in."
return 2
fi
- if ! grep -q $USING_SYSFS_POWER_STATE $SYSFS_POWER_STATE_FILE ; then
- vecho 0 "Your kernel or machine does support the power state
\"$USING_SYSFS_POWER_STATE\"."
+ if ! grep -q $1 $SYSFS_POWER_STATE_FILE ; then
+ vecho 0 "Your kernel or machine does support the power state \"$1\"."
return 2
fi