mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-22 19:44:21 +01:00
system/powernowd: Added to 12.2 repository
This commit is contained in:
parent
9e6923f009
commit
84c1b62f41
7 changed files with 288 additions and 0 deletions
12
system/powernowd/README
Normal file
12
system/powernowd/README
Normal file
|
@ -0,0 +1,12 @@
|
|||
This is a very simple program that will adjust the speed of your CPU
|
||||
depending on system load. It works as a client of the CPUFreq driver.
|
||||
It is designed for use with CPU's supporting AMD's PowerNow power
|
||||
management scheme, as it's algorithm works better if there are more
|
||||
than two CPU speeds available. (aka, ARM, AMD K6/K7, Via C3, and
|
||||
Crusoe as opposed to traditional Intel and Ultrasparc).
|
||||
|
||||
Powernowd uses the userspace governor, which is included in the Slackware
|
||||
kernel images.
|
||||
|
||||
It is not wise to run two concurrent cpu frequency adjusting programs,
|
||||
for example, cpufreqd and powernowd simultaneously.
|
22
system/powernowd/doinst.sh
Normal file
22
system/powernowd/doinst.sh
Normal file
|
@ -0,0 +1,22 @@
|
|||
config() {
|
||||
NEW="$1"
|
||||
OLD="$(dirname $NEW)/$(basename $NEW .new)"
|
||||
# If there's no config file by that name, mv it over:
|
||||
if [ ! -r $OLD ]; then
|
||||
mv $NEW $OLD
|
||||
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
|
||||
# toss the redundant copy
|
||||
rm $NEW
|
||||
fi
|
||||
# Otherwise, we leave the .new copy for the admin to consider...
|
||||
}
|
||||
|
||||
# Keep same perms on rc.powernowd.new:
|
||||
if [ -e etc/rc.d/rc.powernowd ]; then
|
||||
cp -a etc/rc.d/rc.powernowd etc/rc.d/rc.powernowd.new.incoming
|
||||
cat etc/rc.d/rc.powernowd.new > etc/rc.d/rc.powernowd.new.incoming
|
||||
mv etc/rc.d/rc.powernowd.new.incoming etc/rc.d/rc.powernowd.new
|
||||
fi
|
||||
|
||||
config etc/rc.d/rc.powernowd.new
|
||||
|
108
system/powernowd/powernowd.1
Normal file
108
system/powernowd/powernowd.1
Normal file
|
@ -0,0 +1,108 @@
|
|||
.\" Hey, EMACS: -*- nroff -*-
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH POWERNOWD 1 "November 3, 2003"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
powernowd \- control the speed and voltage of cpus
|
||||
.SH SYNOPSIS
|
||||
.B powernowd
|
||||
.RI [ options ]
|
||||
.SH DESCRIPTION
|
||||
This is a simple client to the cpufreq driver, and uses the sysfs interface
|
||||
in Linux kernel version 2.6. You need a supported cpu, and a
|
||||
kernel that supports sysfs to run this daemon.
|
||||
|
||||
The name is somewhat misleading, as any processor supported by the kernel
|
||||
cpufreq driver will work, not just processors supporting AMD's
|
||||
PowerNow! technology. This daemon works best with processors that support
|
||||
more then 2 frequency steps, like those with AMD's PowerNow!, and Intel's
|
||||
Pentium M family.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-h
|
||||
Prints a help message.
|
||||
.TP
|
||||
.B \-d
|
||||
Don't detach from terminal (default is to detach and run in the background)
|
||||
.TP
|
||||
.B \-v
|
||||
Increase output verbosity, can be used more than once.
|
||||
.TP
|
||||
.B \-q
|
||||
Quiet mode, only emergency output.
|
||||
.TP
|
||||
.B \-n
|
||||
Include nice'd processes in calculations.
|
||||
.TP
|
||||
.B \-m
|
||||
Modes of operation, 0 = SINE, 1 = AGGRESSIVE (default), 2 = PASSIVE, 3 = LEAPS
|
||||
.TP
|
||||
.B \-s
|
||||
Frequency step in kHz (default = 100000)
|
||||
.TP
|
||||
.B \-p
|
||||
Polling frequency in msecs (default = 1000)
|
||||
.TP
|
||||
.B \-u
|
||||
CPU usage upper limit percentage [0 .. 100, default 80]
|
||||
.TP
|
||||
.B \-l
|
||||
CPU usage lower limit percentage [0 .. 100, default 20]
|
||||
.SH MODES
|
||||
There are 4 modes supported by this client:
|
||||
|
||||
Mode 0, SINE, changes the frequency as a sine wave function, raising the
|
||||
frequency by "step" Hz every time the CPU usage goes over 80%,
|
||||
and decreases it by "step" Hz when the CPU usage falls under 20%.
|
||||
|
||||
Mode 1, AGGRESSIVE, changes frequency by a sawtooth function.
|
||||
Immediately jumps to the highest frequency whenever CPU usage goes
|
||||
over 80%, and decreases by "step" Hz as usage drops below
|
||||
20%. This is the default behavior.
|
||||
|
||||
Mode 2, PASSIVE, is the inverse of AGGRESSIVE.
|
||||
Immediately jump to lowest frequency when usage drops below 20%.
|
||||
Raise by "step" Hz if it goes above 80%.
|
||||
|
||||
Mode 3, LEAPS, immediately jumps to the highest frequency if usage is above
|
||||
80%, and immediately jumps to the lowest frequency if usage is below 20%.
|
||||
.SH PHILOSOPHY
|
||||
Why another CPUFreq client daemon?
|
||||
|
||||
Some other daemons are better suited for two speed states, and
|
||||
toggle between two states based upon load. This daemon does a better job
|
||||
handling intermediate steps.
|
||||
|
||||
Other daemons are written in Perl, Python, or C++. This is a simple C
|
||||
program.
|
||||
|
||||
Some other daemons rely on APM or ACPI.
|
||||
The sysfs interface to the 2.6
|
||||
kernel is simple, completely sufficient, and completely portable to all
|
||||
architectures that support the CPUfreq support in the kernel.
|
||||
|
||||
Some other daemons change thier behavior based upon battery status, AC
|
||||
status, temperature, etc. What good is having a nice powerful laptop if
|
||||
you can't use it at full speed, even for a few seconds, while on battery
|
||||
power? This daemon just measures CPU load, and bases decisions solely
|
||||
upon that.
|
||||
|
||||
SMP systems are supported, making this daemon useful for servers, too!
|
||||
.SH AUTHOR
|
||||
The powernowd program was written by John Clemens <clemej@alum.rpi.edu>
|
||||
|
||||
This manual page was written by Bdale Garbee <bdale@gag.com>,
|
||||
for the Debian project (but may be used by others).
|
65
system/powernowd/powernowd.SlackBuild
Normal file
65
system/powernowd/powernowd.SlackBuild
Normal file
|
@ -0,0 +1,65 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Slackware build script for powernowd
|
||||
|
||||
# Written by Daniel LEVAI leva@ecentrum.hu
|
||||
|
||||
PRGNAM=powernowd
|
||||
VERSION=${VERSION:-1.00}
|
||||
ARCH=${ARCH:-i486}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
CWD=$(pwd)
|
||||
TMP=${TMP:-/tmp/SBo}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
if [ "$ARCH" = "i486" ]; then
|
||||
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
|
||||
elif [ "$ARCH" = "i686" ]; then
|
||||
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||
elif [ "$ARCH" = "x86_64" ]; then
|
||||
SLKCFLAGS="-O2 -fPIC"
|
||||
fi
|
||||
|
||||
set -e # Exit on most errors
|
||||
|
||||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf $PRGNAM-$VERSION
|
||||
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
|
||||
cd $PRGNAM-$VERSION
|
||||
chown -R root:root .
|
||||
find . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||
-exec chmod 755 {} \; -o \
|
||||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||
-exec chmod 644 {} \;
|
||||
|
||||
# We'll do all of this manually
|
||||
gcc $SLKCFLAGS -Wall -o powernowd powernowd.c
|
||||
|
||||
mkdir -p $PKG/usr/sbin
|
||||
strip --strip-unneeded powernowd
|
||||
install -m 755 powernowd $PKG/usr/sbin/
|
||||
|
||||
mkdir -p $PKG/etc/rc.d/
|
||||
cat $CWD/rc.powernowd.new > $PKG/etc/rc.d/rc.powernowd.new
|
||||
|
||||
mkdir -p $PKG/usr/man/man1
|
||||
gzip -9c $CWD/powernowd.1 > $PKG/usr/man/man1/powernowd.1.gz
|
||||
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a \
|
||||
README \
|
||||
$PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
cd $PKG
|
||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
|
8
system/powernowd/powernowd.info
Normal file
8
system/powernowd/powernowd.info
Normal file
|
@ -0,0 +1,8 @@
|
|||
PRGNAM="powernowd"
|
||||
VERSION="1.00"
|
||||
HOMEPAGE="http://deater.net/john/powernowd.html"
|
||||
DOWNLOAD="http://deater.net/john/powernowd-1.00.tar.gz"
|
||||
MD5SUM="abc48b690d104e9e71a85400ba19d799"
|
||||
MAINTAINER="Daniel LEVAI"
|
||||
EMAIL="leva@ecentrum.hu"
|
||||
APPROVED="rworkman"
|
54
system/powernowd/rc.powernowd.new
Normal file
54
system/powernowd/rc.powernowd.new
Normal file
|
@ -0,0 +1,54 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Written by Daniel LEVAI for the Slackware package
|
||||
# Modified by Robby Workman <rworkman@slackbuilds.org>
|
||||
|
||||
# For the options, see the README of the man page
|
||||
#OPTS='-q'
|
||||
|
||||
powernowd_start() {
|
||||
local PID=$(pgrep -x powernowd);
|
||||
if [ $PID ];then
|
||||
echo "powernowd is already running ($PID)"
|
||||
exit 1
|
||||
else
|
||||
/usr/sbin/powernowd $OPTS
|
||||
fi
|
||||
}
|
||||
|
||||
powernowd_stop() {
|
||||
local PID=$(pgrep -x powernowd);
|
||||
if [ -z $PID ];then
|
||||
echo "powernowd is not running"
|
||||
exit 1
|
||||
else
|
||||
local i=1
|
||||
while pgrep -x powernowd > /dev/null;do
|
||||
if [ $i -gt 3 ];then
|
||||
echo "Couldn't stop powernowd..."
|
||||
exit 1
|
||||
fi
|
||||
pkill -x powernowd
|
||||
i=$(( $i + 1 ));
|
||||
sleep 1;
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
powernowd_start
|
||||
;;
|
||||
stop)
|
||||
powernowd_stop
|
||||
;;
|
||||
restart)
|
||||
powernowd_stop
|
||||
sleep 1
|
||||
powernowd_start
|
||||
;;
|
||||
*)
|
||||
echo "$0 <start|stop|restart>"
|
||||
;;
|
||||
esac
|
||||
|
19
system/powernowd/slack-desc
Normal file
19
system/powernowd/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
|||
# HOW TO EDIT THIS FILE:
|
||||
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||
# up the first '|' above the ':' following the base package name, and the '|'
|
||||
# on the right side marks the last column you can put a character in. You must
|
||||
# make exactly 11 lines for the formatting to be correct. It's also
|
||||
# customary to leave one space after the ':'.
|
||||
|
||||
|-----handy-ruler-------------------------------------------------------|
|
||||
powernowd: This is a very simple program that will adjust the speed of your CPU
|
||||
powernowd: depending on system load. It works as a client of the CPUFreq driver.
|
||||
powernowd: It is designed for use with CPU's supporting AMD's PowerNow power
|
||||
powernowd: management scheme, as it's algorithm works better if there are more
|
||||
powernowd: then two CPU speeds available. (aka, ARM, AMD K6/K7, Via C3, and
|
||||
powernowd: Crusoe as opposed to traditional Intel and Ultrasparc).
|
||||
powernowd:
|
||||
powernowd: http://deater.net/john/powernowd.html
|
||||
powernowd:
|
||||
powernowd:
|
||||
powernowd:
|
Loading…
Reference in a new issue