Jump to content

Experimental Intel SpeedStep kext


mercurysquad
 Share

291 posts in this topic

Recommended Posts

It works fantastically here using the vanilla kernel. Sleep/Shutdown (still) works as well.

I only get 2 speed steps (1998+2664). My bus speed is 1.33GHz.

I'd like to try to set the PSTATES manually but it's hard to find the specs like speed/voltage for the E8200 :(

 

Keep up the good work! I hope you find a way to have the kext set the speeds dynamically without a patched kernel since many people would love to keep the vanilla one.

 

Thanks a lot.

Link to comment
Share on other sites

For now you can make your own pstate table in the info.plist. You can get the voltages for each frequency by switching the curfreq and then checking the curvolt. Switch to each fequency and make a not of its voltage. Then ediit Info.plist and set the proper freq/voltage, and change the name of the array from PStateTableDisabled to PStateTable.

 

Ok, I just tried that:

It seems as if it only supports two frequencies at that bus speed :rolleyes:

Link to comment
Share on other sites

I have rewritten the kext and wrote a new app to interface it. It is still preliminary and beta, so use at own risk. But I will work on it more, so if you have ideas or issues speak out.

 

IntelEnhancedSpeedStep.kext & the app CPUPMControl

 

It is still mainly mercurysquads kext, but addition of autothrottling in-kernel and another interface (no sysctl). If you have customized Info.plist you can use it on this as well.

Link to comment
Share on other sites

I´ll try it. And tell ...

NO RISK no FUN ;)

i´be BACK :lol:

 

EDIT:

Back

IntelEnhancedSpeedStep: INFO Initializing version 1.4.0 © Prashant Vaibhav

IntelEnhancedSpeedStep: INFO Mod 1.0 - Autothrottle and CPUPMControl app interface © Superhai, www.superhai.com

IntelEnhancedSpeedStep: DBG FSB = 233 MHz

IntelEnhancedSpeedStep: DBG P-State 0: 2330 MHz at 1308 mV

IntelEnhancedSpeedStep: DBG P-State 1: 1864 MHz at 1228 mV

IntelEnhancedSpeedStep: DBG P-State 2: 1398 MHz at 1164 mV

IntelEnhancedSpeedStep: INFO Loaded 3 PStates from Info.plist

IntelEnhancedSpeedStep: DBG Probing for Intel processor...

IntelEnhancedSpeedStep: DBG Supported Intel processor found on your system

IntelEnhancedSpeedStep: DBG Processor Family 6, Model 15

IntelEnhancedSpeedStep: DBG Starting

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

IntelEnhancedSpeedStep: DBG PState table was already created. No autodetection will be performed

e180027142:~ ami$

I used "old" Pstate entries.

 

Now i will try new CPU MControl.

 

What does this output mean ?

CPU with highest load 0, idle is 100 %

IntelEnhancedSpeedStep: DBG Up 833 down 866 load 1000

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x61d

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG CPU with highest load 1, idle is 80 %

IntelEnhancedSpeedStep: DBG Up 833 down 866 load 807

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x821

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG CPU with highest load 0, idle is 91 %

IntelEnhancedSpeedStep: DBG Up 833 down 866 load 916

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x61d

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG CPU with highest load 0, idle is 92 %

IntelEnhancedSpeedStep: DBG Up 833 down 866 load 920

IntelEnhancedSpeedStep: DBG CPU with highest load 0, idle is 96 %

IntelEnhancedSpeedStep: DBG Up 833 down 866 load 962

IntelEnhancedSpeedStep: DBG CPU with highest load 1, idle is 84 %

IntelEnhancedSpeedStep: DBG Up 833 down 866 load 846

 

1. A bit hard to adjust Throttle Threshould settings, because no feedback at which cpu MHZ is running (shows Auto ON).

2. Would be great if CPUMControl would remember the settings.

3. Is it Possible to add to the autothrottling also "autogirlfriending" into the .kext - superhai can DO ALL ;)

 

Seems that, other than speedstep.app, the new .kext now has "IA", means thtottle itself after setting with CPUMControl !

Great, works without a problem !

 

 

Thanks

After a while of testing would be great if you remove the debug messages of throttling actions.

Link to comment
Share on other sites

1. A bit hard to adjust Throttle Threshould settings, because no feedback at which cpu MHZ is running (shows Auto ON).

Q: Does the CPU MControl is only for adjusting (would be GREAT) the settings for the now IQed kext, or must it be running alsways like speedstep ?

