Difference between revisions of "How to get SpeedStep working on Coppermine-piix4-smi based ThinkPads"

From ThinkWiki
Jump to: navigation, search
(How to get it work)
Line 34: Line 34:
 
  CONFIG_X86_SPEEDSTEP_RELAXED_CHECK = y
 
  CONFIG_X86_SPEEDSTEP_RELAXED_CHECK = y
 
Easy =) just disable the speedstep-lib checks
 
Easy =) just disable the speedstep-lib checks
:{{cmd|sudo modprobe speedstep-lib relaxed_check=1}}
+
:{{cmd|1=sudo modprobe speedstep-lib relaxed_check=1}}
 
:{{cmd|sudo modprobe speedstep-smi}}
 
:{{cmd|sudo modprobe speedstep-smi}}
 
Hurrah !!
 
Hurrah !!

Revision as of 10:17, 20 July 2005

Foreword

APPLYING THIS HOWTO MAY MAKE YOU DUMB, CRASH YOUR CPU, YOUR MOTHERBOARD, MAKE YOUR GIRLFRIEND LEAVE YOU, OR MAYBE WORSE, USE IT AT YOUR OWN RISKS, I'M NOTHING OF A KERNEL HACKER, NEITHER A SMART GUY, THIS IS HOW I TRYED TO GET IT WORK, AND TILL NOW IT IS WORKING, MY PROPOSITION ARE ALMOST GUARANTED TO BE DUMB.

This HowTo is intended for people having trouble getting SpeedStep working via CpuFreq on their Coppermine CPU with a piix4 mainboard. Thinkpads known to have this configuration are the X20, X21, X22, X23, X24, T20, T21, T22, TransNote and possibly A20m, A20p, A21e, A21m, A21p, A22e, A22m, A22p models.

The issue is that these CPUs do not repport correctly that they are SpeedStep capable.

This Document is under the GNU/GPL v2+ Licence.

My case

This is what i get: I have a x21 IBM ThinkPad, and when trying the SpeedStep implementation of 2.6 kernels i got:

{{{2}}} sudo modprobe speedstep-smi
FATAL: Error inserting speedstep_smi (/lib/modules/2.6.10-rc1-mm4-xa1/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-smi.ko): No such device

Rebooting with cpufreq.debug=7 ( 1 is for core, 2 is for ??, and 4 is for drivers, 7 = 1 + 2 + 4 ) gave:

{{{2}}} sudo modprobe speedstep-smi
FATAL: Error inserting speedstep_smi (/lib/modules/2.6.10-rc1-mm4-xa1/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-smi.ko): No such device
{{{2}}} sudo tail /var/log/syslog
[...]
Nov 11 19:54:20 localhost kernel: speedstep-lib: x86: 6, model: 8
Nov 11 19:54:20 localhost kernel: speedstep-lib: Coppermine: MSR_IA32_EBL_CR_POWERON is 0x44080020, 0x0
Nov 11 19:54:20 localhost kernel: speedstep-lib: Coppermine: MSR_IA32_PLATFORM ID is 0x0, 0x540000
Nov 11 19:54:20 localhost kernel: speedstep-smi: No supported Intel CPU detected.

How to get it work

Note: to get this working on recent kernels you'll need:

CONFIG_X86_SPEEDSTEP_RELAXED_CHECK = y

Easy =) just disable the speedstep-lib checks

{{{2}}} sudo modprobe speedstep-lib relaxed_check=1
{{{2}}} sudo modprobe speedstep-smi

Hurrah !!

In Debian ( and probably with others, please confirm ), you can automate the module parmeters by creating a /etc/modprobe.d/speedstep-lib file with:

options speedstep-lib relaxed_check=1

And then, you may add these 2 lines to /etc/modules:

speedstep-lib
speedstep-smi

How to use it

How to make use of Dynamic Frequency Scaling

What's not working

The speeds shown may be erroneous, witch has dramatic consequances if you try to watch movies or applications that are (exact) time-depending (as the timer is all dizzy).