9

I have a MacBook Pro 15" (mid 2014, running Sierra). Recently, it has started black screening and shutting off shortly after, after a few minutes' use—let's say 3 to 10 minutes. The screen will go black but the LCD backlight will remain on for about 5 seconds, then the laptop will completely shut off.

I have reset PRAM and the SMC. Things I have determined:

  • The built-in hardware test passes
  • Problem is not tied to my user account (occurs when I'm logged in to another freshly created user)
  • Problem is not tied to my OS installation (I wiped and re-installed)
  • Problem does not manifest itself in Safe Mode or when booted into Windows 10. (Also didn't manifest during OS X re-installation.)
  • Problem does not seem to be overheating: I can game with no issues on Windows, graphics performance and fans are fine.

This behaves like a classic overheating problem, but I'm stumped due to some of the weirdness of it not being an issue in safe mode or Win 10. Any thoughts?

5
  • Safe mode disables 3rd party kexts. That would be first place to look. – Tetsujin Jul 13 '17 at 8:40
  • The only 3rd party kext was Dropbox. Crashes still happen if I manually kextunload it. – redct Jul 14 '17 at 0:48
  • I have the exact same computer with the exact same problems. I also have windows 10 running, and wiped my hard drive and reinstalled mac os. I don't have any solution so far and I've mainly been using windows 10 because it won't crash. I have found that when my computer is plugged in, it crashes less frequently. Also about 2 months ago I had some hardware servicing and had a new battery installed. Hoping a solution arises soon, thanks. – Max Sep 25 '17 at 16:50
  • I'm having similar issues but it also occurs while in safe mode, but less often. – user24601 Apr 22 '19 at 1:27
  • For MAC OS Big Sur see this answer, as we need to remove kext and rebuild kexts in big sur. apple.stackexchange.com/a/407918/252245 – Waqas Ahmed Jan 7 at 6:16
7

As discussed on the MacRumors forums thread, Help! Updated to macOS 10.12.4, MBP randomly shuts off, it is likely that AppleThunderboltNHI.kext is the culprit:

So if you disable (move out of /System/Library/Extensions) AppleThunderboltNHI.kext driver then reboot. Everything runs ok, you can connect external screens via Thunderbolt.

The only drawback is that Ethernet via Thunderbolt will not work.

4
  • You will need to disable system integrity protection to do this. e.g. Reboot in recovery mode by holding Command-R, then open Terminal, and run csrutil disable, then reboot to apply the change. Then move the file. Then reboot and enable system integrity protection again: csrutil enable. – daviewales Nov 19 '18 at 5:57
  • Or just follow the instructions here. But note that the recovery mode terminal is already root, so don't use sudo before csrutil disable. – daviewales Nov 19 '18 at 5:58
  • I have faced the issue before and solved it using this and below answer. However after you update your mac it started again and applied the same solution. We will see if it works. – Faruk Feb 27 '20 at 9:13
  • For mac os big sur check this apple.stackexchange.com/a/407918/252245 – Waqas Ahmed Dec 3 '20 at 10:34
2

Been having the same issue for about a year now, right now the only way to prevent it from shutting down randomly is to have the Thunderbolt Gigabit Ethernet Adapter plugged in all the time. Brought my unit to Apple multiple times but were to no avail.

1
  • Interesting. This aligns with my theory that something has gone haywire with ether the Ethernet controller or Thunderbolt controller hardware. Disabling the associated kexts seems to have helped. – redct Aug 17 '17 at 15:46
2

I have now hit on a solution. I'm not sure if it's the correct one, but it works for me so I thought I'd at least post it.

My vague suspicion: things worked perfectly in Windows, but not on Mac OS. This means that it's probably a hardware issue manifesting itself due to differing driver implementations between the two OSes. So, I started disabling driver kexts until Mac OS stopped crashing.

I created a folder under /System/Library/DisabledExtensions/ and moved these files from /System/Library/Extensions:

AppleFWAudio.kext
AppleThunderboltDPAdapters.kext
AppleThunderboltEDMService.kext
AppleThunderboltIP.kext
AppleThunderboltNHI.kext
AppleThunderboltPCIAdapters.kext
AppleThunderboltUTDM.kext
AppleUSBAudio.kext
AppleUSBDisplays.kext
AppleUSBEthernet.kext
AppleUSBEthernetHost.kext
IOUserEthernet.kext

It now works.

2
  • only AppleThunderboltNHI.kext is enough – outluch Sep 15 '18 at 21:24
  • For it was not. I think it requires some grid search which are the reason. – Faruk Feb 27 '20 at 9:12
2

I can say that the only thing that has worked for me is to leave my thunderbolt in the computer even when connected on WIFI and not ethernet. Just having it dangle out of the computer seems to do the trick. I forgot to have it in yesterday and it shut down on me again.

1

For those getting Read-only yada yada yada on terminal.

For Mac OS Big Sur

Remember the address which redirects you to the page. www.tinyurl.com/fixapple2

  1. Reboot in the rescue mode (reboot by pressing "⌘ + R")

  2. Open safari in the rescue mode to come this page and to copy what is written here into Terminal.

  3. csrutil disable

  4. csrutil authenticated-root disable

  5. mount -uw /Volumes/your MacOS files location e.g. mount -uw /Volumes/Macintosh\ OS/

  6. cd /Volumes/your MacOS files location/System/Library/Extensions as happened in the 4th step

  7. mv AppleThunderboltNHI.kext AppleThunderboltNHI_kext.bak

  8. kmutil install -u --force --volume-root /Volumes/your MacOS files location

  9. bless --folder /Volumes/your MacOS files location/System/Library/CoreServices --bootefi --create-snapshot

  10. Reboot normally


Tested on Catalina 10.15.4.

You need to be fast while doing this because highly likely your Mac shuts down in a very short time.

The process is, boot to recovery (⌘-R at boot, hold these keys before the Apple logo), open Terminal:

csrutil disable

Then reboot to the OS, run

sudo mount -uw /

and

sudo killall Finder

commands, then

cd /System/Library/Extensions

and

sudo mv AppleThunderboltNHI.kext AppleThunderboltNHI_kext.bak
sudo mv IOThunderboltFamily.kext IOThunderboltFamily.kext.bak

If you wish, actually what I do so, re-enable csrutil enable, with ⌘-R at boot, then.

0

For Mac OS Big Sur

  1. Reboot in rescue mode (reboot while "Cmd + R")

  2. csrutil disable

  3. csrutil authenticated-root disable

  4. mount -uw /Volumes/[MacOS ]

  5. delete (or rename, or move elsewhere) the AppleThunderboltNHI.kext directory (I've moved all thunderbolt kext directories since I have no needs about this interface, but I think it works only by disabling AppleThunderboltNHI)

  6. REBUILD the extensions cache ! (new has-to-do in Big Sur...)

kmutil install -u --force --volume-root /Volumes/[MacOS ]

  1. DON'T FORGET to create another system snapshot to take these modifications under account at next reboot

bless --folder /Volumes/[MacOS ]/System/Library/CoreServices --bootefi --create-snapshot

  1. reboot (in rescue mode). This step may be unnecessary, not tested straight to
  2. csrutil enable
  3. Reboot

Reference https://apple.stackexchange.com/a/407918/252245

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .