op_cpusettings.sh: Added Profile selections.
[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="350" --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 minimum / maximum allowed MHz" "warning" "Change warning settings" "defaultmhz" "Set the default 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="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" "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 (stable on all units, longest battery time)" --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         echo 1100 > /proc/pandora/cpu_mhz_max
21         zenity --info --title="CPU Speed set" --text "The CPU Speed has been set to 1,1GHz." --timeout 6
22         ;;
23
24         "1000")
25         echo 5 > /proc/pandora/cpu_opp_max
26         sed -i "s/.*maxopp.*/maxopp:5/g" /etc/pandora/conf/cpu.conf
27         sed -i "s/.*max:.*/max:1100/g" /etc/pandora/conf/cpu.conf
28         sed -i "s/.*default.*/default:1000/g" /etc/pandora/conf/cpu.conf
29         sed -i "s/.*safe.*/safe:1100/g" /etc/pandora/conf/cpu.conf
30         echo 1000 > /proc/pandora/cpu_mhz_max
31         zenity --info --title="CPU Speed set" --text "The CPU Speed has been set to 1GHz." --timeout 6
32         ;;      
33
34         "800")
35         echo 5 > /proc/pandora/cpu_opp_max
36         sed -i "s/.*maxopp.*/maxopp:5/g" /etc/pandora/conf/cpu.conf
37         sed -i "s/.*max:.*/max:900/g" /etc/pandora/conf/cpu.conf
38         sed -i "s/.*default.*/default:800/g" /etc/pandora/conf/cpu.conf
39         sed -i "s/.*safe.*/safe:800/g" /etc/pandora/conf/cpu.conf
40         echo 800 > /proc/pandora/cpu_mhz_max
41         zenity --info --title="CPU Speed set" --text "The CPU Speed has been set to 800MHz." --timeout 6
42         ;;
43
44         "600")
45         echo 3 > /proc/pandora/cpu_opp_max
46         sed -i "s/.*maxopp.*/maxopp:3/g" /etc/pandora/conf/cpu.conf
47         sed -i "s/.*max:.*/max:700/g" /etc/pandora/conf/cpu.conf
48         sed -i "s/.*default.*/default:600/g" /etc/pandora/conf/cpu.conf
49         sed -i "s/.*safe.*/safe:600/g" /etc/pandora/conf/cpu.conf
50         echo 600 > /proc/pandora/cpu_mhz_max
51         zenity --info --title="CPU Speed set" --text "The CPU Speed has been set to 600Mhz." --timeout 6
52         ;;
53
54     esac
55     ;;
56
57   "opp")
58     opp="$(cat /etc/pandora/conf/cpu.conf | grep opp | awk -F\: '{print $2}')"
59     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!\n\nBe absolutely sure you know what you are doing here. \n\nThe standard OPP setting is 3, everything above is out of the specification!" --ok-label="Yes, I know what I'm doing!" --cancel-label="I'm scared!"; then
60       if newopp=$(zenity --scale --text "Set the maximum allowed OPP" --min-value=3 --max-value=5 --value=$opp --step 1); then
61         echo $newopp > /proc/pandora/cpu_opp_max
62         sed -i "s/.*maxopp.*/maxopp:$newopp/g" /etc/pandora/conf/cpu.conf
63         zenity --info --title="OPP Set" --text "The maximum allowed OPP value has been set to $newopp." --timeout 6
64       else
65         zenity --info --title="No change" --text "The maximum OPP value has not been changed." --timeout 6
66       fi
67     fi;;
68
69 "mhz")
70     min="$(cat /etc/pandora/conf/cpu.conf | grep min | awk -F\: '{print $2}')"
71     max="$(cat /etc/pandora/conf/cpu.conf | grep max: | awk -F\: '{print $2}')"
72     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\nThe standard maximum setting is 800MHz, the standard minimum setting 125MHz." --ok-label="Yes, I know what I'm doing!" --cancel-label="I'm scared!"; then
73       if newmax=$(zenity --scale --text "Set the maximum allowed MHz" --min-value=500 --max-value=1300 --value=$max --step 1); then
74         if newmin=$(zenity --scale --text "Set the minimum allowed MHz" --min-value=20 --max-value=500 --value=$min --step 1); then
75           sed -i "s/.*max:.*/max:$newmax/g" /etc/pandora/conf/cpu.conf
76           sed -i "s/.*min:.*/min:$newmin/g" /etc/pandora/conf/cpu.conf
77           zenity --info --title="MHz range set" --text "Your Pandora can now set the CPU clock between $newmin and $newmax MHz." --timeout 6
78         else
79           zenity --info --title="No change" --text "The CPU Speed has not been changed." --timeout 6
80         fi
81         else
82         zenity --info --title="No change" --text "The CPU Speed has not been changed." --timeout 6
83       fi
84     fi;;
85   
86 "warning")
87     warn="$(cat /etc/pandora/conf/cpu.conf | grep warn | awk -F\: '{print $2}')"
88     safe="$(cat /etc/pandora/conf/cpu.conf | grep safe | awk -F\: '{print $2}')"
89     min="$(cat /etc/pandora/conf/cpu.conf | grep min | awk -F\: '{print $2}')"
90     max="$(cat /etc/pandora/conf/cpu.conf | grep max: | awk -F\: '{print $2}')"
91     if zenity --question --title="Warning Setting Info" --text="The Pandora usually displays 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
92       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
93         if newsafe=$(zenity --scale --text "At what speed should the warning appear?" --min-value=$min --max-value=$max --value=$safe --step 1); then
94           sed -i "s/.*warn.*/warn:yes/g" /etc/pandora/conf/cpu.conf
95           sed -i "s/.*safe.*/safe:$newsafe/g" /etc/pandora/conf/cpu.conf
96           zenity --info --title="Warning enabled" --text "Your Pandora will warn you if you try to clock higher than $newsafe MHz." --timeout 6
97         else
98           sed -i "s/.*warn.*/warn:yes/g" /etc/pandora/conf/cpu.conf
99           zenity --info --title="No change" --text "The speed the warning will appear has not been changed and the warning has been enabled." --timeout 6
100         fi
101       else
102         sed -i "s/.*warn.*/warn:no/g" /etc/pandora/conf/cpu.conf
103         zenity --info --title="Warning" --text "Your Pandora will NOT warn you if you try to overclock!" --timeout 6
104       fi
105     fi;;
106
107  "defaultmhz")
108     defspeed="$(cat /etc/pandora/conf/cpu.conf | grep default | awk -F\: '{print $2}')"
109     min="$(cat /etc/pandora/conf/cpu.conf | grep min | awk -F\: '{print $2}')"
110     max="$(cat /etc/pandora/conf/cpu.conf | grep max: | awk -F\: '{print $2}')"
111     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
112       if newdefault=$(zenity --scale --text "Set the default CPU speed" --min-value=$min --max-value=$max --value=$defspeed --step 1); then
113         echo $newdefault > /proc/pandora/cpu_mhz_max
114         sed -i "s/.*default.*/default:$newdefault/g" /etc/pandora/conf/cpu.conf
115         zenity --info --title="Default speed set" --text "The default clock speed has been set to $newdefault." --timeout 6
116       else
117         zenity --info --title="No change" --text "The default CPU speed has not been changed." --timeout 6
118       fi
119     fi;;
120
121
122 esac
123 done