After closing the CPUMContol adjust window, Menü enty is "Auto ON", but i cant change anything. Must i close the App and then start again CPU MControl or can i close it and only need it for ajdustmenst, not for the throttling itself ?

Can it be possibe or does the new kext already use CPU internel performance register for getting how much % IDLE time (no more sysctl calls, use much cpu time) ?

After a while of testing would be great if you remove the debug messages of throttling aktions.

 

1. I am thinking of ideas on how to solve this, problem is that if you have short spikes and not susatained load on your cpu, the change will take place for only how long time you set interval (setting it to 100ms is very short time). I am thinking of something like a graph maybe. And Auto On is therefore by design. It is possible to see the changes when debugging, but maye a debug option that writes to menubar is better than the IOLog outputs?

 

Q. It only for adjusting, but when you restart the app, it might reset the threshold and interval, fix will come in next version. So no, you don´t need it running. I also plan to write info to the plist so settings will remain when you reboot, or save somewhere else. Also possibilty to test and create custom pstates, if it will work somewhat without too easy panics.

 

There are no sysctl, and the idle time and load is getting from the kernel, (i.e. it is not handled by the app at all)

 

The debugmessages you can already remove by setting option in the Info.plist of the kext.

Link to comment
Share on other sites

Hi, thanks.

I oversee the Debug option in the .plist. (Wanted to test ist fast ;) )

 

My idea for throttling setting MHZ feedback:

Yes, not using numbers for MHZ insted some picture points like a traffic lights.

blue lamp for slow, cool MHZ, green middle speed, to the red for fast(heat) MHZ.

Lights would be also fast enough to show fast switchings.

Humand couldnt see so fast chaning numers MHZ.

Would give an little lightshow if you make it this way ;)

The BEST : OSX86 only lightshow :D

 

IDEA2:

After getting the individual UP+DOWN+time valus with CPUMControl, an option to include those 3 values

in the .kext .plist would be great for longer/remember usage. I think changes, after finding the best settings will be not so often.

Link to comment
Share on other sites

Please someone help me to create my PSTATES. I'm using notebook hardware control on windows right now and it seems that my CPU (core 2 duo t5500) support at least these values:

CPU FREQUENCY:

997 Mhz

1663Mhz

VOLTAGE:

0.9500V

1.1500V

 

How do I create the PSTATES on my .plist?

 

Thanks a ton!

Link to comment
Share on other sites

Please someone help me to create my PSTATES. I'm using notebook hardware control on windows right now and it seems that my CPU (core 2 duo t5500) support at least these values:

CPU FREQUENCY:

997 Mhz

1663Mhz

VOLTAGE:

0.9500V

1.1500V

 

How do I create the PSTATES on my .plist?

 

Thanks a ton!

 

Open Content of the .kext in the finder.

open Info.plist with an editor, or better an Plist editor.

 

Scroll down to an entry

PStateTableDisabled

 

modify it to:

PStateTable

1663

1105

997

950

 

Save it.

!!! Be sure you dont change owner:group, must stay root:wheel.

if changed, use command in terminal : sudo chown root:wheel add an space after ..wheel and drag&drop the modified Info.plist in the terminal, press enter.

 

Because its below 1 GHZ you have to change perhaps an other key too. I think read the first page about that.

Link to comment
Share on other sites

thanks mitch_de.

 

I asked how to edit the pstates because I thought I was doing something wrong... and I did, I was using entering another 0 at the right.

But it still don't work:

Now sudo dmesg | grep IntelEnhancedSpeedStep says a little bit more but not enough.. :

http://pastebin.com/f25af563b

:glare:

 

PS: I re-put it as root:wheel with

chown root:wheel /System/Library/Extensions/IntelEnhancedSpeedStep.kext/Contents/Info.plist

and

chown root:wheel /System/Library/Extensions/IntelEnhancedSpeedStep.kext

Link to comment
Share on other sites

thanks mitch_de.

 

I asked how to edit the pstates because I thought I was doing something wrong... and I did, I was using entering another 0 at the right.

But it still don't work:

Now sudo dmesg | grep IntelEnhancedSpeedStep says a little bit more but not enough.. :

http://pastebin.com/f25af563b

:P

 

PS: I re-put it as root:wheel with

chown root:wheel /System/Library/Extensions/IntelEnhancedSpeedStep.kext/Contents/Info.plist

and

chown root:wheel /System/Library/Extensions/IntelEnhancedSpeedStep.kext

 

SOmething went wrong, dmesg shows that your PSTATES are not used from the plist.

 

I post here my full Info.Plist, perhaps you made a litte edit error.

 

Compare it (part of the pstate key, also look if you also have removed the ....DISABLED from the name end of pstate key!!)

 

After edit dont forget:

sudo chown -R root:wheel /System/Library/Extensions/IntelEnhancedSpeedStep.kext

(-R makes it safe to set all files , recursive to root:wheel)

 

And last but not least:

You must , its the easiest way, remove the extensions.mkext and also REBOOT to get changes seen !!

For trying such beta .kexts its better to use NOT the /system/extension folder !

i use it from an folder on the desktop (you can use any folder) and then

sudo kextload .../IntelEnhancedSpeedStep.kext (.... before name the path to it)

Later, wenn all is working and its final you can use kext helper to install it on your /system/extensions folder.

Info.plist.zip

Link to comment
Share on other sites

Thanks for your effort helping me mitch_de

 

1- When I installed the kext I didn't delete extensions.mkext, so I'll try doing it.

2- I installed the kext on system/library/extension, so I'll try installing it on another folder in the desktop as you suggest in order to see if it works.

3-I didn't remove the Disabled from <key>DefaultPState</key>. Could it be the problem?

 

I'm at work right now, but i'll test everything once I arrive at home! Hope it works as I could be runing hackitnosh cooler than ever! :P

Link to comment
Share on other sites

Hi mercurysquad,

 

Thanks for project. I am on 10.4.11, and unfortunately SpeedStep application doesn't launch.

 

rgds

 

 

 

 

Airis n1212 = Uniwill x20II - 12.1" - Intel core 2 duo T7200 2Ghz - 2Go ram

ALC861 - iMic (temporarily I hope) - Marvell Yukon 88E8053 - Intel 3945 a/b/g - USB 2.0 wifi 802.11n adapter

JaS 10.4.8 / JaS 10.4.9 combo update / Netkas 10.4.10 update / pc_efi_v8 / stock MacOSXUpdCombo10.4.11Intel including 8.11.1 kernel and AppleSMBIOS.kext thanks to AppleSMBIOSEFI.kext

Link to comment
Share on other sites

ANy news about the speedstep GUI beta ??

 

Here mecury kext works perfect, just tired to set up the app GUI at any boot...

 

SH kext works, but speedstep app doesn't want to work with it.; So waiting...

Link to comment
Share on other sites

ANy news about the speedstep GUI beta ??

 

Here mecury kext works perfect, just tired to set up the app GUI at any boot...

 

SH kext works, but speedstep app doesn't want to work with it.; So waiting...

 

You can use the new autotrottling .kext with the new CPUPMControl (DL Links one site before, superhai).

IntelEnhancedSpeedStep: INFO Initializing version 1.4.0 © Prashant Vaibhav

IntelEnhancedSpeedStep: INFO Mod 1.0 - Autothrottle and CPUPMControl app interface © Superhai, www.superhai.com

 

With that .kext (based on the 1.3.2) you DONT need anymore speedstep app running all the time !

Consumes a lot of CPU% over time.

Without running(forever) speedstep, the 1.3.2 .kext does NOT trottling (it waits for "DO PSTATE Up/DOWN" calls of speedstep.app or terminal).

 

The new .kext has buildin autothrottling. No extra running app is needed!

Only for setting up the values you need to run the CPUPMControl once and can quit it after that.

Link to comment
Share on other sites

ok i have just installed it and it works fine for me.

kalyway 10.5.3 on asus f3e (ap-146c).

 

i have to inform you that it is visibly slow on 800mhz. minimize/maximize is not smooth

