Jump to content

CPU temperature in iStat


oldnapalm
 Share

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 ..

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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);

Link to comment
Share on other sites

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];

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

 Share

×
×
  • Create New...