diff options
Diffstat (limited to 'source/ap/pm-utils')
-rw-r--r-- | source/ap/pm-utils/README.SLACKWARE | 119 | ||||
-rwxr-xr-x | source/ap/pm-utils/pm-utils.SlackBuild | 105 | ||||
-rw-r--r-- | source/ap/pm-utils/pm-utils.url | 1 | ||||
-rw-r--r-- | source/ap/pm-utils/slack-desc | 19 |
4 files changed, 244 insertions, 0 deletions
diff --git a/source/ap/pm-utils/README.SLACKWARE b/source/ap/pm-utils/README.SLACKWARE new file mode 100644 index 000000000..071624395 --- /dev/null +++ b/source/ap/pm-utils/README.SLACKWARE @@ -0,0 +1,119 @@ +README.SLACKWARE +20090414 - rworkman@slackware.com + +=============================================================================== +PLEASE READ THIS ENTIRE FILE BEFORE REPORTING PROBLEMS OR ASKING FOR HELP! +=============================================================================== + +One of these routines should tell you whether any of the operations +are supported by your current kernel/userspace at all: + + for i in hibernate suspend suspend-hybrid ; do + pm-is-supported --$i \ + && echo "$i is supported" \ + || echo "$i is not supported" ; + done + + *OR* + + cat /sys/power/state + +Assuming they are supported, running "pm-suspend" as root should do a suspend +to ram, and "pm-hibernate" should suspend to disk. Note that you must have a +swap partition (or file, but partition is easier) which is large enough +(2x ram is good here) and the relevant initrd lines and such for this to work. +If you're not familiar with all of that, don't test pm-hibernate. +I don't have hardware which supports suspend-hybrid, so I have no idea if/how +it works at all. + +Here's the short version of using suspend to disk: + +Stanza in /etc/lilo.conf should look something like this: + image = /boot/vmlinuz-generic-smp-2.6.29.1-smp + initrd = /boot/initrd.gz + append = "resume=/dev/hda2" + root = /dev/hda1 + label = Slackware + read-only + +/etc/mkinitrd.conf should look something like this: + MODULE_LIST="jfs" + ROOTDEV="/dev/hda1" + ROOTFS="jfs" + RESUMEDEV="/dev/hda2" + +mkinitrd command invocation would be this: + mkinitrd -c -k 2.6.29.1-smp -F + +All of the above assumes at least a cursory understanding of what those +commands and parameters do. If it's not clear, don't attempt it on a +system that you can't easily reinstall without concern. + +============================================================================== + +If it works for you, and/or you want to automate it a bit, you'll find +some sample acpi event declarations and scripts here: + http://rlworkman.net/conf/acpi/ +A better option is to use the power manager daemon included with your choice +of desktop environment (both kde and xfce have one). + +============================================================================== + +If it doesn't work by default for you, consider having a look at + http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-index.html +for some debugging hints. Pay particular attention to this page: + http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-try.html + +If you are able to get your machine to suspend/resume correctly by passing +additional quirks on the command line, then I would like to know about it so +that upstream hal-info can get the correct information to use. Please email +the make/model and other relevant information about your machine along with +the full output of "lshal" and "lspci" attached, and what extra quirks you +needed to add for successful suspend/resume to rworkman@slackware.com + +============================================================================== + +If you need the system to do certain operations before going to sleep and +then undo them (or perhaps do something new) when waking back up, pm-utils +supports something called "hooks." The hooks installed by packages (not only +pm-utils itself) should be in /usr/lib/pm-utils/sleep.d/, while any hooks +installed by the local system administrator (e.g. things that are only an +issue on that one machine) should be in /etc/pm/sleep.d/. + +Looking at some of the existing hooks should give you a decent idea of their +capabilities; as a head start, the functions used in the hooks are declared +in /usr/lib/pm-utils/functions, which is inherited elsewhere by +/usr/lib/pm-utils/pm-functions. Note that an error exit code on any hook +will cause the sleep operation to fail, so if you don't care whether your +hook executes successfully, be sure to return an exit code of 0 (success) if +you don't want the suspend operation to fail. Some other exit codes are +also available; none of these will cause the suspend to fail: + $NA (not applicable), $NX (hook not executable), and $DX (hook disabled) + +One way to contribute to pm-utils indirectly is by writing and sending any +needed hooks scripts to upstream projects; as an example, the hook that +ships with wicd was contributed by me. Ideally, the pm-utils package should +have a very minimum number of hooks shipped with it, as they should ship with +the package to which the hook pertains; for example, the grub package would +ship its own hook. + +============================================================================== + +KNOWN ISSUES + +**** If you encounter either of these, mail rworkman@slackware.com **** + +If your alsa drivers don't correctly save and restore state across a sleep / +resume cycle (due to a buggy driver), then you will need to add the drivers +to a custom file named /etc/pm/config.d/defaults (create the file if it does +not exist already) in a variable named "SUSPEND_MODULES" - see the file at +/usr/lib/pm-utils/defaults for proper format. + +The /usr/lib/pm-utils/sleep.d/90clock does not run by default. It added +over a second to suspend, and the vast majority of hardware does not need it +to keep the clocks in sync. If you need this hook, you can set the +NEED_CLOCK_SYNC environment variable in a custom /etc/pm/config.d/defaults +file. + +============================================================================== + diff --git a/source/ap/pm-utils/pm-utils.SlackBuild b/source/ap/pm-utils/pm-utils.SlackBuild new file mode 100755 index 000000000..26e60714f --- /dev/null +++ b/source/ap/pm-utils/pm-utils.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Slackware build script for pm-utils + +# Copyright 2008, 2009 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=pm-utils +VERSION=1.2.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +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 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README* TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/pm-utils/pm-utils.url b/source/ap/pm-utils/pm-utils.url new file mode 100644 index 000000000..976c938fb --- /dev/null +++ b/source/ap/pm-utils/pm-utils.url @@ -0,0 +1 @@ +http://pm-utils.freedesktop.org diff --git a/source/ap/pm-utils/slack-desc b/source/ap/pm-utils/slack-desc new file mode 100644 index 000000000..8791c9304 --- /dev/null +++ b/source/ap/pm-utils/slack-desc @@ -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-------------------------------------------------------| +pm-utils: pm-utils (Power Management Utilities) +pm-utils: +pm-utils: The pm-utils package provides simple shell command line tools to +pm-utils: suspend and hibernate computers that can be used to run vendor or +pm-utils: distribution supplied scripts on suspend and resume. +pm-utils: +pm-utils: Homepage: http://pm-utils.freedesktop.org/ +pm-utils: +pm-utils: +pm-utils: +pm-utils: |