]>
Commit | Line | Data |
---|---|---|
d2c65e37 AF |
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 | # | |
26ca2208 | 9 | # Version : 01.01 |
d2c65e37 AF |
10 | # |
11 | # Notes : | |
12 | # | |
13 | ######################################################################## | |
14 | ||
15 | . /etc/sysconfig/rc | |
16 | . ${rc_functions} | |
17 | ||
18 | case "${1}" in | |
19 | start) | |
06391e6d | 20 | boot_mesg -n "Starting cpufreq... " |
a041a28d | 21 | |
4f3651e6 | 22 | # try cpufreq hardware depend modules |
ceffe9bd | 23 | for i in $(find /lib/modules/$(uname -r)/kernel/drivers/cpufreq \ |
23a3aec1 | 24 | ! -name speedstep-lib.ko.xz ! -name p4-clockmod.ko.xz ! -name "cpufreq_*" ! -name mperf.ko.xz | sort -d -r); do |
03755188 AF |
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 | |
a041a28d AF |
30 | done |
31 | boot_mesg "" | |
4f3651e6 | 32 | |
d2c65e37 AF |
33 | # load cqufreq governors |
34 | modprobe cpufreq_conservative | |
35 | modprobe cpufreq_ondemand | |
36 | modprobe cpufreq_powersave | |
37 | modprobe cpufreq_userspace | |
38 | ||
1f182999 | 39 | driver=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 2>/dev/null` |
341a7082 | 40 | |
1f182999 AF |
41 | case "$driver" in |
42 | intel_pstate) | |
43 | # pstate use internal gov so skip this setting | |
1f182999 AF |
44 | echo_ok; |
45 | ;; | |
46 | *) | |
47 | CPUCOUNT=`ls /sys/devices/system/cpu/cpu*/cpufreq/affected_cpus 2> /dev/null | wc -l `; | |
48 | let CPUCOUNT-=1 | |
49 | # Set the governor to ondemand to test if it works | |
50 | cpufreq-set -g ondemand | |
51 | if [ ${?} = 0 ]; then | |
1f182999 AF |
52 | # Set the governor to ondemand for all cpus |
53 | for i in `seq 0 $CPUCOUNT`; | |
54 | do | |
55 | cpufreq-set -c $i -g ondemand | |
56 | done | |
57 | echo_ok; | |
58 | else | |
59 | echo_failure; | |
60 | fi | |
61 | ;; | |
62 | esac | |
d2c65e37 AF |
63 | exit 0; |
64 | ;; | |
65 | *) | |
66 | echo "Usage: ${0} {start}" | |
67 | exit 1 | |
68 | ;; | |
69 | esac | |
70 | ||
71 | # End $rc_base/init.d/cpufreq | |
03755188 AF |
72 | |
73 |