Silencing in Linux -- what Vcore/fanspeed software?

All about them.

Moderators: NeilBlanchard, Ralf Hutter, sthayashi, Lawrence Lee

Post Reply
frostedflakes
Posts: 1608
Joined: Tue Jan 04, 2005 4:02 pm
Location: United States

Silencing in Linux -- what Vcore/fanspeed software?

Post by frostedflakes » Fri Jun 23, 2006 7:07 pm

I know in Windows there's CrystalCPUID, RMClock, SpeedFan, etc., but what software is available in Linux for advanced control of multipliers, Vcore, and fan speed? Or would the above mentioned software work correctly if emulated in Wine?

bogus
Posts: 42
Joined: Sun May 21, 2006 7:11 pm

Re: Silencing in Linux -- what Vcore/fanspeed software?

Post by bogus » Fri Jun 23, 2006 7:31 pm

frostedflakes wrote:I know in Windows there's CrystalCPUID, RMClock, SpeedFan, etc., but what software is available in Linux for advanced control of multipliers, Vcore, and fan speed? Or would the above mentioned software work correctly if emulated in Wine?
  • For cpu freq there's a couple. cpufreqd, powersaved, powernowd. I use powernowd because it's: simple, works with Intel and Amd, supported by my OS (Ubuntu.)
  • for fan and thermal monitoring, i use lm_sensors/hddtemp. gnome has an applet which display all the informations you can get from lm_sensors and hddtemp on the panel.

    Image
    the 1st icon show my Athlon64x2 runs below half speed (1GHz); the second is the temp of my HDD at 36C; next is my PSU fan at 750rpm which is plugged into the sysfan header; CPU fan at 878rpm; sys temp at 32C and last is the CPU at 32C.
  • for fan control, I just use the BIOS and a hw fan controller because controlling fans from sw depends a lot your motherboard. My MB, msi k8ngm2-fid, only let sw controlling the cpu fan (sysfan can only be monitored and NB fan is SOL). But the CPU fan is something I only trust the BIOS to monitor and control.
SpeedFan doesn't even support my MB in the current release (it does in the 4.29 beta.) But even so, it can only do what the MB let it do, i.e. not any more than what I got NOW on linux. So for thermal/fan monitoring on my MB, there's actually more support on linux than windows.

frostedflakes
Posts: 1608
Joined: Tue Jan 04, 2005 4:02 pm
Location: United States

Post by frostedflakes » Fri Jun 23, 2006 8:19 pm

I never realized there were so many options. A list of Linux applications should be added to the power reduction sticky in this section. After not seeing any mention of Linux software in the sticky, I assumed the worse -- that no such software existed. Am happy my assumption turned out to be wrong. Thanks for the info bogus. :)

flokel
Posts: 28
Joined: Fri Nov 04, 2005 1:50 am
Location: Germany

Post by flokel » Sat Jun 24, 2006 12:09 am

Thx for the info bogus.

I'm using the Msi K8ngm2 as well,
planning to switch to ubuntu 6.06.

Like frostedflakes I was a little bit worried about linux c'n'q software.

Can you change multiplier and vcore with powernowd like with rmclock?

Mfg
Flo

bogus
Posts: 42
Joined: Sun May 21, 2006 7:11 pm

Post by bogus » Sat Jun 24, 2006 5:36 am

flokel wrote:Thx for the info bogus.

I'm using the Msi K8ngm2 as well,
planning to switch to ubuntu 6.06.

Like frostedflakes I was a little bit worried about linux c'n'q software.

Can you change multiplier and vcore with powernowd like with rmclock?

Mfg
Flo
You have to enable c'n'q in the BIOS. I'm not sure if powernowd touch Vcore at all, it just changes the stepping/freq based on the current cpu usage. You'll have to google around for the difference between cpufreqd, powersaved and powernowd. However all of them use what the kernel provides and the c'n'q driver in kernel 2.6 is actually written by AMD, so!!!


