Files
bpfire/src/initscripts/init.d/cpufreq
2012-11-24 14:03:44 +01:00

67 lines
1.6 KiB
Bash

#!/bin/sh
########################################################################
# Begin $rc_base/init.d/cpufreq
#
# Description : Initalisize and startup cpufreq and set a governor
#
# Authors : Arne Fitzenreiter - arne_f@ipfire.org
#
# Version : 01.01
#
# Notes :
#
########################################################################
. /etc/sysconfig/rc
. ${rc_functions}
case "${1}" in
start)
boot_mesg -n "Starting cpufreq... "
# try cpufreq hardware depend modules
for i in $(find /lib/modules/$(uname -r)/kernel/drivers/cpufreq \
! -name speedstep-lib.ko ! -name p4-clockmod.ko ! -name "cpufreq_*" ! -name mperf.ko | sort -d -r); do
module=$(basename $i | cut -d. -f1);
modprobe $module > /dev/null 2>&1;
if [ ${?} = 0 ]; then
boot_mesg -n "$SUCCESS$module$NORMAL "
fi
done
boot_mesg ""
# load cqufreq governors
modprobe cpufreq_conservative
modprobe cpufreq_ondemand
modprobe cpufreq_powersave
modprobe cpufreq_userspace
CPUCOUNT=`ls /sys/devices/system/cpu/cpu*/cpufreq/affected_cpus 2> /dev/null | wc -l `;
let CPUCOUNT-=1
# Set the governor to ondemand to test if it works
cpufreq-set -g ondemand
if [ ${?} = 0 ]; then
# activate cpufreq collectd module
sed -i -e "s|^#LoadPlugin cpufreq|LoadPlugin cpufreq|g" /etc/collectd.conf
# Set the governor to ondemand for all cpus
for i in `seq 0 $CPUCOUNT`;
do
cpufreq-set -c $i -g ondemand
done
echo_ok;
else
echo_failure;
fi
exit 0;
;;
*)
echo "Usage: ${0} {start}"
exit 1
;;
esac
# End $rc_base/init.d/cpufreq