summaryrefslogtreecommitdiff
path: root/extra/cpufrequtils
diff options
context:
space:
mode:
Diffstat (limited to 'extra/cpufrequtils')
-rw-r--r--extra/cpufrequtils/PKGBUILD32
-rw-r--r--extra/cpufrequtils/cpufreq.confd14
-rw-r--r--extra/cpufrequtils/cpufreq.rcd60
3 files changed, 106 insertions, 0 deletions
diff --git a/extra/cpufrequtils/PKGBUILD b/extra/cpufrequtils/PKGBUILD
new file mode 100644
index 000000000..d5b92095b
--- /dev/null
+++ b/extra/cpufrequtils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 85780 2010-07-19 14:39:52Z kevin $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: phrakture <aaronmgriffin+gmail+com>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+pkgname=cpufrequtils
+pkgver=008
+pkgrel=1
+pkgdesc="Userspace tools for the kernel cpufreq subsystem"
+arch=('i686' 'x86_64')
+url="http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html"
+license=('GPL')
+depends=('sysfsutils')
+backup=('etc/conf.d/cpufreq')
+source=(http://www.kernel.org/pub/linux/utils/kernel/cpufreq/${pkgname}-${pkgver}.tar.bz2
+ cpufreq.rcd
+ cpufreq.confd)
+options=(!libtool)
+md5sums=('c59b71c044d463896f3247e8dd83dd7e'
+ '7f2b5085df44d2df3e7c2d0b9f6dab08'
+ 'baae1f2abffc6bef2bd32a8dd8263c09')
+
+build()
+{
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make -j1 || return 1
+ make INSTALL="/bin/install -c" mandir=/usr/share/man DESTDIR="${pkgdir}" install || return 1
+
+ install -D -m755 ${srcdir}/cpufreq.rcd "${pkgdir}/etc/rc.d/cpufreq" || return 1
+ install -D -m644 ${srcdir}/cpufreq.confd "${pkgdir}/etc/conf.d/cpufreq" || return 1
+}
diff --git a/extra/cpufrequtils/cpufreq.confd b/extra/cpufrequtils/cpufreq.confd
new file mode 100644
index 000000000..218909748
--- /dev/null
+++ b/extra/cpufrequtils/cpufreq.confd
@@ -0,0 +1,14 @@
+#configuration for cpufreq control
+
+# valid governors:
+# ondemand, performance, powersave,
+# conservative, userspace
+#governor="ondemand"
+
+# limit frequency range (optional)
+# valid suffixes: Hz, kHz (default), MHz, GHz, THz
+#min_freq="2.25GHz"
+#max_freq="3GHz"
+
+# use freq to set up the exact cpu frequency using it with userspace governor
+#freq=
diff --git a/extra/cpufrequtils/cpufreq.rcd b/extra/cpufrequtils/cpufreq.rcd
new file mode 100644
index 000000000..9bc19b117
--- /dev/null
+++ b/extra/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