====== 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