]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/initscripts/init.d/cpufreq
Changed checkfs to auto reboot after correctable fsck fixes.
[people/pmueller/ipfire-2.x.git] / src / initscripts / init.d / cpufreq
index fb326d7eb0b12809b5a22df5be182eedda9142bb..5f28be2cf42e98bfb0d43251dcf95e6ebc4eccec 100644 (file)
@@ -6,7 +6,7 @@
 #
 # 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;
                ;;
        *)
@@ -51,3 +62,5 @@ case "${1}" in
 esac
 
 # End $rc_base/init.d/cpufreq
+
+