54 lines
1.5 KiB
Bash
Executable File
54 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
export TUXONICE_LOC
|
|
# TODO tuxonice supports all sorts of knobs to twiddle. Since this should be as
|
|
# simple as possible, it does not provide a mechanism for twiddling those knobs.
|
|
# If you need more customization than this file has, consider using a hook to
|
|
# set the appropriate values.
|
|
|
|
# more locations might be nice
|
|
for loc in "/sys/power/tuxonice" "/sys/power/suspend2"; do
|
|
[ -d "${loc}" ] && { TUXONICE_LOC="${loc}"; break; }
|
|
done
|
|
|
|
if [ -n "$TUXONICE_LOC" ]; then
|
|
toi_maybe_chvt() {
|
|
local toi_ui="$(cat "$TUXONICE_LOC/user_interface/program")"
|
|
local toi_ui_en="$(cat "$TUXONICE_LOC/user_interface/enabled")"
|
|
if [ -x "$toi_ui" ] && [ "$toi_ui_en" = 1 ] && \
|
|
! state_exists console; then
|
|
fgconsole |savestate console
|
|
chvt 63
|
|
fi
|
|
}
|
|
fi
|
|
|
|
if [ -z "$HIBERNATE_MODULE" -a -n "$TUXONICE_LOC" ] && \
|
|
[ -f "${TUXONICE_LOC}/do_hibernate" ]; then
|
|
HIBERNATE_MODULE="tuxonice"
|
|
do_hibernate()
|
|
{
|
|
toi_maybe_chvt
|
|
echo 5 > "${TUXONICE_LOC}/powerdown_method"
|
|
echo anything > "${TUXONICE_LOC}/do_hibernate"
|
|
}
|
|
fi
|
|
|
|
if [ -z "$SUSPEND_HYBRID_MODULE" -a -n "$TUXONICE_LOC" ] && \
|
|
grep -q mem /sys/power/state && \
|
|
[ -f "${TUXONICE_LOC}/do_hibernate" ]; then
|
|
SUSPEND_HYBRID_MODULE="tuxonice"
|
|
do_suspend_hybrid()
|
|
{
|
|
toi_maybe_chvt
|
|
r=0
|
|
echo 3 >"${TUXONICE_LOC}/powerdown_method"
|
|
echo anything >"${TUXONICE_LOC}/do_hibernate"
|
|
r=$?
|
|
[ -f /sys/power/tuxonice/did_suspend_to_both ] && \
|
|
[ "$(cat /sys/power/tuxonice/did_suspend_to_both)" != "1" ] && \
|
|
REVERSE="thaw"
|
|
return $r
|
|
}
|
|
fi
|