Jump to content

Experimental Intel SpeedStep kext


mercurysquad
 Share

291 posts in this topic

Recommended Posts

OK, Sudo i clear.

But why kern.cputhrottle_curvolt value changes if the command can´t work because no permission.

Before sysctl .... kern.cputhrottle_curvolt was 1564, after (without sudo) 1340.

Or is it only changed in value but NOT in real.

But my factory settings are all the same for the VID

 

1) Voltage can change if the cpu speed changes. Voltage depends on cpu speed.

2) Value is not saved or cached in the kext - it is read directly from the CPU. So what you see is what the cpu is running at in real.

3) Factory setting is as reported by ACPI -- and it is often wrong. Better to use other methods like manual pstate table.

Link to comment
Share on other sites

1) Voltage can change if the cpu speed changes. Voltage depends on cpu speed.

2) Value is not saved or cached in the kext - it is read directly from the CPU. So what you see is what the cpu is running at in real.

3) Factory setting is as reported by ACPI -- and it is often wrong. Better to use other methods like manual pstate table.

 

 

Thanks, now all clear !

 

I think also manual (typing command on the fly / "real time" ) changes of VID is risky (tipping wrong numbers :( ) so pstate (in .plist) is the best way - if something to change safe.

 

So, installed latest kext, all running OK !!

 

IntelEnhancedSpeedStep: INFO Initializing version 1.2.1c © Prashant Vaibhav

IntelEnhancedSpeedStep: DBG Probing for Intel processor...

IntelEnhancedSpeedStep: INFO Supported Intel processor found on your system

IntelEnhancedSpeedStep: DBG Processor Family 6, Model 15

IntelEnhancedSpeedStep: INFO Starting

IntelEnhancedSpeedStep: DBG FSB = 233 MHz (OK)

IntelEnhancedSpeedStep: INFO On your processor, voltages can be changed in 16 mV steps

IntelEnhancedSpeedStep: DBG Using data from CPU0

IntelEnhancedSpeedStep: DBG Found 3 P-States

IntelEnhancedSpeedStep: INFO P-State 0: 2330 MHz at 1564 mV, consuming 88 W, latency 160 usec

IntelEnhancedSpeedStep: INFO P-State 1: 1864 MHz at 1564 mV, consuming 71 W, latency 160 usec

IntelEnhancedSpeedStep: INFO P-State 2: 1398 MHz at 1564 mV, consuming 56 W, latency 160 usec

IntelEnhancedSpeedStep: DBG Using 3 PStates.

e180050208:~ ami$

 

I will , first, not change VID, only use stepping.

The factory settings for VID are all the same - maybe like you said buggy ACPI report from bios.

kern.cputhrottle_curvolt: 1340 (REAL VIS frtom your .kext, unchanged since boot).

 

Now:

e180050208:~ ami$ sysctl kern.cputhrottle_curvolt

kern.cputhrottle_curvolt: 1340

e180050208:~ ami$ sudo sysctl -w kern.cputhrottle_curvolt=1292 (i have 16mV steps, so 3*16 lower)

Password:

kern.cputhrottle_curvolt: 1340 -> 1292

e180050208:~ ami$

Working , i think

 

 

Thanks

Link to comment
Share on other sites

ok, i am trying to run this on a dell inspiron 6000 which uses a pentium M 1.86. speedstep.app will not startup at all and cputhrottler only shows 0 and wont allow me to set anything

 

Robert-Martins-Hackbook:~ robert_martin$ sysctl kern.cputhrottle_freqssecond level name cputhrottle_freqs in kern.cputhrottle_freqs is invalid

 

Robert-Martins-Hackbook:~ robert_martin$ sudo dmesg | grep IntelEnhancedSpeedStep

Password:

IntelEnhancedSpeedStep: INFO P-State 2: 1067 MHz at 780 mV

IntelEnhancedSpeedStep: DBG Loaded 3 PStates from Info.plist

IntelEnhancedSpeedStep: DBG Probing for Intel processor...

IntelEnhancedSpeedStep: INFO Supported Intel processor found on your system

IntelEnhancedSpeedStep: DBG Processor Family 6, Model 13

IntelEnhancedSpeedStep: INFO Your processor doesn't support constant_tsc, but you have a kernel which can compensate for it.

IntelEnhancedSpeedStep: INFO Starting

IntelEnhancedSpeedStep: WARN EFI registry entry not found!

IntelEnhancedSpeedStep: INFO Freeing driver resources

IntelEnhancedSpeedStep: INFO Initializing version 1.2.1c © Prashant Vaibhav <mercurysquad@yahoo.com>

IntelEnhancedSpeedStep: DBG Probing for Intel processor...

IntelEnhancedSpeedStep: INFO Supported Intel processor found on your system

IntelEnhancedSpeedStep: DBG Processor Family 6, Model 13

IntelEnhancedSpeedStep: INFO Your processor doesn't support constant_tsc, but you have a kernel which can compensate for it.

IntelEnhancedSpeedStep: INFO Starting

IntelEnhancedSpeedStep: WARN EFI registry entry not found!

IntelEnhancedSpeedStep: INFO Freeing driver resources

IntelEnhancedSpeedStep: INFO Initializing version 1.2.1c © Prashant Vaibhav <mercurysquad@yahoo.com>

IntelEnhancedSpeedStep: DBG Probing for Intel processor...

IntelEnhancedSpeedStep: INFO Supported Intel processor found on your system

IntelEnhancedSpeedStep: DBG Processor Family 6, Model 13

IntelEnhancedSpeedStep: INFO Your processor doesn't support constant_tsc, but you have a kernel which can compensate for it.

IntelEnhancedSpeedStep: INFO Starting

IntelEnhancedSpeedStep: WARN EFI registry entry not found!

IntelEnhancedSpeedStep: INFO Freeing driver resources

IntelEnhancedSpeedStep: INFO Initializing version 1.2.1c © Prashant Vaibhav <mercurysquad@yahoo.com>

IntelEnhancedSpeedStep: DBG Probing for Intel processor...

IntelEnhancedSpeedStep: INFO Supported Intel processor found on your system

IntelEnhancedSpeedStep: DBG Processor Family 6, Model 13

IntelEnhancedSpeedStep: INFO Your processor doesn't support constant_tsc, but you have a kernel which can compensate for it.

IntelEnhancedSpeedStep: INFO Starting

IntelEnhancedSpeedStep: WARN EFI registry entry not found!

IntelEnhancedSpeedStep: INFO Freeing driver resources

IntelEnhancedSpeedStep: INFO Initializing version 1.2.1c © Prashant Vaibhav <mercurysquad@yahoo.com>

IntelEnhancedSpeedStep: DBG Probing for Intel processor...

IntelEnhancedSpeedStep: INFO Supported Intel processor found on your system

IntelEnhancedSpeedStep: DBG Processor Family 6, Model 13

IntelEnhancedSpeedStep: INFO Your processor doesn't support constant_tsc, but you have a kernel which can compensate for it.

IntelEnhancedSpeedStep: INFO Starting

IntelEnhancedSpeedStep: WARN EFI registry entry not found!

IntelEnhancedSpeedStep: INFO Freeing driver resources

IntelEnhancedSpeedStep: INFO Initializing version 1.2.1c © Prashant Vaibhav <mercurysquad@yahoo.com>

IntelEnhancedSpeedStep: DBG Probing for Intel processor...

IntelEnhancedSpeedStep: INFO Supported Intel processor found on your system

IntelEnhancedSpeedStep: DBG Processor Family 6, Model 13

IntelEnhancedSpeedStep: INFO Your processor doesn't support constant_tsc, but you have a kernel which can compensate for it.

IntelEnhancedSpeedStep: INFO Starting

IntelEnhancedSpeedStep: WARN EFI registry entry not found!

IntelEnhancedSpeedStep: INFO Freeing driver resources

IntelEnhancedSpeedStep: INFO Initializing version 1.2.1c © Prashant Vaibhav <mercurysquad@yahoo.com>

IntelEnhancedSpeedStep: DBG Probing for Intel processor...

IntelEnhancedSpeedStep: INFO Supported Intel processor found on your system

IntelEnhancedSpeedStep: DBG Processor Family 6, Model 13

IntelEnhancedSpeedStep: INFO Your processor doesn't support constant_tsc, but you have a kernel which can compensate for it.

IntelEnhancedSpeedStep: INFO Starting

IntelEnhancedSpeedStep: WARN EFI registry entry not found!

IntelEnhancedSpeedStep: INFO Freeing driver resources

 

Robert-Martins-Hackbook:~ robert_martin$ sysctl machdep.cpu && uname -a

machdep.cpu.address_bits.virtual: 32

machdep.cpu.address_bits.physical: 32

machdep.cpu.cache.size: 2048

machdep.cpu.cache.L2_associativity: 6

machdep.cpu.cache.linesize: 64

machdep.cpu.arch_perf.fixed_width: 0

machdep.cpu.arch_perf.fixed_number: 0

machdep.cpu.arch_perf.events: 0

machdep.cpu.arch_perf.events_number: 0

machdep.cpu.arch_perf.width: 0

machdep.cpu.arch_perf.number: 0

machdep.cpu.arch_perf.version: 0

machdep.cpu.thermal.ACNT_MCNT: 0

machdep.cpu.thermal.thresholds: 0

machdep.cpu.thermal.dynamic_acceleration: 0

machdep.cpu.thermal.sensor: 0

machdep.cpu.mwait.sub_Cstates: 0

machdep.cpu.mwait.extensions: 0

machdep.cpu.mwait.linesize_max: 0

machdep.cpu.mwait.linesize_min: 0

machdep.cpu.cores_per_package: 1

machdep.cpu.extfeatures: XD

machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT CLFSH DS ACPI MMX FXSR SSE SSE2 SS TM EST TM2

machdep.cpu.brand: 22

machdep.cpu.signature: 1752

machdep.cpu.extfeature_bits: 1048576 0

machdep.cpu.feature_bits: -1343620097 384

machdep.cpu.stepping: 8

machdep.cpu.extfamily: 0

machdep.cpu.extmodel: 0

machdep.cpu.model: 13

machdep.cpu.family: 6

machdep.cpu.brand_string: Intel® Pentium® M processor 1.86GHz

machdep.cpu.vendor: GenuineIntel

Darwin Robert-Martins-Hackbook.local 9.2.0 Darwin Kernel Version 9.2.0: Wed Jul 30 03:20:06 IST 2008; mercurysquad; based on ToH kernel:xnu-1228.3.13/BUILD/obj/RELEASE_I386 i386

 

Robert-Martins-Hackbook:~ robert_martin$ sysctl -a | grep throttle

kern.exec: unknown type returned

 

any ideas?

Link to comment
Share on other sites

ok, worked great on the first bootup after i unloaded acpicputhrottle.kext and moved the folder to the trash, then loaded intelenhancedspeedstep and started cputhrottler (speedstep wont load). but after i rebooted it crashes everytime i load the kext and try and set cpu speed (either with a gui or manually)

 

here is my output:

Robert-Martins-Hackbook:~ robert_martin$ sudo dmesg | grep IntelEnhancedSpeedStep

Password:

IntelEnhancedSpeedStep: INFO P-State 1: 1600 MHz at 1276 mV, consuming 23 W, latency 10 usec

IntelEnhancedSpeedStep: INFO P-State 2: 1333 MHz at 1180 mV, consuming 20 W, latency 10 usec

IntelEnhancedSpeedStep: INFO P-State 3: 1067 MHz at 1084 mV, consuming 17 W, latency 10 usec

IntelEnhancedSpeedStep: WARN Skipping PState frequency 800 MHz because your kernel/CPU doesn't appear to support it.

IntelEnhancedSpeedStep: DBG Using 4 PStates.

Robert-Martins-Hackbook:~ robert_martin$

Robert-Martins-Hackbook:~ robert_martin$ sysctl machdep.cpu && uname -a

machdep.cpu.address_bits.virtual: 32

machdep.cpu.address_bits.physical: 32

machdep.cpu.cache.size: 2048

machdep.cpu.cache.L2_associativity: 6

machdep.cpu.cache.linesize: 64

machdep.cpu.arch_perf.fixed_width: 0

machdep.cpu.arch_perf.fixed_number: 0

machdep.cpu.arch_perf.events: 0

machdep.cpu.arch_perf.events_number: 0

machdep.cpu.arch_perf.width: 0

machdep.cpu.arch_perf.number: 0

machdep.cpu.arch_perf.version: 0

machdep.cpu.thermal.ACNT_MCNT: 0

machdep.cpu.thermal.thresholds: 0

machdep.cpu.thermal.dynamic_acceleration: 0

machdep.cpu.thermal.sensor: 0

machdep.cpu.mwait.sub_Cstates: 0

machdep.cpu.mwait.extensions: 0

machdep.cpu.mwait.linesize_max: 0

machdep.cpu.mwait.linesize_min: 0

machdep.cpu.cores_per_package: 1

machdep.cpu.extfeatures: XD

machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT CLFSH DS ACPI MMX FXSR SSE SSE2 SS TM EST TM2

machdep.cpu.brand: 22

machdep.cpu.signature: 1752

machdep.cpu.extfeature_bits: 1048576 0

machdep.cpu.feature_bits: -1343620097 384

machdep.cpu.stepping: 8

machdep.cpu.extfamily: 0

machdep.cpu.extmodel: 0

machdep.cpu.model: 13

machdep.cpu.family: 6

machdep.cpu.brand_string: Intel® Pentium® M processor 1.86GHz

machdep.cpu.vendor: GenuineIntel

Darwin Robert-Martins-Hackbook.local 9.2.0 Darwin Kernel Version 9.2.0: Wed Jul 30 03:20:06 IST 2008; mercurysquad; based on ToH kernel:xnu-1228.3.13/BUILD/obj/RELEASE_I386 i386

Robert-Martins-Hackbook:~ robert_martin$ sysctl -a | grep throttle

kern.exec: unknown type returned

kern.cputhrottle_curfreq: 1867

kern.cputhrottle_curvolt: 1356

kern.cputhrottle_freqs: 1067 1333 1600 1867

kern.cputhrottle_factoryvolts: 1084 1180 1276 1356

kern.cputhrottle_ctl: 3625

Robert-Martins-Hackbook:~ robert_martin$

 

 

 

so i reinstalled ACPICPUThrottle.kext, loaded it, unloaded it....and now everything works again

Link to comment
Share on other sites

If speedstep didnt start: you must set rights (look at post on the first site of this thread, someone explains how).

Or perhaps you can find some information in the console.

 

VID trottleling up/down works !

I was a bit unsure what happens if i lower VID at low speed time and afterwords the cpu runs at full speed.

CPU changes VIS up to factory settung and back if MHZ changes. perfect.

So we can set safe settings in the .plist.

I am running last version now > 2 hours with no problem.

Link to comment
Share on other sites

I'll post the SpeedStep instructions here. You must first copy SpeedStep.app to /Applications/Utilites for these commands to work or else modify the commands accordingly:

 

cd /Applications/Utilities/SpeedStep.app/Contents/MacOS
chmod +x SpeedStep
sudo -s
chown root:wheel SpeedStep
chmod +s SpeedStep

 

This was first posted by timmyj and eclau and modified slightly by me. MercurySquad, you may just want to add these commands to the first post.

 

Also, for those that can't get the kext to load, make sure you do this to the kext:

 

sudo chmod -R 755 IntelEnhancedSpeedStep.kext
sudo chown -R root:wheel IntelEnhancedSpeedStep.kext

Link to comment
Share on other sites

ok, speedstep.app is now running. thanks for that.

 

however, throttling still causes a system crash unless ACPICPUThrottle.kext is loaded or has previously been loaded. obviously, this limits me to only using a speedstep capable kernel (tried the 9.2 sleep kerenl but system froze going to sleep anyway...will have to figure that out later)

 

i have tested with ACPICPUThrottle loaded (both kexts loaded simultaneously) and with it loaded and then unloaded and both situations result in stable throttling.

 

ok so i now have my system running your modified kernel (which gives great rresults on audio), ACPICPUThrottle still loads at startup, Intelenhacedspeedstep.kext is installed in extensions and running and speedstep works flawlessly...

 

*EDIT* ok, not quite flawlessly, i went ahead and listened to a few tunes with a pair of bluetooth headphones and there was crackling and stuttering. i went back to the terminal and unloaded ACPICPUThrottle.kext and the stuttering went away. it wasnt bad which is why i only noticed it on headphones. this means that the kext must be loaded AND unloaded for proper operation

Link to comment
Share on other sites

Hello,

 

I got a problem. After loading the kext and typing sudo sysctl kern.cputhrottle_freqs, I get this error message.

 

second level name cputhrottle_freqs in kern.cputhrottle_freqs is invalid

 

Any ideas?

Link to comment
Share on other sites

Hello,

I got a problem. After loading the kext and typing sudo sysctl kern.cputhrottle_freqs, I get this error message.

second level name cputhrottle_freqs in kern.cputhrottle_freqs is invalid

Any ideas?

 

Then the kext is not loaded or tried to load but has error.

1. try sudo kextload again

1. sudo dmesg, look for errors

Possible:

The rights are nor set correct (owner root:wheel). Until now the rights of the dl´ded kext MUST set "by hand" before usage.

look on first page for setting rights of owner to root:wheel.

 

New Speedstep App (has perferences) beta:

Even if the sliders and values are a bit confusing (values shown get "crazy" if moving sliders), it works. Simple only see slider positions, not the values.

First slider (from top): How fast switches / how long stays at max MHZ, the more to the right the longer / faster higher MHZ

Middle slider: How long stays at lower MHZ, the more to the left, the longer stays at lower MHZ

last slider: Its how much the Speedstep App itself consumes CPU time for switching. To left (i think ) it takes more (really much!) , to right less cpu time. less cpu time means a bit slower switching up/down.

I am NOT the autor of the app, please correct me if i was wrong.

Link to comment
Share on other sites

Then the kext is not loaded or tried to load but has error.

1. try sudo kextload again

1. sudo dmesg, look for errors

Possible:

The rights are nor set correct (owner root:wheel). Until now the rights of the dl´ded kext MUST set "by hand" before usage.

look on first page for setting rights of owner to root:wheel.

 

New Speedstep App (has perferences) beta:

Even if the sliders and values are a bit confusing (values shown get "crazy" if moving sliders), it works. Simple only see slider positions, not the values.

First slider (from top): How fast switches / how long stays at max MHZ, the more to the right the longer / faster higher MHZ

Middle slider: How long stays at lower MHZ, the more to the left, the longer stays at lower MHZ

last slider: Its how much the Speedstep App itself consumes CPU time for switching. To left (i think ) it takes more (really much!) , to right less cpu time. less cpu time means a bit slower switching up/down.

I am NOT the autor of the app, please correct me if i was wrong.

 

Thanks for the help. But still doesn't work.

 

I tried repairing permissions with this...

 

sudo chmod -R 755 file

 

sudo chown -R root:wheel file

 

It says kext loaded successfully, but same error.

 

Here is the sudo dmesg log.

 

http://pastebin.com/m42d68e0a

 

Thanks. :P

Link to comment
Share on other sites

"WARN There was an error while getting PState array from ACPI" Perhaps that the reason.

Seems that the .kext cant get the PSates of your CPU (0,1,2,...)

Maybe in this case adding YOUR Pstat values (MHZ, mVolts) in the .plist is an solution.

But you yould know your values.

Wait for autor of the .kext.

 

EDIT: I think it is a MUST to enable Speedstep in your BIOS ! Check that first.

Link to comment
Share on other sites

"WARN There was an error while getting PState array from ACPI" Perhaps that the reason.

Seems that the .kext cant get the PSates of your CPU (0,1,2,...)

Maybe in this case adding YOUR Pstat values (MHZ, mVolts) in the .plist is an solution.

But you yould know your values.

Wait for autor of the .kext.

 

EDIT: I think it is a MUST to enable Speedstep in your BIOS ! Check that first.

 

Thanks for the help. Speedstep is already enabled in my BIOS. Windows XP can confirm that.

 

I guess I gotta wait for the author. :)

 