I dont have a laptop so I was never really interested in saving power. I'm much more interested in reducing heat and noise. I've never tried the gnome-power-manager applet but it seems to use ACPI to suspend or hibernate the whole PC.

nix-madness
Posts: 26
Joined: Sun May 14, 2006 11:18 pm
Location: Singapore

Post by nix-madness » Sat Jun 24, 2006 6:34 am

I'm currently still in the middle of setting up a 24/7 file server using a MSI K8MM-V motherboard. This is a Socket 754 mATX motherboard. The processor is AMD Turion 64 MT32. I've got OpenSuSE 10.1 installed.
  • # hwinfo --cpu
    01: None 00.0: 10103 CPU
    [Created at cpu.290]
    Unique ID: rdCR.j8NaKXDZtZ6
    Hardware Class: cpu
    Arch: X86-64
    Vendor: "AuthenticAMD"
    Model: 15.36.2 "AMD Turion(tm) 64 Mobile Technology MT-32"
    Features: fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,
    clflush,mmx,fxsr,sse,sse2,syscall,nx,mmxext,fxsr_opt,lm,3dnowext,3dnow,pni,lahf_lm
    Clock: 800 MHz
    Cache: 512 kb
    Config Status: cfg=no, avail=yes, need=no, active=unknown
Edit: I had the "Features:" line break into 2 lines to prevent the thread message from getting too wide horizontally.

My motherboard don't seem to allow me to change the multipler and vcore from within BIOS. Instead, powernow-k8 gets installed by OpenSuSE 10.1 by default. So, I'm using it to control the power usage:
  • # cpufreq-info
    cpufrequtils 0.4: cpufreq-info (C) Dominik Brodowski 2004
    Report errors and bugs to linux at nospam-brodo.de, please.
    analyzing CPU 0:
    driver: powernow-k8
    CPUs which need to switch frequency at the same time: 0
    hardware limits: 800 MHz - 1.80 GHz
    available frequency steps: 1.80 GHz, 1.60 GHz, 800 MHz
    available cpufreq governors: ondemand, userspace, powersave, performance
    current policy: frequency should be within 800 MHz and 1.80 GHz.
    The governor "ondemand" may decide which speed to use
    within this range.
    current CPU frequency is 800 MHz (asserted by call to hardware).
Note that my cpu is running at 800 Mhz.

And from lm_sensors:
  • # sensors
    w83627thf-isa-0290
    Adapter: ISA adapter
    VCore: +1.05 V (min = +1.94 V, max = +1.94 V) ALARM
    +12V: +12.16 V (min = +10.82 V, max = +13.19 V)
    +3.3V: +3.42 V (min = +3.14 V, max = +3.47 V)
    +5V: +4.96 V (min = +4.75 V, max = +5.25 V)
    -12V: -11.78 V (min = -13.18 V, max = -10.80 V)
    V5SB: +4.97 V (min = +4.76 V, max = +5.24 V)
    VBat: +3.52 V (min = +2.40 V, max = +3.60 V)
    fan1: 0 RPM (min = 21093 RPM, div = 2) ALARM
    CPU Fan: 1704 RPM (min = 168750 RPM, div = 8 ) ALARM
    fan3: 0 RPM (min = -1 RPM, div = 2) ALARM
    MB Temp: +34°C (high = +33°C, hyst = +40°C) sensor = thermistor
    CPU Temp: +29.0°C (high = +100°C, hyst = +95°C) sensor = thermistor
    temp3: +65.5°C (high = +100°C, hyst = +95°C) sensor = thermistor
    vid: -0.025 V (VRM Version 2.4)
    alarms: Chassis intrusion detection ALARM
    beep_enable:
    Sound alarm enabled
Note that the VCore is 1.05V.

So, it seems that powernow is changing the vcore and multiplier for me. I'm still trying to find out if I can lower the VCore further (say to 0.90V).

Tibors
Patron of SPCR
Posts: 2674
Joined: Sun Jul 04, 2004 6:07 am
Location: Houten, The Netherlands, Europe

