84 lines
2.2 KiB
Bash
84 lines
2.2 KiB
Bash
#!/bin/sh -
|
|
#
|
|
# $NetBSD: acadapter,v 1.2 2006/09/27 01:41:45 jnemeth 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
|