# Longer battery life - Run cooler (for centrino and athlon64)

## Elmo234

Hi!

I started developing a new program. The first version is out now  :Smile: 

It is a daemon to replace powernowd, cpufreqd, etc...

It is more configurable and it lets you override the voltage of AMD K8 core cpu's (Athlon 64, Opteron and some Semprons) and Pentuim-M (centrino) and Celeron-M from Intel.

After a few test I found that my athlon 64 processor was able to work at 1,2v at 1800Mhz and 0,8v at 800Mhz (AMD it has to work at 1,5 and 1,1v). This makes the cpu run cooler and I have almos 30 minutes more of battery life.

So you can have a try if you want...

www.tuxamito.com.es/cpupw/ Here you will find a lot more of information.

Please, write your comments...

----------

## cyberjun

Hi,

        I am very new to all this voltage under/over clocking stuff although not to linux. I have downloaded and compiled your program. I have

a Toshiba Satellite M30 laptop. It has a pentium-M cpu. The top freq is 1.7GHz. I have observed that my laptop runs much cooler on batteries when in XP. In linux even when I lower the freq to 600 MHz with cpufreq-set, it runs quite hot. Hence I want to try your program. Can you please guide me where shall I start? I mean to create a config file which is appropriate, what shall I do? I have seen your short intro page but  could not make out much. What is VID? You say you could adjust the CPU on lower voltage. However I cannot see any column for voltage settings in the conf file.

Am attaching the output of some commands which might be useful:

```

localhost src # cat /proc/cpuinfo 

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 9

model name      : Intel(R) Pentium(R) M processor 1700MHz

stepping        : 5

cpu MHz         : 1695.932

cache size      : 1024 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 2

wp              : yes

flags           : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe est tm2

bogomips        : 3395.44

```

```
localhost src # ./cpupw --status    

System has 1 physical CPU's

CPU 0-> voltage: 3260.000000, VID: 160, frequency: 3900, FID: 39

```

```
localhost src # ./cpupw --autoconfig

1

1

592

6

1700000 -1 -1 -1

1400000 -1 -1 -1

1200000 -1 -1 -1

1000000 -1 -1 -1

800000 -1 -1 -1

600000 -1 -1 -1

1

```

Thanks for the help.

Regards,

--cyberjun

----------

## Elmo234

Sorry for taking me so long to answer. I was without internet connection   :Sad: 

Your values...

```

localhost src # ./cpupw --status   

System has 1 physical CPU's

CPU 0-> voltage: 3260.000000, VID: 160, frequency: 3900, FID: 39 

```

... are a bit strange. I think that you don't have access to the MSR registers. I just hacked a new version that when you try to run it will tell you if they are accessible.

Have you compiled the msr module in the linux kernel?

```

Processor type and features  --->

   <*> /dev/cpu/*/msr - Model-specific registers support

```

and then type as root:

```

mknod /dev/cpu/0/msr c 202 0

```

When you have done this, please show me another "cpupw --status" output.

----------

## cyberjun

Hi,

       I had compiled the module but forgot to load it. Here is the output with and without loading msr:

Without msr loaded:

```
localhost src # ./cpupw --status

You must give write access to the msr registers.

Some options might not work correctly.

You must give read access to the msr registers.

Some options might not work correctly.

System has 1 physical CPU's

CPU 0-> voltage: 3260.000000 v, VID: 160, frequency: 3900 Mhz, FID: 39

```

With msr loaded:

```
localhost src # ./cpupw --status

System has 1 physical CPU's

CPU 0-> voltage: 1484.000000 v, VID: 49, frequency: 1700 Mhz, FID: 17

```

Now please run your magic wand and lower the temperature of my laptop  :Smile: 

--cyberjun

----------

## beatryder

While I would love to make use of this app, it seems to be ignorant of 533Mhz FSBs

```
System has 1 physical CPU's

CPU 0-> voltage: 1356.000000 v, VID: 41, frequency: 1200 Mhz, FID: 12

```

that is with my Laptop plugged in and running at 1.6 Ghz.

I have a sonoma with the 533FSB

Although the autoconfig seems quite happy

```

cpupw --autoconfig

1

1

592

4

1600000 -1 -1 -1

1333000 -1 -1 -1

1067000 -1 -1 -1

800000 -1 -1 -1

1

```

----------

## Elmo234

Thanks for your interest in this program.

 *beatryder wrote:*   

