[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: running powernowd on debian lenny



Umarzuki Mochlis wrote:
2009/12/27 Dave Witbrodt <dawitbro@sbcglobal.net Umarzuki Mochlis wrote:

        I have a cq40-115au latop with AMD Turion x2 RM-70 processor.

        I want to enable powernowd. After i compiled it from source


    Because you built your own, it becomes more difficult for the rest
    of us to help you.  The Debian 'powernowd' package has been altered
    from upstream to put its configuration options in
    /etc/default/powernowd.  My answers below are from my own
    experiences using the Debian 'powernowd' package; you will have to
    read the documentation in the source code, and figure out how to
    translate my answers to work for your own setup.  (In my view, it
    was a waste of time for you to compile your own 'powernowd', since
    Debian already has the package.)


i had removed it (now) with #make clean
#rm -f /usr/bin/powernowd
and installed powernowd package, enabled needed modules

#modprobe cpufreq_userspace powernow-k8

So, did that work or not?


        , when i ran
        # powernowd
        here are the output:

        powernowd: PowerNow Daemon v1.00, (c) 2003-2008 John Clemens
        /sys/devices/system/cpu/cpu0/cpufreq/affected_cpus: No such file
        or directory
        powernowd: err=2
        powernowd: Found 2 scalable units:  -- 1 'CPU' per scalable unit
        /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq: No such
        file or directory

        PowerNowd encountered and error and could not start.
        Please make sure that:
         - You are running a v2.6.7 kernel or later
         - That you have sysfs mounted /sys
         - That you have the core cpufreq and cpufreq-userspace
          modules loaded into your kernel
         - That you have the cpufreq driver for your cpu loaded,
          (for example: powernow-k7), and that it works. Check
          'dmesg' for errors.

        # uname -r
        2.6.26-2-686-bigmem


    I assume that is a Debian kernel?  The default CPU_FREQ_GOV*
    settings have changed over time.  What do you get if you run this:

       grep CPU_FREQ /boot/config-2.6.26-2-686-bigmem


CONFIG_CPU_FREQ=y
[...]
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m

So, you have an old kernel that defaults to "performance". That will cause your CPU to run at full speed, instead of cycling down when not needed.

    What is in /etc/fstab?  If you installed using a
    Debian installer, you should have a line like this:

       sysfs  /sys  sysfs  defaults  0  0


# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/sda1       /               ext3    errors=remount-ro 0       1
/dev/sda2       /home           ext3    defaults        0       2
/dev/sda5       none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0
sysfs /sys sysfs defaults 0 0

Looks OK.


# mount -t sysfs none /sys
mount: none already mounted or /sys busy
mount: according to mtab, sysfs is already mounted on /sys

Yep, you already had /sys... no need to try to mount it again.


     What should I do next?

    If the 'sysfs' line is missing from /etc/fstab, add it then mount it
    using 'mount /sys'.

    With Debian kernels, you need to add two lines to /etc/modules to
    make it possible for 'powernowd' to run with recent AMD CPUs:

      cpufreq_userspace
      powernow-k8

    You can load these without rebooting using 'modprobe'.  (I build my
    own kernels, so when I _used_ to use 'powernowd', I simply built
    these options directly into the kernel.)

    If you were using 'powernowd' packages from Debian, you could edit
    /etc/default/powernowd to enable loading the program during the boot
    sequence and to customize its settings.  Since you built your own
    'powernowd', tweaking the configuration may involve editing a
    bootscript or something.  (You're on your own here:  RTF docs.)


    One last thought.  I played with 'powernowd' for a while.  I liked
    it well enough.  Then I found out that the Linux kernel has the
    CPU_FREQ_GOV_ONDEMAND driver, which can be built into the kernel or
    used as a loadable module.  Debian kernels began defaulting to it a
    while ago, though your kernel may be old enough that it was not yet
    using it by default.  I decided that 'powernowd' was superfluous,
    and began using 'cpufreq_ondemand' and never looked back.  My advice
    would be that you do the same.

So, did any of this work? After letting the machine idle for a few seconds, run this:

    cat /proc/cpuinfo | grep MHz

The CPU frequency printed will be much lower than the rated speed of the CPU if 'powernowd' (or 'ondemand') are working.


DW


Reply to: