X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=openpandora.oe.git;a=blobdiff_plain;f=recipes%2Fpandora-system%2Fpandora-scripts%2Fop_cpuspeed.sh;h=e1eeeb7f54c4d79d7e31091a385960edad072e1a;hp=72d0d87328c1008b6703d35fea26b77667d5ce81;hb=0ec4925f6a528a18df2ef65b83b5c63cb601023c;hpb=a422d6cb24307ad6fbbcabebdc0924d50a5c0de7 diff --git a/recipes/pandora-system/pandora-scripts/op_cpuspeed.sh b/recipes/pandora-system/pandora-scripts/op_cpuspeed.sh old mode 100644 new mode 100755 index 72d0d87..e1eeeb7 --- a/recipes/pandora-system/pandora-scripts/op_cpuspeed.sh +++ b/recipes/pandora-system/pandora-scripts/op_cpuspeed.sh @@ -1,35 +1,65 @@ #!/bin/bash #get value range -minmhz=14 -safemhz=600 -maxmhz=900 -curmhz="$(cat /proc/pandora/cpu_mhz_max)" -newmhz="$(cat /proc/pandora/cpu_mhz_max)" +minmhz="$(cat /etc/pandora/conf/cpu.conf | grep 'min:' | awk -F\: '{print $2}')" +safemhz="$(cat /etc/pandora/conf/cpu.conf | grep 'safe:' | awk -F\: '{print $2}')" +maxmhz="$(cat /etc/pandora/conf/cpu.conf | grep 'max:' | awk -F\: '{print $2}')" +warn="$(cat /etc/pandora/conf/cpu.conf | grep 'warn:' | awk -F\: '{print $2}')" device=/proc/pandora/cpu_mhz_max +curmhz="$(cat $device)" +newmhz="$(cat $device)" + +if [ "$1" = "-n" ]; then + shift + warn=no +fi + +if [ ! -e $device ]; then + if [ -z "$1" -a -n "$DISPLAY" ]; then + zenity --info --title="CPU-Settings not supported" --text \ + "Sorry, the experimental kernel does not support setting the clockspeed (yet)." + fi + exit 1 +fi + if [ ! $1 ]; then if [ $DISPLAY ]; then newmhz=$(zenity --scale --text "Set CPU clockspeed" --min-value=$minmhz --max-value=$maxmhz --value=$curmhz --step 1) else - newmhz=$(read -p "Please enter the desired clockspeed") + read -p "Please enter the desired clockspeed: " newmhz fi else -newmhz=$1 + newmhz=$1 fi + +if ! [ 0 -lt "$newmhz" -a "$newmhz" -lt 10000 ]; then + echo "invalid argument: $newmhz" + exit 1 +fi + if [ $newmhz ]; then if [ $newmhz -gt $safemhz ]; then - if [ $DISPLAY ]; then - answer=$(zenity --question --title "Alert" --text "You are trying to set the CPU clock to $newmhz which is above its specification of $safemhz, doing so may burn down your house, sour milk, or just blow up (OK, not that likely)! Proceed?";echo $?) - echo $answer - if [ $answer = 1 ]; then exit 1; fi - else - answer="n";read -p "You are trying to set the CPU clock to $newmhz which is above its specification of $safemhz, doing so may burn down your house, sour milk, or just blow up (OK, not that likely)! Proceed? [y/n]" -t 10 answer - echo $answer - if [ $answer = n ]; then exit 1; fi - fi + if [ $warn != no ]; then + if [ $DISPLAY ]; then + answer=$(zenity --question --title "Alert" --text "You are trying to set the CPU clock to $newmhz which is above the warning level of $safemhz, doing so may burn down your house, sour milk, or just blow up (OK, not that likely)! Proceed?";echo $?) + echo $answer + if [ $answer = 1 ]; then exit 1; fi + else + answer="n";read -p "You are trying to set the CPU clock to $newmhz which is above the warning level of $safemhz, doing so may burn down your house, sour milk, or just blow up (OK, not that likely)! Proceed? [y/n]" -t 10 answer + echo $answer + if [ $answer = n ]; then exit 1; fi + fi + fi fi if [ $newmhz -le $minmhz ]; then newmhz=$minmhz; fi if [ $newmhz -ge $maxmhz ]; then newmhz=$maxmhz; fi echo $newmhz > $device - echo cpu_mhz_max set to $(cat /proc/pandora/cpu_mhz_max) + echo cpu_mhz_max set to $(cat $device) + + if [ -e /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then + # must poke cpufreq so it does the actual clock transition + # according to new limits + gov=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor) + echo $gov > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + fi fi