> While I would love to make use of this app, it seems to be ignorant of 533Mhz FSBs
> 
> ```
> System has 1 physical CPU's
> 
> ...

 

I already know this bug. I was looking for a way of guessing the FSB speed... this will be solved in the next release. "--status" thinks that the FSB is always 100 Mhz (400 Mhz), but "--autoconfig" reads the cpufreq speed table, that's why it is correct. Anyway... "--status" only shows information, so the rest of the program will work correctly.

----------

## beatryder

Hmm, So does this work with the governors that are built into the Kernel?

right now I have my laptop set to automagically change to conservative when it is on batteries and performance when it is plugged in.

Can you advise me on how I can use your tool as well?

----------

## Elmo234

 *beatryder wrote:*   

> Hmm, So does this work with the governors that are built into the Kernel?
> 
> right now I have my laptop set to automagically change to conservative when it is on batteries and performance when it is plugged in.
> 
> Can you advise me on how I can use your tool as well?

 

Yes, it uses the cpufreq linux driver. The governor must be "userspace" otherwise it won't work correctly... You don't have to forget to stop any other cpufreq daemon (like powernowd or cpufreqd) or you will see a fight to change the cpu frequency.Last edited by Elmo234 on Tue Mar 21, 2006 11:43 pm; edited 1 time in total

----------

## beatryder

ok thank you.

----------

## Elmo234

Editing a configuration file is a bit difficult and requires a bit of investigation.

First you have to keep in mind these formulas for Pentium-M:

Voltage to VID

VID = (voltage - 700) / 16

VID to Voltage

voltage = (VID * 16) + 700 (in milivolts)

with this you will see that for example:

VID = 49 -> 1.484v

VID = 38 -> 1.308v

VID = 25 -> 1.100v

VID = 18 -> 0.988v

Second, you have to know which is the VID of your cpu for each speed. You have to change the cpu to each speed and "./cpupw --status" will tell you the VID. To change the speed yo can go to "/sys/devices/system/cpu/cpu0/cpufreq/" directory. Then "cat scaling_available_frequencies". You will have a list of the frequencys supported by your cpu. You should write each number in the file "scaling_setspeed". You can do this with "echo xxxxxx > scaling_setspeed" where xxxxxx is the speed (be careful with the amount of zero's). As I said before you should run "./cpupw --status" everytime you change the speed. Write down the VID for each speed  :Smile: 

Now you will have a table of Speed-VID. These numbers are the defaults... Normally a good and safe undervolt for Pentim-M is to decrease te voltage by 0.160v (that is to decrease the VID's values by 10).

For example if at 1600 Mhz you have a VID of 38 (1.308v) you can use a VID of 28 (1.148v). To do this you should write this in the config file...

```
...

1600000 28 -1 -1

...
```

The first old "-1" is the new VID, "-1" just means "use the default value". Write you desired VID for each frequency  :Smile: 

Then save the file and run the program with "./cpupw --daemonice --config config.file" You can add other options like "--smart".

TIPS: 

- Try one new VID each time. Run the computer for some time. If it doesn't halt you can try a lower VID for that frequency or just set a new VID for another frequency. If the system halts, raise the last VID you lowered...

----------

## beatryder

Is the status currently reporting the correct VID's even though the speed is off?

----------

## Elmo234

 *beatryder wrote:*   

> Is the status currently reporting the correct VID's even though the speed is off?

 

Yes... "--status" reads the actual VID and FID. You will see that if you multiply the FID * 133 (instead of 100 like the program is doing) you will have the correct speed  :Smile: 

----------

## beatryder

Ahh yes. thanks

----------

## beatryder

I am using the following configuration and my cpu is NOT clocking up at all.

```
cpupw --config /etc/cpupw/config --smart -u 80 -D 45
```

and the config

```

1

1

592

4

1600000 38 -1 -1

1333000 24 -1 -1

1067000 18 -1 -1

800000 13 -1 -1

1

```

As I said before I have a sonoma 730 (1.6Ghz PM with 533Mhz FSB).

----------

## Elmo234

 *beatryder wrote:*   

> I am using the following configuration and my cpu is NOT clocking up at all.
> 
> ```
> cpupw --config /etc/cpupw/config --smart -u 80 -D 45
> ```
> ...

 

try:

```
cpupw --config /etc/cpupw/config --smart -u 80 -D 45 --foreground
```

or

```
cpupw --config /etc/cpupw/config --smart -u 80 -D 45 --daemonize
```

In the first one you will see the frequencies changing...

----------

## beatryder

Already tried that...... seeing nothing.

Edit:

It does clock down when I pull the power connection. but when I plug it back in, or say emerge something it does not clock up at all.

----------

## Elmo234

 *beatryder wrote:*   

> Already tried that...... seeing nothing.
> 
> Edit:
> 
> It does clock down when I pull the power connection. but when I plug it back in, or say emerge something it does not clock up at all.

 

and...

 *beatryder wrote:*   

> Hmm, So does this work with the governors that are built into the Kernel?
> 
> right now I have my laptop set to automagically change to conservative when it is on batteries and performance when it is plugged in.
> 
> Can you advise me on how I can use your tool as well?

 

Did you change this? CPUPW needs the "userspace" governor for cpufreq. Otherwise it won't work  :Sad: 

please, type "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor" and send me the output.

----------

## beatryder

yes, i did do that echo.

----------

## tboloo

I have "userspace" governor, as well as msr support in kernel, but when I try to see status of my cpu I get :

```

bolek@mobile ~/cpupw-0.1.1/src $ ./cpupw -s

System has 1 physical CPU's

CPU 0-> voltage: 0.000000 v, VID: 134513806, frequency: 0 Mhz, FID: 2

```

What's wrong ??

----------

## beatryder

run it as root

----------

## tboloo

I forgot to mention that running as root doesn't help - result is the same.

Maybe it's because despite the fact that I have Centrino processor. 

```

mobile src # cat /proc/cpuinfo 

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 13

model name      : Intel(R) Pentium(R) M processor 1.50GHz

stepping        : 8

cpu MHz         : 1498.791

cache size      : 2048 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 2

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx est tm2

bogomips        : 2998.89

```

I can't use neither speedstep-centrino nor speedstep-ich due to an error :

```

mobile src # modprobe speedstep-centrino

FATAL: Error inserting speedstep_centrino (/lib/modules/2.6.15-archck5/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.ko): No such device

mobile src # modprobe speedstep-ich

