A family member came to me with a 15″ MacBook Pro from 2011 and High Sierra saying that it would only boot up so far, before coming to a grey screen and then just staying powered on but not doing anything.
A quick internet search revealed that this particular family of MacBooks had issues with their AMD Graphics Cards. On a desktop this wouldn’t be too much of a problem, but on a laptop….lets just say I wasn’t hopeful. Also some of the solutions I found involved a hardware fix where desoldering a particular resistor stops power going to the faulty GPU. Not having a lot of faith in my soldering skills, I wanted to do a software only fix.
I did some preliminary testing and was surprised at just how much you could test Macs out.
cmd-S – single user mode
This is just like the absolute minimum boot to be able to run command line tools against the filesystem. Needs a bit of command line knowledge, but means that if it gets into this mode, at least some of the hardware is able to run.
D – hardware test mode
If the Mac is able to boot into this mode, we get a fairly simple graphical user interface where we can do memory and disk tests. If we get this far we can be reasonably confident that more of the hardware is working in the machine more than just single user mode. I ran the tests in here just to make sure there wasn’t a RAM or disk issue.
Shift – safe mode
Now we get to proper MacOSX here with limited driver support. If this loads , we’re now confident that the integrated Intel GPU is working. Also its a more familiar environment to troubleshoot in.
So for the problem I was looking at all three modes were looking good.
Drivers are bits of software an Operating System uses to interface with the underlying hardware. In MacOSX they are located in the folder /System/Library/Extensions
My underlying hypothesis was if I could stop the drivers from loading, MacOSX wouldn’t be able to start the faulty AMD Graphics Card. I highlighted all of the AMD* labelled kext and bundle files and zipped them up somewhere safe in case I needed them and then deleted them (**DO THIS AT YOUR OWN RISK**). Rebooted and was amazed that MacOSX came up properly! I think at this point the laptop screen would work, but I think this disables use of an external screen….but in this use case that didn’t matter.
This fix would not persist past MacOSX updates, but this wasn’t going to be an issue because of what the family member wanted to do next 🙂
This particular family member had been having problems with two bits of software used for sequencing and recording music. Those software packages were pretty much tied to the OS in terms of compatibility, so the challenge was issued to rebuild the laptop to Snow Leopard.
Restoring the Mac was no good as the drivers would resurface as they’re on the recovery partition
Restoring the Mac from the internet, (cmd-opt-R at boot time) again has those drivers baked into the install.
I tried both to no avail, same grey screen block came back.
Then the brainstorm came. Can we remove the drivers from the install DVD and boot to that. We just need to get enough of MacOSX installed to then wipe the drivers from the hard disk again. We had the original Snow Leopard DVD that came with the MacBook. I created a USB image of that DVD using Disk Utility, like this.
I rooted around the folder structure and found the same kext and bundle files in that folder structure, /System/Library/Extensions. Remove the AMD files and get the OSX install going. As expected, the grey screen crash didn’t happen until OSX on the hard drive was now booting up.
Once on the OSX hard drive install, boot up to Safe mode and remove the AMD* kexts again and Snow Leopard lights up!
Again, machine won’t be able to be updated as the AMD files will come back on upgrade, however, the family member in question had more than one computer and this one was going to be specifically for his music related hobbies. So we took what was a nice aluminium door stop, and managed to get it running again. There’s limitations, but both of us are happy we got the laptop up and running again.
Links to the hardware fix:
Software fix that partially worked in High Sierra