Post by Tibors » Sat Jun 24, 2006 7:35 am

The cpufreqd, powersaved and powernowd userspace daemons are old tech :wink:
With newer kernels, using the powernow-k8 kernel module and the "ondemand" governor activates C'n'Q.

Neither method lets you change the CPU voltage independend from the CPU frequency. To do that you have to hack the code of the powernow-k8 kernel module (and thus compile your own kernel). So I would say that for advanced control of multipliers and Vcore you're out of luck on linux, unless you can program.

LM_sensors comes with a script to change your fanspeeds (if the mobo supports it). But it isn't "installed" by default.

bogus
Posts: 42
Joined: Sun May 21, 2006 7:11 pm

Post by bogus » Sat Jun 24, 2006 10:46 am

Tibors wrote:The cpufreqd, powersaved and powernowd userspace daemons are old tech :wink:
With newer kernels, using the powernow-k8 kernel module and the "ondemand" governor activates C'n'Q.
well powernowd use the powernow-k8 module too. Except the governor in question is "userspace", i.e. controlled by powernowd. I just happen to like the the way powernowd change the cpu freq than the in-kernel governors. I might change my mind someday, thought.
Neither method lets you change the CPU voltage independend from the CPU frequency. To do that you have to hack the code of the powernow-k8 kernel module (and thus compile your own kernel). So I would say that for advanced control of multipliers and Vcore you're out of luck on linux, unless you can program.
true. however some ppl (like me) find writing kernel driver is easier than installing the Scythe Ninja.

LM_sensors comes with a script to change your fanspeeds (if the mobo supports it). But it isn't "installed" by default.
Not sure what you mean by not installed by default.

Anyway, for a MB like mine, I dont understand why ppl want to control fan by a software program like SpeedFan (which takes a while to start from powerup, subject to sw crash and windows crash) while they have a dedicated (windbond) chip on the MB to do that for them.

frostedflakes
Posts: 1608
Joined: Tue Jan 04, 2005 4:02 pm
Location: United States

Post by frostedflakes » Sat Jun 24, 2006 10:58 am

So there are no applications that allow the user to adjust Vcore? How hard would it be to manually edit Vcore in the kernel? Maybe once I get my system set up somebody could walk me through it, I'm pretty green when it comes to Linux. Am planning to use either Ubuntu or Xubuntu.

flokel
Posts: 28
Joined: Fri Nov 04, 2005 1:50 am
Location: Germany

Post by flokel » Sat Jun 24, 2006 12:28 pm

I dont have a laptop so I was never really interested in saving power. I'm much more interested in reducing heat and noise.
Saving power needs should also mean reduced heat and noise ;)

So if there's no "easy" method to implement vcore settings along with c'n'q,
is there a programm that can simply undervolt the cpu without changing its frequency?

Mfg
Flo

[/code]

bogus
Posts: 42
Joined: Sun May 21, 2006 7:11 pm

Post by bogus » Sat Jun 24, 2006 12:37 pm

frostedflakes wrote:So there are no applications that allow the user to adjust Vcore? How hard would it be to manually edit Vcore in the kernel? Maybe once I get my system set up somebody could walk me through it, I'm pretty green when it comes to Linux. Am planning to use either Ubuntu or Xubuntu.
Well, you have to google around, I'm not aware of anything. If you're brave and programming savvy, then there's a function in the powernow-k8 driver called

Code: Select all

 int transition_fid_vid(struct powernow_k8_data *data, u32 reqfid, u32 reqvid);
This function gracefully move your cpu to a specific requested Freq-ID and requested Vcore-ID. The IDs are from the PST table in the BIOS.

If the above makes no sense to you then you should try your luck and make a request at the Linux-Kernel-Mailing-List.

frostedflakes
Posts: 1608
Joined: Tue Jan 04, 2005 4:02 pm
Location: United States

Post by frostedflakes » Sat Jun 24, 2006 12:52 pm