FATAL: Error inserting speedstep_ich (/lib/modules/2.6.15-archck5/kernel/arch/i386/kernel/cpu/cpufreq/speedstep- No such device

```

I can only use p4-clockomod and acpi-cpufreq drivers ...

----------

## Elmo234

tboloo, I think the problem is with the kernel, not with cpupw. Try to compile the driver inside the kernel, not as a module...

by the way, I just released a new version... cpupw 0.2.0. But I haven't test it much. The main new things are:

- It is supposed tu run on multiprocessor computers (the other versions didn't, there was a bug) and I say supposed because I don't have a multiprocessor system to test.

- Possibility to adjust VID and FID manually.

- Detects which governor is running and gives warnings if it is not "userspace".

- Now the FSB frequency is detected (the theoretical and the real one).

- You can modify the VID by a constant, passed as a parameter. This let's you decrease, for example, 0.2v in every step without creating a config file.

the web page is the same: http://tuxamito.com.es/cpupw/

please, give me your reports

thanks

----------

## Ehnvis

Elmo234, great little utility here. Working fine on my HP NC4010, lowered my temps while compiling (1600MHz speed) from 74 degrees celcius to 60 degrees celcius only by changing the VID with your recommended 10 points (40 to 30 VID, ie 1.340 volts to 1.180 volts).

I have to play around with it a little more as it seems ppl have ran the same CPU (pentium-m 725) as low as 0.988 volts without problems. 

Keep up the good work.

----------

## darklegion

I get "Device or resource busy" when trying to insert the msr module.

uname -a :

Linux darkbox 2.6.17-rc3-no2 #6 PREEMPT Thu Jun 15 20:57:41 EST 2006 i686 GNU/Linux

ls -l /dev/cpu/0:

crw-r--r--  1 root root 202, 0 2006-06-16 09:46 msr

Kernel config:

CONFIG_X86_MSR=y

lspci:

000:00:00.0 Host bridge: ALi Corporation: Unknown device 1695

0000:00:01.0 PCI bridge: ALi Corporation: Unknown device 524b

0000:00:02.0 PCI bridge: ALi Corporation: Unknown device 524c

0000:00:04.0 Host bridge: ALi Corporation: Unknown device 1689

0000:00:05.0 PCI bridge: ALi Corporation: Unknown device 5246

0000:00:06.0 PCI bridge: ALi Corporation M5249 HTT to PCI Bridge

0000:00:07.0 ISA bridge: ALi Corporation M1563 HyperTransport South Bridge (rev 70)

0000:00:07.1 Bridge: ALi Corporation M7101 Power Management Controller [PMU]

0000:00:08.0 Multimedia audio controller: ALi Corporation M5455 PCI AC-Link Controller Audio Device (rev 20)

0000:00:11.0 Ethernet controller: ALi Corporation: Unknown device 5263 (rev 40)

0000:00:12.0 IDE interface: ALi Corporation M5229 IDE (rev c7)

0000:00:13.0 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)

0000:00:13.1 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)

0000:00:13.2 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)

0000:00:13.3 USB Controller: ALi Corporation USB 2.0 Controller (rev 01)

0000:00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge

0000:00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge

0000:00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge

0000:00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge

0000:01:00.0 VGA compatible controller: nVidia Corporation: Unknown device 0140 (rev a2)

0000:04:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

0000:04:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

0000:04:07.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)

0000:04:07.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)

lsmod :

vmmon                 182444  0 

xpad                    5252  0 

osslinux             1711444  8 

sch_ingress             3396  1 

cls_u32                 6980  2 

sch_sfq                 4928  3 

cls_fw                  3968  2 

sch_htb                15360  1 

xt_MARK                 1984  8 

ipt_REJECT              3968  4 

xt_pkttype              1536  4 

ipt_LOG                 5824  9 

xt_tcpudp               3008  330 

xt_state                1728  24 

xt_multiport            3136  0 

xt_conntrack            2176  0 

iptable_mangle          2112  1 

ip_nat_irc              1984  0 

ip_nat_tftp             1344  0 

ip_nat_ftp              2688  0 

iptable_nat             5636  0 

ip_nat                 13740  4 ip_nat_irc,ip_nat_tftp,ip_nat_ftp,iptable_nat

ip_conntrack_irc        5168  1 ip_nat_irc

ip_conntrack_tftp       3128  1 ip_nat_tftp

ip_conntrack_ftp        6064  1 ip_nat_ftp

iptable_filter          2176  1 

ip_tables              11800  3 iptable_mangle,iptable_nat,iptable_filter

x_tables               10884  10 xt_MARK,ipt_REJECT,xt_pkttype,ipt_LOG,xt_tcpudp,xt_state,xt_multiport,xt_conntrack,iptable_nat,ip_tables

tuner                  52600  0 

tda9887                15696  0 

bttv                  161588  0 

video_buf              20228  1 bttv

firmware_class          8128  1 bttv

ir_common              23428  1 bttv

compat_ioctl32          1024  1 bttv

i2c_algo_bit            7944  1 bttv

v4l2_common            14656  2 tuner,bttv

btcx_risc               3976  1 bttv

tveeprom               13520  1 bttv

I'll post a full config if it will help later.

Thanks

----------

## darklegion

Okay I recompiled my kernel and now the msr module loads, but when I type "cpupw" as root I get this message:

readmsr, in read: Invalid argument

readmsr, in read: Invalid argument

I also did an strace, and have pasted part of it here:

dup(2)                                  = 4

fcntl64(4, F_GETFL)                     = 0x2 (flags O_RDWR)

fstat64(4, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7ef0000

_llseek(4, 0, 0xbf827f78, SEEK_CUR)     = -1 ESPIPE (Illegal seek)

write(4, "readmsr, in read: Invalid argume"..., 35readmsr, in read: Invalid argument

) = 35

close(4)                                = 0

My CPU is an Athlon 64 3200+ Venice which is overclocked to 2.45ghz with stock vcore.The program supports K8 chips though, so I don't think thats the problem.

----------

## darklegion

EDIT: Disregard this post, I fixed the problem by recompiling cpupw.

Okay that problem was on my ubuntu system and I still seem to have it on my gentoo system.

Some info:

cat /proc/cpuinfo :

```

processor       : 0

vendor_id       : AuthenticAMD

cpu family      : 15

model           : 47

model name      : AMD Athlon(tm) 64 Processor 3200+

stepping        : 2

cpu MHz         : 1000.000

cache size      : 512 KB

fpu             : yes

fpu_exception   : yes

cpuid level     : 1

wp              : yes

flags           : 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 up pni lahf_lm

bogomips        : 2451.69

TLB size        : 1024 4K pages

clflush size    : 64

cache_alignment : 64

address sizes   : 40 bits physical, 48 bits virtual

power management: ts fid vid ttp tm stc

```

./cpupw --status with "./cpupw --config config --smart -u 80 -D 45 --foreground" running:

```

readmsr, in read: Invalid argument

readmsr, in read: Invalid argument

System has 1 physical CPUs and 1 logial CPUs

readmsr, in read: Invalid argument

CPU 0-> voltage: 1.350000 v, VID: 8, frequency: 800 Mhz, FID: 0

        Theorical bus speed: 14.000000

        Real bus speed: 111.111115

readmsr, in read: Invalid argument

        Real cpu speed: 5444.444611

        Governor: userspace

```

reported voltage jumps between 1.350000 and 0.950000 but it does this even if speed stays at 1000mhz or cpupw is not running.

cpupw config file:

```
1

1

304

3

2000000 13 -1 -1

1800000 15 -1 -1

1000000 17 -1 -1

1

```

This above is possibly configured wrong.

ls -l /dev/cpu/0/msr :

```

crw-rw---- 1 root root 202, 0 2006-07-06 16:06 /dev/cpu/0/msr

```

I'm running as root, though.

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:

```

userspace

```

uname -a:

```

Linux gentoo 2.6.17-no2 #1 PREEMPT Thu Jul 6 14:50:35 EST 2006 x86_64 AMD Athlon(tm) 64 Processor 3200+ AuthenticAMD GNU/Linux

```

Kernel config:

```

CONFIG_X86_64=y

CONFIG_64BIT=y

CONFIG_X86=y

CONFIG_SEMAPHORE_SLEEPERS=y

CONFIG_MMU=y

CONFIG_RWSEM_GENERIC_SPINLOCK=y

CONFIG_GENERIC_HWEIGHT=y

CONFIG_GENERIC_CALIBRATE_DELAY=y

CONFIG_X86_CMPXCHG=y

CONFIG_EARLY_PRINTK=y

CONFIG_GENERIC_ISA_DMA=y

CONFIG_GENERIC_IOMAP=y

CONFIG_ARCH_MAY_HAVE_PC_FDC=y

CONFIG_DMI=y

CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

CONFIG_EXPERIMENTAL=y

CONFIG_BROKEN_ON_SMP=y

CONFIG_LOCK_KERNEL=y

CONFIG_INIT_ENV_ARG_LIMIT=32

CONFIG_STAIRCASE=y

CONFIG_LOCALVERSION=""

CONFIG_LOCALVERSION_AUTO=y

CONFIG_SWAP=y

CONFIG_SWAP_PREFETCH=y

CONFIG_SYSVIPC=y

CONFIG_POSIX_MQUEUE=y

CONFIG_SYSCTL=y

CONFIG_IKCONFIG=y

CONFIG_IKCONFIG_PROC=y

CONFIG_INITRAMFS_SOURCE=""

CONFIG_KLIBC_ERRLIST=y

CONFIG_KLIBC_ZLIB=y

CONFIG_UID16=y

CONFIG_CC_OPTIMIZE_FOR_SIZE=y

CONFIG_KALLSYMS=y

CONFIG_HOTPLUG=y

CONFIG_PRINTK=y

CONFIG_BUG=y

CONFIG_ELF_CORE=y

CONFIG_BASE_FULL=y

CONFIG_RT_MUTEXES=y

CONFIG_FUTEX=y

CONFIG_EPOLL=y

CONFIG_SHMEM=y

CONFIG_SLAB=y

CONFIG_PROCESSOR_SELECT=y

CONFIG_CPU_SUP_INTEL=y

CONFIG_CPU_SUP_AMD=y

CONFIG_BASE_SMALL=0

CONFIG_MODULES=y

CONFIG_MODULE_UNLOAD=y

CONFIG_KMOD=y

CONFIG_LBD=y

CONFIG_IOSCHED_NOOP=y

CONFIG_IOSCHED_AS=y

CONFIG_IOSCHED_DEADLINE=y

CONFIG_IOSCHED_CFQ=y

CONFIG_DEFAULT_DEADLINE=y

CONFIG_DEFAULT_IOSCHED="deadline"

CONFIG_X86_PC=y

CONFIG_MK8=y

CONFIG_X86_L1_CACHE_BYTES=64

CONFIG_X86_L1_CACHE_SHIFT=6

CONFIG_X86_INTERNODE_CACHE_BYTES=64

CONFIG_X86_TSC=y

CONFIG_X86_GOOD_APIC=y

CONFIG_X86_MSR=y

CONFIG_X86_CPUID=y

CONFIG_X86_IO_APIC=y

CONFIG_X86_LOCAL_APIC=y

CONFIG_MTRR=y

CONFIG_PREEMPT=y

CONFIG_PREEMPT_BKL=y

CONFIG_ARCH_SPARSEMEM_ENABLE=y

CONFIG_ARCH_FLATMEM_ENABLE=y

CONFIG_SELECT_MEMORY_MODEL=y

CONFIG_FLATMEM_MANUAL=y

CONFIG_RESOURCES_64BIT=y

CONFIG_FLATMEM=y

CONFIG_FLAT_NODE_MEM_MAP=y

CONFIG_SPLIT_PTLOCK_CPUS=4

CONFIG_ADAPTIVE_READAHEAD=y

CONFIG_READAHEAD_SMOOTH_AGING=y

CONFIG_HPET_TIMER=y

CONFIG_HPET_EMULATE_RTC=y

CONFIG_IOMMU=y

CONFIG_SWIOTLB=y

CONFIG_X86_MCE=y

CONFIG_X86_MCE_INTEL=y

CONFIG_X86_MCE_AMD=y

CONFIG_KEXEC=y

CONFIG_PHYSICAL_START=0x200000

CONFIG_SECCOMP=y

CONFIG_HZ_250_NODEFAULT=y

CONFIG_HZ=250

CONFIG_K8_NB=y

CONFIG_GENERIC_HARDIRQS=y

CONFIG_GENERIC_IRQ_PROBE=y

CONFIG_ISA_DMA_API=y

CONFIG_PM=y

CONFIG_PM_LEGACY=y

CONFIG_SOFTWARE_SUSPEND=y

CONFIG_PM_STD_PARTITION="/dev/hdc1"

CONFIG_ACPI=y

CONFIG_ACPI_VIDEO=y

CONFIG_ACPI_FAN=y

CONFIG_ACPI_PROCESSOR=y

CONFIG_ACPI_THERMAL=y

CONFIG_ACPI_BLACKLIST_YEAR=0

CONFIG_ACPI_EC=y

CONFIG_ACPI_POWER=y

CONFIG_ACPI_SYSTEM=y

CONFIG_X86_PM_TIMER=y

CONFIG_CPU_FREQ=y

CONFIG_CPU_FREQ_TABLE=y

CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_POWERSAVE=y

CONFIG_CPU_FREQ_GOV_USERSPACE=y

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

CONFIG_X86_POWERNOW_K8=y

CONFIG_X86_POWERNOW_K8_ACPI=y

CONFIG_PCI=y

CONFIG_PCI_DIRECT=y

CONFIG_PCI_MMCONFIG=y

CONFIG_PCIEPORTBUS=y

CONFIG_BINFMT_ELF=y

CONFIG_BINFMT_MISC=y

CONFIG_IA32_EMULATION=y

CONFIG_IA32_AOUT=y

CONFIG_COMPAT=y

CONFIG_SYSVIPC_COMPAT=y

CONFIG_NET=y

CONFIG_PACKET=y

CONFIG_PACKET_MMAP=y

CONFIG_UNIX=y

CONFIG_INET=y

CONFIG_IP_MULTICAST=y

CONFIG_IP_FIB_HASH=y

CONFIG_INET_DIAG=y

CONFIG_INET_TCP_DIAG=y

CONFIG_TCP_CONG_BIC=y

CONFIG_NETFILTER=y

CONFIG_NETFILTER_NETLINK=m

CONFIG_NETFILTER_NETLINK_QUEUE=m

CONFIG_NETFILTER_NETLINK_LOG=m

CONFIG_NETFILTER_XTABLES=y

CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y

CONFIG_NETFILTER_XT_TARGET_MARK=y

CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m

CONFIG_NETFILTER_XT_TARGET_NOTRACK=m

CONFIG_NETFILTER_XT_MATCH_COMMENT=m

CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m

CONFIG_NETFILTER_XT_MATCH_DCCP=m

CONFIG_NETFILTER_XT_MATCH_HELPER=m

CONFIG_NETFILTER_XT_MATCH_LENGTH=m

CONFIG_NETFILTER_XT_MATCH_LIMIT=m

CONFIG_NETFILTER_XT_MATCH_MAC=m

CONFIG_NETFILTER_XT_MATCH_MARK=m

CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m

CONFIG_NETFILTER_XT_MATCH_REALM=m

CONFIG_NETFILTER_XT_MATCH_SCTP=m

CONFIG_NETFILTER_XT_MATCH_STATE=m

CONFIG_NETFILTER_XT_MATCH_STRING=m

CONFIG_NETFILTER_XT_MATCH_TCPMSS=m

CONFIG_IP_NF_CONNTRACK=y

CONFIG_IP_NF_FTP=m

CONFIG_IP_NF_IPTABLES=m

CONFIG_IP_NF_MATCH_IPRANGE=m

CONFIG_IP_NF_MATCH_TOS=m

CONFIG_IP_NF_MATCH_RECENT=m

CONFIG_IP_NF_MATCH_ECN=m

CONFIG_IP_NF_MATCH_DSCP=m

CONFIG_IP_NF_MATCH_TTL=m

CONFIG_IP_NF_MATCH_OWNER=m

CONFIG_IP_NF_MATCH_ADDRTYPE=m

CONFIG_IP_NF_MATCH_HASHLIMIT=m

CONFIG_IP_NF_FILTER=m

CONFIG_IP_NF_TARGET_REJECT=m

CONFIG_IP_NF_TARGET_LOG=m

CONFIG_IP_NF_TARGET_ULOG=m

CONFIG_IP_NF_TARGET_TCPMSS=m

CONFIG_IP_NF_NAT=m

CONFIG_IP_NF_NAT_NEEDED=y

CONFIG_IP_NF_TARGET_MASQUERADE=m

CONFIG_IP_NF_TARGET_REDIRECT=m

CONFIG_IP_NF_TARGET_NETMAP=m

CONFIG_IP_NF_TARGET_SAME=m

CONFIG_IP_NF_NAT_SNMP_BASIC=m

CONFIG_IP_NF_NAT_FTP=m

CONFIG_IP_NF_MANGLE=m

CONFIG_IP_NF_TARGET_TOS=m

CONFIG_IP_NF_TARGET_ECN=m

CONFIG_IP_NF_TARGET_DSCP=m

CONFIG_IP_NF_TARGET_TTL=m

CONFIG_IP_NF_RAW=m

CONFIG_IP_NF_ARPTABLES=m

CONFIG_IP_NF_ARPFILTER=m

CONFIG_IP_NF_ARP_MANGLE=m

CONFIG_NET_SCHED=y

CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y

CONFIG_NET_SCH_CBQ=m

CONFIG_NET_SCH_HTB=m

CONFIG_NET_SCH_HFSC=m

CONFIG_NET_SCH_PRIO=m

CONFIG_NET_SCH_RED=m

CONFIG_NET_SCH_SFQ=m

CONFIG_NET_SCH_TEQL=m

CONFIG_NET_SCH_TBF=m

CONFIG_NET_SCH_GRED=m

CONFIG_NET_SCH_DSMARK=m

CONFIG_NET_SCH_NETEM=m

CONFIG_NET_SCH_INGRESS=m

CONFIG_NET_CLS=y

CONFIG_NET_CLS_BASIC=m

CONFIG_NET_CLS_TCINDEX=m

CONFIG_NET_CLS_ROUTE4=m

CONFIG_NET_CLS_ROUTE=y

CONFIG_NET_CLS_FW=m

CONFIG_NET_CLS_U32=m

CONFIG_CLS_U32_PERF=y

CONFIG_CLS_U32_MARK=y

CONFIG_NET_CLS_RSVP=m

CONFIG_NET_CLS_POLICE=y

CONFIG_NET_ESTIMATOR=y

CONFIG_STANDALONE=y

CONFIG_PREVENT_FIRMWARE_BUILD=y

CONFIG_FW_LOADER=m

CONFIG_PARPORT=y

CONFIG_PARPORT_PC=y

CONFIG_PNP=y

CONFIG_PNPACPI=y

CONFIG_BLK_DEV_LOOP=y

CONFIG_BLK_DEV_RAM=y

CONFIG_BLK_DEV_RAM_COUNT=16

CONFIG_BLK_DEV_RAM_SIZE=4096

CONFIG_IDE=y

CONFIG_BLK_DEV_IDE=y

CONFIG_BLK_DEV_IDEDISK=y

CONFIG_IDEDISK_MULTI_MODE=y

CONFIG_BLK_DEV_IDECD=y

CONFIG_BLK_DEV_CMD640=y

CONFIG_BLK_DEV_IDEPCI=y

CONFIG_IDEPCI_SHARE_IRQ=y

CONFIG_BLK_DEV_GENERIC=y

CONFIG_BLK_DEV_RZ1000=y

CONFIG_BLK_DEV_IDEDMA_PCI=y

CONFIG_IDEDMA_PCI_AUTO=y

CONFIG_BLK_DEV_ALI15X3=y

CONFIG_BLK_DEV_AMD74XX=y

CONFIG_BLK_DEV_ATIIXP=y

CONFIG_BLK_DEV_PIIX=y

CONFIG_BLK_DEV_PDC202XX_NEW=y

CONFIG_BLK_DEV_IDEDMA=y

CONFIG_IDEDMA_AUTO=y

CONFIG_SCSI=y

CONFIG_BLK_DEV_SD=m

CONFIG_SCSI_SATA=y

CONFIG_SCSI_PATA_ALI=y

CONFIG_SCSI_PATA_ATIIXP=y

CONFIG_SCSI_ATA_PIIX=y

CONFIG_SCSI_SATA_SX4=m

CONFIG_SCSI_SATA_SIS=m

CONFIG_SCSI_SATA_INTEL_COMBINED=y

CONFIG_SCSI_IPR=m

CONFIG_IEEE1394=y

CONFIG_IEEE1394_OHCI1394=y

CONFIG_IEEE1394_RAWIO=y

CONFIG_NETDEVICES=y

CONFIG_DUMMY=m

CONFIG_NET_ETHERNET=y

CONFIG_MII=y

CONFIG_NET_PCI=y

CONFIG_8139TOO=y

CONFIG_8139TOO_PIO=y

CONFIG_E1000=y

CONFIG_S2IO=m

CONFIG_INPUT=y

CONFIG_INPUT_FF_EFFECTS=y

CONFIG_INPUT_MOUSEDEV=y

CONFIG_INPUT_MOUSEDEV_PSAUX=y

CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024

CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768

CONFIG_INPUT_JOYDEV=m

CONFIG_INPUT_KEYBOARD=y

CONFIG_KEYBOARD_ATKBD=y

CONFIG_INPUT_MOUSE=y

CONFIG_MOUSE_PS2=y

CONFIG_SERIO=y

CONFIG_SERIO_I8042=y

CONFIG_SERIO_LIBPS2=y

CONFIG_VT=y

CONFIG_VT_CONSOLE=y

CONFIG_NR_TTY_DEVICES=63

CONFIG_HW_CONSOLE=y

CONFIG_SERIAL_8250=y

CONFIG_SERIAL_8250_PCI=y

CONFIG_SERIAL_8250_PNP=y

CONFIG_SERIAL_8250_NR_UARTS=4

CONFIG_SERIAL_8250_RUNTIME_UARTS=4

CONFIG_SERIAL_CORE=y

CONFIG_UNIX98_PTYS=y

CONFIG_LEGACY_PTYS=y

CONFIG_LEGACY_PTY_COUNT=256

CONFIG_PRINTER=y

CONFIG_RTC=y

CONFIG_AGP=y

CONFIG_AGP_AMD64=y

CONFIG_I2C=y

CONFIG_I2C_CHARDEV=m

CONFIG_I2C_ALGOBIT=m

CONFIG_I2C_ALGOPCF=m

CONFIG_I2C_ALGOPCA=m

CONFIG_I2C_ALI1535=m

CONFIG_I2C_ALI1563=m

CONFIG_I2C_ALI15X3=m

CONFIG_I2C_AMD756=m

CONFIG_I2C_AMD756_S4882=m

CONFIG_I2C_AMD8111=m

CONFIG_I2C_ISA=m

CONFIG_I2C_STUB=m

CONFIG_I2C_VIA=m

CONFIG_I2C_VIAPRO=m

CONFIG_I2C_PCA_ISA=m

CONFIG_SENSORS_DS1337=m

CONFIG_SENSORS_DS1374=m

CONFIG_SENSORS_EEPROM=m

CONFIG_SENSORS_PCF8574=m

CONFIG_SENSORS_PCA9539=m

CONFIG_SENSORS_PCF8591=m

CONFIG_SENSORS_MAX6875=m

CONFIG_HWMON=y

CONFIG_HWMON_VID=m

CONFIG_SENSORS_W83627HF=m

CONFIG_VIDEO_DEV=m

CONFIG_VIDEO_V4L1=y

CONFIG_VIDEO_V4L1_COMPAT=y

CONFIG_VIDEO_V4L2=y

CONFIG_VIDEO_BT848=m

CONFIG_VIDEO_MSP3400=m

CONFIG_VIDEO_TUNER=m

CONFIG_VIDEO_BUF=m

CONFIG_VIDEO_BTCX=m

CONFIG_VIDEO_IR=m

CONFIG_VIDEO_TVEEPROM=m

CONFIG_VGA_CONSOLE=y

CONFIG_DUMMY_CONSOLE=y

CONFIG_SOUND=m

CONFIG_SND=m

CONFIG_SND_TIMER=m

CONFIG_SND_PCM=m

CONFIG_SND_RAWMIDI=m

CONFIG_SND_SEQUENCER=m

CONFIG_SND_OSSEMUL=y

CONFIG_SND_MIXER_OSS=m

CONFIG_SND_PCM_OSS=m

CONFIG_SND_PCM_OSS_PLUGINS=y

CONFIG_SND_SEQUENCER_OSS=y

CONFIG_SND_RTCTIMER=m

CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y

CONFIG_SND_SUPPORT_OLD_API=y

CONFIG_SND_AC97_CODEC=m

CONFIG_SND_AC97_BUS=m

CONFIG_SND_DUMMY=m

CONFIG_SND_VIRMIDI=m

CONFIG_SND_ENS1371=m

CONFIG_SND_INTEL8X0M=m

CONFIG_USB_ARCH_HAS_HCD=y

CONFIG_USB_ARCH_HAS_OHCI=y

CONFIG_USB_ARCH_HAS_EHCI=y

CONFIG_USB=y

CONFIG_USB_DEVICEFS=y

CONFIG_USB_EHCI_HCD=y

CONFIG_USB_OHCI_HCD=y

CONFIG_USB_OHCI_LITTLE_ENDIAN=y

CONFIG_USB_UHCI_HCD=y

CONFIG_USB_PRINTER=y

CONFIG_USB_STORAGE=y

CONFIG_USB_HID=y

CONFIG_USB_HID_MOUSE_POLLING_INTERVAL=10

CONFIG_USB_HIDINPUT=y

CONFIG_USB_XPAD=m

CONFIG_USB_MON=y

CONFIG_USB_CYTHERM=m

CONFIG_USB_PHIDGETSERVO=m

CONFIG_RTC_LIB=m

CONFIG_RTC_CLASS=m

CONFIG_RTC_INTF_SYSFS=m

CONFIG_RTC_INTF_PROC=m

CONFIG_RTC_INTF_DEV=m

CONFIG_DCDBAS=m

CONFIG_EXT2_FS=y

CONFIG_EXT3_FS=y

CONFIG_EXT3_FS_XATTR=y

CONFIG_JBD=y

CONFIG_FS_MBCACHE=y

CONFIG_REISERFS_FS=y

CONFIG_XFS_FS=y

CONFIG_INOTIFY=y

CONFIG_INOTIFY_USER=y

CONFIG_DNOTIFY=y

CONFIG_AUTOFS4_FS=y

CONFIG_ISO9660_FS=y

CONFIG_JOLIET=y

CONFIG_UDF_FS=y

CONFIG_UDF_NLS=y

CONFIG_FAT_FS=y

CONFIG_MSDOS_FS=y

CONFIG_VFAT_FS=y

CONFIG_FAT_DEFAULT_CODEPAGE=437

CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"

CONFIG_PROC_FS=y

CONFIG_PROC_KCORE=y

CONFIG_SYSFS=y

CONFIG_TMPFS=y

CONFIG_RAMFS=y

CONFIG_NFS_FS=y

CONFIG_NFSD=y

CONFIG_NFSD_TCP=y

CONFIG_LOCKD=y

CONFIG_EXPORTFS=y

CONFIG_NFS_COMMON=y

CONFIG_SUNRPC=y

CONFIG_SMB_FS=y

CONFIG_MSDOS_PARTITION=y

CONFIG_NLS=y

CONFIG_NLS_DEFAULT="iso8859-1"

CONFIG_NLS_CODEPAGE_437=y

CONFIG_NLS_ISO8859_1=y

CONFIG_UNUSED_SYMBOLS=y

CONFIG_LOG_BUF_SHIFT=14

CONFIG_CRC32=y

CONFIG_LIBCRC32C=m

CONFIG_TEXTSEARCH=y

CONFIG_TEXTSEARCH_KMP=m

CONFIG_TEXTSEARCH_BM=m

CONFIG_TEXTSEARCH_FSM=m

CONFIG_PLIST=y

```

lsmod :

```

snd_intel8x0           30952  3

snd_ac97_codec         97560  1 snd_intel8x0

snd_ac97_bus            2624  1 snd_ac97_codec

snd_seq_oss            29376  0

snd_seq_midi_event      6848  1 snd_seq_oss

snd_seq                48256  4 snd_seq_oss,snd_seq_midi_event

snd_seq_device          7060  2 snd_seq_oss,snd_seq

snd_pcm_oss            37792  0

snd_pcm                69004  4 snd_intel8x0,snd_ac97_codec,snd_pcm_oss

snd_timer              20936  3 snd_seq,snd_pcm

snd_page_alloc          7952  2 snd_intel8x0,snd_pcm

snd_mixer_oss          14976  2 snd_pcm_oss

snd                    50280  11 snd_intel8x0,snd_ac97_codec,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss

soundcore               8672  2 snd

nvidia               5423156  20

vmnet                  27632  9

vmmon                 178700  7

xt_state                2368  21

xt_pkttype              2176  4

iptable_raw             2112  0

xt_conntrack            2624  0

iptable_mangle          2752  1

ipt_ULOG                8200  0

ipt_TTL                 2304  0

ipt_ttl                 2048  0

ipt_TOS                 2304  0

ipt_tos                 1856  0

ipt_TCPMSS              3904  0

ipt_SAME                2432  0

ipt_REJECT              4480  4

ipt_REDIRECT            2304  0

ipt_recent              8344  0

ipt_owner               2176  0

ipt_NETMAP              2112  0

ipt_MASQUERADE          3136  0

ipt_LOG                 6144  8

ipt_iprange             1984  0

ipt_hashlimit           7824  0

ipt_ECN                 3008  0

ipt_ecn                 2304  0

ipt_DSCP                2304  0

ipt_dscp                1856  0

ipt_addrtype            2048  0

ip_nat_ftp              3328  0

ip_conntrack_ftp        6672  1 ip_nat_ftp

iptable_nat             5956  0

ip_nat                 15660  6 ipt_SAME,ipt_REDIRECT,ipt_NETMAP,ipt_MASQUERADE,ip_nat_ftp,iptable_nat

iptable_filter          2944  1

ip_tables              17584  4 iptable_raw,iptable_mangle,iptable_nat,iptable_filter

```

Thanks

----------

## SinoTech

Nice tool but I've got a small problem. I got an AMD64 3000+ which supports running at 1000 Mhz and 1800 Mhz. When running at 1800 Mhz I am able to set the VID with no problems, but if running at 1000 Mhz no changes where made and the VID always stays at 18.

```

System has 1 physical CPUs and 1 logial CPUs

CPU 0-> voltage: 1.100000 v, VID: 18, frequency: 1000 Mhz, FID: 2

        Theorical bus speed: 100.000000

        Real bus speed: 100.000000

        Real cpu speed: 1000.000000

        Governor: userspace

```

So I wonder why I can set the VID if running at 1800 Mhz, but I cannot set the VID if running at 1000 Mhz ("cpupw --status" always shows a VID of 1 :Cool: .

Regards,

Sino

EDIT:

Ok, seems as 18 is the highest VID accpeted by my board. I still can use a lower VID but none above 18  :Sad: .

----------

## FieserKiller

*bump

First, I want to ask if there is any further developement for cpupw. By the way, Version 0.2 runs like a charm on my box (centrino 1.7Ghz running 24/7 as my powersaving server) but it could be polished a lot - an easier config-file, a official ebuild, man page etc..

Second, i made a pretty simple startscript for cpupw so you can add it in a runlevel. Simply name it cpupw, make it executable and copy it to /etc/init.d/ 

now you can start it with

/etc/init.d/cpupw start

or make it run by default with

rc-update add cpupw default

here it is:

```

#!/sbin/runscript

# by AdamP :)

start() {

   ebegin "Starting CPUPW"

   /usr/sbin/cpupw --config /etc/cpupw.conf --smart -d

   eend $? "I could not start CPUPW"

}

stop() {

   ebegin "Stopping CPUPW"

   killall cpupw

   eend $? "I couldn't stop CPUPW"

}

```

//EDIT: Of course you should change the paths to the executable and config-file to your needs...

----------

