Talk:Swap on microSD
(New page: [http://talk.maemo.org/showthread.php?t=84296 SDCard Partition Methods Thread] = Talk on Dual SD Swap Method = See from post 67 - sixwheeledbeast == Scripts == === Latest Version - sixwh...) |
|||
Line 3: | Line 3: | ||
See from post 67 - sixwheeledbeast | See from post 67 - sixwheeledbeast | ||
- | == Scripts == | + | == Swap Switching Scripts == |
=== Latest Version - sixwheeledbeast === | === Latest Version - sixwheeledbeast === | ||
Line 241: | Line 241: | ||
( banner "Ops, something failed, swapon of $swap0 done but cannot swapoff $old" && exit 1 ) | ( banner "Ops, something failed, swapon of $swap0 done but cannot swapoff $old" && exit 1 ) | ||
fi | fi | ||
+ | </pre> | ||
+ | |||
+ | == Information on Starting Swap on SD at bootup == | ||
+ | |||
+ | Upstart format - new file in event.d | ||
+ | |||
+ | etc/event.d/relocateswap | ||
+ | <pre> | ||
+ | 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 | ||
+ | |||
</pre> | </pre> |
Revision as of 18:36, 13 July 2012
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