diff options
| author | Sepero <cowpie2000@hotmail.com> | 2013-08-21 08:50:02 -0400 |
|---|---|---|
| committer | Sepero <cowpie2000@hotmail.com> | 2013-08-21 08:50:02 -0400 |
| commit | 13034a31e3ea34c5df1ab296bbc81b03df7cc564 (patch) | |
| tree | 472e5f7177f18e1b6e3c14d6968d5ff9ffd0443f | |
| parent | 5dcfdcd343d07a1fe2d89485c78bfb29fd801ff5 (diff) | |
Wolfgang Ocker patch - unspecified CPU frequencies
Added support for unspecified CPU frequencies.
(Also corrected my stupid misspelling of Celsius) :)
| -rw-r--r-- | temp_throttle.sh | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/temp_throttle.sh b/temp_throttle.sh index 9bdbcae..aa27f7f 100644 --- a/temp_throttle.sh +++ b/temp_throttle.sh @@ -1,7 +1,7 @@ #!/bin/bash # Usage: temp_throttle.sh max_temp -# USE CELCIUS TEMPERATURES. +# USE CELSIUS TEMPERATURES. cat << EOF Author: Sepero (sepero 111 @ gmail . com) @@ -14,6 +14,9 @@ EOF # http://github.com/Sepero/temp-throttle/ # http://seperohacker.blogspot.com/2012/10/linux-keep-your-cpu-cool-with-frequency.html +# Additional Credits +# Wolfgang Ocker <weo AT weo1 DOT de> - Patch for unspecified cpu frequencies. + # License: GNU GPL 2.0 # Generic function for printing an error and exiting. @@ -25,7 +28,7 @@ function err_exit () { if [ $# -ne 1 ]; then # If temperature wasn't given, then print a message and exit. - echo "Please supply a maximum desired temperature in Celcius." 1>&2 + echo "Please supply a maximum desired temperature in Celsius." 1>&2 echo "For example: ${0} 60" 1>&2 exit 2 else @@ -44,8 +47,20 @@ MAX_TEMP=${MAX_TEMP}000 LOW_TEMP=${LOW_TEMP}000 FREQ_FILE="/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies" -# FREQ_LIST is an array of available frequencies. -declare -a FREQ_LIST=($(cat $FREQ_FILE)) || err_exit "Could not determine available cpu frequencies. Missing file: $FREQ_FILE" +FREQ_MIN="/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq" +FREQ_MAX="/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" + +# Store an array of the available cpu frequencies in FREQ_LIST. +if [ -f $FREQ_FILE ]; then + # If $FREQ_FILE exists, get frequencies from it. + declare -a FREQ_LIST=($(cat $FREQ_FILE)) || err_exit "Could not read available cpu frequencies from file $FREQ_FILE" +elif [ -f $FREQ_MIN -a -f $FREQ_MAX ]; then + # Else if $FREQ_MIN and $FREQ_MAX exist, generate a list of frequencies between them. + declare -a FREQ_LIST=($(seq $(cat $FREQ_MAX) -100000 $(cat $FREQ_MIN))) || err_exit "Could not compute available cpu frequencies" +else + err_exit "Could not determine available cpu frequencies" +fi + # CURRENT_FREQ will save the index of the currently used frequency in FREQ_LIST. CURRENT_FREQ=1 @@ -80,7 +95,7 @@ function get_temp { # If one of these doesn't work, the try uncommenting another. TEMP=$(cat /sys/class/thermal/thermal_zone0/temp) - #TEMP=$(cat /sys/class/hwmon/hwmon0/temp1_input) + #TEMP=$(cat /sys/class/hwmon/hwmon0/temp1_input) #TEMP=$(cat /sys/class/hwmon/hwmon1/device/temp1_input) } |
