/rc4.d/S19cpufrequtils
http://github.com/brinkman83/bashrc · Shell · 101 lines · 55 code · 15 blank · 31 comment · 15 complexity · b693a7fed31dbc07dcd3a3e3370e064d MD5 · raw file
- #!/bin/sh
- ### BEGIN INIT INFO
- # Provides: cpufrequtils
- # Required-Start: $remote_fs loadcpufreq
- # Required-Stop:
- # Default-Start: 2 3 4 5
- # Default-Stop:
- # Short-Description: set CPUFreq kernel parameters
- # Description: utilities to deal with CPUFreq Linux
- # kernel support
- ### END INIT INFO
- #
- DESC="CPUFreq Utilities"
- PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
- CPUFREQ_SET=/usr/bin/cpufreq-set
- CPUFREQ_INFO=/usr/bin/cpufreq-info
- CPUFREQ_OPTIONS=""
- # use lsb-base
- . /lib/lsb/init-functions
- # Which governor to use. Must be one of the governors listed in:
- # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
- #
- # and which limits to set. Both MIN_SPEED and MAX_SPEED must be values
- # listed in:
- # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
- # a value of 0 for any of the two variables will disabling the use of
- # that limit variable.
- #
- # WARNING: the correct kernel module must already be loaded or compiled in.
- #
- # Set ENABLE to "true" to let the script run at boot time.
- #
- # eg: ENABLE="true"
- # GOVERNOR="ondemand"
- # MAX_SPEED=1000
- # MIN_SPEED=500
- ENABLE="true"
- GOVERNOR="ondemand"
- MAX_SPEED="0"
- MIN_SPEED="0"
- check_governor_avail() {
- info="/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"
- if [ -f $info ] && grep -q "\<$GOVERNOR\>" $info ; then
- return 0;
- fi
- return 1;
- }
- [ -x $CPUFREQ_SET ] || exit 0
- if [ -f /etc/default/cpufrequtils ] ; then
- . /etc/default/cpufrequtils
- fi
- # if not enabled then exit gracefully
- [ "$ENABLE" = "true" ] || exit 0
- if [ -n "$MAX_SPEED" ] && [ $MAX_SPEED != "0" ] ; then
- CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --max $MAX_SPEED"
- fi
- if [ -n "$MIN_SPEED" ] && [ $MIN_SPEED != "0" ] ; then
- CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --min $MIN_SPEED"
- fi
- if [ -n "$GOVERNOR" ] ; then
- CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --governor $GOVERNOR"
- fi
- CPUS=$(cat /proc/stat|sed -ne 's/^cpu\([[:digit:]]\+\).*/\1/p')
- RETVAL=0
- case "$1" in
- start|force-reload|restart|reload)
- log_action_begin_msg "$DESC: Setting $GOVERNOR CPUFreq governor"
- if check_governor_avail ; then
- for cpu in $CPUS ; do
- log_action_cont_msg "CPU${cpu}"
- $CPUFREQ_SET --cpu $cpu $CPUFREQ_OPTIONS 2>&1 > /dev/null || \
- RETVAL=$?
- done
- log_action_end_msg $RETVAL ""
- else
- log_action_cont_msg "disabled, governor not available"
- log_action_end_msg $RETVAL
- fi
- ;;
- stop)
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|reload|force-reload}"
- exit 1
- esac
- exit 0