[Home]How To Lower The VCore (Undervolt The CPU) And Use Enhanced Speedstep At The Same Time

Last edit: on August 3, 2006 10:42 (4130 days, 5 hours and 47 minutes ago) (diff)
I915gmm.Gratiswiki.Dk | RecentChanges | Preferences | GratisWiki

Problem

When running a kernel with Enhanced Speedstep support, the CPU VCore gets reset to the default value on boot, so if you have lowered the VCore in BIOS, this will have no effect. This is because the vcore values are read from the ACPI tables from the BIOS.

Solution

Use the following kernel patch to be able to change the VCore on the fly, by using other values than those from the ACPI table:
http://linux-phc.sourceforge.net/

Daniel writes: I've managed to lower the vcore from 1,308V -> 1,148V @ 1,86Ghz and from 0,988V -> 0,748V @ 800Mhz which makes fanless operation at full speed possible.

Other (more complex) solution

Wolfgang writes:

I managed to solve this by loading a custom DSDT.

Since BIOS 1.07, the BIOS contains the ACPI Voltage/Frequency? tables necessary for running Enhanced Speedstep with standard kernels. Since manually adjusting VCore in the BIOS setup doesn't affect these tables, the manual VCore setting gets lost when activating speedstep. It's dynamically replaced by hardcoded voltages depending on current clock speed. The relevant ACPI Methods hardcoding these voltages are _PPC, _PCT and _PSS. AOpen implements these in SSDT1, but they can be overridden in a custom DSDT.

There exists a kernel patch that allows overriding the BIOS's DSDT by a custom one, see: http://gaugusch.at/kernel.shtml Some distros (e.g. SuSE?, Mandriva, Ubuntu) ship kernels that have that patch already.

To create a suitable custom DSDT, I followed the hints at http://acpi.sourceforge.net/

I described in a german forum what I did, the link is: http://www.computerbase.de/forum/showpost.php?p=1288051&postcount=155 Beware, it's in German, and it was before BIOS 1.07 was released (I think it was 1.04). But the basic method still is the same, and my original and modified DSDT are linked there to give you an idea.

Of course you can't just use my DSDT, you need to redo the procedure to get a DSDT that fits your BIOS version and processor hardware instance. The DSDT tends to change with new BIOS releases. The VCore values in my example are empirical voltages for my Pentium M 730. Note also that my example misses "Power" and "Latency" values. These can be copied from the SSDT1, but it seems the kernel doesn't considere these anyways.

Hope that helps. The usual disclaimers apply, by providing these hints I'm not responsible for you rendering your system unstable, unbootable or breaking whatever ;-) Daniel, Thanks, for this Wiki and your hints :-)


Edit text of this page | View other revisions | Download I915gmm.gratiswiki.dk
Search:
GratisWiki hostes af HOW