解决 Macbook Air 风扇噪音问题

macbook fix noise

Macbook Air 风扇噪音问题由来已久, 我最早的那台 Macbook Air Early 2008 一直就有发热导致的噪音问题, 之后再换的 i7 的 Macbook Air 虽然没有之前的发热问题, 但噪音问题却还依旧. 乘着这次升级 Mountain Lion 的机会整理下解决方法.

产生原因

其实风扇噪音究其原因, 还是因为 CPU 温度太高导致风扇转速超过了 6000 而产生的. 而其解决方案无非就两种, 要么想办法给 CPU 降温, 要么就不要让风扇转的那么快.

降低 CPU 降温

如果使用的是 Intel Core CPU (上一代CPU, 不是 i5/i7) 的话可以使用 Coolbook 来降低 CPU 的电压, 达到降温的作用效果非常明显. 不过系统只支持到 Lion, 并不支持 Mountain Lion 具体的安装步骤可以看 http://roaringapps.com/app:255

至于其他操作例如: 开盖清灰之类的也会有效果, 但明显没有降低 CPU 电压来的明显和好用.

限制风扇转速

Macbook Air 风扇满速是 6500rpm 非常吵, 但限制最高到 4000rpm 了就会好很多了. 不过系统默认并不能限制风扇的最高转速, 所以需要去下载一个叫 smcFanControl 的软件. (第一次使用的话需要将其复制到系统的 “应用程序” 中, 接着打开该软件再退出一次)

但这个软件默认也没有提供限制最高转速的地方, 好在我们还可以通过命令行开启手工的设置风扇的最高转速. 可以打开终端输入

/Applications/smcFanControl.app/Contents/Resources/smc -k F0Mx -w 3e80

就可以限制CPU的最高转速为 4000rpm, 其中的 3e80 是 4000 的 16进制表示.

之后再进行游戏或者编译程序的时候风扇就会安静很多了. 但重启系统或者合上笔记本休眠再打开, 风扇最高转速又会回到 6500. 还需要重复之前的步骤才行.

所以需要想办法让系统在开机或者唤醒以后可以自动执行该命令.

开机自动运行

开机自动运行最简单的方法是打开系统自带的 “AppleScript 编辑器” 接着输入

do shell script "/Applications/smcFanControl.app/Contents/Resources/smc -k F0Mx -w 3e80"

然后用过菜单, 将其导出到一个应用程序(名字可以随便取), 我这里叫 LimitMaxFanSpeed.app 见下图

applescript-limit-max-fan-speed

不想弄的也可以直接下载我生成好的版本, 接着最好将导出的复制到 “应用程序” 目录, 然后在 “系统偏好设置” 的 “用户与组群” 中设置成开机自动运行.

set-limit-max-fan-speed-auto-startup

这样只要不合上笔记本让他休眠, 风扇应该也就会限制在 4000 转了, 如果想取消这个限制只需要 删除这个自动运行项接着重启电脑就可以了.

唤醒后自动运行

笔记本合上休眠后, 在唤醒之前的风扇限制会无效, 所以还需要安装一个叫 sleepwatcher 程序.

如果你本身也是开发人员, 那么只需要简单的输入 brew install sleepwatcher 然后跟着提示一步步操作就能完成 sleepwatcher 的安装

如果非开发人员也不了解 Homebrew 的话, 则需要从 sleepwatcher 的主页下载, (没梯子的同学可以点 这里下载 sleepwatcher 2.2)

解压后根据 ReadMe.rtf 进行安装.

安装完成后还需要开启终端, 在命令行输入

echo /Applications/smcFanControl.app/Contents/Resources/smc -k F0Mx -w 3e80 > ~/.wakeup 

命令会自己的用户目录下, 生成一个叫 .wakeup 的文件, 而 sleepwatcher 就会在每次唤醒后自动执行 .wakeup 文件的内容.

最后

如果上述步骤都没问题的话, 现在再怎么重启或者休眠, 风扇应该几乎是听不到任何声音的. 当然了风扇转的慢了 CPU 散热一定会比不限制要差, 我这么多年用来下也还好. 再说 CPU 有温度保护温度太高会自动降低频率来降温, 所以不用太担太热损坏 CPU 之类的.

Comments