27" late 2009 iMac Lion 10.7.5 with ATI Radeon HD4800
Over the past few weeks, I've done Lion Recovery, reformat and fresh install of Lion (with a new user), reinstalled from last working backup, but nothing has worked. I was still only able to boot into a graphical environment in Safe Mode, any attempt at normal boot up left me with a white screen and the GPU errors in /var/log/kernel.log (I have ethernet and am using PuTTY from a Windows 7 laptop).
A lot of the discussions seem to centre around hardware faults, e.g. need to replace memory, logic board, graphics card, hard drive, or just the poor design of the iMac that causes overheating in the GPU.
What ****** me off is that I have had no issues with any of this until I applied Apple's 10.7.5 software update in mid October 2012, and having a $2,000+ machine with other paid for software (Lion, Parallels Desktop, etc.) that I can no longer use. I've seen no indication anywhere that Apple acknowledges this issue or is working on a fix for the many frustrated iMac owners who have been affected.
Firstly, it seems you need to install smcFanControl to keep you system properly cooled - already had that for 10 months.
Next, prevent launchd from loading any user specific programs - did that, no improvement.
E.g. rename
mv /Library/LaunchDaemons /Library/X.LaunchDaemons
mv /Library/LaunchAgents /Library/X.LaunchAgents
and reboot.
Next, disable Quartz Extreme, maybe keep things a little cooler - did that, no improvement. e.g.
https://discussions.apple.com/thread/1874655?answerId=9304483022#9304483022
defaults write /Library/Preferences/com.apple.windowserver GLCompositor -dict tileHeight -int 0 tileWidth -int 0
to re-enable
defaults delete /Library/Preferences/com.apple.windowserver GLCompositor
Next, maybe its the new version of the ATI graphics kexts in /System/Library/Extensions ?
So, downloaded Kext Wizard and installed the 10.6.2 versions of the relevant ATI kexts, ATI4800Controller.kext, ATIFramebuffer.kext, and ATISupport.kext - did that, no improvement.
https://discussions.apple.com/thread/2384136?start=405
One or more of the above have worked for some people, but not for everyone, and not for me.
So, booted up in Safe Mode, then normally, connecting with PuTTY and saved the output of kextstat to a text file to compare.
In normal boot (with the white screen), my ATI4800Controller.kext, ATIFramebuffer.kext, and ATISupport.kext were loaded, same as in Safe Mode, but I also noticed ATIRadeonX2000.kext - ***? That's not even my graphic card!
Booted up in Safe Mode and made a backup of all the ATIRadeonX????*.kext and .bundles and deleted them from /System/Library/Extensions.
Reboot in normal mode, and for the first time in 3 F@!#$ng weeks I am up and running normally! Next, start backing the other fixes out one by one to see if I can break it again.
First, reinstalled the 10.7.5 versions of ATI4800Controller.kext, ATIFramebuffer.kext, and ATISupport.kext. Rebooted and all good!
Second, re-enable launching of all per user specific stuff,
mv /Library/X.LaunchDaemons /Library/LaunchDaemons,
mv /Library/X.LaunchAgents /Library/LaunchAgents
Reboot and all good!
Next, re-enable Quartz Extreme. Reboot and all good!
defaults delete /Library/Preferences/com.apple.windowserver GLCompositor
So after reversing most of my fixes, I am left with smcFanControl and the deleted ATIRadeonX???? .kexts and .bundles. I'm going to keep the smcFanControl, since my iMac gets very warm without it.
This leads me to believe that the ATIRadeonX2000.kext, which I assume is for a laptop, was loading on my iMac, as well as the desktop version ATI4800Controller.kext. Perhaps the device ID's or something in info.plist are the same....
pauls-imac:~ root# defaults read /System/Library/Extensions/ATI4800Controller.kext/Contents/Info.plist IOKitPersonalities | grep IOPCIMatch
IOPCIMatch = "0x94401002 0x944a1002";
pauls-imac:~ root# defaults read /Volumes/Scratch/kexts_uninstalled/ATIRadeonX2000.kext/Contents/Info.plist IOKitPersonalities | grep IOPCIMatch
IOPCIMatch = "0x94001002 0x94011002 0x94021002 0x94031002 0x95811002 0x95831002 0x95881002 0x94c81002 0x94c91002 0x95001002 0x95011002 0x95051002 0x95071002 0x95041002 0x95061002 0x95981002 0x94881002 0x95991002 0x95911002 0x95931002 0x94401002 0x94421002 0x944A1002 0x945A1002 0x94901002 0x949E1002 0x94801002 0x95401002 0x95411002 0x954E1002 0x954F1002 0x95521002 0x95531002 0x94a01002";
OK, I'm not a highly paid Apple engineer, but something doesn't look right here. Both have a reference to 0x94401002 and 0x944a1002 (0x944A1002), that's got to create some kind of conflict right there.
I checked all the other ATI????Controller.kext/Contents/Info.plist against all the ATIRadeonX???.kext/Contents/Info.plist, and ALL have duplicate IOPCI references. Could this be an issue?
Anyway, if you are on an iMac, you could try just deleting all the ATI RadeonX*.* from /System/Library/Preferences and see it fixes the issue, as it has for me.
Since doing this I have not seen the dreaded lines in my /var/logs/kernel.log
Oct 7 14:47:31 pauls-imac kernel[0]: ** Device in slot: SLOT--1 **
Oct 7 14:47:31 pauls-imac kernel[0]: ** GPU Debug Info Start **
Oct 7 14:47:31 pauls-imac kernel[0]: 0x0000944a
Oct 7 14:47:31 pauls-imac kernel[0]: 0x000000cd
Oct 7 14:47:31 pauls-imac kernel[0]: 0x00000001
.
.
Oct 7 14:47:53 pauls-imac kernel[0]: ** GPU Debug Info End **
And, I can run Parallels VM's and all my other software with no issues.
OK Apple, send me $100,000 AUD for fixing this!! Useless ********!
Cheers,
Paul.