Addressing the AppleIntelCPUPowerManagement kernel panic at machine boot.
I’ve been running a Hackintosh desktop of various sorts since 2009 or so. I use the HCL for OSX found at tonymacx86.com to pick my hardware and normally buy mid range equipment. I almost always have 4 monitors attached to the Hackintosh which are hanging off a matched pair of NVidia GPUs. The rest of the config is less than interesting, i7 3.5GHz , 32G ram, ~12TB disk.
One of the GPUs went offline yesterday in the middle of my work day. The syslog reported an issue with the graphics driver. I found this curious since I hadn’t touched any system level configs since patching the machine to 10.10.4 in July. After a reboot, the machine continued to use only one card. Subsequent reboots randomly selected the card to use for that boot cycle.
After a few reboots, reseating of cables, checking connections, etc, I gave up and booted off my UniBeast Yosemite 10.10.1 USB thumb drive. The installer could use both cards without issue. I used the drive to mount my root drive and took a look through the filesystem. Since I didn’t update anything explicitly, and I didn’t find anything in any of the usual places, I can only image that some process helpfully patched my system for me in some obscure location.
Since the box was already half-hosed, I took the chance and rebooted off the internal drives and applied the 10.10.5 system update. I’d read warnings online that Apple changed the NVidia drivers and that the vendor specific drivers may be needed. On reboot the kernel panicked with AppleIntelCPUPowerManagement. I used the USB to go through a cycle of boot->modify root->reboot and was able to get the machine up farther by moving the files in /System/Library/Extensions/AppleIntelCPUPowerManagement* out of that directory so they wouldn’t load at boot. At that point the machine would boot but the screens stayed gray. The graphics core was up, but there was no interface on top of it. Thankfully I could ssh in from another machine and continue to triage.
After about 10 minutes of triage, I downloaded the latest Yosemite MultiBeast from tonymac and copying it onto the USB drive. I then booted off the USB and installed the kext from MultiBeast for AppleIntelCPUPowerManagement.kext, which has been patched to fake it. The next boot was a hang with the system complaining about hardware monitors. I did the same boot cycle from USB ad added the FakeSMC.kext, HWMonitor.app, and FakeSMC Plugins to /Extra/Extensions and rebooted.
Box came up with sound and network (typically the hardest things to keep working across updates in hackintosh-land) and felt reasonably stable. I resumed my usual 4 browser each with 2-3 windows each with 15-20 tab + editors + terminals + photoshop work state and apps randomly started dying. Tailing the system logfile revealed issues with the graphics driver. I went and downloaded the NVidia provided video drivers and applied those. 2 reboots later I’m running off of the Nvidia Web Driver and my machine is stable once again.
To save other people time, to dump a .pkg from the MultiBeast.app/Contents/Resources dir into the right place:
- cp -a /Extra /Extra.bak
- pkgutil –expand /path/to/MultiBeast.app/Contents/Resources/AppleIntelCPUPowerManagement-216.0.0.pkg /tmp/
- This will dump the contents of the package in /tmp, you’ll find a Scripts directory and Payload file.
- Manually execute whatever is in Scripts/preinstall first.
- tar -C /Extras/Extensions -zxvf /tmp/Payload
- Manually execute whatever is in Scripts/postinstall now.
Continue this as many times as you need to to fix your problems.
WARNING: This is so deep in the internals of the system that if you screw something up because you’re just blindly typing commands without understanding what you’re doing, there’s a good chance you’ll kill your box and need to reinstall. You have been warned.