NetBSD/etc/powerd/scripts/acadapter
pgoyette 09cc50c97b Enclose the ifconfig commands in $(...) so they actually do something.
Reported on current-users by Pierre Pronchery <khorben at defora dot org>
2008-08-22 11:18:21 +00:00

84 lines
2.2 KiB
Bash

#!/bin/sh -
#
# $NetBSD: acadapter,v 1.3 2008/08/22 11:18:21 pgoyette Exp $
#
# Generic script for acadapter events.
#
# Arguments passed by powerd(8):
#
# device event
case "${2}" in
pressed)
logger -p info "${0}: Full performance mode" >&1
# The following turns up brightness on a Sony Vaio laptop
/sbin/sysctl -w hw.sony0.brt=8 >/dev/null 2>&1
# Enable full performance mode for speedstep CPUs
/sbin/sysctl -w machdep.speedstep_state=1 2>&1
# Disable power saving mode on all network interfaces
for intf in $(/sbin/ifconfig -l); do
/sbin/ifconfig $intf -powersave >/dev/null 2>&1
done
#
# If you want to keep your hard disk idle while running on
# battery, the following commands will help.
#
# Disk idle timeouts
#/sbin/atactl wd0 setidle 300
#/sbin/atactl wd0 setstandby 600
# Make sure syslogd is running
#pkill syslogd
#/etc/rc.d/syslogd start
# Startup cron daemon when running on power
#/etc/rc.d/cron start
# All finished
exit 0
;;
released)
logger -p info "${0}: Power saving mode" >&1
# The following turns down brightness on a Sony Vaio laptop
/sbin/sysctl -w hw.sony0.brt=0 >/dev/null 2>&1
# Enable power saving mode for speedstep CPUs
/sbin/sysctl -w machdep.speedstep_state=0 >/dev/null 2>&1
# Enable power saving mode on all network interfaces
for intf in $(/sbin/ifconfig -l); do
/sbin/ifconfig $intf powersave >/dev/null 2>&1
done
#
# When running on battery, we want to keep the disk idle for as long
# as possible. Unfortunately, things like cron and syslog make this
# very difficult. If you can live without cron or persistent logging,
# you can use the commands below to disable cron and syslogd.
#
# If you still want to see syslog messages, you can create a custom
# /etc/syslog.conf.battery that writes messages to /dev/console or
# possibly a free wsdisplay screen.
#
# Disk idle timeouts
#/sbin/atactl wd0 setidle 30
#/sbin/atactl wd0 setstandby 120
# Stop the cron daemon
#/etc/rc.d/cron stop
# Restart syslogd using a diskless configuration
#pkill syslogd
#/usr/sbin/syslogd -s -f /etc/syslog.conf.battery
# All finished
exit 0
;;
*)
logger -p warning "${0}: unsupported event ${2} on device ${1}" >&1
exit 1
;;
esac