Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index Discussion & Documentation Documentation, Tips & Tricks
  • Search

Howto: Dynamic CPU speed with Athlon XP and nForce2 boards

Unofficial documentation for various parts of Gentoo Linux. Note: This is not a support forum.
Post Reply
Advanced search
148 posts
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Next
Author
Message
Hasw
n00b
n00b
Posts: 68
Joined: Fri Dec 31, 2004 12:25 am
Location: Germany
Contact:
Contact Hasw
Website

Howto: Dynamic CPU speed with Athlon XP and nForce2 boards

  • Quote

Post by Hasw » Fri Dec 31, 2004 4:40 am

Dynamic CPU speed with Athlon XP and nForce2 boards

Do you own a nForce2 based mainboards? Than that is maybe for you
if you want to dynamically change you CPU speed and voltage (power
saving when idle).

Frequency changing is available on all nForce2-based mainboards with
all CPUs which run on that board. However for dynamic CPU core voltage
changing there must a ATXP1 chip on the board.

On this boards VCore changing is supported (more are possible):
  • Abit NF7
    Aopen AK79D-400VN
    Chaintech CT-7NJ(S,L1)
    DFI Infinity NFII Ultra
    DFI Lanparty NFII Ultra
    Epox 8RDA+
    Epox 8(R,G)DA(3,6,+,I,E)
    Shuttle AN35N Ultra V1.1
    Shuttle SN45G (not V3)
    Soltek 75FRN2-L
    Soltek NV400-L64
Frequency changing is done via FSB control. This works good because the PCI/AGP-clock is controlled independently. RAM/FSB are synchronized. Mostly the RAM is the limiting factor.

Some maybe think why not change the FID (multiplier) like the Athlon Mobile (there are L-bridge mods to change a XP to a Mobile [1]). With some chipsets this is possible and there
are patches for powernow-k7 to work on desktop boards. Unfortunately I've not heard yet that this works with the nForce2 chipset.

So now lets begin:

1. Get the cpufreq/atxp1 module working :
Kernel 2.6.10 includes cpufreq-nforce2, but you can also
get it from http://www.hasw.net/linux

Kernel patches are available here: http://www.hasw.net/linux/atxp1-0.6.tar.bz2

Now in the kernel-config:

Code: Select all

        
        Power management options (ACPI, APM)  --->
         CPU Frequency scaling  --->
                [*] CPU Frequency scaling
                Default CPUFreq governor (userspace)
                <M> nVidia nForce2 FSB changing       (only 2.6.10)
        
        Device Drivers  --->
         I2C support  --->
          <*> I2C support
          <M>   I2C device interface
          I2C Hardware Bus support  --->
           <M> ISA Bus support            (for hardware-monitoring chips)
           <M> Nvidia Nforce2
          Hardware Sensors Chip support  --->
           <M> ITE IT87xx and compatibles
           <M> Winbond W83781D, W83782D, W83783S, W83627HF, Asus AS99127F
           <M> Winbond W83627HF, W83627THF, W83637HF, W83697HF       (depending which chip your board uses)
          Other I2C Chip support  --->
              <M> Attansic ATXP1 VID controller
        

2. Test the cpufreq module:

Code: Select all

        root@hasw root # modprobe cpufreq-nforce2
        root@hasw root # dmesg
        ......
        cpufreq: Detected nForce2 chipset revision A2
        cpufreq: FSB changing is maybe unstable and can lead to crashes and data loss.
        cpufreq: FSB currently at 200 MHz, FID 9.0
        

If the detected FSB isn't correct, stop here and contact me (hasw@hasw.net).
The FID can be set with:

Code: Select all

        root@hasw cpufreq # modprobe cpufreq-nforce2 fid=95
        
for a 9.5 multiplier.

Otherwise you have now the cpufreq control-files in /sys:

Code: Select all

        root@hasw root # cd /sys/devices/system/cpu/cpu0/cpufreq/
        root@hasw cpufreq # cat scaling_max_freq
        1800000
        root@hasw cpufreq # cat scaling_min_freq 
        1278000
        

The frequency is in kHz. If you have compiled in multiple cpufreq governors, you have to switch it
first, before you can do changes via userspace:

Code: Select all

	echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
	

Now you can try to set a new frequency, for example:

