#! /bin/sh ### BEGIN INIT INFO # Provides: ondemand # Required-Start: $remote_fs $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Set the CPU Frequency Scaling governor to "ondemand" ### END INIT INFO # Don't run if we're going to start an Android LXC container: test ! -f /etc/init/lxc-android-config.conf || exit 0 setvar PATH = "/sbin:/usr/sbin:/bin:/usr/bin" source /lib/init/vars.sh source /lib/lsb/init-functions setvar AVAILABLE = ""/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"" setvar DOWN_FACTOR = ""/sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor"" case (1) { start { start-stop-daemon --start --background --exec /etc/init.d/ondemand -- background } background { sleep 60 # probably enough time for desktop login test -f $AVAILABLE || exit 0 read governors < $AVAILABLE case (governors) { *interactive* { setvar GOVERNOR = ""interactive"" break } *ondemand* { setvar GOVERNOR = ""ondemand"" case{ ppc64* { setvar SAMPLING = '100' } } break } *powersave* { setvar GOVERNOR = ""powersave"" break } * { exit 0 } } for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor { test -f $CPUFREQ || continue echo -n $GOVERNOR > $CPUFREQ } if test -n $SAMPLING && test -f $DOWN_FACTOR { echo -n $SAMPLING > $DOWN_FACTOR } } restart|reload|force-reload { echo "Error: argument '$1' not supported" >&2 exit 3 } stop { } * { echo "Usage: $0 start|stop" >&2 exit 3 } }