5f28be2cf42e98bfb0d43251dcf95e6ebc4eccec
[people/pmueller/ipfire-2.x.git] / src / initscripts / init.d / cpufreq
1 #!/bin/sh
2 ########################################################################
3 # Begin $rc_base/init.d/cpufreq
4 #
5 # Description : Initalisize and startup cpufreq and set a governor
6 #
7 # Authors : Arne Fitzenreiter - arne_f@ipfire.org
8 #
9 # Version : 01.00
10 #
11 # Notes :
12 #
13 ########################################################################
14
15 . /etc/sysconfig/rc
16 . ${rc_functions}
17
18 case "${1}" in
19 start)
20 boot_mesg -n "Starting cpufreq... "
21
22 # try cpufreq hardware depend modules
23 for i in $(find /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq \
24 ! -name speedstep-lib.ko | sort -d -r); do
25 module=$(basename $i | cut -d. -f1);
26 modprobe $module > /dev/null 2>&1;
27 if [ ${?} = 0 ]; then
28 boot_mesg -n "$SUCCESS$module$NORMAL "
29 fi
30 done
31 boot_mesg ""
32
33 # load cqufreq governors
34 modprobe cpufreq_conservative
35 modprobe cpufreq_ondemand
36 modprobe cpufreq_powersave
37 modprobe cpufreq_userspace
38
39 CPUCOUNT=`ls /sys/devices/system/cpu/cpu*/cpufreq/affected_cpus 2> /dev/null | wc -l `;
40 let CPUCOUNT-=1
41 # Set the governor to ondemand to test if it works
42 cpufreq-set -g ondemand
43 if [ ${?} = 0 ]; then
44 # activate cpufreq collectd module
45 sed -i -e "s|^#LoadPlugin cpufreq|LoadPlugin cpufreq|g" /etc/collectd.conf
46
47 # Set the governor to ondemand for all cpus
48 for i in `seq 0 $CPUCOUNT`;
49 do
50 cpufreq-set -c $i -g ondemand
51 done
52 echo_ok;
53 else
54 echo_failure;
55 fi
56 exit 0;
57 ;;
58 *)
59 echo "Usage: ${0} {start}"
60 exit 1
61 ;;
62 esac
63
64 # End $rc_base/init.d/cpufreq
65
66