Code: Select all

        root@hasw cpufreq # echo 1700000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
        root@hasw cpufreq # cat /proc/cpuinfo
        ....
        cpu MHz         : 1696.509
        ....
        
3. Find the minimum FSB (optional)
Because of some internal chipset timings, the FSB is limited downwards. If no module
option is given, the minimum FSB defaults to FSB at boot time - 50 MHz which should
work in the most cases.
If you want to set a lower FSB limit, use the min_fsb module option:

Code: Select all

        root@hasw cpufreq # modprobe cpufreq-nforce2 min_fsb=140
        

On the most boards, the limit is between 130 and 140 MHz. To be on the save side, use 140 instead of 133.
For the Shuttle AN35N you can try to lower it < 100 MHz, they've the greatest working FSB range (some 60-240 MHz).

Get prime95 from http://www.mersenne.org/freesoft.htm for stress testing. It works good for me because the torture test stops when the CPU produces calculation errors. It detects
errors even if it seems that all is working.

Stop X and all uneeded services, so that there's no/small impact if the computer crashes (you have backups, of course ;)

Now run the prime95 torture test and lower the CPU speed every 30s approx. 100 MHz:

Code: Select all

        root@hasw cpufreq # echo 1700000 > scaling_setspeed
        root@hasw cpufreq # echo 1600000 > scaling_setspeed
        ...
        

If prime95 reports hardware failure stop and add 50-100 MHz. Let prime95 run about one or two hours. If it crashes immediately, you also know where to stop ;)

Now you have your minimum FSB and can add it as module-option:

Code: Select all

        root@hasw root # echo "options cpufreq-nforce2 min_fsb=142" > /etc/modules.d/cpufreq-nforce2
        root@hasw root # modules-update
        

4. Get the atxp1 module working:

Code: Select all

        root@hasw root # modprobe i2c_nforce2
        root@hasw root # modprobe atxp1
        root@hasw root # dmesg
        .... atxp1: Detected on SMBus nForce2 adapter at 5000, address 0x37
        ....
        

To control the changes, also get hardware monitoring working:

Code: Select all

        root@hasw root # modprobe i2c_isa
        root@hasw root # modprobe w83781d
        root@hasw root # cat /sys/bus/i2c/devices/2-0290/in1_input 
        1648
        

This is for my 8RDA+ and shows 1648 mV CPU core voltage. You may have another monitoring chip and/or VCore input.

Now first lower your CPU frequency and then the voltage:

Code: Select all

        root@hasw root # echo 1400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
        root@hasw root # echo 1500 > /sys/bus/i2c/devices/0-0037/cpu_vid
        root@hasw root # dmesg
        ....
        atxp1: Setting VCore to 1500 mV (0x0e)
        root@hasw root # cat /sys/bus/i2c/devices/2-0290/in1_input 
        1520
        

There's often a small positive offset, so that's normal if it shows a little bit more.

5. Find lowest core voltage for different frequencys
You can use the same mechism used to find the minimum FSB. The smallest possible steps are 25mV. Decrease the voltage until it reports errors, add 50mV and you should be on the safe (stable) side.

6. Save changes
You now have the control over your CPU speed and core voltage. Happy power-saving ;)

Add the modules to your /etc/modules.autoload.d/kernel-2.6 file to load the at startup, mine shows:

Code: Select all

        ...
        cpufreq-nforce2
        i2c-nforce2
        i2c-isa
        atxp1
        w83781d
 

This does not work because the permissions are reset after some time.
---------------------------------------------------------------------
Because the /sys files are only writeable by root, you may want to write them as user. If your user is the the group wheel you can add to your /etc/conf.d/local.start:

Code: Select all

        # Change cpufreq permission
        CPUDIR="/sys/devices/system/cpu/cpu0/cpufreq"
        if [ -d $CPUDIR ]
        then
                echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
		chgrp wheel $CPUDIR/scaling_setspeed
                chmod 664 $CPUDIR/scaling_setspeed
        fi

        # Change ATXP1 permission
        ATXP1="/sys/bus/i2c/devices/0-0037/cpu_vid"
        if [ -f $ATXP1 ]
        then
                chgrp wheel $ATXP1
                chmod 664 $ATXP1
        fi
        
---------------------------------------------------------------------

Also important is that the most BIOSes only reset the voltages when the power was totally off (pull plug).
So you have to reset your VCore before reboot!

You can put this in your /etc/conf.d/local.stop

