diff options
Diffstat (limited to 'extra/cpufrequtils')
-rw-r--r-- | extra/cpufrequtils/PKGBUILD | 32 | ||||
-rw-r--r-- | extra/cpufrequtils/cpufreq.confd | 14 | ||||
-rw-r--r-- | extra/cpufrequtils/cpufreq.rcd | 60 |
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 |