1#!/bin/sh -
2#
3#         $NetBSD: acadapter,v 1.4 2010/12/31 09:29:43 jruoho Exp $
4#
5# Generic script for acadapter events.
6#
7# Arguments passed by powerd(8):
8#
9#         device event
10
11case "${2}" in
12pressed)
13          logger -p info "${0}: Full performance mode" >&1
14
15          # Disable power saving mode on all network interfaces.
16          #
17          for intf in $(/sbin/ifconfig -l); do
18                    /sbin/ifconfig $intf -powersave >/dev/null 2>&1
19          done
20
21          # If you want to keep your hard disk idle while running
22          # on battery, the following commands will help.
23          #
24          # /sbin/atactl wd0 setidle 300
25          # /sbin/atactl wd0 setstandby 600
26
27          # Make sure syslogd is running.
28          #
29          # pkill syslogd
30          # /etc/rc.d/syslogd start
31
32          # Start cron daemon when running on power.
33          #
34          # /etc/rc.d/cron start
35
36          exit 0
37          ;;
38
39released)
40          logger -p info "${0}: Power saving mode" >&1
41
42          # Enable power saving mode on all network interfaces.
43          #
44          for intf in $(/sbin/ifconfig -l); do
45                    /sbin/ifconfig $intf powersave >/dev/null 2>&1
46          done
47
48          # When running on battery, we want to keep the disk idle for as long
49          # as possible. Unfortunately, things like cron and syslog make this
50          # very difficult. If you can live without cron or persistent logging,
51          # you can use the commands below to disable cron and syslogd.
52          #
53          # If you still want to see syslog messages, you can create a custom
54          # /etc/syslog.conf.battery that writes messages to /dev/console or
55          # possibly a free wsdisplay screen. Alternatively, /var/log could
56          # be mounted as tmpfs.
57
58          # Disk idle timeouts.
59          #
60          # /sbin/atactl wd0 setidle 30
61          # /sbin/atactl wd0 setstandby 120
62
63          # Stop the cron daemon.
64          #
65          # /etc/rc.d/cron stop
66
67          # Restart syslogd using a diskless configuration.
68          #
69          # pkill syslogd
70          # /usr/sbin/syslogd -s -f /etc/syslog.conf.battery
71
72          exit 0
73          ;;
74
75*)
76          logger -p warning "${0}: unsupported event ${2} on device ${1}" >&1
77          exit 1
78          ;;
79esac
80