Ads Below Tabs

January 7, 2015

Hackintosh won't boot? How to use verbose mode to fix it

Setting up Mac OS X on a PC can be an extremely tricky process-- since Apple never intended for the operating system to run on any third-party hardware, Mac OS X can suffer from all sorts of bugs and hangups when you try to start it on your own PC for the first time. If your Hackintosh can't properly boot for some reason, then you'll probably have to turn on OS X's "verbose mode" to diagnose the problem. Verbose mode transforms the standard gray Apple boot screen into a text-based interface, from which Mac OS X will print out every single process that it runs in the background as it starts up. This way, you can tell exactly which process is messing up the startup process as a whole.

However, using verbose mode itself can be very tricky. After all, Mac OS X has to run hundreds of different processes at once to start up properly, so interpreting your results from verbose mode is often extremely complicated. This guide is here to help.


How To Turn On Verbose Mode
First things first: How do you turn on verbose mode? It's actually very simple. All you need to do is type the "-v" boot flag (without quotation marks) into your Mac OS X boot loader when your computer turns on. For more details, check out our guide on using boot flags, and our list of common boot options for Hackintoshes.

Once that's done, Mac OS X will output hundreds of lines of text as it starts up, which you can read. If your Hackintosh isn't booting up correctly, OS X will probably stop outputting text at the exact moment that the startup process fails.


Common Verbose Mode Errors
Panic relating to AppleIntelCPUPowerManagement
If your verbose mode screen has completely stopped moving and you see a block of text mentioning both a "panic" and "AppleIntelCPUPowerManagement.kext", it means that Mac OS X's CPU power management doesn't work with your computer by default. There are a couple of ways to fix this problem, depending on your own preferences.

The basic way of solving this problem is to boot into your Hackintosh with a Unibeast USB drive (or some similar installer/recovery USB drive), and then run Multibeast and install the appropriate version of "Patched AppleIntelCPU PowerManagement". This should allow OS X's power management service to work with your computer, although you may have to reinstall the kext every time you update your operating system. If that doesn't do the trick, you can use Multibeast to install NullCPUPowerManagement instead. This will permanently disable OS X's power management service altogether; doing so will break sleep mode and make your computer less power efficient, but at very least, Mac OS X will now be able to start normally!

The more complicated way to fix this problem is to either download or generate an appropriate DSDT or SSDT file for your computer. (DSDTs and SSDTs are special configuration files that are commonly used to make Mac OS X work better for specific PC hardware.) This will allow Mac OS X's CPU power management service to natively work with your hardware. However, doing this can be somewhat complicated, as different computer hardware configurations require different DSDTs and SSDTs, so we won't be covering this method today. Check out this tonymacx86 guide on laptop power management if you want to learn more.

Panic relating to AppleTyMCEDriver
This is an easy problem to fix: if your screen displays anything mentioning both a "panic" and "AppleTyMCEDriver", that probably means you accidentally installed a Mac Pro (4,1) or Mac Pro (5,1) system definition without the proper precautions. These two specific system definitions always cause booting problems in Hackintosh.

Boot into Mac OS X with safe mode turned on (by using the -x boot flag), go to /System/Library/Extensions in your hard drive, and simply delete AppleTyMCEDriver.kext. This kext doesn't really do anything for Hackintoshes, so you shouldn't see any negative effects from deleting it.

Panic relating to VoodooHDA
Another straightforward problem: if you see the words "panic" and "VoodooHDA" in the same screen, you probably have a problem with the (surprise!) VoodooHDA audio driver in Mac OS X. This is a pretty common occurrence, since the VoodooHDA driver tends to have a reputation as one of the more "unstable" drivers available for Hackintoshes. Boot into OS X with safe mode turned on (using the -x boot flag) and delete VoodooHDA.kext from /System/Library/Extensions in your hard drive.

Panic relating to ApplePolicyControl
This problem is also pretty straightforward: if you see the words "panic" in "ApplePolicyControl" in the same screen, then you have a problem with your ApplePolicyControl.kext. You'll need to remove it to resolve the issue. No surprise there.

That being said, actually deleting the right kext is a bit tricky; the ApplePolicyControl kext file itself is somewhat hidden within the Mac OS X file system. To find the file, boot into OS X with safe mode turned on (using the -x boot flag), go to /System/Library/Extensions in your hard drive, right-click on "AppleGraphicsControl.kext" and click 'Show Package Contents'. Then, go to Contents -> Plugins. From there, you can finally delete ApplePolicyControl.kext! This kext doesn't really do anything for Hackintoshes, so you shouldn't see any negative effects from deleting it.

Panic relating to Local APIC error
This problem is much harder to diagnose and solve: unlike the panics mentioned above, "Local APIC" panics don't always completely stop the Mac OS X boot process, so you may need to pay extra attention to notice one. Sometimes, these panics will even cause your computer to reboot instantly without leaving behind a readable error message, making them particularly difficult to identify. Anyways, if your screen ever displays a "panic" mentioning a "Local APIC error", it's probably because your computer's processor is somewhat unsupported in Mac OS X (this is a common problem on HP laptops).

You may be able to fix this problem by booting Mac OS X with the "cpus=1" boot flag (without the quotation marks). Unsurprisingly, this boot flag will temporarily limit OS X to using only one core of your computer's processor. You can then permanently fix the problem by downloading Chameleon Wizard and enabling the KernelPatcher module, which will patch OS X's "mach_kernel" file to properly work with your processor every time OS X starts. If you wish, you can also just replace the mach_kernel file (located at the very base of your Hackintosh's main hard drive) altogether with an appropriately patched version downloaded from the internet (search "mach_kernel lapic" on Google).

Panic relating to ACPI
If your verbose mode screen mentions both the words "panic" and 'Unable to find driver for this platform: \"ACPI\"' near each other, then you have an ACPI panic. Unfortunately, this is one of the most tricky panics to fix, just because it's extremely vague: a whole bunch of different things can cause it.

In a few rare cases, this panic just happens when your AppleACPIPlatform.kext is broken. So if you've been fiddling with that kext recently, that's probably the reason. In that case, try starting Mac OS X in safe mode with the boot flag "-x" (without quotation marks). You may also have to use the boot flags "UseKernelCache=No", "npci=0x2000", or "npci=0x3000" (all without quotation marks) in conjunction with "-x". If that doesn't work, try booting into Mac OS X with your Unibeast USB drive (or some similar installer/recovery USB drive) instead. Once you can successfully get into OS X, properly reinstall AppleACPIPlatform.kext with Kext Wizard.

In other cases, this panic can be caused by a problem with either your DSDT or your SSDT. (DSDTs and SSDTs are special configuration files that are commonly used to make Mac OS X work better for specific PC hardware.) To fix this, try rebooting your computer with either your DSDT or your SSDT turned off. From there, once you've successful restarted Mac OS X, you can replace your DSDT/SSDT with another version that works better.

You can temporarily disable your computer's DSDT by starting Mac OS X with the "DSDT=Null" boot flag (without quotation marks). You can temporarily disable your computer processor's native SSDT with the "DropSSDT=Yes" boot flag (also no quotation marks). Try each of these boot flags one at a time; you need to figure out whether it's your DSDT or your SSDT that's actually causing the problem (it's rarely ever both). Of course, some Hackintoshes can't boot on their own when their DSDT or SSDT is turned off-- if that's the case, plug in your Unibeast USB drive (or some similar installer/recovery USB drive) before starting your computer and entering the aforementioned boot flags.

"PCI configuration begin"
If the output from verbose mode specifically stops at a line mentioning "PCI configuration", you may be able to fix the problem by using the boot flags "npci=0x2000" or "npci=0x3000" (without quotation marks). Use the flags one at a time; if one doesn't work, try the other. Fair warning: this solution usually only works on Mac OS X Lion and Mountain Lion.

"Still waiting for root device"
If the output from verbose mode specifically stops at a line saying "Still waiting for root device", you probably have a hard drive or USB drive issue. This may happen if your motherboard's BIOS or UEFI isn't set to AHCI mode; double-check this, just in case your BIOS/UEFI was accidentally reset recently. It might also happen if Mac OS X can't load the proper USB drivers for some reason. In that case, try the boot flag "USBBuxFix=Yes" (without quotation marks). The boot flag "USBLegacyOff=Yes" (no quotation marks) might also be useful.

Something mentioning a Bluetooth Controller Transport
If the output from verbose mode specifically stops at a line mentioning "IOBluetoothHCIController", you may be in for a difficult time. Contrary to what you might expect, the real problem probably has nothing to do Bluetooth at all. Instead, Mac OS X usually loads Bluetooth right before it starts its graphics drivers, so if your verbose mode mentions Bluetooth last, then there's a good chance that Mac OS X is actually having a problem loading its graphics.

Unfortunately, there is no single solution to this problem, as graphics is one of the trickiest parts about setting up Mac OS X on a PC. First, try starting OS X in safe mode with the "-x" boot flag (no quotation marks). If that doesn't work, try starting OS X with GraphicsEnabler either on or off, by using the "GraphicsEnabler=Yes" or "GraphicsEnabler=No" boot flags (without quotation marks). Graphics Enabler is a feature that helps Mac OS X work better with certain graphics cards; however, it may actually cause booting problems on other graphics cards.

Next, you could try using a different type of video cable to connect your computer to your monitor. For instance, VGA and HDMI tend to be glitchier with Mac OS X than DVI, which is usually the most reliable input.

If you're using a discrete (separate) graphics card in your PC, you could also try temporarily removing that graphics card and running Mac OS X with your computer's integrated graphics card instead (though that may cause some new problems in itself). If you're already using an integrated graphics cards, then try adjusting a few boot flags; check out the latter half of this very detailed tonymacx86 guide on laptops for more information.

Finally, if you really can't figure out a way to get integrated graphics to work, your last option may be a brute force method: open up your Unibeast USB drive (or some similar installer/recovery USB drive) on a real Mac or another Hackintosh, go to /System/Library/Extensions on the USB drive, and delete every kext file that starts with the words "AppleIntelSNB", "AppleIntelHD", and "AppleIntelFrame". Essentially, this manually removes every graphics driver from your USB drive, so that will be forced to boot with only the very most basic graphic support. You can then use the USB drive to help your Hackintosh boot into Mac OS X temporarily. From there, you'll have to search for a more long-term solution.

NOTE: If you're trying to install Mac OS X on a Virtualbox virtual machine, the "IOBluetoothHCIController" error likely means something different: Mac OS X is probably refusing to load its graphics because Virtualbox doesn't provide Mac support for Intel Haswell processors. In that case, you'll have to trick Virtualbox into thinking that your computer's processor is actually an older model. Check out NOTE 2 of Step 4 in our Mavericks Virtualbox guide for more details.

SEE ALSO: Common boot options for Chimera, Chameleon, Unibeast, Niresh, etc.