91371ed7c02f9340175d9ed7e8189634a59c541b
[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 # First, check for the unit type and set maximum possible OPP.
7
8 pnd_version=$(dmesg | grep OMAP3 | grep ES | awk '{print $3}')
9 if [ "$pnd_version" == "OMAP3630" ]; then
10     oppsys="4"
11   else
12     oppsys="5"
13 fi
14
15 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
16
17 case $mainsel in
18  
19   "profile")
20   
21     if [ "$pnd_version" == "OMAP3630" ]; then 
22       cpusel=$(zenity --title="Optional settings" --width="400" --height="300" --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" "1200" "Clockspeed: 1,2Ghz, OPP4 (probably unstable)" "1100" "Clockspeed: 1,1Ghz, OPP4 (should be stable)" "1000" "Clockspeed: 1GHz, OPP4 (Default Speed)" --ok-label="Select CPU Profile" )
23     else
24       cpusel=$(zenity --title="Optional settings" --width="400" --height="300" --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" "900" "Clockspeed: 900Mhz, OPP5 (probably unstable)" "800" "Clockspeed: 800Mhz, OPP5 (should be stable)" "600" "Clockspeed: 600MHz, OPP3 (Default Speed)" --ok-label="Select CPU Profile" )
25     fi
26     
27     case $cpusel in
28         "1200")
29         echo 4 > /proc/pandora/cpu_opp_max
30         sed -i "s/.*maxopp.*/maxopp:4/g" /etc/pandora/conf/cpu.conf
31         sed -i "s/.*max:.*/max:1300/g" /etc/pandora/conf/cpu.conf
32         sed -i "s/.*default.*/default:1200/g" /etc/pandora/conf/cpu.conf
33         sed -i "s/.*safe.*/safe:1200/g" /etc/pandora/conf/cpu.conf
34         sync
35         /usr/pandora/scripts/op_cpuspeed.sh -n 1200
36         zenity --info --title="CPU Speed set" --text "The maximum CPU Speed has been set to 1,2GHz." --timeout 6
37         ;;
38     
39         "1100")
40         echo 4 > /proc/pandora/cpu_opp_max
41         sed -i "s/.*maxopp.*/maxopp:4/g" /etc/pandora/conf/cpu.conf
42         sed -i "s/.*max:.*/max:1200/g" /etc/pandora/conf/cpu.conf
43         sed -i "s/.*default.*/default:1100/g" /etc/pandora/conf/cpu.conf
44         sed -i "s/.*safe.*/safe:1100/g" /etc/pandora/conf/cpu.conf
45         sync
46         /usr/pandora/scripts/op_cpuspeed.sh -n 1100
47         zenity --info --title="CPU Speed set" --text "The maximum CPU Speed has been set to 1,1GHz." --timeout 6
48         ;;
49
50         "1000")
51         echo 4 > /proc/pandora/cpu_opp_max
52         sed -i "s/.*maxopp.*/maxopp:4/g" /etc/pandora/conf/cpu.conf
53         sed -i "s/.*max:.*/max:1100/g" /etc/pandora/conf/cpu.conf
54         sed -i "s/.*default.*/default:1000/g" /etc/pandora/conf/cpu.conf
55         sed -i "s/.*safe.*/safe:1000/g" /etc/pandora/conf/cpu.conf
56         sync
57         /usr/pandora/scripts/op_cpuspeed.sh -n 1000
58         zenity --info --title="CPU Speed set" --text "The maximum CPU Speed has been set to 1GHz." --timeout 6
59         ;;      
60
61         "900")
62         echo 5 > /proc/pandora/cpu_opp_max
63         sed -i "s/.*maxopp.*/maxopp:5/g" /etc/pandora/conf/cpu.conf
64         sed -i "s/.*max:.*/max:950/g" /etc/pandora/conf/cpu.conf
65         sed -i "s/.*default.*/default:900/g" /etc/pandora/conf/cpu.conf
66         sed -i "s/.*safe.*/safe:900/g" /etc/pandora/conf/cpu.conf
67         sync
68         /usr/pandora/scripts/op_cpuspeed.sh -n 900
69         zenity --info --title="CPU Speed set" --text "The maximum CPU Speed has been set to 900MHz." --timeout 6
70         ;;
71         
72         "800")
73         echo 5 > /proc/pandora/cpu_opp_max
74         sed -i "s/.*maxopp.*/maxopp:5/g" /etc/pandora/conf/cpu.conf
75         sed -i "s/.*max:.*/max:900/g" /etc/pandora/conf/cpu.conf
76         sed -i "s/.*default.*/default:800/g" /etc/pandora/conf/cpu.conf
77         sed -i "s/.*safe.*/safe:800/g" /etc/pandora/conf/cpu.conf
78         sync
79         /usr/pandora/scripts/op_cpuspeed.sh -n 800
80         zenity --info --title="CPU Speed set" --text "The maximum CPU Speed has been set to 800MHz." --timeout 6
81         ;;
82
83
84         "600")
85         echo 3 > /proc/pandora/cpu_opp_max
86         sed -i "s/.*maxopp.*/maxopp:3/g" /etc/pandora/conf/cpu.conf
87         sed -i "s/.*max:.*/max:700/g" /etc/pandora/conf/cpu.conf
88         sed -i "s/.*default.*/default:600/g" /etc/pandora/conf/cpu.conf
89         sed -i "s/.*safe.*/safe:600/g" /etc/pandora/conf/cpu.conf
90         sync
91         /usr/pandora/scripts/op_cpuspeed.sh -n 600
92         zenity --info --title="CPU Speed set" --text "The maxmimum CPU Speed has been set to 600Mhz." --timeout 6
93         ;;
94
95     esac
96     ;;
97
98   "opp")
99     opp="$(cat /etc/pandora/conf/cpu.conf | grep opp | awk -F\: '{print $2}')"
100     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
101       if newopp=$(zenity --scale --text "Set the maximum allowed OPP" --min-value=3 --max-value=$oppsys --value=$opp --step 1); then
102         echo $newopp > /proc/pandora/cpu_opp_max
103         sed -i "s/.*maxopp.*/maxopp:$newopp/g" /etc/pandora/conf/cpu.conf
104         sync
105         zenity --info --title="OPP Set" --text "The maximum allowed OPP value has been set to $newopp." --timeout 6
106       else
107         zenity --info --title="No change" --text "The maximum OPP value has not been changed." --timeout 6
108       fi
109     fi;;
110
111 "mhz")
112     min="$(cat /etc/pandora/conf/cpu.conf | grep min | awk -F\: '{print $2}')"
113     max="$(cat /etc/pandora/conf/cpu.conf | grep max: | awk -F\: '{print $2}')"
114     defspeed="$(cat /etc/pandora/conf/cpu.conf | grep default | awk -F\: '{print $2}')"
115     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
116       if newmax=$(zenity --scale --text "Set the maximum allowed MHz" --min-value=500 --max-value=1300 --value=$max --step 1); then
117           sed -i "s/.*max:.*/max:$newmax/g" /etc/pandora/conf/cpu.conf
118           if [ "$defspeed" -gt "$newmax" ]; then
119             sed -i "s/.*default.*/default:$newmax/g" /etc/pandora/conf/cpu.conf
120             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
121             sync
122             /usr/pandora/scripts/op_cpuspeed.sh -n $newmax
123           fi
124           zenity --info --title="MHz range set" --text "The maximum allowed CPU Speed of your Pandora is now $newmax MHz.\n\n" --timeout 6
125         else
126           zenity --info --title="No change" --text "The CPU Speed has not been changed." --timeout 6
127       fi
128     fi;;
129   
130 "warning")
131     warn="$(cat /etc/pandora/conf/cpu.conf | grep warn | awk -F\: '{print $2}')"
132     safe="$(cat /etc/pandora/conf/cpu.conf | grep safe | awk -F\: '{print $2}')"
133     min="$(cat /etc/pandora/conf/cpu.conf | grep min | awk -F\: '{print $2}')"
134     max="$(cat /etc/pandora/conf/cpu.conf | grep max: | awk -F\: '{print $2}')"
135     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
136       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
137         if newsafe=$(zenity --scale --text "At what speed should the warning appear?" --min-value=$min --max-value=$max --value=$safe --step 1); then
138           sed -i "s/.*warn.*/warn:yes/g" /etc/pandora/conf/cpu.conf
139           sed -i "s/.*safe.*/safe:$newsafe/g" /etc/pandora/conf/cpu.conf
140           zenity --info --title="Warning enabled" --text "Your Pandora will warn you if you try to clock higher than $newsafe MHz." --timeout 6
141         else
142           sed -i "s/.*warn.*/warn:yes/g" /etc/pandora/conf/cpu.conf
143           zenity --info --title="No change" --text "The speed the warning will appear has not been changed and the warning has been enabled." --timeout 6
144         fi
145       else
146         sed -i "s/.*warn.*/warn:no/g" /etc/pandora/conf/cpu.conf
147         zenity --info --title="Warning" --text "Your Pandora will NOT warn you if you try to overclock!" --timeout 6
148       fi
149     fi;;
150
151  "defaultmhz")
152     defspeed="$(cat /etc/pandora/conf/cpu.conf | grep default | awk -F\: '{print $2}')"
153     min="$(cat /etc/pandora/conf/cpu.conf | grep min | awk -F\: '{print $2}')"
154     max="$(cat /etc/pandora/conf/cpu.conf | grep max: | awk -F\: '{print $2}')"
155     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
156       if newdefault=$(zenity --scale --text "Set the default CPU speed" --min-value=$min --max-value=$max --value=$defspeed --step 1); then
157         sync
158         /usr/pandora/scripts/op_cpuspeed.sh -n $newdefault
159         sed -i "s/.*default.*/default:$newdefault/g" /etc/pandora/conf/cpu.conf
160         zenity --info --title="Default speed set" --text "The default clock speed has been set to $newdefault." --timeout 6
161       else
162         zenity --info --title="No change" --text "The default CPU speed has not been changed." --timeout 6
163       fi
164     fi;;
165
166
167 esac
168 done