Jump to content

CPU temperature in iStat


208 posts in this topic

Recommended Posts

Running an installation of 1.6.1.

CPU: E2160 M0 according to Everest info and articles fount in google tjmax=85C

 

Setting up the correct tj value in plist and installing kext shows up improper data in iStat.

Actual temperature reading from ITE chip is 30 to 33C idle and 37 max load. (according to data from mark-i and BIOS h\w health status). The CPU's cooled by Thermaltake BigTyphoon (and it's not the hottest cpu in the world, so yeah .. )

 

Teperature reading i get in iStat using ur mod are like 10C higher that the actual values are.

iStat shows 40 to 42C idle and all the way up to 50 @ load. Something weird's going on ...

 

Oh ...and I've used Mojodojo's editted version posted above ..

Running an installation of 1.6.1.

CPU: E2160 M0 according to Everest info and articles fount in google tjmax=85C

 

Setting up the correct tj value in plist and installing kext shows up improper data in iStat.

Actual temperature reading from ITE chip is 30 to 33C idle and 37 max load. (according to data from mark-i and BIOS h\w health status). The CPU's cooled by Thermaltake BigTyphoon (and it's not the hottest cpu in the world, so yeah .. )

 

Teperature reading i get in iStat using ur mod are like 10C higher that the actual values are.

iStat shows 40 to 42C idle and all the way up to 50 @ load. Something weird's going on ...

 

Oh ...and I've used Mojodojo's editted version posted above ..

 

From what I understand, the value mark-i shows in "cpu temperature" is got from a sensor on the motherboard (see screenshot, here it shows 35º), while the values in the boxes on the right are diode core temps (around 51º here), they should be the same as in iStat (actually I see a 2º difference here).

 

Captura_de_tela_2009_10_23_Ã_s_16.55.17.png

Ok, i get your point, must've misunderstood the way it works.

Considering this correct the data in these fields of mark-i and data shown in iStat matches.

Here are my temp reading from mark-i comparing to those i've described above.

685951394.png

So I assume it works as intended ?

 

Thanx in advance.

Considering this correct the data in these fields of mark-i and data shown in iStat matches.

So I assume it works as intended ?

AFAIK it does. Maybe someone else can confirm this (or disconfirm).

 

I've updated latest version to use with markswell's utulities. Now it works well in snowleo and shows correctly all cores.

Didn't the previous method work for you in SnowLeo? Here it works fine using serviceMatching("IOCPU") like in your CPU-i code.

I think the problem with iStatPro isn't related to this, it only shows CPUs A and B even if keys TC2D and TC3D were added.

Thanks.

I've updated latest version to use with markswell's utulities. Now it works well in snowleo and shows correctly all cores.

 

Thanks. Bresink's Temperature Monitor now shows both temperature diodes A and B on my E8500.

 

And thanks for making VoodooMonitor and P-State Calculator.

 

I hope you don't mind me asking; could you fix P-State Calculator so that it supports fractional multipliers?

 

(not that it's difficult to place an extra "4" in DSDT.aml but it would be convenient)

Thanks. Bresink's Temperature Monitor now shows both temperature diodes A and B on my E8500.

 

Does it show correct values for you?

Here they're still 10000º+, no difference from the one in the first post.

iStat Menu, iStat Nano, and Temperature Monitor app all show the exact same temps for me. Thanks! ^_^

 

-Stell

 

hummm, lucky you are :wub: ,

 

istat show me the good temp but Temperature Monitor still show me bad temps for cpuA and cpuB

 

note that Temperature Monitor don't need this tip to read cpu temp as you can see:

 

tmp_ti10.jpg

I dont have FakeSMC as my DSDT working fine here

Could it still works for me?

 

I guess so, but can't be sure.

 

Would you share the DSDT code that allows you to boot without FakeSMC?

 

Thanks.

Thanx, I've always used istats but was bummed out that it wouldn't work with my hackintosh gigabyte.

 

Retail 10.6 "using the Gigabyte solution"

Core2Quad 2.4

8 Gigs DDR2

1terabyte internal

8500 GTX

works better than any pre-made distro.

istat menu seem to show the correct temp, but temperature monitore still show 10000°C +

 

Temperature Monitor doesn't need this to show CPU temp, you can disable readings from sensors with wrong values (in preferences).

 

Please see post #46 for more details.

About "CPU A Temperature Diode", looks like Temperature Monitor reads the same 2 bytes TC0D key, but big-endian, while iStat uses little-endian.

For example:

TC0D = <31 00>

iStat reads: 0x0031 = 49

Temperature Monitor reads 0x3100 = 12544

My GA-EX58 doesn't show any CPUs with istatmenus2.0, only two CPUs with istatnano, but shows all CPUs (correct temperatures), CPU Temperature Diodes (incorrect) and SMC CPU DIODEs (incorrect) with Temperature Monitor.

How would I change the source to read the keys big-endian for Temperature Monitor?

		char keyname[5];
	snprintf(keyname, 5, "TC%dD", i);
	static char temp_key[] = {0x00, 0x00};
	smcNode->SMCAddKey(keyname, 2, temp_key, 1);

It'd be cool if fakesmc detected the cpuid and thens sets the tjmax value accordingly...

It's a good idea, but we would need a list of cpuid and tjmax values. These informations can be read using markswell's utilities: cpuid_signature, cpuid_stepping, cpuid_model, cpuid_family, cpuid_type, cpuid_extmodel, cpuid_extfamily, cpuid_brand, cpuid_features.

 

My GA-EX58 doesn't show any CPUs with istatmenus2.0, only two CPUs with istatnano, but shows all CPUs (correct temperatures), CPU Temperature Diodes (incorrect) and SMC CPU DIODEs (incorrect) with Temperature Monitor.

How would I change the source to read the keys big-endian for Temperature Monitor?

If istatmenus2.0 doesn't show any CPUs, you probably have not installed the sensors module (/Library/Application Support/iStat local/SensorsModule2.0.bundle), install and it should work fine.

To change the source to write the keys big-endian, look for this line:

MySMCKey->data[0] = Tjmax-GlobalThermal[i];

and change it to

MySMCKey->data[1] = Tjmax-GlobalThermal[i];

It's a good idea, but we would need a list of cpuid and tjmax values. These informations can be read using markswell's utilities: cpuid_signature, cpuid_stepping, cpuid_model, cpuid_family, cpuid_type, cpuid_extmodel, cpuid_extfamily, cpuid_brand, cpuid_features.

 

 

If istatmenus2.0 doesn't show any CPUs, you probably have not installed the sensors module (/Library/Application Support/iStat local/SensorsModule2.0.bundle), install and it should work fine.

To change the source to write the keys big-endian, look for this line:

MySMCKey->data[0] = Tjmax-GlobalThermal[i];

and change it to

MySMCKey->data[1] = Tjmax-GlobalThermal[i];

That's odd, I had the sensors module installed, and I even restarted, but no CPUs with istatmenus2.0.

Thanks, now I have reasonable temperatures (53C to 57C) for;

CPU Core 1

CPU Core 2

CPU Core 3

CPU Core 4

CPU Core 5

CPU Core 6

CPU Core 7

CPU Core 8

CPU A Temperature Diode

CPU B Temperature Diode

CPU C Temperature Diode

CPU D Temperature Diode

SMC CPU DIODE E

SMC CPU DIODE F

SMC CPU DIODE G

SMC CPU DIODE H

 

...and 100C for each of;

SMC CPU DIODE I

SMC CPU DIODE J

 

I'm not sure what the diodes are measuring.

I was hoping instead for things like memory (using thermal sensor DIMMs) and NB temperatures, like Apple hardware MacPro4,1 shows.

Wouldn't it be cool if we could do this via DSDT hacks?

 

I can write any key on my Mac Pro but my hack. Seems like Netkas "only" traps the iowrite8 and ioread8 duo, not real low-level writes to port 0x300 and 0x0304 and thus adding keys from DSDT doesn't work (right now). Buffering data like FakeSMC.kext does is however no problem at all. I mean my Asus P5K Pro already includes code to read FAN speed and all kinds of temperatures, so this data is readily available. And reading MSR like CPU-i/VoodooMonitor and now your modified FakeSMC.kext does, should also not be a problem.

 

p.s. You have done a great nice job my friend!

Wouldn't it be cool if we could do this via DSDT hacks?

 

I can write any key on my Mac Pro but my hack. Seems like Netkas "only" traps the iowrite8 and ioread8 duo, not real low-level writes to port 0x300 and 0x0304 and thus adding keys from DSDT doesn't work (right now). Buffering data like FakeSMC.kext does is however no problem at all. I mean my Asus P5K Pro already includes code to read FAN speed and all kinds of temperatures, so this data is readily available. And reading MSR like CPU-i/VoodooMonitor and now your modified FakeSMC.kext does, should also not be a problem.

 

p.s. You have done a great nice job my friend!

 

Thanks friend.

 

I was reading this topic http://www.insanelymac.com/forum/index.php?showtopic=170384 (see you were reading it too), looks like they couldn't make it work with OSK0 and OSK1 keys. Do you think it could work for sensor keys?

×
×
  • Create New...