Code: Select all

	# Reset CPU core voltage
	ATXP1="/sys/bus/i2c/devices/0-0037/cpu_vid"
	if [ -f $ATXP1 ]
	then
		echo 1600 > $ATXP1
	fi
	

7. Some example scripts
Here are some example scripts to set CPU speed and core voltage:

set_cpuspeed.sh

Code: Select all

        #!/bin/sh

        CPUDIR="/sys/devices/system/cpu/cpu0/cpufreq"
        VCORE="/sys/bus/i2c/devices/0-0037/cpu_vid"

        # Check if cpufreq driver and ATXP1 s available
        test -w $CPUDIR/scaling_setspeed || exit 0
        test -w $ATXP1 || exit 0

        if [ -z "$1" -o -z "$2" ]
        then
                echo "Usage: $0 (CPU speed in MHz) (Core voltage in mV)"
                exit 0
        fi
        CFREQ="`cat $CPUDIR/scaling_cur_freq`"
        CVCORE="`cat $VCORE`"
        NFREQ="$(($1*1000))"
        NVCORE="$2"

        if [ $NFREQ -gt $CFREQ ]
        then
                # First apply new Vcore
                echo $NVCORE > $VCORE
                # ...then new frequency
                echo $NFREQ > $CPUDIR/scaling_setspeed

        elif [ $NFREQ -lt $CFREQ ]
        then
                # First frequency
                echo $NFREQ > $CPUDIR/scaling_setspeed
                echo $NVCORE > $VCORE
        fi
        

I'm using fluxbox and using a small script to generate a menu with CPU speed presets:

cpuspeed:

Code: Select all

        1800@1625
        1400@1450
        1278@1150
        

create_cpumenu.sh:

Code: Select all

        #!/bin/sh

        FBDIR="$HOME/.fluxbox"

        if [ ! -f $FBDIR/cpuspeed ]
        then
                exit 0
        fiecho "[submenu] (cpufreq) {CPU speed}" > $FBDIR/cpumenu
        
        for SPEED in `cat $FBDIR/cpuspeed`
        do
                FREQ="`echo  $SPEED | cut -d'@' -f1`"
                VCORE="`echo $SPEED | cut -d'@' -f2`"
        
                echo "[exec] ($FREQ MHz @ $VCORE mV) {$FBDIR/set_cpuspeed.sh $FREQ $VCORE}" >> $FBDIR/cpumenu
        done
        
        echo "[end]" >> $FBDIR/cpumenu
        

Also my .torsmorc (system monitor) gets updated:

Code: Select all

        ${color grey}Sensor:
        CPU:$color ${execi 15 ~/.sensor-cpu.sh}${color grey}
        

sensor-cpu.sh:

Code: Select all

        CPUDIR="/sys/devices/system/cpu/cpu0/cpufreq"
        SENSOR="/sys/bus/i2c/devices/2-0290"

        test -d $CPUDIR || exit 0
        test -d $SENSOR || exit 0

        FREQ="$((`cat $CPUDIR/scaling_cur_freq`/1000)) MHz"
        #FREQ="`awk '/MHz/ {print $4}' /proc/cpuinfo | sed -e 's/\..*$//'` MHz"
        VCORE="`cat $SENSOR/in1_input` mV"
        TEMP="$((`cat $SENSOR/temp2_input` / 1000)) <B0>C"

        echo -n "$FREQ @ $VCORE ($TEMP)"
        

There are many other possibilities, including dynamic changing depending on the CPU load, etc. ;)

Here is a nice Python-script which changes frequency and voltage on demand: http://www.lextech.net/work/autoFreq/
Last edited by Hasw on Sun Mar 20, 2005 9:59 pm, edited 8 times in total.
Top
NewBlackDak
Guru
Guru
User avatar
Posts: 512
Joined: Sun Nov 02, 2003 8:24 pm
Location: Utah County, UT

Re: Howto: Dynamic CPU speed with Athlon XP and nForce2 boar

  • Quote

Post by NewBlackDak » Fri Dec 31, 2004 8:08 am

Hasw wrote:There are many other possibilities, including dynamic changing depending on the CPU load, etc. ;)
This would be nice for alot of people.
Even though I have foldingathome or a compile running 24x7 I'm gonna try this to see if I Can get it working.
Gentoo systems.
X2 4200+@2.6 - Athy
X2 3600+ - Myth
UltraSparc5 440 - sparcy
Top
the_foxhond
n00b
n00b
Posts: 1
Joined: Sun Jan 02, 2005 1:08 am

