#!/bin/sh # Simple low-power-mode script # Based on work from: # Bill Nottingham # Peter Jones # David Zeuthen # Richard Hughes # # Values are taken from the laptop-tools package # Bart Samwel if [ "$1" == "true" ] ; then echo "SetLowPower ON" DISK_IDLE_SECS=2 DIRTY_WRITEBACK=30 DIRTY_EXPIRE=30 DIRTY_RATIO=60 DIRTY_BACKGROUND_RATIO=1 elif [ "$1" == "false" ] ; then echo "SetLowPower OFF" DISK_IDLE_SECS=0 DIRTY_WRITEBACK=500 DIRTY_EXPIRE=3000 DIRTY_RATIO=40 DIRTY_BACKGROUND_RATIO=10 else echo "Argument needs to be true or false" exit 1 fi if [ ! -w "/proc/sys/vm/" ] ; then # Use the raw kernel sysfs interface echo "You do not have write access to /proc/sys/vm/" exit 1 fi # Seconds laptop mode has to to wait after the disk # goes idle before doing a sync. echo $DISK_IDLE_SECS > /proc/sys/vm/laptop_mode # Set dirty page values echo $DIRTY_WRITEBACK > /proc/sys/vm/dirty_writeback_centisecs echo $DIRTY_EXPIRE > /proc/sys/vm/dirty_expire_centisecs # Dirty synchronous ratio. At this percentage of dirty # pages the process which calls write() does its own writeback. echo $DIRTY_RATIO > /proc/sys/vm/dirty_ratio # Allowed dirty background ratio, in percent. # Once DIRTY_RATIO has been exceeded, the kernel will wake pdflush # which will then reduce the amount of dirty memory to # dirty_background_ratio. Set this nice and low, so once some # writeout has commenced, we do a lot of it. echo $DIRTY_BACKGROUND_RATIO > /proc/sys/vm/dirty_background_ratio