Talk:Swap on microSD
| Line 263: | Line 263: | ||
</pre> | </pre> | ||
| + | |||
| + | ==Original script from main page== | ||
| + | This script can be run via [[Terminal]] or using an application like [[Queen BeeCon Widget]]. | ||
| + | |||
| + | It is for refreshing swap if main swap space is on Micro SD Partition 2. | ||
| + | |||
| + | run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:"Start Swap Refresh" uint32:0 string:"OK"; sudo swapon /dev/mmcblk0p3 ; sudo swapoff /dev/mmcblk1p2 ; run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Swapping Back to Main Swap on SD..." ; sudo swapon /dev/mmcblk1p2 ; sudo swapoff /dev/mmcblk0p3 ; run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:"Swap Refresh Complete" uint32:0 string:"OK" | ||
| + | |||
| + | This script can be modified to suit different swap locations as required. | ||
Revision as of 19:14, 19 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
Original script from main page
This script can be run via Terminal or using an application like Queen BeeCon Widget.
It is for refreshing swap if main swap space is on Micro SD Partition 2.
run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:"Start Swap Refresh" uint32:0 string:"OK"; sudo swapon /dev/mmcblk0p3 ; sudo swapoff /dev/mmcblk1p2 ; run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Swapping Back to Main Swap on SD..." ; sudo swapon /dev/mmcblk1p2 ; sudo swapoff /dev/mmcblk0p3 ; run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:"Swap Refresh Complete" uint32:0 string:"OK"
This script can be modified to suit different swap locations as required.
