#
# Authors : Arne Fitzenreiter - arne_f@ipfire.org
#
-# Version : 00.00
+# Version : 01.00
#
# Notes :
#
case "${1}" in
start)
- boot_mesg -n "Starting cpufreq ... "
-
- for module in acpi-cpufreq cpufreq-nforce2 e-powersaver \
- gx-suspmod longhaul longrun p4-clockmod powernow-k6 \
- powernow-k7 powernow-k8 speedstep-centrino speedstep-ich \
- speedstep-smi; do
- modprobe $module > /dev/null 2>&1;
- if [ ${?} = 0 ]; then
- boot_mesg -n "$SUCCESS$module$NORMAL "
- fi
+ boot_mesg -n "Starting cpufreq... "
+
+ # try cpufreq hardware depend modules
+ for i in $(find /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq \
+ ! -name speedstep-lib.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
- # Set the governor to ondemand
+ 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
- evaluate_retval;
-
- # activate cpufreq collectd module
- sed -i -e "s|#LoadPlugin cpufreq|LoadPlugin cpufreq|g" /etc/collectd.conf
+ 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;
;;
*)
esac
# End $rc_base/init.d/cpufreq
+
+