#!/bin/sh # # apmd_proxy - program dispatcher for APM daemon # # inspired from Craig Markwardt (craigm@lheamail.gsfc.nasa.gov) 21 May 1999 # modified for the Vaio PCG-C1VE by Nicolas Henry 9 Jan 2007 # # This shell script is called by the APM daemon (apmd) when a power # management event occurs. Its first and second arguments describe the # event. For example, apmd will call "apmd_proxy suspend system" just # before the system is suspended. # # Here are the possible arguments: # # start - APM daemon has started # stop - APM daemon is shutting down # suspend critical - APM system indicates critical suspend (++) # suspend system - APM system has requested suspend mode # suspend user - User has requested suspend mode # standby system - APM system has requested standby mode # standby user - User has requested standby mode # resume suspend - System has resumed from suspend mode # resume standby - System has resumed from standby mode # resume critical - System has resumed from critical suspend # change battery - APM system reported low battery # change power - APM system reported AC/battery change # change time - APM system reported time change (*) # change capability - APM system reported config. change (+) # # (*) - APM daemon may be configured to not call these sequences # (+) - Available if APM kernel supports it. # (++) - "suspend critical" is never passed to apmd from the kernel, # so we will never see it here. Scripts that process "resume # critical" events need to take this into account. # # It is the proxy script's responsibility to examine the APM status # (via /proc/apm) or other status and to take appropriate actions. # For example, the script might unmount network drives before the # machine is suspended. # # In Debian, the usual way of adding functionality to the proxy is to # add a script to /etc/apm/event.d. This script will be called by # apmd_proxy (via run-parts) with the same arguments. # # If it is important that a certain set of script be run in a certain # order on suspend and in a different order on resume, then put all # the scripts in /etc/apm/scripts.d instead of /etc/apm/event.d and # symlink to these from /etc/apm/suspend.d, /etc/apm/resume.d and # /etc/apm/other.d using names whose lexicographical order is the same # as the desired order of execution. # # If the kernel's APM driver supports it, apmd_proxy can return a non-zero # exit status on suspend and standby events, indicating that the suspend # or standby event should be rejected. # # ******************************************************************* set -e # The following doesn't yet work, because current kernels (up to at least # 2.4.20) do not support rejection of APM events. Supporting this would # require substantial modifications to the APM driver. We will re-enable # this feature if the driver is ever modified. -- cph@debian.org # #SUSPEND_ON_AC=false #[ -r /etc/apm/apmd_proxy.conf ] && . /etc/apm/apmd_proxy.conf # #if [ "${SUSPEND_ON_AC}" = "false" -a "${2}" = "system" ] \ # && on_ac_power >/dev/null; then # # Reject system suspends and standbys if we are on AC power # exit 1 # Reject (NOTE kernel support must be enabled) #fi PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # item n°4 de cat /proc/apm #0x00 = sur batterie #0x01=sur courant PLUG=`cat /proc/apm | cut -d " " -f 4` if [ "$PLUG" = "0x00" ] ; then logger sur batterie /usr/bin/spicctrl -b 0 /usr/bin/longrun -f economy -s 0 100 fi if [ "$PLUG" = "0x01" ] ; then logger sur courant /usr/bin/spicctrl -b 180 /usr/bin/longrun -f performance -s 0 100 fi case "$1" in start) logger Demarrage de APMd le demon de gestio d alimentation electrique. /sbin/hdparm -m16 -c1 -b0 -B255 -S241 /dev/hda ;; change) if [ "$2" = "power" ] ; then logger changement alimentation detecte fi if [ "$2" = "battery" ] ; then logger Batterie faible ! fi ;; stop) logger Arret APM ;; esac exit 0