op_cpusettings.sh: Added 'sync' before changing CPU speed so that the cpu.conf file...
[openpandora.oe.git] / recipes / pandora-system / pandora-scripts / op_cpusettings.sh
1 #!/bin/bash
2 # Released under the GPL
3 # CPU-Settings, v1.1, written by Michael Mrozek aka EvilDragon 2011.
4 # This scripts allows you to change Pandora CPU-Settings.
5
6 while mainsel=$(zenity --title="CPU-Settings" --width="400" --height="380" --list --column "id" --column "Please select" --hide-column=1 --text="Welcome to the CPU-Settings.\nHere, you can configure the behaviour of your CPU \nThis can make your Pandora run faster but also more unstable.\n\nDon't worry though, you cannot permanently damage your unit.\n\nWhat do you want to do?\n" "profile" "Quick-Setup: Select from different profiles" "opp" "Set the max allowed OPP level" "mhz" "Set the maximum allowed MHz" "warning" "Change warning settings" "defaultmhz" "Set the default maximum MHz" --ok-label="Change Setting" --cancel-label="Exit"); do
7
8 case $mainsel in
9  
10   "profile")
11     cpusel=$(zenity --title="Optional settings" --width="400" --height="350" --list --column "id" --column "Please select" --hide-column=1 --text="The CPU of the Pandora supports different speed settings.\nHigher speeds might make some units unstable and decrease the lifetime of your CPU.\n\nBelow are some quick profiles which will help you to configure your system the way you like it.\n" "1100" "Clockspeed: 1,1Ghz, OPP5 (should be stable on 1GHz units)" "1000" "Clockspeed: 1GHz, OPP5 (most probably unstable on 600Mhz units)" "800" "Clockspeed: 800MHz, OPP5 (should be stable on all units)" "600" "Clockspeed: 600MHz, OPP3 (600 MHz units only)" --ok-label="Select CPU Profile" )
12
13     case $cpusel in
14         "1100")
15         echo 5 > /proc/pandora/cpu_opp_max
16         sed -i "s/.*maxopp.*/maxopp:5/g" /etc/pandora/conf/cpu.conf
17         sed -i "s/.*max:.*/max:1200/g" /etc/pandora/conf/cpu.conf
18         sed -i "s/.*default.*/default:1100/g" /etc/pandora/conf/cpu.conf
19         sed -i "s/.*safe.*/safe:1100/g" /etc/pandora/conf/cpu.conf
20         sync
21         /usr/pandora/scripts/op_cpuspeed.sh -n 1100
22         zenity --info --title="CPU Speed set" --text "The maximum CPU Speed has been set to 1,1GHz." --timeout 6
23         ;;
24
25         "1000")
26         echo 5 > /proc/pandora/cpu_opp_max
27         sed -i "s/.*maxopp.*/maxopp:5/g" /etc/pandora/conf/cpu.conf
28         sed -i "s/.*max:.*/max:1100/g" /etc/pandora/conf/cpu.conf
29         sed -i "s/.*default.*/default:1000/g" /etc/pandora/conf/cpu.conf
30         sed -i "s/.*safe.*/safe:1000/g" /etc/pandora/conf/cpu.conf
31         sync
32         /usr/pandora/scripts/op_cpuspeed.sh -n 1000
33         zenity --info --title="CPU Speed set" --text "The maximum CPU Speed has been set to 1GHz." --timeout 6
34         ;;      
35
36         "800")
37         echo 5 > /proc/pandora/cpu_opp_max
38         sed -i "s/.*maxopp.*/maxopp:5/g" /etc/pandora/conf/cpu.conf
39         sed -i "s/.*max:.*/max:900/g" /etc/pandora/conf/cpu.conf
40         sed -i "s/.*default.*/default:800/g" /etc/pandora/conf/cpu.conf
41         sed -i "s/.*safe.*/safe:800/g" /etc/pandora/conf/cpu.conf
42         sync
43         /usr/pandora/scripts/op_cpuspeed.sh -n 800
44         zenity --info --title="CPU Speed set" --text "The maximum CPU Speed has been set to 800MHz." --timeout 6
45         ;;
46
47
48         "600")
49         echo 3 > /proc/pandora/cpu_opp_max
50         sed -i "s/.*maxopp.*/maxopp:3/g" /etc/pandora/conf/cpu.conf
51         sed -i "s/.*max:.*/max:700/g" /etc/pandora/conf/cpu.conf
52         sed -i "s/.*default.*/default:600/g" /etc/pandora/conf/cpu.conf
53         sed -i "s/.*safe.*/safe:600/g" /etc/pandora/conf/cpu.conf
54         sync
55         /usr/pandora/scripts/op_cpuspeed.sh -n 600
56         zenity --info --title="CPU Speed set" --text "The maxmimum CPU Speed has been set to 600Mhz." --timeout 6
57         ;;
58
59     esac
60     ;;
61
62   "opp")
63     opp="$(cat /etc/pandora/conf/cpu.conf | grep opp | awk -F\: '{print $2}')"
64     if zenity --question --title="OPP Setting Info" --text="WARNING!\n\nIncreasing the maximum allowed OPP will allow you to overclock to higher values.\n\nHowever, besides using more power, it ALSO DECREASES THE LIFETIME OF YOUR CPU!" --ok-label="Yes, I know what I'm doing!" --cancel-label="I'm scared!"; then
65       if newopp=$(zenity --scale --text "Set the maximum allowed OPP" --min-value=3 --max-value=5 --value=$opp --step 1); then
66         echo $newopp > /proc/pandora/cpu_opp_max
67         sed -i "s/.*maxopp.*/maxopp:$newopp/g" /etc/pandora/conf/cpu.conf
68         sync
69         zenity --info --title="OPP Set" --text "The maximum allowed OPP value has been set to $newopp." --timeout 6
70       else
71         zenity --info --title="No change" --text "The maximum OPP value has not been changed." --timeout 6
72       fi
73     fi;;
74
75 "mhz")
76     min="$(cat /etc/pandora/conf/cpu.conf | grep min | awk -F\: '{print $2}')"
77     max="$(cat /etc/pandora/conf/cpu.conf | grep max: | awk -F\: '{print $2}')"
78     defspeed="$(cat /etc/pandora/conf/cpu.conf | grep default | awk -F\: '{print $2}')"
79     if zenity --question --title="MHz Setting Info" --text="This setting can set the allowed range apps can use on your Pandora.\n\nToo high CPU settings can render your Pandora unstable and crash it. This can lead to data loss!\n\nBe absolutely sure you know what you are doing here.\n\n" --ok-label="Yes, I know what I'm doing!" --cancel-label="I'm scared!"; then
80       if newmax=$(zenity --scale --text "Set the maximum allowed MHz" --min-value=500 --max-value=1300 --value=$max --step 1); then
81           sed -i "s/.*max:.*/max:$newmax/g" /etc/pandora/conf/cpu.conf
82           if [ "$defspeed" -gt "$newmax" ]; then
83             sed -i "s/.*default.*/default:$newmax/g" /etc/pandora/conf/cpu.conf
84             zenity --info --title="Default speed info" --text "As your default speed was set higher than your new maximum, it has been changed to the new maximum speed." --timeout 6
85             sync
86             /usr/pandora/scripts/op_cpuspeed.sh -n $newmax
87           fi
88           zenity --info --title="MHz range set" --text "The maximum allowed CPU Speed of your Pandora is now $newmax MHz.\n\n" --timeout 6
89         else
90           zenity --info --title="No change" --text "The CPU Speed has not been changed." --timeout 6
91       fi
92     fi;;
93   
94 "warning")
95     warn="$(cat /etc/pandora/conf/cpu.conf | grep warn | awk -F\: '{print $2}')"
96     safe="$(cat /etc/pandora/conf/cpu.conf | grep safe | awk -F\: '{print $2}')"
97     min="$(cat /etc/pandora/conf/cpu.conf | grep min | awk -F\: '{print $2}')"
98     max="$(cat /etc/pandora/conf/cpu.conf | grep max: | awk -F\: '{print $2}')"
99     if zenity --question --title="Warning Setting Info" --text="The Pandora can display a warning if you try to overclock.\n\nYou can either select at what speed the warning should appear or disable it completely.\n\nBe absolutely sure you know what you are doing here.\n\nThe standard setting is 600MHz." --ok-label="Yes, I know what I'm doing!" --cancel-label="I'm scared!"; then
100       if zenity --question --title="Disable Warning?" --text="Do you want to enable or disable the warning?" --ok-label="Enable it" --cancel-label="Disable it"; then
101         if newsafe=$(zenity --scale --text "At what speed should the warning appear?" --min-value=$min --max-value=$max --value=$safe --step 1); then
102           sed -i "s/.*warn.*/warn:yes/g" /etc/pandora/conf/cpu.conf
103           sed -i "s/.*safe.*/safe:$newsafe/g" /etc/pandora/conf/cpu.conf
104           zenity --info --title="Warning enabled" --text "Your Pandora will warn you if you try to clock higher than $newsafe MHz." --timeout 6
105         else
106           sed -i "s/.*warn.*/warn:yes/g" /etc/pandora/conf/cpu.conf
107           zenity --info --title="No change" --text "The speed the warning will appear has not been changed and the warning has been enabled." --timeout 6
108         fi
109       else
110         sed -i "s/.*warn.*/warn:no/g" /etc/pandora/conf/cpu.conf
111         zenity --info --title="Warning" --text "Your Pandora will NOT warn you if you try to overclock!" --timeout 6
112       fi
113     fi;;
114
115  "defaultmhz")
116     defspeed="$(cat /etc/pandora/conf/cpu.conf | grep default | awk -F\: '{print $2}')"
117     min="$(cat /etc/pandora/conf/cpu.conf | grep min | awk -F\: '{print $2}')"
118     max="$(cat /etc/pandora/conf/cpu.conf | grep max: | awk -F\: '{print $2}')"
119     if zenity --question --title="Default CPU Speed" --text="WARNING!\n\nYou are about to change the default clockspeed your Pandora will be running when you start it.\nIf it is set too high, the Pandora will crash.\n\nIf that happens, the Pandora will NOT change the clockspeed on the next boot, so you can access the OS and fix the default clock speed.\n\nHowever, each crash can lead to data loss - so please be sure to absolutely know what you're doing!" --ok-label="Yes, I know what I'm doing!" --cancel-label="I'm scared!"; then
120       if newdefault=$(zenity --scale --text "Set the default CPU speed" --min-value=$min --max-value=$max --value=$defspeed --step 1); then
121         sync
122         /usr/pandora/scripts/op_cpuspeed.sh -n $newdefault
123         sed -i "s/.*default.*/default:$newdefault/g" /etc/pandora/conf/cpu.conf
124         zenity --info --title="Default speed set" --text "The default clock speed has been set to $newdefault." --timeout 6
125       else
126         zenity --info --title="No change" --text "The default CPU speed has not been changed." --timeout 6
127       fi
128     fi;;
129
130
131 esac
132 done