Human Readable   

 

     
   
     

Green Computing

© Copyright Darrell Anderson.

(Spring – Summer 2008)

I had carefully selected the components in my new box to conserve energy and run silent. My first move was to enable Cool-n-Quiet, a feature provided in the Asus BIOS to reduce CPU frequency and voltage. The feature itself does nothing until used by the operating system, but once enabled, energy usage is reduced as well as noise and heat production. Another BIOS feature I enabled was Q-Fan, which instantly reduced the CPU fan speed to a tolerable noise level. The fan was not silent but quiet. I later would learn how to control the fan speed even more.

I had installed the hddtemp package with my old PII box. That tool was already enabled when I transferred my hard drive from that box to my new box.

After recompiling the kernel to support my new hardware and CPU, I ensured the kernel supported the lm_sensors package. After running lm_sensors, in my /etc/rc.d/rc.local I added the following:

# I2C adapter drivers
modprobe i2c-nforce2
# Chip drivers
modprobe eeprom
modprobe it87
modprobe k8temp
/usr/bin/sensors -s

I then configured gkrellm to monitor those system parameters.

However, I could not get the K8temp sensors to indicate correctly. Eventually an update to the lm_sensors web site was posted that the K8temp sensors were broken in all new K8 CPUs. My CPU is an AM2 2.3 GHz BE-2400. Very new. With that information I stopped loading the k8temp kernel module and stopped trying to monitor those parameters.

I knew there was more I could do with my box. I enabled the smartmontools package to monitor the health of my hard drives. I learned to automatically run self tests. I created a separate log in /var/log to help me monitor my drives.

After some research I downloaded and installed the cpufrequtils package. This is a tool that helps take advantage of the Asus Cool-n-Quiet technology. The kernel must be compiled to regulate the CPU parameters, and the appropriate modules enabled, but cpufrequtils helps make everything sing pretty. I added the following to my rc.local:

# CPU Frequency Scaling
if [ -n "`find /sys/devices/system/cpu -name *cpufreq*`" ]; then
# cpufreq directory will not exist if Cool-n-Quiet is disabled
echo -e "${BOLDWHITE}Setting CPU frequency governor.${COLOR_RESET}"
for config_file in /sys/devices/system/cpu/*/cpufreq/scaling_governor; do
echo ondemand > $config_file
done
fi

This had a dramatic change on my system. At idle, which was often, my CPU ran at 1 GHz rather than the rated 2.3 GHz, as well as Vcore running at 1.0 volts rather than the normal 1.23 volts. My CPU and motherboard temperature then always hovered less than 30�C. I was even able to notice the drop in actual energy usage with my Kill-o-Watt meter.

Still not quite content, I visited the lesswatts web site. With that information I downloaded and compiled the powertop package. I made a couple of recommended changes and recompiled my kernel.

My next hurdle was further reducing my CPU fan speed. While reading about lm_sensors I ran across a Slackware shell script to start and stop the lm_sensors fancontrol script. Although the Asus Q-Fan feature reduces CPU fan speed, I suspect there is nothing fancy about the algorithm. My guess is the feature merely reduces fan speed to about 65% full speed. A noticeable improvement but not quite satisfactory. After manually tinkering with fancontrol I found my happy spot and my fan speed was no longer a noise issue. With Q-Fan enabled my CPU fan speed was about 1900 rpm. After tinkering with fancontrol, the fan speed was less than 1400 rpm. Further, when I ran VirtualBox, my CPU temperature rises and with fancontrol enabled the fan speed rises proportionally.

I modified that original shell script to my tastes and enabled the script. Then I added the following to rc.local:

# Pulse Width Modulation (PWM) Fan Control
if [ -x /etc/rc.d/rc.fancontrol ]; then
/etc/rc.d/rc.fancontrol start
fi

I added the following to rc.shutdown:

# Pulse Width Modulation (PWM) Fan Control
# Use this during shutdown otherwise PWM will be disabled
# when killall terminates fancontrol. The fans will ramp to
# full speed for the remainder of the shutdown --- annoying.
if [ -x /etc/rc.d/rc.fancontrol ]; then
/etc/rc.d/rc.fancontrol stop
fi

In all, I’m quite happy with the way my new box now operates.

Files:

/etc/rc.d/rc.fancontrol

/etc/fancontrol

Finis.

Next: Updating Firewall Scripts to Support Bridging

Table of Contents