cpufreq-nforce2

  • Quote

Post by the_foxhond » Sun Jan 02, 2005 1:18 am

How would I apply the cpufreq-nforce2 patch? I tried using make on it , but, it ended up returning an error, I'd c opy paste it if I had a middle mouse button but it seems to complain about a cpufreq not being declared.
Top
Hasw
n00b
n00b
Posts: 68
Joined: Fri Dec 31, 2004 12:25 am
Location: Germany
Contact:
Contact Hasw
Website

  • Quote

Post by Hasw » Sun Jan 02, 2005 1:51 am

You have already running a 2.6 kernel version (>2.6.8, otherwise it won't work), so you should think switching to 2.6.10. If you don't want that, configure the kernel the same way mentioned above except without

Code: Select all

<M> nVidia nForce2 FSB changing
.

Install your new kernel and reboot.
Than get the module (it isn't the kernel-patch, my mistake) and just do:

Code: Select all

hasw@hasw cpufreq-nforce2-0.2 $ make
make -C /lib/modules/2.6.10/build SUBDIRS=/home/hasw/cpufreq-nforce2-0.2 modules
make[1]: Entering directory `/usr/src/linux-2.6.10'
  CC [M]  /home/hasw/cpufreq-nforce2-0.2/cpufreq-nforce2.o
  Building modules, stage 2.
  MODPOST
  CC      /home/hasw/cpufreq-nforce2-0.2/cpufreq-nforce2.mod.o
  LD [M]  /home/hasw/cpufreq-nforce2-0.2/cpufreq-nforce2.ko
make[1]: Leaving directory `/usr/src/linux-2.6.10'
hasw@hasw cpufreq-nforce2-0.2 $
And copy the cpufreq-nforce2.ko module to /lib/modules/`uname-r`/kernel/arch/i386/kernel/cpu/cpufreq

If you got an error you should post it ;) Use a xterm or run gpm for c&p.
Top
NewBlackDak
Guru
Guru
User avatar
Posts: 512
Joined: Sun Nov 02, 2003 8:24 pm
Location: Utah County, UT

  • Quote

Post by NewBlackDak » Sun Jan 02, 2005 10:01 am

FYI if I try anything below 150(while booted above 166 FSB) FSB on my NF7-S if locks hard. If I boot with with 166 FSB I'm good from 133-166.
Gentoo systems.
X2 4200+@2.6 - Athy
X2 3600+ - Myth
UltraSparc5 440 - sparcy
Top
PrakashP
Veteran
Veteran
User avatar
Posts: 1249
Joined: Mon Oct 27, 2003 4:10 pm
Location: C.C.A.A., Germania

  • Quote

Post by PrakashP » Sun Jan 02, 2005 11:42 am

On my NF7-S 2.0 I have range 125 to 200 MHz. Using it since some months now. :)

But I just tried the atxp1 module. Is it necessary to build this i2c stuff as modules? I have them compiled into kernel. Nevertheless trying to compile atxp1 I get:

Code: Select all

make -C /lib/modules/2.6.10-ck1/build SUBDIRS=/home/light/atxp1-vcore-0.2 modules
make[1]: Entering directory `/usr/src/linux-2.6.10-ck1'
  Building modules, stage 2.
  MODPOST
*** Warning: "__fixunsdfsi" [/home/light/atxp1-vcore-0.2/atxp1.ko] undefined!
*** Warning: "__adddf3" [/home/light/atxp1-vcore-0.2/atxp1.ko] undefined!
*** Warning: "__floatsidf" [/home/light/atxp1-vcore-0.2/atxp1.ko] undefined!
make[1]: Leaving directory `/usr/src/linux-2.6.10-ck1'
cp ./atxp1.ko /lib/modules/`uname -r`/kernel/drivers/i2c/chips
cp: reguläre Datei ,,/lib/modules/2.6.10-ck1/kernel/drivers/i2c/chips" kann nicht angelegt werden: Datei oderVerzeichnis nicht gefunden
make: *** [default] Fehler 1
Ans ideas to fix? Is a kernel patch for this module available?
Top
Hasw
n00b
n00b
Posts: 68
Joined: Fri Dec 31, 2004 12:25 am
Location: Germany
Contact:
Contact Hasw
Website

  • Quote

