summaryrefslogtreecommitdiffstats
path: root/abs/extra-testing/cpufrequtils/cpufreq.rcd
diff options
context:
space:
mode:
authorMichael Hanson <hansonorders@verison.net>2010-03-22 19:37:16 (GMT)
committerMichael Hanson <hansonorders@verison.net>2010-03-22 19:37:16 (GMT)
commit21383e4ca51bc151601a51e6d75885959deb89e1 (patch)
treef9c1e3739098b700c0e0421c069ae926cc1b8cc2 /abs/extra-testing/cpufrequtils/cpufreq.rcd
parentdbff62a9a2550bd0bed77860fa4164d74c90dfb3 (diff)
parente51cf415764a2c267f373965c48eec082ad59d81 (diff)
downloadlinhes_pkgbuild-21383e4ca51bc151601a51e6d75885959deb89e1.zip
linhes_pkgbuild-21383e4ca51bc151601a51e6d75885959deb89e1.tar.gz
linhes_pkgbuild-21383e4ca51bc151601a51e6d75885959deb89e1.tar.bz2
Merge branch 'master' of mihanson@knoppmyth.net:LinHES-PKGBUILD
Diffstat (limited to 'abs/extra-testing/cpufrequtils/cpufreq.rcd')
-rw-r--r--abs/extra-testing/cpufrequtils/cpufreq.rcd60
1 files changed, 60 insertions, 0 deletions
diff --git a/abs/extra-testing/cpufrequtils/cpufreq.rcd b/abs/extra-testing/cpufrequtils/cpufreq.rcd
new file mode 100644
index 0000000..9bc19b1
--- /dev/null
+++ b/abs/extra-testing/cpufrequtils/cpufreq.rcd
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/cpufreq ] && . /etc/conf.d/cpufreq
+
+case "$1" in
+ start)
+ stat_busy "Setting cpufreq governing rules"
+
+ params=""
+ if [ -n "$governor" ]; then
+ mod="cpufreq_$governor"
+ params="-g $governor"
+ grep -qw "$governor" /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors || modprobe -q $mod
+ if [ $? -eq 0 ]; then
+ if [ "$min_freq" != "" ]; then
+ params="$params -d $min_freq"
+ fi
+ if [ "$max_freq" != "" ]; then
+ params="$params -u $max_freq"
+ fi
+ else
+ stat_busy " Cannot load governor module '$governor'"
+ stat_fail
+ exit
+ fi
+ fi
+
+ if [ "$params" != "" ]; then
+ CPUS=$(sed -ne 's/^processor.* \([0-9]\+\)$/\1/p' /proc/cpuinfo)
+ stat_append ", cpu"
+ for cpu in $CPUS; do
+ stat_append " $cpu"
+ cpufreq-set -c $cpu $params
+ if [ "$freq" != "" ]; then
+ cpufreq-set -c $cpu -f $freq
+ fi
+ done
+ stat_done
+ else
+ stat_busy " Invalid configuration in /etc/conf.d/cpufreq"
+ stat_fail
+ fi
+ ;;
+ stop)
+ # nothing to do
+ ;;
+ restart)
+ $0 start
+ ;;
+ set)
+ # TODO: make callable... "cpufreq set 800MHz"
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0