MacOS – Keyboard/touchpad no longer works in OS X. Works fine in Linux. 13″ early 2015

keyboardmacbook promacostrackpad

I have a strange issue with my early 2015 13" Macbook pro.
The keyboard and touchpad no longer works during boot or in OS X. I can't, for example, use the internal keyboard to boot from USB, but have to hold down option on an external USB keyboard to select startup disk. Even the caps lock key light doesn't turn on when pressed. However, I can use the internal keyboard to do an SMC reset and both touchpad and keyboard works fine when booting Linux from a USB stick. External mouse and keyboard also work fine.

The computer was working fine in the evening. Before going to bed I placed it in my bag, and in the morning when I resumed from sleep neither touchpad or keyboard was working. I think I restarted the computer due to an update earlier in the day before it stopped working.

What I've tried:

  • SMC reset
  • NVRAM reset
  • Clean reinstall
  • Reseat the keyboard connector on the logic board.

None of them changed anything. Any suggestions would be very welcome!

Best Answer

EDIT: It turned out to be water damage that caused the issue. Fiddling with the case probably shifted some leads inside the computer that had shortened/lost contact.

So I think I've finally found the problem; the bottom of the case wasn't on properly.

The keyboard/touchpad would sometimes work, but after putting it in my bag and taking it out again it would usually not work anymore. However, after turning it off by holding the power button and carefully squeezing the case along the edges it would work when I powered it on again. The Macbook provides the ground connection for the keyboard via the bottom of the case, so my guess was that there was a problem with that connection.

So I took off the bottom of the case, cleaned it, and put it on again, careful to screw it in exactly straight, and now it seems to be fine.

I still don't know why it would work better in Linux. My only conjecture is that Linux can somehow reinitialize the hardware after it has lost power briefly.