Post by Hasw » Sun Jan 02, 2005 3:21 pm

To get no unresolved symbols, remove -msoft-float from the CFLAGS in arch/i386/Makefile. Not sure yet why this occurs, there are no FP operations in the module.

Then all should be fine, except the directory for I2C modules is missing because you have them in the kernel. Just run

Code: Select all

 mkdir -p /lib/modules/`uname -r`/kernel/drivers/i2c/chips 
before make.
Top
Hasw
n00b
n00b
Posts: 68
Joined: Fri Dec 31, 2004 12:25 am
Location: Germany
Contact:
Contact Hasw
Website

  • Quote

Post by Hasw » Sun Jan 02, 2005 4:00 pm

The kernel patch is now available at: http://www.hasw.net/linux/atxp1-0.2.patch
Top
PrakashP
Veteran
Veteran
User avatar
Posts: 1249
Joined: Mon Oct 27, 2003 4:10 pm
Location: C.C.A.A., Germania

  • Quote

Post by PrakashP » Sun Jan 02, 2005 4:50 pm

Thanx for the patch!

Is is possible to fix the driver w/o messing with that makefile?

The trouble maker is:

Code: Select all

static unsigned char atxp1_calc_vid(unsigned int vt) {
	return(((1850 - vt) / 25 + 0.5));
}
With your workaround it compiles. Haven't tested the module, though. Going to do that now. :)

BTW, this is my suggestion for a fix:

Code: Select all

static unsigned char atxp1_calc_vid(unsigned int vt) {
	return(((18500 - vt*10) / 25 + 5)/10);
}

(later) Yes! atxp1 works nicely. :) Trying to find out how much I can undervolt at 1375MHz. Nice work, Hasw! 8)

(even later) So I had a shock for a moment: While finding my lower bound I saw in dmesg that I cannot go below 1075V. Well I tried 1075, but ZAP my screen got black. HW reset didn't help as well. I had to "pull the plug" wait and then my machine got revived. What went wrong? 1100 works and I am finding out whether it is stable. 1,1V is the lowest setting in BIOS AFAIK, btw.
Top
Hasw
n00b
n00b
Posts: 68
Joined: Fri Dec 31, 2004 12:25 am
Location: Germany
Contact:
Contact Hasw
Website

  • Quote

Post by Hasw » Sun Jan 02, 2005 6:35 pm

Ok, thanks for the calculation fix.

Ups, yes the lower bound should be fixed. Because not all VCore controllers support 1.075V. You have a NF7 and the ID of 1.075V means here: power off CPU core voltage ;)

You need to fully power off, so that the device is reset.
Top
PrakashP
Veteran
Veteran
User avatar
Posts: 1249
Joined: Mon Oct 27, 2003 4:10 pm
Location: C.C.A.A., Germania

  • Quote

Post by PrakashP » Sun Jan 02, 2005 6:58 pm

Ah, OK, good explanation. So, users should be warned, I guess. ;)
Top
Hasw
n00b
n00b
Posts: 68
Joined: Fri Dec 31, 2004 12:25 am
Location: Germany
Contact:
Contact Hasw
Website

  • Quote

Post by Hasw » Sun Jan 02, 2005 8:48 pm

Updated the patch: http://www.hasw.net/linux/atxp1-0.3.tar.bz2

Fixed unresolved symbols problem
Added module option for lowest possible voltage (1075 or 1100 [default])
Fixed loop when setting 1850 mV
Added update lock
Renamed sys-device file from vcore to cpu_vid
Top
PrakashP
Veteran
Veteran
User avatar
Posts: 1249
Joined: Mon Oct 27, 2003 4:10 pm
Location: C.C.A.A., Germania

  • Quote

Post by PrakashP » Mon Jan 03, 2005 12:48 pm

Please fix this in your instructions above:

Code: Select all

   if [ -f $ATXP1/vcore ] 
With atxp1 0.3 this obviously is wrong. ;) Then it wouldn't be bad if you add this line before all:

Code: Select all

echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

BTW, is is possible to couple fsb and vcore in kernel space? I find it a bit dangerous currently (though nice that it works at all :) ). It is easy to lock up the machine currently, as I found out while I was fighting with my permissions... Furthermore it is a bit risky if a user with wheel rights gets hacked...
Top
Hasw
n00b
n00b
Posts: 68
Joined: Fri Dec 31, 2004 12:25 am
Location: Germany
Contact:
Contact Hasw
Website

  • Quote

