diff options
author | Joshua Charles Campbell <warpzero@gentoo.org> | 2004-03-16 04:52:22 +0000 |
---|---|---|
committer | Joshua Charles Campbell <warpzero@gentoo.org> | 2004-03-16 04:52:22 +0000 |
commit | 0cbd1576a9eb8e95ed8b16dcc1a02b65fcd5cea4 (patch) | |
tree | 49d77d64090bcf991702368a1aea5a359a5cf608 /app-laptop/pmud/files | |
parent | app-laptop moves for ppc (Manifest recommit) (diff) | |
download | gentoo-2-0cbd1576a9eb8e95ed8b16dcc1a02b65fcd5cea4.tar.gz gentoo-2-0cbd1576a9eb8e95ed8b16dcc1a02b65fcd5cea4.tar.bz2 gentoo-2-0cbd1576a9eb8e95ed8b16dcc1a02b65fcd5cea4.zip |
app-laptop moves for ppc
Diffstat (limited to 'app-laptop/pmud/files')
-rw-r--r-- | app-laptop/pmud/files/0.10.1-deb-fcntl.patch | 28 | ||||
-rw-r--r-- | app-laptop/pmud/files/digest-pmud-0.10.1-r2 | 1 | ||||
-rw-r--r-- | app-laptop/pmud/files/digest-pmud-0.10.1-r3 | 1 | ||||
-rw-r--r-- | app-laptop/pmud/files/pmud-file-locations.patch | 13 | ||||
-rw-r--r-- | app-laptop/pmud/files/pmud-makefile-x-gentoo.diff | 21 | ||||
-rw-r--r-- | app-laptop/pmud/files/pmud.start | 23 | ||||
-rw-r--r-- | app-laptop/pmud/files/power.conf | 31 | ||||
-rw-r--r-- | app-laptop/pmud/files/pwrctl | 300 | ||||
-rw-r--r-- | app-laptop/pmud/files/pwrctl-local | 91 |
9 files changed, 509 insertions, 0 deletions
diff --git a/app-laptop/pmud/files/0.10.1-deb-fcntl.patch b/app-laptop/pmud/files/0.10.1-deb-fcntl.patch new file mode 100644 index 000000000000..21e5f0d1ab06 --- /dev/null +++ b/app-laptop/pmud/files/0.10.1-deb-fcntl.patch @@ -0,0 +1,28 @@ +--- pmud.orig 2004-01-22 21:49:48.351629584 +0100 ++++ pmud.c 2004-01-22 21:53:45.464582936 +0100 +@@ -360,10 +360,10 @@ + + chk(pmu_fd < 0, "Couldn't open " PMU_FILE " or " PMU_DEVFS_FILE); + +- chk(fcntl(pmu_fd, F_GETFL, &fl) < 0, "fcntl(F_GETFL)"); ++ chk( (fl = fcntl(pmu_fd, F_GETFL)) < 0, "fcntl(F_GETFL)"); + + fl |= O_NONBLOCK; +- chk(fcntl(pmu_fd, F_SETFL, &fl) < 0, "fcntl(F_SETFL)"); ++ chk(fcntl(pmu_fd, F_SETFL, fl) < 0, "fcntl(F_SETFL)"); + + add_fd(pmu_fd, POLLIN, pmu_intr, NULL); + +@@ -1194,10 +1194,10 @@ + struct sockstate *ss; + + fe = accept(fd, NULL, 0); +- chk(fcntl(fe, F_GETFL, &fl) < 0, "fcntl(F_GETFL)"); ++ chk((fl =fcntl(fe, F_GETFL)) < 0, "fcntl(F_GETFL)"); + + fl |= O_NONBLOCK; +- chk(fcntl(fe, F_SETFL, &fl) < 0, "fcntl(F_SETFL)"); ++ chk(fcntl(fe, F_SETFL, fl) < 0, "fcntl(F_SETFL)"); + + ss = malloc(sizeof(*ss)); + if (ss == 0) diff --git a/app-laptop/pmud/files/digest-pmud-0.10.1-r2 b/app-laptop/pmud/files/digest-pmud-0.10.1-r2 new file mode 100644 index 000000000000..777c71bda40a --- /dev/null +++ b/app-laptop/pmud/files/digest-pmud-0.10.1-r2 @@ -0,0 +1 @@ +MD5 1bdc546199cd7e745c2cf7f560a52198 pmud-0.10.1.tar.gz 68417 diff --git a/app-laptop/pmud/files/digest-pmud-0.10.1-r3 b/app-laptop/pmud/files/digest-pmud-0.10.1-r3 new file mode 100644 index 000000000000..777c71bda40a --- /dev/null +++ b/app-laptop/pmud/files/digest-pmud-0.10.1-r3 @@ -0,0 +1 @@ +MD5 1bdc546199cd7e745c2cf7f560a52198 pmud-0.10.1.tar.gz 68417 diff --git a/app-laptop/pmud/files/pmud-file-locations.patch b/app-laptop/pmud/files/pmud-file-locations.patch new file mode 100644 index 000000000000..748deae69919 --- /dev/null +++ b/app-laptop/pmud/files/pmud-file-locations.patch @@ -0,0 +1,13 @@ +--- pmud-0.10.1/pmud.8~ 2001-12-15 16:52:40.000000000 -0600 ++++ pmud-0.10.1/pmud.8 2002-04-13 19:26:00.000000000 -0500 +@@ -160,8 +160,8 @@ + /etc/power/pwrctl-local + /etc/power/levels + /etc/powerstatus +-/etc/rc.d/init.d/pmud +-/etc/sysconfig/power ++/etc/init.d/pmud ++/etc/power.conf + .fi + .Sh AUTHORS + initial pmud package by Paul Mackerras and initial manual and changes to diff --git a/app-laptop/pmud/files/pmud-makefile-x-gentoo.diff b/app-laptop/pmud/files/pmud-makefile-x-gentoo.diff new file mode 100644 index 000000000000..5015bf4a37cd --- /dev/null +++ b/app-laptop/pmud/files/pmud-makefile-x-gentoo.diff @@ -0,0 +1,21 @@ +--- pmud-0.10.1/Makefile~ Mon Apr 29 12:31:01 2002 ++++ pmud-0.10.1/Makefile Mon Apr 29 12:56:04 2002 +@@ -39,7 +39,8 @@ + $(CC) $(CFLAGS) -o fblevel fblevel.c + + xmouse: xmouse.c +- $(CC) $(CLAGS) -o xmouse xmouse.c -L/usr/X11R6/lib -lX11 ++ (test -e /usr/X11R6/include/X11/Xlib.hh && \ ++ $(CC) $(CFLAGS) -o xmouse xmouse.c -L/usr/X11R6/lib -lX11; true) + + tcp.o: tcp.c tcp.h + $(CC) $(CFLAGS) -c tcp.c +@@ -49,7 +50,7 @@ + install -c snooze /sbin + install -c wakebay /sbin + install -c fblevel /sbin +- install -c xmouse /usr/X11R6/bin ++ (test -e xmouse && install -c xmouse /usr/X11R6/bin; true) + install -c Batmon /usr/bin + install -c -D pwrctl /etc/power/pwrctl + cp pmud.rc /etc/rc.d/init.d/pmud diff --git a/app-laptop/pmud/files/pmud.start b/app-laptop/pmud/files/pmud.start new file mode 100644 index 000000000000..dfc3a8c01420 --- /dev/null +++ b/app-laptop/pmud/files/pmud.start @@ -0,0 +1,23 @@ +#!/sbin/runscript +# Copyright 1999-2004 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-laptop/pmud/files/pmud.start,v 1.1 2004/03/16 04:50:41 warpzero Exp $ + +depend() { + need bootmisc + need net.lo +} + +[ -f /etc/power.conf ] && . /etc/power.conf + +start() { + ebegin "Starting PMUD" + start-stop-daemon --start --quiet --exec /sbin/pmud -- $PMUD_FLAGS >/dev/null 2>&1 + eend $? +} + +stop() { + ebegin "Stopping PMUD" + start-stop-daemon --stop --quiet --exec /sbin/pmud -- >/dev/null 2>&1 + eend $? +} diff --git a/app-laptop/pmud/files/power.conf b/app-laptop/pmud/files/power.conf new file mode 100644 index 000000000000..51ca6f7b9742 --- /dev/null +++ b/app-laptop/pmud/files/power.conf @@ -0,0 +1,31 @@ +# ----------------------------------------------------------------------------- +# Specify the pmud start flags here, you can use the following flags: +# ----------------------------------------------------------------------------- +# -a : enable apmd compatibility mode (fifo /etc/power/apm) +# -d : enable debugging text; this flag implicitly +# sets the -n flag to prevent backgrounding. +# -f <facility>: use <facility> for syslogd(8) messages. +# -h : this text. +# -k : do not detect lid close +# -K : do not detect lid close when on AC\n" +# -l <seconds> : the numbers of <seconds> power left which +# is considered to be a critical low level. +# -m <seconds> : the number of <seconds> a critical low (see +# the -l flag) power level has to endure in +# order to enable sleeping|shutdown. +# -n : do not detach. With this option the daemon +# will not become a background process. +# -p <port> : listen on <port> for requestes. +# -s : send SIGPWR to init(8) on low power level; +# this does not put the machine to sleep as +# another SIGPWR needs to be send to init(8) +# when power is restored. +# -S : same as -s, but also send SIGPWR on every +# sleep request or closing of the lid +# -u : communicate through a AF_UNIX socket. +# -v : print the version string of pmud. +# +# see also pmud(8) +# ----------------------------------------------------------------------------- + +PMUD_FLAGS=-a diff --git a/app-laptop/pmud/files/pwrctl b/app-laptop/pmud/files/pwrctl new file mode 100644 index 000000000000..162e62fce67d --- /dev/null +++ b/app-laptop/pmud/files/pwrctl @@ -0,0 +1,300 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# $Id: pwrctl,v 1.1 2004/03/16 04:50:41 warpzero Exp $ +# +# This script is invoked by pmud to configure the system for a +# given power level. The desired level is indicated by the first +# argument and can take the following values: +# +# minimum = minimum power +# medium = medium power +# maximum = full power +# sleep = prepare for sleep +# wakeup = system woke up after a sleep +# warning = low battery condition detected, issue a warning to users +# +# the second argument gives the current power source, and can take the +# following values: +# +# ac +# battery +# +# This script is invoked when the AC power is connected or disconnected, +# and also immediately after sleep. If the script /etc/power/pwrctl-local +# is present and executable, it will be called by this script before the +# main body of this script is executed. If pwrctl-local returns 1, then +# the main body of this script is NOT executed, in all other cases the +# main body of this script will be executed. +# +# Note that if you leave pwrctl-local writable by others than root (which +# should be the owner) you have created a serious security hole! +# +# You can edit this file, but it's better to edit /etc/power/pwrctl-local +# as that file will not be overwritten on upgrades. +# ----------------------------------------------------------------------------- +# Debian add-on: support (sort of) for Core99 machines (Pismo,...). The +# Pismo can't sleep right now so it will wake again immediately. We spin +# down the disk on sleep, turn off backlight power and ignore the wakeup. +# +# While things are stabilizing, these commands could be used to put the system +# into absolute minimum power mode. You can use commands of this sort in +# /etc/init.d/powerfail if needs be (sample powerfail script is in +# /usr/share/doc/sysvinit/examples/). +# fblevel 0 +# [ "`cat /proc/ide/hde/model`" != "(none)" ] && hdparm -f -S 1 -Y /dev/hde +# hdparm -f -S 1 -Y /dev/hda +# Use this to switch the display back on if the powerfail status is called +# off: +# fblevel 12 +# +# 01/09/13: Recent 2.4 kernel versions support sleep properly, by all +# accounts. So shut down only if kernel version is insufficient. +# Sample code to deal with broken airport drivers moved to pwrctl-local +# (courtesy Tom Rini). +# +# $Log: pwrctl,v $ +# Revision 1.1 2004/03/16 04:50:41 warpzero +# app-laptop moves for ppc +# +# Revision 1.1 2002/04/27 10:34:28 pvdabeel +# PPC sys-apps merge +# +# Revision 1.1 2002/04/14 03:41:30 kain +# Initial import of PMUD for gentoo-ppc +# +# Revision 1.1.1.1 2001/12/07 11:31:53 sleemburg +# Initial CVS import of the unreleased pmud-0.8 to apmud (new project name +# because of a name clash at sourceforge.net). +# +# Revision 1.6 2000/12/12 08:56:57 stephan +# support for iBook and Pismo (same as other G3's) +# +# Revision 1.5 2000/10/09 14:33:40 stephan +# wakebay added +# +# Revision 1.4 2000/05/11 14:54:45 stephan +# pmud 0.6 changes +# +# Revision 1.3 2000/03/25 21:26:32 stephan +# pmud-0.5 changes +# +# Revision 1.2 2000/03/09 13:01:50 stephan +# formatting and call to pwrctl-local +# +# Revision 1.1 2000/01/06 13:48:19 stephan +# Initial revision +# ----------------------------------------------------------------------------- +logger=/usr/bin/logger +localfun=/etc/power/pwrctl-local + +function do_warn() +{ + local msg="Low battery, system will go down..." + + ( + /usr/X11R6/bin/xmessage -center -timeout 15 "$msg" || \ + echo "$msg" | /usr/bin/wall + ) & +} + +function pwrctl_G3() +{ + case "$1" in + minimum) + # min power, set disk to spin down after 1 minute + [ -f /sbin/hdparm ] && hdparm -p -S 12 /dev/hda + ;; + medium) + # medium power, set disk to spin down after 2.5 minutes + [ -f /sbin/hdparm ] && hdparm -p -S 30 /dev/hda + ;; + maximum) + case "$2" in + ac) + # on mains, do not spin down + [ -f /sbin/hdparm ] && hdparm -p -S 0 /dev/hda + ;; + *) + # on battery, set disk to spin down after 5 minutes + [ -f /sbin/hdparm ] && hdparm -p -S 60 /dev/hda + ;; + esac + ;; + warning) + do_warn + ;; + lid-closed) + ;; + lid-opened) + ;; + sleep) + ;; + wakeup) + [ -f /proc/sys/dev/cdrom/info ] && { + device=$(cat /proc/sys/dev/cdrom/info | ( + IFS=":" + while read var val + do + [ "$var" = "drive name" ] && { + echo $val + break + } + done + )) + [ ! -z "$device" ] && { + /sbin/wakebay /dev/${device} + } + } + ;; + *) + $logger -p daemon.error -t pwrctl "$0: invalid arg $1" + ;; + esac +} + +#------------------------------------------------------------------------------ +# This is largely a no-op on iBook or Pismo, as we don't know how to handle +# the sleep functions yet. Instead, we shut down on the spot. +#------------------------------------------------------------------------------ + +function pwrctl_Core99() +{ + case "$1" in + minimum) + # min power, set disk to spin down after 1 minute + [ -f /sbin/hdparm ] && hdparm -p -S 12 /dev/hda + ;; + medium) + # medium power, set disk to spin down after 2.5 minutes + [ -f /sbin/hdparm ] && hdparm -p -S 30 /dev/hda + ;; + maximum) + case "$2" in + ac) + # on mains, do not spin down + [ -f /sbin/hdparm ] && hdparm -p -S 0 /dev/hda + ;; + *) + # on battery, set disk to spin down after 5 minutes + [ -f /sbin/hdparm ] && hdparm -p -S 60 /dev/hda + ;; + esac + ;; + warning) + do_warn + ;; + lid-closed) + ;; + lid-opened) + ;; + sleep) + # We may end up here if someone closed the lid ... + # SIGPWR can be sent to init anyway with -s option, do the only + # safe thing for now: shut the hell down on 2.2 kernels, or anything + # below a known safe 2.4 version. + KVER=`uname -r` + case "$KVER" in + 2.2.*|2.3.*|2.4.[1-7]|2.4.[1-7]-*) + $logger -p daemon.error -t pwrctl "$0: insufficient kernel verison - sleep function not implemented, shutting down!" + echo "Kernel does not support sleep, shutting down!" | /usr/bin/wall + /sbin/shutdown -h now + ;; + *) + ;; + esac + ;; + wakeup) + # maybe force wakeup of media bay devices? + ;; + *) + $logger -p daemon.error -t pwrctl "$0: invalid arg $1" + ;; + esac +} + +# ----------------------------------------------------------------------------- +# On the 3400, for minimum power, we put the CPU into nap mode +# (rather than doze mode) when it is idle. This reduces power +# consumption but means that DMA is no longer cache coherent. +# Therefore we have to disable DMA, including the ethernet. +# We also turn the ethernet off during sleep. +# ----------------------------------------------------------------------------- + +function pwrctl_3400() +{ + case "$1" in + minimum) + ifconfig eth0 down + [ -f /sbin/hdparm ] && hdparm -d0 -S 12 /dev/hda + [ "`cat /proc/ide/hdc/model`" != "(none)" ] && [ -f /sbin/hdparm ] && hdparm -d0 /dev/hdc + echo 1 >/proc/sys/kernel/powersave-nap + ;; + medium) + echo 0 >/proc/sys/kernel/powersave-nap + [ -f /sbin/hdparm ] && hdparm -d1 -p -S 30 /dev/hda + [ "`cat /proc/ide/hdc/model`" != "(none)" ] && [ -f /sbin/hdparm ] && hdparm -d1 /dev/hdc + ifconfig eth0 up + ;; + maximum) + echo 0 >/proc/sys/kernel/powersave-nap + case "$2" in + ac) + # on mains, do not spin down + [ -f /sbin/hdparm ] && hdparm -d1 -p -S 0 /dev/hda + ;; + *) + # on battery, set disk to spin down after 5 minutes + [ -f /sbin/hdparm ] && hdparm -d1 -p -S 60 /dev/hda + ;; + esac + [ "`cat /proc/ide/hdc/model`" != "(none)" ] && [ -f /sbin/hdparm ] && hdparm -d1 /dev/hdc + ifconfig eth0 up + ;; + warning) + do_warn + ;; + sleep) + ifconfig eth0 down + ;; + wakeup) + ifconfig eth0 up + ;; + *) + $logger -p daemon.error -t pwrctl "$0: invalid arg $1" + ;; + esac +} + +# ----------------------------------------------------------------------------- +# main +# ----------------------------------------------------------------------------- + +[ -x $localfun ] && { + $logger -p daemon.info -t pwrctl "calling $localfun $*" + + $localfun $* + + case $? in + 0) + $logger -p daemon.debug -t pwrctl "continuing with main" + ;; + 1) + $logger -p daemon.debug -t pwrctl "skipping main" + exit 0 + ;; + *) + $logger -p daemon.error -t pwrctl "error in $localfun" + ;; + esac +} + +case "$PMUVERSION" in +9) pwrctl_3400 $1 $2 ;; +10|11) pwrctl_G3 $1 $2 ;; +12) pwrctl_Core99 $1 $2 ;; +*) + $logger -p daemon.error -t pwrctl "no function for PMU $PMUVERSION" +;; +esac >>/var/log/pwrctls 2>&1 + +exit 0 diff --git a/app-laptop/pmud/files/pwrctl-local b/app-laptop/pmud/files/pwrctl-local new file mode 100644 index 000000000000..60567e3fe5d0 --- /dev/null +++ b/app-laptop/pmud/files/pwrctl-local @@ -0,0 +1,91 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# $Id: pwrctl-local,v 1.1 2004/03/16 04:50:41 warpzero Exp $ +# +# This script is invoked by pwrctl to configure the system for a +# given power level. The desired level is indicated by the first +# argument, which can have the following values: +# +# minimum = minimum power +# medium = medium power +# maximum = full power +# sleep = prepare for sleep +# wakeup = system woke up after a sleep +# warning = low battery condition detected, issue a warning to users +# +# the second argument gives the current power source, and can take the +# following values: +# +# ac +# battery +# +# +# This script can be invoked by pwrctl when it is named /etc/power/pwrctl-local +# and is executable. Pwrctl is called by pmud on a power event. If this +# script returns the value 1, then pwrctl will skip it's main body +# +# Example usage: use ifdown -a on sleep (and ifup -a on wakeup) to +# automagically renew DHCP leases. Similar use of iwconfig down/up might be +# required for Wavelan users with older versions of the kernel. +# +# ----------------------------------------------------------------------------- +# $Log: pwrctl-local,v $ +# Revision 1.1 2004/03/16 04:50:41 warpzero +# app-laptop moves for ppc +# +# Revision 1.1 2002/04/27 10:34:28 pvdabeel +# PPC sys-apps merge +# +# Revision 1.1 2002/04/14 03:41:31 kain +# Initial import of PMUD for gentoo-ppc +# +# Revision 1.1.1.1 2001/12/07 11:31:48 sleemburg +# Initial CVS import of the unreleased pmud-0.8 to apmud (new project name +# because of a name clash at sourceforge.net). +# +# Revision 1.2 2000/03/25 21:26:37 stephan +# pmud-0.5 changes +# +# Revision 1.1 2000/03/09 13:02:18 stephan +# Initial revision +# +# ----------------------------------------------------------------------------- +logger=/usr/bin/logger + +# ----------------------------------------------------------------------------- +# main +# ----------------------------------------------------------------------------- +case "$1" in +minimum) + $logger -p daemon.info -t pwrctl-local "minimum power $2" +;; +medium) + $logger -p daemon.info -t pwrctl-local "medium power $2" +;; +maximum) + $logger -p daemon.info -t pwrctl-local "maximum power $2" + $logger -p daemon.info -t pwrctl-local "skipping pwrctl-main" + exit 1 +;; +warning) + /usr/bin/wall "Low battery, system going down any minute now" +;; +lid-closed) + $logger -p daemon.info -t pwrctl-local "lid-closed $2" +;; +lid-opened) + $logger -p daemon.info -t pwrctl-local "lid-opened $2" +;; +sleep) + $logger -p daemon.info -t pwrctl-local "sleep $2" +;; +wakeup) + $logger -p daemon.info -t pwrctl-local "sleep $2" +;; +*) + $logger -p daemon.error -t pwrctl-local "invalid arg $1 $2" + exit 2 +;; +esac + +exit 0 |