Edit: My system is overclocked if it's important.

Link to comment
Share on other sites

Your BIOS/ACPI is not reporting the P-States for your processor. Quite a common problem. What you can do instead, if you have Windows for example, note down all the frequencies that your CPU supports (in MHz), and the corresponding voltages (in mV) for each frequency. Then edit the kext's Info.plist file according to instructions on the first page, and add the P-States of your CPU. Load the kext again, it should pick up the values from Info.plist instead of querying ACPI.

Link to comment
Share on other sites

Your BIOS/ACPI is not reporting the P-States for your processor. Quite a common problem. What you can do instead, if you have Windows for example, note down all the frequencies that your CPU supports (in MHz), and the corresponding voltages (in mV) for each frequency. Then edit the kext's Info.plist file according to instructions on the first page, and add the P-States of your CPU. Load the kext again, it should pick up the values from Info.plist instead of querying ACPI.

 

Thanks for the reply. But how do you go about doing that? How do I know how many frequencies my CPU supports? By every multiplier? And the voltages as well. Thanks. :P

Link to comment
Share on other sites

Since this now works without loading acpicputhrottle.kext I decided to try it with a 9.2 sleep kerrnel. Unfortunately this is still a no go. It still causes a kernel panic everytime the system attempts to throttle the CPU.

 