Post by Hasw » Mon Jan 03, 2005 6:31 pm

There are two problems coupling FSB and VCore in kernel-space:
1. The FSB:VCore pairs are different between various CPUs.
2. The devices (kernel environment) is completely different.

"Problem" 1. can be solved by adding some /sys interface where the user can input these FSB, VCore combinations. But the second is a little bit more complicated I found.
The cpufreq-device is for the x86 arch and the ATXP1 is an I2C device which is platform independent. Also the kernel environments are different, writing a third module that controls both is possible, but not very nice.

Maybe adding two module options would help for the rights problem:
- Lower limit
- High limit, default: the one which was set at module loading
Top
PrakashP
Veteran
Veteran
User avatar
Posts: 1249
Joined: Mon Oct 27, 2003 4:10 pm
Location: C.C.A.A., Germania

  • Quote

Post by PrakashP » Mon Jan 03, 2005 7:29 pm

Reg problem 1: Of course, this is something each user has to find out on his/her own. ;)

Reg. problem 2: Couldn't you make some sort of "slave mode" to atxp1, that it only accepts changes in vcore from kernel space and a "master mode" for the the cpufrequ driver, that it controlls a slave which connects to it? Some sort of interface is needed, which apparently doesn't exist right now...
Top
PrakashP
Veteran
Veteran
User avatar
Posts: 1249
Joined: Mon Oct 27, 2003 4:10 pm
Location: C.C.A.A., Germania

  • Quote

Post by PrakashP » Tue Jan 04, 2005 11:23 am

Ok, I am having a problem with my permissions. It seems they get reseted after some time. I guess this is udev coming in between. Perhaps the best would be to let udev handle the permissions? Does anyone have a nice ruleset for it? I could be on the wrong track, as well, as I don't know whether I can manipulate /sys with udev... Otherwise I'll help myself with sudo.
Top
Hasw
n00b
n00b
Posts: 68
Joined: Fri Dec 31, 2004 12:25 am
Location: Germany
Contact:
Contact Hasw
Website

  • Quote

Post by Hasw » Tue Jan 04, 2005 4:53 pm

Yes, I've already updated the howto. Haven't recognized it because when I experimenting with new modules I was logged in as root.

I don't think udev has something to do with it (I'm using devfsd), the sysfs is controlled by kernel and udev normally only controls /dev permissions.
I haven't found out yet why the permissions are reset (I mean, why allow setting new permissions when they are reversed after some time?)

As you have mentioned a workaround could be running a script via sudo.
Top
PrakashP
Veteran
Veteran
User avatar
Posts: 1249
Joined: Mon Oct 27, 2003 4:10 pm
Location: C.C.A.A., Germania

  • Quote

Post by PrakashP » Tue Jan 04, 2005 9:46 pm

Too bad, on the second thought I also had supicions about udev... Well, I could bug lkml and hope to get an answer on what would be the correct way for this...I guess the kernel has no specifiv Docs about /sys?

But perhaps they would say to use an userspace prog, like speedfreq which has an daemon runninr with root rights and a client for the user...

[edit]
Thinking further I guess it is the best to modify eg speedfreq or whatever to set vcore as well. So you could couple fsb and vcore, but in userspace. Of course the coupling should only be modifyable by root, so this would be pretty safe then.
Last edited by PrakashP on Wed Jan 05, 2005 10:07 am, edited 1 time in total.
Top
micmac
l33t
l33t
Posts: 996
Joined: Fri Nov 28, 2003 8:38 pm

  • Quote

Post by micmac » Wed Jan 05, 2005 1:56 am

Hello!

I already tried cpufreq-nforce2 (without voltage changing) some time ago. Even with the default min_fsb it locked up my box eventually. The board is an ASUS A7N8X-X. I got an Athlon 1700+ and 2x256MB DDR.
Is it even worth it? I mean the usual nforce2 board enables STPGNT per default (mine does, too). Can you measure the amound of electricity you save with additional cpufreq-nforce2?

Thanks!

mic
Top
Sonic Lux
Guru
Guru
User avatar
Posts: 375
Joined: Sun Mar 07, 2004 7:19 pm
Location: Dresden / Germany

  • Quote