and some applications like google earth also are not smooth at frequencies lower than cpu`s original

which is in my case 2000.

 

another thing to say is - i dont feel my laptop cooler. it is in general a laptop which is not hot.

it is very quiet also. so i dont hear the fans at all but i feel it a bit warm on the touchpad.

so - even when i manually set it to 800mhz it is not cooler. i found not way to see my cpu

termperature, if someone knows how - please share your experience.

 

bash-3.2# chmod -R 755 IntelEnhancedSpeedStep.kext
bash-3.2# chown -R root:wheel IntelEnhancedSpeedStep.kext
bash-3.2# kextload IntelEnhancedSpeedStep.kext
kextload: IntelEnhancedSpeedStep.kext loaded successfully
bash-3.2# dmesg | grep IntelEnhancedSpeedStep
IntelEnhancedSpeedStep: INFO  Initializing version 1.3.2 (C) Prashant Vaibhav <mercurysquad@yahoo.com>
IntelEnhancedSpeedStep: INFO  On your processor, voltages can be changed in 16 mV steps
IntelEnhancedSpeedStep: WARN  ** Spurious P-State 0: 2001 MHz at 1420 mV, consuming 35 W, latency 10 usec
IntelEnhancedSpeedStep: INFO  Using 4 PStates.
bash-3.2# sysctl -a | grep throttle
kern.exec: unknown type returned
kern.cputhrottle_curfreq: 800
kern.cputhrottle_curvolt: 876
kern.cputhrottle_freqs: 800 1200 1600 2000 
kern.cputhrottle_factoryvolts: 876 988 1196 1388 
kern.cputhrottle_ctl: 34827

Link to comment
Share on other sites

ok i have just installed it and it works fine for me.

kalyway 10.5.3 on asus f3e (ap-146c).

it is in general a laptop which is not hot.

it is very quiet also. so i dont hear the fans at all but i feel it a bit worm on the touchpad.

so - even when i manually set it to 800mhz it is not cooler. i found not way to see my cpu

termperature, if someone knows how - please share your experience.

 

Getting TEMP + MHZ in Menue

You can use speedit.kext, which is new for 10.5 also.

http://www.increw.com/en/news/speedit-leopard.html

It has an api by sysctl which is used by MenuTemperature (free).

 

http://captire.info/MenuTemperature/

DONT start it, do some update first !

MenuTemperatue uses an OLD speedit.kext (10.4 only!).

Copy newer one ZIPPED! (DL above) in the package of the app. (Screenshoot shows where exact) to overwrite the OLD one.

Now start MenuTemperature first time (takes a few seconds). And config the Menu afterwards.

 

Also MenuTemperature can show MHZ (also using speedit.it). But they are for me to low (but i can see the stepping, doesnt matter, i see 1.0, 1.33, 1.67 GHZ, i have 1300,1800,2330).

INFO: The CPU internal temps rising and falling ver, very fast. You can see that with the speedit/Menutemoerature.

If CPU switches to full speed AND!! has sometimng to do, it get much hotter than at slow speed.

But intelspeedstep does only save power/heat when the CPU has someting to do. NOT when CPU is near 100% idle.

Then it doesnt matter for the temp , if cpu runs full speed, but near 100% idle. Same temp as running 1/3 speed and also near 100% idle. Only if CPU has bigger (>=20-30%) CPU% (is working) you see the temp difference between 1/3 speed and full speed !

 

Screenshoot shows to which path you have to copy the newer speedit.kext.zip (overwrite OLD).

Bild_73.jpg

Bild_74.jpg

Link to comment
Share on other sites

We have to uninstall the SpeedStep application in the Applications folder to use MenuTemperature, correct?

 

I have updated the Speedit kext inside MenuTemperature but I get: NO WORKING TEMPERATURE SENSORS FOUND.

 

I have an Intel Core 2 Duo T7200 2Ghz for Notebook.

 

CoreDuoTemp worked so well in Tiger, too bad there is not a version for Leopard.

Link to comment
Share on other sites

We have to uninstall the SpeedStep application in the Applications folder to use MenuTemperature, correct?

 

I have updated the Speedit kext inside MenuTemperature but I get: NO WORKING TEMPERATURE SENSORS FOUND.

 

I have an Intel Core 2 Duo T7200 2Ghz for Notebook.

 

CoreDuoTemp worked so well in Tiger, too bad there is not a version for Leopard.

 

1. MenuTemperture with speedit.kext has nothing to do with speedstep.app, no need to uninstall intelspeedstep.kext or speedstep.app

speedit.kext (bad name, has nothing to do with speedstep, gives access to temp+mhz only)

2. if you get NO WORKING TEMPERATURE SENSORS FOUND

2.1) speedit.kext is not loaded, check it by kextstat (in terminal) if it is listed , if not check why with sudo dmesg

2.2) Maybe your Model (AppleSMSBIOS dependend) is not "Mac likel".

Means its not like MacPro3,1 , iMac,... which Menutemperature searches.

solution: EDIT the IntelModels.plist in the /Ressources path of the MenuTemperatur.app, simply overwrite one Modelname with YOURS.

(You can find YOUR Modelname with the Systemprofiler or. About Mac.. / More Info..)

I think you will get it to work.

 

Screenshoot shows the IntelModels.Plist within the Menutemperture.app.

If YOUR Modelname is not listed, change some name of them to YOURS.

HINT: If your Modelname is not mac like, you will get always trouble with other tools which use modelname !

Bild_77.jpg

Link to comment
Share on other sites

Ok, new kext seems to work good, and without any third program but...

 

We have to lunch CPUPM at any boot, and reenter value, like speedstep beta...WHy it don't save values ? Becasue is beta too ?

 

Really good work guys !!

Link to comment
Share on other sites

Ok, new kext seems to work good, and without any third program but...

 

We have to lunch CPUPM at any boot, and reenter value, like speedstep beta...WHy it don't save values ? Becasue is beta too ?

 

Really good work guys !!

 

YEAH, because its beta.

But the superhai extended IntelSpeedstep version (1.4.0) with his setup app (DCPUMcontrol) will be have such an "remember" of the settings in the future.

The easiest way (for superhai dev ) would be to add, like the PSTATES key in the .plist, an key Throttle_Setup, with 3 items: UP, DOWN, TIMER. Up /down are the values from the up/down sliders, TIMER from the timer slider.

At download time the Throttle_Setup key will be named Throttle_SetupDISABLED, like PSATESTDIsabled key before adding own settings.

So we could use our tested/individual DCPUMControl settings (the 3 values) there for default setting (boot settings).

 

 

 

nice but look at this

http://screencast.com/t/Hbh9RQlp

doesnt seem to match huh?

Thats because menutemperature/speedit.kext isnt written for our "macs" with different FSB , diff multi (8, 10,12,..).

For me it doenst matter that the MHZ values diff to real.

The shown MT MHZ values correspond to the real values, so 1 GHZ is for me 1300 MHZ, for you 800 MHZ.

The main information, at what speed it runs (slowest, mid, higest MHZ) , or switches, you see even if the MHZ diff.

 

If i find the time i will start soon to build an IntelCPU_Info_OSx86 menuapp for MHZ/TEMP/VOLTS (show values, not modifiy them).

Link to comment
Share on other sites

1. MenuTemperture with speedit.kext has nothing to do with speedstep.app, no need to uninstall intelspeedstep.kext or speedstep.app

speedit.kext (bad name, has nothing to do with speedstep, gives access to temp+mhz only)

2. if you get NO WORKING TEMPERATURE SENSORS FOUND

2.1) speedit.kext is not loaded, check it by kextstat (in terminal) if it is listed , if not check why with sudo dmesg

2.2) Maybe your Model (AppleSMSBIOS dependend) is not "Mac likel".

Means its not like MacPro3,1 , iMac,... which Menutemperature searches.

solution: EDIT the IntelModels.plist in the /Ressources path of the MenuTemperatur.app, simply overwrite one Modelname with YOURS.

(You can find YOUR Modelname with the Systemprofiler or. About Mac.. / More Info..)

I think you will get it to work.

 

Screenshoot shows the IntelModels.Plist within the Menutemperture.app.

If YOUR Modelname is not listed, change some name of them to YOURS.

HINT: If your Modelname is not mac like, you will get always trouble with other tools which use modelname !

 

@Mitch_De

 

Thank you for your suggestion of overwriting the model names. MenuTemperature sees my computer as MacPro3,1. I changed the last entry in the Intelmodels.plist to MacPro3,1 and now it works, but mine displays in Fahrenheit and yours in Celcius. Is there a setting to change to Celcius? Thanks again.

 

EDIT: Never mind. I found it. It's in Mac OS X System preferences-->International-->Formats Tab, I changed the measurement units from US to Metric and Voila!

Link to comment
Share on other sites

@Mitch_De

Thank you for your suggestion of overwriting the model names. MenuTemperature sees my computer as MacPro3,1. I changed the last entry in the Intelmodels.plist to MacPro3,1 and now it works, but mine displays in Fahrenheit and yours in Celcius. Is there a setting to change to Celcius? Thanks again.

EDIT: Never mind. I found it. It's in Mac OS X System preferences-->International-->Formats Tab, I changed the measurement units from US to Metric and Voila!

 

Menutemperature has his own Settings too - you dont have to change your International settings.

Go into Menu of Menutemperature / Settings... then in Settings TAB Visual (in german Erscheinungsbild) and you can set Temp to automatic (uses systemwide International setting of Systempreferences ) or force Celsius or force Fahrenheit.

Bild_84.jpg

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...