2 # geninitrd mod: swsusp
4 USE_SWSUSP=${USE_SWSUSP:-yes}
9 # setup geninitrd module
12 if ! is_yes "$USE_SWSUSP"; then
16 swap_dev="$(awk '/^\/dev\// { print $1 }' /proc/swaps | grep -v /dev/zram | head -1)"
17 if [ -z "$swap_dev" ]; then
18 warn "Cannot determine swap device. You may try add specific device to kernel command line. Disabling swsusp support."
21 verbose "swsusp: will try to resume from swap device $swap_dev"
25 # find modules for for swsusp
27 find_modules_swsusp() {
28 swap_dev="$(awk '/^\/dev\// { print $1 }' /proc/swaps | grep -v /dev/zram | head -1)"
31 local vgvolumes=$LVM_VGVOLUMES
32 find_modules_for_devpath $swap_dev
34 # check for saved state, differenciate between rootfs VG
35 if [ "$LVM_VGVOLUMES" != "$vgvolumes" ]; then
36 # add swap device to LVM_SUSPENDVG
37 LVM_SUSPENDVG="$LVM_SUSPENDVG $LVM_VGVOLUMES"
38 LVM_VGVOLUMES=$vgvolumes
39 verbose "swap device is on LVM"
43 # generate initrd fragment
46 if ! is_yes "$USE_SWSUSP"; then
50 verbose "Setting up swsusp..."
52 mkdir -p $DESTDIR${swap_dev%/*}
53 inst $swap_dev $swap_dev
57 echo "swap_dev=$swap_dev" | add_linuxrc
61 for arg in $CMDLINE; do
62 if [ "${arg##resume=/dev/}" != "${arg}" ]; then
63 swap_dev=${arg##resume=}
65 elif [ "${arg##resume=}" != "${arg}" ]; then
66 resume=${arg##resume=}
70 if [ "$resume" = "yes" ] && [ -n "$swap_dev" ]; then
71 echo "Resuming from $swap_dev..."
72 echo "$swap_dev" > /sys/power/resume