Post by Sonic Lux » Wed Jan 05, 2005 11:08 am

Thx it works on my NF7 from 100FSB@1,2Vcore till 225FSB@1,95Vcore.

Thx a lot for this howto !!
Top
pussi
l33t
l33t
Posts: 727
Joined: Sat May 08, 2004 9:28 am
Location: Finland

Re: Howto: Dynamic CPU speed with Athlon XP and nForce2 boar

  • Quote

Post by pussi » Wed Jan 05, 2005 10:15 pm

Hasw wrote:
Also my .torsmorc (system monitor) gets updated:

Code: Select all

        ${color grey}Sensor:
        CPU:$color ${execi 15 ~/.sensor-cpu.sh}${color grey}
        
I you're using torsmo 0.18 you can monitor your CPU frequency and temperature (already in 0.16?) without any scriping.

Add to your .torsmorc:

Code: Select all

${color grey90}CPU Sensors:
    frequency: ${color white}${freq}MHz
    temperature: ${color white}${i2c temp <1 or 2 here :)>}°C
This should be faster than bash scripts but you can't monitor your vcore (unless you make another script for it). :wink:
Top
navier-stokes
n00b
n00b
Posts: 41
Joined: Sat Jul 03, 2004 12:56 pm

  • Quote

Post by navier-stokes » Fri Jan 07, 2005 2:17 am

If you also compile cpufreq governors in your kernel along with this patch, you can easily emerge cpudyn and configure it for your desktop (powersaving according to load). I'm using it now along with (emerge) gnome-cpufreq-applet-0.1.1 and it works great!
Tyan Thunder K8W; dual 244's, 2Gigs ECC, SBLive, G4Ti4600,
Flatron lcd 885LE
Top
micmac
l33t
l33t
Posts: 996
Joined: Fri Nov 28, 2003 8:38 pm

  • Quote

Post by micmac » Sat Jan 08, 2005 7:29 pm

Yes, a daemon would be great to have. I mean with cpufreq-nforce2 you can easily use any daemon you want, like speedfreq etc. But what really would be ubercool is a daemon that not only can handle the FSB frequenzy changes but also the changes to cpu core voltage. But I think that's a hard task as no one can predict stable pairs of frequenzy and voltage. There are such tables for mobile CPUs like Pentium-M but not for all kinds of mainboards.
But of course we could set up the tables ourselves using programs like prime95, can't we. That way we get stable frequenzy (=multis?)/voltage pairs for our own hardware. Maybe these don't even on the cpu but on the mainboard only?
To sum it up, I'd hate doing all the switching manually. I'd rather have it done dynamically by a daemon. Can anyone suggest what to do?

micmac
Top
Hasw
n00b
n00b
Posts: 68
Joined: Fri Dec 31, 2004 12:25 am
Location: Germany
Contact:
Contact Hasw
Website

  • Quote

Post by Hasw » Sun Jan 09, 2005 7:00 pm

Is it even worth it? I mean the usual nforce2 board enables STPGNT per default (mine does, too). Can you measure the amound of electricity you save with additional cpufreq-nforce2?
In addition with CPU core voltage changing: yes. STPGNT only comes in when the CPU is idle, while a low clocked CPU also saves power when not idle.

I've a 300W PSU and I hear it (fan) when I change the frequency/vcore in big steps. For 2000 @ 1.65V to 1000 @ 1.1V I think you save (under max. load) approx. 30-50W.

I think the best way is patching an existing cpufreq daemon to handle the FREQ<->VCore pairs or more general running commands before/after frequency changing. If there's someone who wants to do that, good. If not I'll do this when the ATXP1 module is finished (also the cpufreq-nforce2 gets a little bit tweaked).
Top
Jinidog
Guru
Guru
User avatar
Posts: 593
Joined: Wed Nov 26, 2003 7:21 pm
Location: Berlin
Contact:
Contact Jinidog
Website

  • Quote

Post by Jinidog » Mon Jan 10, 2005 1:33 pm

I was able to reduce the FSB-clock on a Elitegroupe N2U400.
Although I didn't do much tests, I think you can add it to your list of supportet Mainboards.
Just unused Microsoft-Software is good Microsoft-Software
Top
Post Reply

148 posts
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Next

Return to “Documentation, Tips & Tricks”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic