Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

A workaround for the MacBook 6200 rpm issue Laptop Macs
As it happened to many of you after installing Snow Leopard a couple of years ago the fan of my MacBook went crazy. Even at low CPU temperatures (60 C) it keeps staying at 6200 rpm. The bizarre thing is that putting the MB on sleep and waking it up the rpm stays low. I tried the standard procedure (reset SMC and PRAM, as explained in Apple documents) but nothing changed. Then I've found this page, which makes use of the smc binary of smcFanControl tool. You may find smcFanControl here.

Then from Terminal I typed (the $ sign is the prompt. Don't type it):
$ cp ~/Downloads/smcfancontrol_2_2_2/smcFanControl.app/Contents/Resources/smc /usr/local/sbin
The problem with this hint is that my MacBook DOES heat and keeping a low rpm it overheated causing a crash/shutdown. So, after some investigations on how to read the temperature I came out with the following script, which I stored in /usr/local/sbin/smcFanReset.
!/bin/sh
#
# Read CPU0 temperature via smc tool and convert in decimal value
#
TEMP=$((0x$(/usr/local/sbin/smc -k TC0D -r|awk '{print $4}')))
#
# Depending on the actual temperature value adjust the maximum fan speed.
#
if [ $TEMP -le 62 ]
then
	/usr/local/sbin/smc -k F0Mx -w $(python -c 'print hex(3000 << 2)[2:]')
elif [ $TEMP -le 66 ]
then
	/usr/local/sbin/smc -k F0Mx -w $(python -c 'print hex(3600 << 2)[2:]')
elif [ $TEMP -le 70 ]
then
	/usr/local/sbin/smc -k F0Mx -w $(python -c 'print hex(4200 << 2)[2:]')
elif [ $TEMP -le 75 ]
then
	/usr/local/sbin/smc -k F0Mx -w $(python -c 'print hex(5000 << 2)[2:]')
else
	/usr/local/sbin/smc -k F0Mx -w $(python -c 'print hex(6200 << 2)[2:]')
fi
# END OF SCRIPT
This is obviously a run once only script; useless when the CPU changes its temperature.

To have it always checking the CPU temperature and adjusting the max fan speed accordingly one just needs to run it with cron. I choose to have it run every minute. To do so type in terminal:

$ sudo crontab -e"

This starts vi on the root crontab file. Append the entry:

*/1 * * * * /usr/local/sbin/smcFanReset

Save and quit. Cron will be automatically updated to read the new entry and your MacBook, will be (mostly) quiet again as it should be.

A few notes:

This script modifies the maximum rpm for fan0. Simply the fan speed can not get higher than that, so use it carefully. I decided that for temperatures > 75 C it should use full speed.

The smc is still in control of the fan speed. If the CPU temperature drops it may decide to lower the rpm even more.

This works only for 'fan0' with the MacBook having only one fan. I can't test it but I imagine that on MacBook Pro for each temperature one should add the line:
/usr/local/sbin/smc -k F1Mx -w $(python -c 'print hex($RPM << 2)[2:]')
as in:
if [ $TEMP -le 62 ]
then
	/usr/local/sbin/smc -k F0Mx -w $(python -c 'print hex(3000 << 2)[2:]')
	/usr/local/sbin/smc -k F1Mx -w $(python -c 'print hex(3000 << 2)[2:]')
elif ...
The maximum allowed rpm by the SMC is greater than 6200. One may want to raise it at his/her own risk. Obviously it will be much louder.

Do not expect your MacBook to be much cooler. Just more silent.

Again, use this at your own risk. The values I have set fit with my regular usage. The temperature goes above 75 C when watching videos and stuff and as long as it didn't hit the 80+ C a lower rpm didn't overheat the MacBook. Also the one minute delay is not much to have a drastic raise on CPU temperature. I have been running this for few days now and it is pretty stable.

[crarko adds: I haven't tested this one.]
    •    
  • Currently 2.70 / 5
  You rated: 3 / 5 (10 votes cast)
 
[17,125 views]  

A workaround for the MacBook 6200 rpm issue | 9 comments | Create New Account
Click here to return to the 'A workaround for the MacBook 6200 rpm issue' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
A workaround for the MacBook 6200 rpm issue
Authored by: arcticmac on Jul 06, '11 12:15:53PM

This hint actually seems like a really bad idea. Having your computer run hotter (effectively what this hint accomplishes), will tend to decrease its lifetime (heat is bad for most electronics, especially disk drives), and can actually hurt performance as well, if the CPU runs enough hotter that the system throttles CPU clock speed back. While I agree that it's interesting to know how to change this by hand, it seems like something that one SHOULDN'T change. I actually usually use smcFanControl to turn my fan speed UP to try to keep my computer cooler. In my opinion, 60C is actually a lot hotter than your MacBook ought to be, and I usually consider anything above 73 to be abnormally hot.

Then again, I guess there is some variation in the temperature diodes between machines, so yours might claim to be a few degrees hotter than mine for the same real conditions.



[ Reply to This | # ]
A workaround for the MacBook 6200 rpm issue
Authored by: Michelasso on Jul 06, '11 01:36:58PM

But that's the point. The computer doesn't run hotter. Well, if it does it does it for up to 60 seconds, just the time for cron to kick the script and change the MAX rpm value for the fan. After that it's up to the SMC to decide if it can go slower (usually it doesn't). If the rpm is too low, it gets hotter but then in few seconds the max value is raised. On the other hand, lowering the MAX rpm I still get the CPU getting cooler.

I checked for days before to come out with this workaround. I've found many people complaining about the fan speeding, often for nothing. It might be a problem with the SMC. It simply doesn't seem to control the fan as it should.

Regarding the 80+ C degrees.. Well, I don't know. Some people in youtube even opened the MacBook and changed the thermal paste. They claim it runs 5-10 C cooler, but still no use for the fan. All I know is that all of this started after upgrading to Snow Leopard. And so many others reported. It seems that with Lion it will get even worse. At least with the white MacBook late 2006 like mine.



[ Reply to This | # ]
A workaround for the MacBook 6200 rpm issue
Authored by: mvgfr on Jul 06, '11 12:38:59PM

Check out Fan Control; a bit more "set and forget" than smcFanControl.

For example: No app to accidentally quit - or forget to launch.

(BTW: Launching via cron every minute is adding to the machine's load and potentially heating it up further.)

Edited on Jul 06, '11 12:40:33PM by mvgfr


[ Reply to This | # ]
A workaround for the MacBook 6200 rpm issue
Authored by: Michelasso on Jul 06, '11 01:48:38PM

FaControl is like smcFanControl. Those tools are intended to raise the minimum fan speed, or at least to run the computer cooler. At the cost of a constantly spinning fan. They were no use for me. That's where i've got the smc binary anyway.

Regarding running a small script in cron every minute.. come on. It will probably take 1/1000 of CPU. Every 60 seconds. Just a drop in the ocean of resources consumed by any web browser (especially when running Flash).



[ Reply to This | # ]
A workaround for the MacBook 6200 rpm issue
Authored by: theosib on Jul 07, '11 08:31:41AM

That is incorrect. Lobotomo's FanControl allows you to set a slope and offset that dictates minimum fan speed as a function of temperature. It basically does what the built-in system is supposed to do, which is to adjust fan speed as temperature changes. Also note that it sets MINIMUM fan speed, so if the built-in mechanism disagrees and wants the RPM higher, it will be higher. I don't like smcFanControl, because it only sets a constant, so it's loud all the time. With Lobotomo's FanControl, it's more intelligent. I set mine to adjust the high end. At the low end, my 2011 MBP was fine, but when the CPU temperature would hit 90C, fans were not at maximum, and the machine got really hot, so I have it go all the way up to 6000 when I'm over 85C.



[ Reply to This | # ]
A workaround for the MacBook 6200 rpm issue
Authored by: Michelasso on Jul 10, '11 01:14:13AM

I know that. The point is that I want it more silent. Fan Control, like smcFanControl adjusting the minimum fan speed can only make it louder.

Anyway, I actually put my hands on the Fan Control source code and modified it. I used to be a developer ages ago, so I can still do some little things. I changed few parameters and added the lines to write the SMC max rpm as well. Now the fan speed goes proportionally with the temperature, in a much more dynamic way than the script. I know this is not a solution, but it does the job I wanted to achieve. Actually now it does what I tought those tools were supposed to do since the beginning. It shouldn't be dangerous because I've set the high threshold to 80 C. After that (but one can choose a lower temperature value) it goes to 6200 rpm.

Still, my only hope is the new thermal paste. Something is really heating too fast.



[ Reply to This | # ]
A workaround for the MacBook 6200 rpm issue
Authored by: snowmusicman on Jul 06, '11 07:49:26PM
I experienced the same problem, even after reapplying the thermal paste of my 1st gen MBP. The fans would kick in at 49 C, even with just one browser tab it would start making noise. I followed this thread from someone at insanelymac and it has worked fine ever since (a combination of smc and fancontrol): insanelymac

I just modified it to use with Sleepwatcher. Hope it helps somebody else.

[ Reply to This | # ]

A workaround for the MacBook 6200 rpm issue
Authored by: Michelasso on Jul 09, '11 02:42:22AM

Well, it's similar to what I've got the info about setting the smc from. I tried the sleepwatcher solution as well. But since the MAX rpm was static I did get a couple of crashes due to overheats. I'm pretty sure I had FanControl installed in the past as well. Not much changed. I'll give it a second try.

Anyway, from what I read around the only solution is to change the thermal grease/paste. It seems at Apple they do a terrible job applying it. I already opened the MacBook (gosh if it was dirty!!!) but I couldn't find the Artic Silver 5 around. So I ordered it today on ebay. I'll keep you posted. Right now the CPU temp goes from 75 C to 82 C. With only Chrome running. Full rpm speed. That's really too much for me.



[ Reply to This | # ]
A workaround for the MacBook 6200 rpm issue
Authored by: Michelasso on Aug 03, '11 02:24:08AM

Well, just to inform that I opened the MacBook, cleaned the fan and replace the thermal paste with Arctic Silver 5. The fan grid was 70% obstructed by a thick layer of burned dust. I couldn't believe it was so bad. Still, removing it it didn't cool down. The thermal paste was a joke. Nearly nothing was left on top of the CPU and GPU. All spread around in huge quantity (which they say is not good).

Well, the result is that while typing this the temp is 45 C (usually it stayed at around 65 C). Playing flash movies it didn't go above 75-77 C while before it could even pass 90 C (!!). Also the CPU used to go at 100%, which is not the case now.

I just wonder what they do at Apple with these expensive pieces of HW. That has been really disappointing.



[ Reply to This | # ]