#!/bin/sh # # start of stop laptop mode, best run by a power management daemon when # ac gets connected/disconnected from a laptop # # FIXME: assumes HZ == 100 # age time, in seconds. should be put into a sysconfig file MAX_AGE=600 # kernel default dirty buffer age DEF_AGE=30 DEF_UPDATE=5 if [ ! -e /proc/sys/vm/laptop_mode ]; then echo "Kernel is not patched with laptop_mode patch." exit 1 fi if [ ! -w /proc/sys/vm/laptop_mode ]; then echo "You do not have enough privileges to enable laptop mode." exit 1 fi case "$1" in start) AGE=$((100*$MAX_AGE)) echo -n "Starting laptop mode" echo "1" > /proc/sys/vm/laptop_mode echo "$AGE" > /proc/sys/vm/dirty_expire_centisecs echo "$AGE" > /proc/sys/vm/dirty_writeback_centisecs echo "." ;; stop) U_AGE=$((100*$DEF_UPDATE)) B_AGE=$((100*$DEF_AGE)) echo -n "Stopping laptop mode" echo "0" > /proc/sys/vm/laptop_mode echo "$B_AGE" > /proc/sys/vm/dirty_writeback_centisecs echo "$U_AGE" > /proc/sys/vm/dirty_expire_centisecs echo "." ;; *) echo "$0 {start|stop}" ;; esac exit 0