Get A Spiny Norman Shirt Get A Shameless42 Shirt Get A Tux Shirt
top pipe
Get Firefox!

The Linux Non-Installation

I approached the Linux installation the way I approach all Linux installations: start at Google. After poking my nose into a few places, I found out that I was already finished! It seems that fedora 3 already has the PowerNow module installed, and all that is necessary is to enable BIOS support. I had already done that for Windows, so I was finished, wasn't I?

Well, here's where the plot sickens. I am unable to find anything that will give me a real-time display of the frequency settings. I looked into the lm_sensors package that comes with Fedora 3, but it can't seem to tell me anything except "No sensors found!". I have yet to find anything that will verify that the settings are working except to read back from the very same place that I write the setting. I trust that about as much as I trust an Iraqi dictator.

Now that I've complained about what I can't do, here's what I can do:

Linux Observations

To verify that the OS and the BIOS understood each other, I took a look at the boot messages using dmesg. Sure enough, I found these lines buried in the messages:

powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.00.09b)
powernow-k8:    0 : fid 0x2 (1000 MHz), vid 0x12 (1100 mV)
powernow-k8:    1 : fid 0xa (1800 MHz), vid 0x6 (1400 mV)
powernow-k8:    2 : fid 0xc (2000 MHz), vid 0x2 (1500 mV)
powernow-k8: cpu_init done, current fid 0xc, vid 0x2

This made me reasonably confident that the OS had found the table of settings, and that it was ready to go. I was a little curious about the range of values listed. It seemed a little asymetric to me, with too much emphasis on the high end. A quick look at the AMD Thermal Specs. for my chip indicated that the numbers were correct.

Controlling the CPU settings without a monitor is a simple case of using the Linux cat command to write a value into a file, or read a value out of a file. For example, using the command:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

returns 2000000, which is the default value of my clock speed in KiloHertz.

When I entered the command

echo "1000000"> /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

it was supposed to change the clock frequency from 2GHz to 1GHz. When I checked this using another

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

command it returned 1000000, indicating that it had indeed changed the setting. The only problem with this was that I had no independent verification of the change. I also had no way of knowing if the voltage had changed as well.

Just to be complete, I also tried

echo "1800000"> /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

which returned 1800000 as expected. I then gave it a little test and entered

echo "800000"> /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

which returned 1000000 as I had hoped. This told me that the code was responding to a user error by finding the closest value possible. In this case, it was probably the best thing for it to do. Sorry if that's too much info about the code, the software weenie in me had to check it out.

<< Page 3 | Page 5: Conclusions >>
Please Leave a Comment for the Author:
Valid XHTML 1.1!