i just tested it with the standard 9.2 speedstep kernel and it now works and gives 800mhz support. however, there seems to be a lot more skipping in music with this kernel. it isnt nearly as bad before because the music actually plays at lower speeds (i used to have to lock my cpu to full speed) it now just seems to skip whenever the processor speed changes

 

it seems like what is happening is that at any speed below 1867mhz the music will skip for the first couple seconds and then it seems to adjust and do fine. this is ok if the speed is locked but it also happens whenever the speed changes too which makes it rather difficult to keep speedstep on auto.

Link to comment
Share on other sites

It still causes a kernel panic everytime the system attempts to throttle the CPU.

Set KernelFeatures to 0 to prevent this.

 

i just tested it with the standard 9.2 speedstep kernel and it now works and gives 800mhz support. however, there seems to be a lot more skipping in music with this kernel.

All these speedstep kernels do not do any clock recalibration because of a bug which got carried on and on. Use either my rtcfix 9.2 kernel (no sleep), or wait for 9.4 kernel which will support sleep+proper speedstep on sse2 also.

Link to comment
Share on other sites

Thanks for the reply. But how do you go about doing that? How do I know how many frequencies my CPU supports? By every multiplier? And the voltages as well. Thanks. ;)

 

Usually it's in steps of 2xFSB, lower limit being above 1GHz (for now). Voltages you gotta find out somehow, my values look like this:

 

1733 MHz : 1356 mV

1333 MHz : 1232 mV (not sure)

1067 MHz : 1100 mV

800 MHz : not used

 

Use trial and error for the voltages, I suggest starting around 1300 mV and going down to about 950 mV for the lowest frequency.

 

Best way is to install some sort of CPU information software in Windows. I don't know of specific apps, but try this one called "Notebook Hardware Control" - I think that's what it's called.

Link to comment
Share on other sites

1.2.1 didn't work for me so I figured I'd try the next version. Lo and behold, I get speedstep now on my e1505 with a tscsync 9.4.0 kernel! Sleep via closing the screen and via the OS is not affected by this, from what I can tell right now. As far as changing between them though, I guess the apps need a bit of work so I just have custom clock set to low speed in speedstep.app and when I need that extra oomph, I switch to high speed. Under low speed, the dock animation seems a bit sluggish but audio from a youtube video plays just fine.

 

This plus the i8kfangui program and the tscsync kernel makes me a cool dual core osx customer and makes this hackintosh run great. Thank you so much for your work on this!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...