77 lines
1.4 KiB
Bash
Executable File
77 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
PREREQ=""
|
|
|
|
prereqs()
|
|
{
|
|
echo "$PREREQ"
|
|
}
|
|
|
|
case $1 in
|
|
# get pre-requisites
|
|
prereqs)
|
|
prereqs
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
if [ -z "${resume?}" ] || [ ! -e /sys/power/resume ]; then
|
|
exit 0
|
|
fi
|
|
|
|
. /scripts/functions
|
|
. /scripts/local
|
|
|
|
PAGE_SIZE=4096
|
|
if [ -x /bin/getconf ]; then
|
|
PAGE_SIZE=$(getconf PAGESIZE)
|
|
fi
|
|
export PAGE_SIZE
|
|
|
|
if ! local_device_setup "${resume}" "suspend/resume device" false; then
|
|
exit 0
|
|
fi
|
|
|
|
DEV=$(readlink -f "$resume")
|
|
DEV=/sys/class/block/${DEV##*/}/dev
|
|
if [ -r "$DEV" ]; then
|
|
read -r MAJMIN < "$DEV"
|
|
fi
|
|
if [ -z "$MAJMIN" ]; then
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${resume_offset?}" -ge 0 ] 2>/dev/null; then
|
|
offset_option=$((${resume_offset?} * PAGE_SIZE))
|
|
SWAPTYPE=$(blkid -p -O ${offset_option} "${resume}" -s TYPE -o value)
|
|
MAJMIN="${MAJMIN}:${resume_offset?}"
|
|
else
|
|
SWAPTYPE=$(blkid -p -o value -s TYPE "$resume")
|
|
fi
|
|
|
|
use_plymouth=false
|
|
if command -v plymouth >/dev/null && plymouth --ping; then
|
|
use_plymouth=true
|
|
fi
|
|
|
|
case "${SWAPTYPE}" in
|
|
swsuspend|s1suspend|s2suspend|ulsuspend|tuxonice)
|
|
if "$use_plymouth"; then
|
|
plymouth message --text="Resuming from $resume"
|
|
|
|
# The above command does not wait for a framebuffer update to
|
|
# complete, so the kernel can freeze the framebuffer before
|
|
# the message is even visible. Wait just a moment to make
|
|
# that less likely.
|
|
sleep 0.1
|
|
fi
|
|
|
|
echo "${MAJMIN}" > /sys/power/resume
|
|
;;
|
|
esac
|
|
|
|
if "$use_plymouth"; then
|
|
# plymouth hide-message does not work yet
|
|
plymouth display-message --text=""
|
|
fi
|