User Tools

Site Tools


en:linux:scripts:handler.sh

/etc/acpi/handler.sh

ACPI events handler.

#!/bin/sh
# Default acpi script that takes an entry for all actions

# NOTE: This is a 2.6-centric script.  If you use 2.4.x, you'll have to
#       modify it to not use /sys

minspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq`
maxspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq`
setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"

set $*

case "$1" in
    button/power)
        #echo "PowerButton pressed!">/dev/tty5
        case "$2" in
            PWRF)   logger "PowerButton pressed: $2" ;;
            *)      logger "ACPI action undefined: $2" ;;
        esac
        ;;
    button/sleep)
        case "$2" in
            SLPB)   echo -n mem >/sys/power/state ;;
            *)      logger "ACPI action undefined: $2" ;;
        esac
        ;;
    ac_adapter)
        case "$2" in
            AC)
                case "$4" in
                    00000000)
                        echo -n $minspeed >$setspeed
                        #/etc/laptop-mode/laptop-mode start
                    ;;
                    00000001)
                        echo -n $maxspeed >$setspeed
                        #/etc/laptop-mode/laptop-mode stop
                    ;;
                esac
                ;;
            *)  logger "ACPI action undefined: $2" ;;
        esac
        ;;
    battery)
        case "$2" in
            BAT0)
                case "$4" in
                    00000000)   #echo "offline" >/dev/tty5
                    ;;
                    00000001)   #echo "online"  >/dev/tty5
						/usr/sbin/set_battery_thresholds
                    ;;
                esac
                ;;
            CPU0)	
                ;;
            *)  logger "ACPI action undefined: $2" ;;
        esac
        ;;
    button/lid)
        #echo "LID switched!">/dev/tty5
        ;;

	ibm/hotkey)
		logger "IBM/Hotkey: $1:$2:$3:$4:$5"
		case "$4" in
				00001002)
					logger "lock"
					;;
				00001003)
					logger "battery"
					;;
				00001004)
					logger "sleep"
					/usr/sbin/pm-suspend
					;;
				00001005)
					logger "wifi"
					ifconfig wlan0 up
					;;
				0000100c)
					logger "hibernate"
					/usr/sbin/pm-hibernate
					;;
		esac
		;;

    *)
        logger "ACPI group/action undefined: $1 / $2"
        ;;
esac
en/linux/scripts/handler.sh.txt · Last modified: 2010/01/08 16:53 (external edit)