summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-power/cpudyn')
-rw-r--r--sys-power/cpudyn/Manifest1
-rw-r--r--sys-power/cpudyn/cpudyn-1.0.1.ebuild41
-rw-r--r--sys-power/cpudyn/files/cpudyn-0.99.0-init_conf_updates.patch29
-rw-r--r--sys-power/cpudyn/files/cpudyn.init102
-rw-r--r--sys-power/cpudyn/metadata.xml5
5 files changed, 178 insertions, 0 deletions
diff --git a/sys-power/cpudyn/Manifest b/sys-power/cpudyn/Manifest
new file mode 100644
index 000000000000..a1084c58983e
--- /dev/null
+++ b/sys-power/cpudyn/Manifest
@@ -0,0 +1 @@
+DIST cpudyn-1.0.1.tgz 32285 SHA256 bc196ad17c04aa4bb21fdf9f6976e658d1d89cf736405a3faec93fd0e14df227
diff --git a/sys-power/cpudyn/cpudyn-1.0.1.ebuild b/sys-power/cpudyn/cpudyn-1.0.1.ebuild
new file mode 100644
index 000000000000..ed980dfc9726
--- /dev/null
+++ b/sys-power/cpudyn/cpudyn-1.0.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils
+
+DESCRIPTION="A daemon to control laptop power consumption via cpufreq and disk standby"
+HOMEPAGE="http://mnm.uib.es/~gallir/cpudyn/"
+SRC_URI="http://mnm.uib.es/~gallir/${PN}/download/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE=""
+
+S=${WORKDIR}/${PN}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"/debian
+ epatch "${FILESDIR}"/${PN}-0.99.0-init_conf_updates.patch
+}
+
+src_compile() {
+ emake LDFLAGS="${LDFLAGS}" cpudynd || die "Compilation failed."
+}
+
+src_install() {
+ dosbin cpudynd || die "dosbin"
+
+ doman cpudynd.8
+ dodoc INSTALL README VERSION changelog
+ dohtml *.html
+
+ newinitd "${FILESDIR}"/cpudyn.init cpudyn
+ newconfd debian/cpudyn.conf cpudyn
+}
+
+pkg_postinst() {
+ einfo "Configuration file is /etc/conf.d/cpudyn."
+}
diff --git a/sys-power/cpudyn/files/cpudyn-0.99.0-init_conf_updates.patch b/sys-power/cpudyn/files/cpudyn-0.99.0-init_conf_updates.patch
new file mode 100644
index 000000000000..fcfb55294d33
--- /dev/null
+++ b/sys-power/cpudyn/files/cpudyn-0.99.0-init_conf_updates.patch
@@ -0,0 +1,29 @@
+--- gentoo/cpudyn.conf.orig 2004-01-08 17:20:39.575230665 +0100
++++ gentoo/cpudyn.conf 2004-01-08 17:20:37.450290151 +0100
+@@ -32,6 +32,12 @@
+
+ THROTTLING_LOW=7
+
++#
++# Count also niced process in CPU usage. Default is no.
++#
++
++#NICE=yes
++
+ ################################################
+ # DISK OPTIONS
+ # (disabled by default)
+@@ -51,4 +57,14 @@
+ # DISKS=/dev/hda,/dev/hdb
+
+
++################################################
++# Special Startup Options
++# (you shouldn't need to change these)
++################################################
++# cpufreq sources for 2.4 kernels
++CPUFREQ_24="/proc/cpufreq"
++# cpufreq sources for 2.5/2.6 kernels
++CPUFREQ_25="/sys/devices/system/cpu/cpu0/cpufreq /sysfs/devices/system/cpu/cpu0/cpufreq"
++# pure acpi cpufreq
++CPUFREQ_ACPI="/proc/acpi/processor/CPU0/throttling"
diff --git a/sys-power/cpudyn/files/cpudyn.init b/sys-power/cpudyn/files/cpudyn.init
new file mode 100644
index 000000000000..877f51f41b7c
--- /dev/null
+++ b/sys-power/cpudyn/files/cpudyn.init
@@ -0,0 +1,102 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+#
+# Based on the Debian init script written by Celso Gonzalez <celso@bulma.net>,
+# and on the cpufreqd Gentoo init script written by Robert Gogolok <robertgogolok@web.de>.
+# Heavily modified by Robin H. Johnson <robbat2@gentoo.org> to ensure correct
+# start only under support conditions
+# More preconditions by Karl Trygve Kalleberg <karltk@gentoo.org>
+#
+
+DAEMON=/usr/sbin/cpudynd
+PIDFILE=/var/run/cpudynd.pid
+
+opts="${opts} min max dynamic"
+
+depend() {
+ need localmount
+}
+
+checkconfig() {
+ local CPUFREQ_FILES="${CPUFREQ_24} ${CPUFREQ_25} ${CPUFREQ_ACPI}"
+ local CPUFREQ_FILE=""
+ for i in ${CPUFREQ_FILES}; do [ -e ${i} ] && CPUFREQ_FILE="${i}" && break ; done
+ if [ -z "${CPUFREQ_FILE}" ]; then
+ eerror "Neither CPUFreq nor ACPI throttling support were found"
+ return 1
+ fi
+ if [ "${CPUFREQ_FILE}" = "${CPUFREQ_ACPI}" ]; then
+ # see if the file says we are supported or not
+ grep 'not supported' ${CPUFREQ_ACPI} 2>&1 >/dev/null
+ retval="$?"
+ if [ $retval -eq 0 ]; then
+ eerror "ACPI throttling support found, but hardware doesn't support it"
+ return 1
+ fi
+ # now check that we can write to the file
+ local acpistate=`grep 'active state' ${CPUFREQ_ACPI} | cut -dT -f2-`
+ echo $acpistate > ${CPUFREQ_ACPI}
+ retval="$?"
+ if [ $retval -ne 0 ]; then
+ eerror "Writing to ACPI throttling file failed"
+ return 1
+ fi
+ fi
+ # CPUFREQ_25 has more than one entry, hence the grep -- karltk
+ if [ ! -z "$(echo ${CPUFREQ_25} | grep ${CPUFREQ_FILE})" ]; then
+ # Silently try to load the governors; shouldn't hurt if they're already there
+ modprobe -q cpufreq_performance
+ modprobe -q cpufreq_powersave
+ modprobe -q cpufreq_userspace
+ modprobe -q cpufreq_ondemand
+ fi
+
+ return 0
+}
+
+
+start() {
+ local CPUDYN_OPTS=""
+ if [ -n "$INTERVAL" ]; then CPUDYN_OPTS="$CPUDYN_OPTS -i $INTERVAL"; fi
+ if [ -n "$CPU_UP" -a -n "$CPU_DOWN" ]; then CPUDYN_OPTS="$CPUDYN_OPTS -p $CPU_UP $CPU_DOWN"; fi
+ if [ -n "$THROTTLING_LOW" ]; then CPUDYN_OPTS="$CPUDYN_OPTS -l $THROTTLING_LOW"; fi
+ if [ -n "$TIMEOUT" ]; then CPUDYN_OPTS="$CPUDYN_OPTS -t $TIMEOUT"; fi
+ if [ -n "$DISKS" ]; then CPUDYN_OPTS="$CPUDYN_OPTS -h $DISKS"; fi
+ if [ "$NICE" = "yes" ]; then CPUDYN_OPTS="$CPUDYN_OPTS -nice"; fi
+
+ ebegin "Starting cpudynd"
+ if checkconfig; then
+ start-stop-daemon --start --quiet --pidfile $PIDFILE \
+ --background --make-pidfile --exec $DAEMON -- $CPUDYN_OPTS
+ eend $?
+ else
+ eend 1
+ fi
+}
+
+stop() {
+ ebegin "Stopping cpudynd"
+ start-stop-daemon --stop --quiet --pidfile $PIDFILE \
+ --exec $DAEMON && rm -f $PIDFILE
+ eend $?
+}
+
+min() {
+ ebegin "Forcing minimal speed"
+ kill -USR2 $(cat ${PIDFILE})
+ eend $?
+}
+max() {
+ ebegin "Forcing maximal speed"
+ kill -USR1 $(cat ${PIDFILE})
+ eend $?
+}
+dynamic() {
+ ebegin "Resetting to default dynamic speed"
+ kill -HUP $(cat ${PIDFILE})
+ eend $?
+}
+
+# vim:ts=4 noexpandtab:
diff --git a/sys-power/cpudyn/metadata.xml b/sys-power/cpudyn/metadata.xml
new file mode 100644
index 000000000000..4538a68724a6
--- /dev/null
+++ b/sys-power/cpudyn/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer><email>maintainer-needed@gentoo.org</email></maintainer>
+</pkgmetadata>