So you'd have to change the P-state data in the BIOS? How does windows software that adjusts Vcore work then? There must be another way.

Unfortunately I don't know jack about programming, so it looks like I'm at the whim of those who do. :(

I was really looking forward to a 5w Sempron in Linux -- 800Mhz 0.8V. :P

hvengel
Posts: 205
Joined: Sat Oct 19, 2002 12:06 am
Location: Concord, Ca

Post by hvengel » Sat Jun 24, 2006 12:59 pm

Changing the kernel code so that you can specify the fid and/or vid is not hard. All of the code is isolated in a single file that has perhaps 500 lines of code. But you do have to know how to program at least a little and you will also have to redo the changes everytime you upgrade your kernel. I upgrade my kernel about 3 to 4 times a years but this may be more often then most.

Here is a detailed thread from the Gentoo AMD64 forum about this:

http://forums.gentoo.org/viewtopic-t-24 ... t-vid.html

This has patches and some links to some tools to help out with this. Lots of good info about controlling CPU voltages.

noisekiller
Posts: 103
Joined: Tue Jan 10, 2006 11:47 pm

Post by noisekiller » Sat Jun 24, 2006 1:38 pm

When i try to load powernow module i get error saying:

powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.60.0)
cpufreq-core: trying to register driver powernow-k8
cpufreq-core: adding CPU 0
powernow-k8: register performance failed: bad ACPI data
powernow-k8: BIOS error - no PSB or ACPI _PSS objects
cpufreq-core: initialization failed
cpufreq-core: no CPU initialized for driver powernow-k8
cpufreq-core: unregistering CPU 0


I have Foxconn 760GXK8MC-RS motherboard with A64 Venice 3000+ on it.C'n'Q is enabled in BIOS.I have contacted foxconn and they have told me to upgrade BIOS...so i did...but still nothing...anybody knows where is the problem?

P.S.-OS > Slackware 10.2
Linux 2.6.16.9

bogus
Posts: 42
Joined: Sun May 21, 2006 7:11 pm

Post by bogus » Sat Jun 24, 2006 2:18 pm

frostedflakes wrote:So you'd have to change the P-state data in the BIOS? How does windows software that adjusts Vcore work then? There must be another way.
No, the driver (written by amd) can change Vcore independently of the freq, it choose NOT to do so. It only use a legal freq-vcore combo from the PST.
Unfortunately I don't know jack about programming, so it looks like I'm at the whim of those who do. :(
I know how to change the driver but I'm NOT familiar with Vcore stuffs and unwilling to experiment with Vcore on my brand new PC.
I was really looking forward to a 5w Sempron in Linux -- 800Mhz 0.8V. :P

Tibors
Patron of SPCR
Posts: 2674
Joined: Sun Jul 04, 2004 6:07 am
Location: Houten, The Netherlands, Europe

Post by Tibors » Sun Jun 25, 2006 3:21 am

bogus wrote:
Tibors wrote:LM_sensors comes with a script to change your fanspeeds (if the mobo supports it). But it isn't "installed" by default.
Not sure what you mean by not installed by default.

Anyway, for a MB like mine, I dont understand why ppl want to control fan by a software program like SpeedFan (which takes a while to start from powerup, subject to sw crash and windows crash) while they have a dedicated (windbond) chip on the MB to do that for them.
If you put LM_sensors on your Linux system, then the fan control script just sits somewhere in a directory doing nothing. Unless you happen to stumble over its existence in the docs or someone tells you to go look for it, it won't do anything for you. Once you have found it, you have to call it from somewhere (and maybe adapt it for your use). This is unlike what some people less used to Linux and more used to Windows are used to.

The winbond chip doesn't have any control algorithm. It has only sensors and a speed switch. On your mobo and on the MSI board in my sig, the BIOS has a control algorithm that is good enough for us. On a lot of other mobos the chip is there, but the BIOS doesn't implement any decent control algorithm. So you'll need to control the chip from somewhere else. The only choice you have left in that situation, is using some software running under your OS of choice.

Post Reply