Stromsparmechanismus des Via Epia

Via Epia unterstützt Powersave: kann Frequenz runterregeln. Bei Linux macht das das Longhaul-Modul (Kernelmodul zum CPU-Reglen EPIA). Geregelt wird dann vom User (Userspace) oder automatisch (über Governor).

The Epia SP8000E uses a 800MHz Nemiah core CPU. By loading the longhaul module - you can throttle the CPU (Tested with 2.6.11.6). Please note that there are many patches to the cpufrequency control - and many are unstable. If your System locks-Hard - you have a bad implementation :) So - all you need to do is enable the cpu frequency scaling by loading the longhaul module and some governors:

modprobe longhaul modprobe cpufreq_powersave Check using the dmesg command to see if it loaded correctly. If this works - make sure the longhaul module gets loaded at every boot. For this - just add longhaul and cpufreq_powersave into the /etc/modprobe.preload file. Using longhaul - make sure your kernel was configured with the userspace-governor enabled by default - then change to: root # cd /sys/devices/system/cpu/cpu0/cpufreq/ cpufreq # ls affected_ cpuinfo_cur_freq cpuinfo_max_freq cpuinfo_min_freq scaling_available_frequencies scaling_available_governors scaling_cur_freq scaling_driver scaling_governor scaling_max_freq scaling_min_freq scaling_setspeed cpufreq # cat scaling_cur_freq 798000 cpufreq # cat scaling_available_frequencies 532000 598000 731000 798000 665000 cpufreq # echo 532000 > scaling_setspeed cpufreq # cat scaling_cur_freq 532000

With the userspace governor activated cpufreq # cat scaling_available_governors userspace

The System will set the speed up to 800MHz in this special case - if required - and when idle again - go down with the frequency. In short - it will dynamically monitor the system load and regulate the CPU Frequency accordingly. If you want to stick the system into powersave mode - load the cpufreq_powersave.ko module cpufreq # modprobe cpufreq_powersave cpufreq # cat scaling_available_governors powersave userspace echo powersave > scaling_governor

This will make the CPU-Frequency sticky at the lowest speed your CPU can run at - and hopefully lower the overall system power consumption and heat dissipation This is what I have added to the system's /etc/rc.local file on my server - so it gets activated at every boot. sleep 60 echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

http://stargate.solsys.org/mod.php?mod=faq&op=extlist&topicid=15&expand=yes#80

kurz: modprobe longhaul modprobe cpufreq_powersave echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Skript:

script {hi/lo}

#!/bin/bash
#
# sets the cpu-frequency low or high,
# or (de)loads the longhaul-module
# FOR VIA EPIA ONLY
# made by Gerald Nasenbrecher
 
SYSPATH=/sys/devices/system/cpu/cpu0/cpufreq/
 
# Define some decent defaults
#POWERMODE=performance
POWERMODE=powersave
SPEED=
 
[ -f /etc/sysconfig/cpufreq ] && source /etc/sysconfig/cpufreq
 
 
# See how we were called.
case "$1" in
  start|low|lo)
	POWERMODE=powersave
	echo -n "Loading modules: ";
	modprobe longhaul
	echo -n "longhaul"
	modprobe cpufreq_${POWERMODE}
	echo ", cpufreq_${POWERMODE}"
	echo -n "Setting gowernor toPienkowski: "
	echo "$POWERMODE" > ${SYSPATH}/scaling_governor
	echo "$POWERMODE"
	if [ -f ${SYSPATH}/scaling_setspeed ]
	then
		echo -n "Setting CPU speed to: "
		echo "$SPEED" > ${SYSPATH}/scaling_setspeed
		echo "$SPEED"
	fi
	$0 status
	;;
  high|hi)  
	POWERMODE=performance
	echo -n "Loading modules: ";
	modprobe longhaul
	echo -n "longhaul"
	modprobe cpufreq_${POWERMODE}
	echo ", cpufreq_${POWERMODE}"
	echo -n "Setting gowernor to: "
	echo "$POWERMODE" > ${SYSPATH}/scaling_governor
	echo "$POWERMODE"
	if [ -f ${SYSPATH}/scaling_setspeed ]
	then
		echo -n "Setting CPU speed to: "
		echo "$SPEED" > ${SYSPATH}/scaling_setspeed
		echo "$SPEED"
	fi
	$0 status
	;;
  stop)
	echo -n "Removing module: "
	rmmod longhaul
	echo "longhaul"
	$0 status
	;;
  status)
	if [ -d /sys/devices/system/cpu/cpu0/cpufreq ]
	then
		DRIVER=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver`
		POWERMODE=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`
		SPEED=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq`
		echo "Actual powerstatus: ${DRIVER}($POWERMODE) @ ${SPEED}KHz"
	else
		echo "CPU Frequency Scaling deactivated !"
	fi
	;;
  *)
	echo "*** Usage: cpufreq {hi|lo|hight|how|start|stop|status}\n"
	exit 1
esac
 
exit 0
echo -n "all available frequencies: "
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies