PK!1I I uswsuspnuȯ#!/bin/sh # disable processing of 90chvt and 99video. # s2ram and s2disk handle all this stuff internally. uswsusp_hooks() { disablehook 99video "disabled by uswsusp" } # Since we disabled 99video, we need to take responsibility for proper # quirk handling. s2ram handles all common video quirks internally, # so all we have to do is translate the HAL standard options to s2ram options. uswsusp_get_quirks() { OPTS="" ACPI_SLEEP=0 for opt in $PM_CMDLINE; do case "${opt##--quirk-}" in # just quirks, please dpms-on) ;; # no-op dpms-suspend) ;; # no-op radeon-off) OPTS="$OPTS --radeontool" ;; reset-brightness) ;; # no-op s3-bios) ACPI_SLEEP=$(($ACPI_SLEEP + 1)) ;; s3-mode) ACPI_SLEEP=$(($ACPI_SLEEP + 2)) ;; vbe-post) OPTS="$OPTS --vbe_post" ;; vbemode-restore) OPTS="$OPTS --vbe_mode" ;; vbestate-restore) OPTS="$OPTS --vbe_save" ;; vga-mode-3) ;; # no-op save-pci) OPTS="$OPTS --pci_save" ;; none) QUIRK_NONE="true" ;; *) continue ;; esac done [ $ACPI_SLEEP -ne 0 ] && OPTS="$OPTS --acpi_sleep $ACPI_SLEEP" # if we were told to ignore quirks, do so. # This is arguably not the best way to do things, but... [ "$QUIRK_NONE" = "true" ] && OPTS="" } # Since we disabled 99video, we also need to handle displaying # help info for the quirks we handle. uswsusp_help() { echo # first echo makes it look nicer. echo "s2ram video quirk handler options:" echo echo " --quirk-radeon-off" echo " --quirk-s3-bios" echo " --quirk-s3-mode" echo " --quirk-vbe-post" echo " --quirk-vbemode-restore" echo " --quirk-vbestate-restore" echo " --quirk-save-pci" echo " --quirk-none" } # This idiom is used for all sleep methods. Only declare the actual # do_ method if: # 1: some other sleep module has not already done so, and # 2: this sleep method can actually work on this system. # # For suspend, if SUSPEND_MODULE is set then something else has already # implemented do_suspend. We could just check to see of do_suspend was # already declared using command_exists, but using a dedicated environment # variable makes it easier to debug when we have to know what sleep module # ended up claiming ownership of a given sleep method. if [ -z "$SUSPEND_MODULE" ] && command_exists s2ram && \ ( grep -q mem /sys/power/state || \ ( [ -c /dev/pmu ] && pm-pmu --check; ); ); then SUSPEND_MODULE="uswsusp" do_suspend() { uswsusp_get_quirks s2ram --force $OPTS } if [ "$METHOD" = "suspend" ]; then add_before_hooks uswsusp_hooks add_module_help uswsusp_help fi fi if [ -z "$HIBERNATE_MODULE" ] && \ [ -f /sys/power/disk ] && \ grep -q disk /sys/power/state && \ [ -c /dev/snapshot ] && command_exists s2disk; then HIBERNATE_MODULE="uswsusp" do_hibernate() { s2disk } fi if [ -z "$SUSPEND_HYBRID_MODULE" ] && grep -q mem /sys/power/state && \ command_exists s2both && \ check_hibernate; then SUSPEND_HYBRID_MODULE="uswsusp" do_suspend_hybrid() { uswsusp_get_quirks s2both --force $OPTS } if [ "$METHOD" = "suspend_hybrid" ]; then add_before_hooks uswsusp_hooks add_module_help uswsusp_help fi fi PK!xxkernelnuȯ#!/bin/sh # this file is a stub -- pm-functions will always fall back to kernel methods # if nothing else is available.PK!?ttuxonicenuȯ#!/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 PK!1I I uswsuspnuȯPK!xx kernelnuȯPK!?t. tuxonicenuȯPK