Talk:Swap on microSD
SDCard Partition Methods Thread
Contents |
Talk on Dual SD Swap Method
See from post 67 - sixwheeledbeast
Swap Switching Scripts
Latest Version - sixwheeledbeast
swapswitch.sh
#!/bin/sh # Made by sixwheeledbeast, Malkavian, Estel and vi_ # Setup swap names for script ## Swap 0 - Backup internal swap location swap0=/dev/mmcblk0p3 echo $swap0 ## Swap 1 - First Main Swap Location swap1=/dev/mmcblk1p2 echo $swap1 ## Swap 2 - Second Main Swap Location swap2=/dev/mmcblk1p3 echo $swap2 # Get Current Swap swap=`cat /proc/swaps | awk '/dev/ {print $1}'` echo $swap # Go root s=sudo echo $sudo # Setup notification banner banner(){ o=org f=freedesktop n=Notifications run-standalone.sh dbus-send --type=method_call \ --dest=$o.$f.$n /$o/$f/$n $o.$f.$n.SystemNoteInfoprint string:"$1" } #Print Current Swap Pre banner "$swap" sleep 5 #Logic if [ "$swap" = "$swap1" ] ; then nice -20 $s swapon $swap2 nice -20 $s swapoff $swap1 elif [ "$swap" = "$swap2" ] ; then nice -20 $s swapon $swap1 nice -20 $s swapoff $swap2 elif [ "$swap" = "$swap0" ] ; then nice -20 $s swapon $swap1 nice -20 $s swapoff $swap0 else banner "Swap Switch Failed" fi sleep 5 # Get Current Swap swappost=`cat /proc/swaps | awk '/dev/ {print $1}'` echo $swappost #Print Current Swap Post banner "$swappost"
swapswitchejectsd.sh
#!/bin/sh # Made by sixwheeledbeast, Malkavian, Estel and vi_ # Setup swap names for script ## Swap 0 - Backup internal swap location swap0=/dev/mmcblk0p3 ## Swap 1 - First Main Swap Location swap1=/dev/mmcblk1p2 ## Swap 2 - Second Main Swap Location swap2=/dev/mmcblk1p3 # Get Current Swap swap=`cat /proc/swaps | awk '/dev/ {print $1}'` echo $swap # Go root s=sudo echo $sudo # Setup notification banner banner(){ o=org f=freedesktop n=Notifications run-standalone.sh dbus-send --type=method_call \ --dest=$o.$f.$n /$o/$f/$n $o.$f.$n.SystemNoteInfoprint string:"$1" } #Print Current Swap Pre banner "$swap" sleep 5 #Logic if [ "$swap" = "$swap0" ] then banner "Swap on Internal already!" elif [ "$swap" = "$swap1" ] then nice -20 $s swapon $swap0 nice -20 $s swapoff $swap1 elif [ "$swap" = "$swap2" ] then nice -20 $s swapon $swap0 nice -20 $s swapoff $swap2 else banner "Swap Switch Failed" fi sleep 5 # Get Current Swap swappost=`cat /proc/swaps | awk '/dev/ {print $1}'` echo $swappost if [ "$swappost" = "$swap0" ] then banner "Safe to remove back cover" else sleep 2 banner "ERROR! DO NOT REMOVE BACK COVER" sleep 3 #Print Current Swap Post banner "$swappost" fi
Version 1 - Malkavian
swapswitch.sh
#!/bin/sh # Made by Sixwheeledbeast and Malkavian # Setup swap names for script ## Swap 0 - Backup internal swap location swap0=/dev/mmcblk0p3 ## Swap 1 - First Main Swap Location swap1=/dev/mmcblk1p2 ## Swap 2 - Second Main Swap Location swap2=/dev/mmcblk1p3 # Setup notification banner banner(){ o=org f=freedesktop n=Notifications run-standalone.sh dbus-send --type=method_call \ --dest=$o.$f.$n /$o/$f/$n $o.$f.$n.SystemNoteInfoprint string:"$1" } # Get Current Swap old=`cat /proc/swaps | awk '/dev/ {print $1}'` #Logic if [ "$old" = "$swap0" ] then if [ $RANDOM -lt 16384 ] # RANDOM gives a value from 0 to 32787. We try 50% of probabilities then new="$swap1" else new="$swap2" fi elif [ "$old" = "$swap1" ] then new="$swap2" elif [ "$old" = "$swap2" ] then new="$swap1" else banner "None of the configured swaps found active, revise the configuration. Current active swap (if any): $old" exit 1 fi swapon $new || \ ( banner "Ops, something failed, cannot swapon $new (so swapoff of $old neither done)" && exit 1 ) nice -20 swapoff $old || \ ( banner "Ops, something failed, swapon of $new done but cannot swapoff $old" && exit 1 ) banner "OK: Swap switched from $old to $new"
swapscriptejectsd.sh
#!/bin/sh # Made by Sixwheeledbeast and Malkavian # Setup swap names for script ## Swap 0 - Backup internal swap location swap0=/dev/mmcblk0p3 ## Swap 1 - First Main Swap Location swap1=/dev/mmcblk1p2 ## Swap 2 - Second Main Swap Location swap2=/dev/mmcblk1p3 # Setup notification banner banner(){ o=org f=freedesktop n=Notifications run-standalone.sh dbus-send --type=method_call \ --dest=$o.$f.$n /$o/$f/$n $o.$f.$n.SystemNoteInfoprint string:"$1" } # Get Current Swap old=`cat /proc/swaps | awk '/dev/ {print $1}'` #Logic if [ "$old" = "$swap0" ] then banner "Swap on Internal already!" exit 0 else swapon $swap0 || \ ( banner "Ops, something failed, cannot swapon $swap0 (so swapoff of $old neither done)" && exit 1 ) nice -20 swapoff $old || \ ( banner "Ops, something failed, swapon of $swap0 done but cannot swapoff $old" && exit 1 ) fi
Information on Starting Swap on SD at bootup
Upstart format - new file in event.d
etc/event.d/relocateswap
description "Micro SD Swap Location on Startup" author "sixwheeledbeast" console output start on started rcS-late script swapon /dev/mmcblk1p2 sleep 10 swapoff /dev/mmcblk0p3 end script