Fix weird OS X freeze on iMac's (late 2009)

Saturday, Nov 2nd, 2013

After upgrading to Mavericks my iMac suddenly freezes in very strange way, mouse movements are still responsive but screen is completely freezed!

That already happened before with Lion and Mountain Lion, maybe one or two times, but with Mavericks happens all the time

After some investigation I found this post, describing same issue, dated from 2010 and related with 10.6.3 upgrade (Snow Leopard). Some people argue about graphics card temperature (greater than 40ÂșC), but in my case I checked the error just after booting the machine, so no time for high temperatures. Other people are relating that problem is triggered on some gpu events, like processing Flash.

In any case, the problem is related to 10.6.3 and GPU drivers (ATI/AMD). If so, that's a bit embarassing for Apple side, since it is a 3 year old bug, previously reported on apple forums.

Fortunately there are already 2 possible solutions

  • Use SMC Fan Controller to adjust fans rpm's values, and this way reduce cpu/gpu temperatures. Since it's an app downloaded from a non apple identified developer you need to "allow" it on "Security & Privacy" settings. After installing it just adjust the rpm values and keep an eye on menubar temperature item.
  • Use gpu drivers before 10.6.3. Yes it is possible, even using Mavericks.

I checked for second option and it seems to fix my problem, so in case you have the same issue just do the following

  1. Download the 10.6.2 ATI graphics driver kernel extensions (.kext) from here
  2. Unzip download file to somewhere in your disk and should have the following files:

    ATI1300Controller.kext
    ATI1600Controller.kext
    ATI1900Controller.kext
    ATI2400Controller.kext
    ATI2600Controller.kext
    ATI3800Controller.kext
    ATI4500Controller.kext
    ATI4600Controller.kext
    ATI4800Controller.kext
    ATIFramebuffer.kext
    ATIRadeonX1000.kext
    ATIRadeonX2000.kext
    ATISupport.kext
    Kext Helper b7.app
  3. Identify you graphics driver version (mine is ATI 4670 - 4600 series) using System Report
    System Report System Report - Graphics
  4. Goto to /System/Library/Extensions and move AMDFramebuffer.kext, AMDSupport.kext and AMDxxxxController.kext (AMD4600Controller.kext in my case) to an backup folder and install downloaded kexts:

    cd /System/Library/Extensions
    sudo mv AMDFramebuffer.kext AMDSupport.kext AMDxxxxController.kext ~/backup

    sudo cp ~/downloads/ATIFramebuffer.kext /System/Library/Extensions
    sudo cp ~/downloads/ATISupport.kext /System/Library/Extensions
    sudo cp ~/downloads/ATIxxxxController.kext /System/Library/Extensions

    sudo chmod -R 755 /System/Library/Extensions/ATI*
    sudo chown -R root:wheel /System/Library/Extensions/ATI*
    sudo touch /System/Library/Extensions

    Note that you are replacing AMDxxxx with ATIxxxx ones.

    You can also use kext helper for installing the new kext files and avoiding the command line installation steps.

  5. Reboot and check again System Report, you should have now reference to new kexts on Extensions section:

    Loaded Extensions - ATI 4670

Tags: