Post by iMap on Jan 25, 2017 9:01:38 GMT
www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/
Verbose boot
You should use -v to boot verbose, so you can see what is going on behind the scenes. If you don't use verbose boot, and the boot process should stop, there's no sense of why. So, no matter what flags you need to type, you should always use -v until you know the particular combination of flags that works for your hardware.
If you run into an issue booting the installer, capture a photo, or series of photos so the problem can be diagnosed. Always capture the entire screen with enough quality that the text can be read. Don't assume the last message logged is the most important (it almost always is not).
Realize also that booting the OS X installer from USB is quite slow. Don't give up on it too soon. It is possible to have up to two-minute pauses where nothing changes on screen.
nv_disable=1 and Dual GPU systems
With dual-GPU systems (AMD or Nvidia + Intel), the discrete graphics card (which is generally unsupported), can interfere with the Intel graphics kexts.
If you run into this with Nvidia (Optimus), use nv_disable=1 kernel flag, or disable it in BIOS.
If you run into this with AMD, disable the Radeon in BIOS or remove the Radeon/ATI kexts.
dart=0 and VT-d
Kernel flag dart=0 should be used when your CPU has VT-d and you cannot disable it in BIOS. Most laptop BIOS implementations are limited and do not allow you do disable it. If you're not sure, just use it anyway, as there seems to be no harm in using it when it is not necessary.
Haswell early reboot due to locked MSR 0xE2
If you have a Haswell CPU and experience a reboot just after starting the kernel, it is likely XCPM panic due to locked CPU MSR 0xE2.
With Chameleon/Chimera, you will need to patch the kernel, both on the USB and your final HDD install.
See here for details: www.tonymacx86.com/yosemite-laptop-support/147567-patching-kernel-haswell-cpus-xcpm-haswell-early-reboot.html
Local APIC panic
If you get a kernel panic "Local APIC" (lapic) panic, your interrupt controller is not set the way OS X expects. Lapic panic does not always stop the boot process, so you need to keep your eyes open for it. Also, it can cause a reboot early in the boot process (just as XCPM/Haswell early reboot). You will need to use cpus=1 and later install the KernelPatcher module from Chameleon Wizard so you can boot without cpus=1.
USB Problems
You're attempting to boot OS X from USB. At some point, the system needs to mount root (/) to your USB. If the USB drivers are not able to load and initialize the USB ports, the system will not be able to mount root and will not be able to boot.
Usually, the USB errors are apparent in the verbose log when this happens.
Boot with USBBusFix=Yes in this scenario. You may find EHCIhard=Yes and EHCIacquire=Yes also useful (although USBBusFix is supposed to encompass both). Also, USBLegacyOff=Yes can be useful. If your BIOS has options for USB you should experiment with them.
ACPI Problems
Some OEM SSDT tables can cause problems. You can disable these SSDTs (known as "dropping") with DropSSDT=Yes.
Graphics Problems
Most problems stem from graphics configuration problems. Often, a graphics issue will be mistaken for a bluetooth issue, only because on a successful boot, the bluetooth messages are one some the last to appear. A successful boot with a graphics issue (no framebuffer loaded, or a hung framebuffer), ends with bluetooth messages. Removing bluetooth kexts will not help. The solution is to provide the correct set of flags or other configuration to make the Intel graphics work.
If you are unable to activate the internal display, try plugging in an HDMI monitor as a temporary solution. Since you'll likely run into the same problem post-install, it will still remain a problem to solve.
Arrandale/1st gen Intel HD
First generation Intel HD graphics are not well supported, and as far as I know it is not possible to boot the installer without removing the Intel graphics kexts (AppleIntelSNB*, AppleIntelHD*, AppleIntelFrame*).
See this link for more information: www.insanelymac.com/forum/topic/286092-guide-1st-generation-intel-hd-graphics-qeci/
Sandy Bridge/HD3000/6-series chipset/low resolution
If your display is 1366x768, Chimera should be able to boot with working a working HD3000 graphics without any special graphics flags (just IGPEnabler=Yes, which is default on the Unibeast created USB). If your display is higher resolution (1600x900 or 1920x1080), then it is likely your laptop uses a dual-link display. In this case, you must pre-patch DSDT in order to inject AAPL,DualLink.
So for, Chimera, no special flags are generally required for HD3000 graphics.
With Chameleon, you will likely need: GraphicsEnabler=Yes
If you still have trouble, you should pre-patch DSDT...
HD3000 Low Resolution: github.com/RehabMan/Laptop-DSDT-Patch
Apply:
"HD3000 Low Resolution"
Sandy Bridge/HD3000/6-series chipset/high resolution
If your display is higher resolution (1600x900 or 1920x1080), then it is likely your laptop uses a dual-link display. In this case, you must pre-patch DSDT in order to inject AAPL,DualLink.
You will need to patch DSDT in order to reach the installer because of the duallink display.
Extract native DSDT with Linux (/sys/firmware/acpi/tables/) or Windows (RW-Everything).
HD3000 High Resolution: github.com/RehabMan/Laptop-DSDT-Patch
Apply:
"HD3000 High Resolution"
Place at /Extra/dsdt.aml after creating your USB and for your final install.
Ivy Bridge/HD4000/7-series chipset/low resolution
Similar to the HD3000/1366 case, you can usually boot without flags using Chimera3 and Chimera4.
With Chameleon, use: IntelCapriFB=3 GraphicsEnabler=Yes
Ivy Bridge/HD4000/7-series chipset/high resolution
For 1600x900 and 1920x1080, you will need to inject a different ig-platform-id than is default.
Chimera: Most HD4000 high resolution systems respond well with IGPlatformID=01660004. Note that HDMI does not work with 01660004 (requires kext patches). Alternates are IGPlatformID=01660008 and IGPlatformID=01660009. And, of course, 01660003 can be used in a pinch with an HDMI monitor.
www.tonymacx86.com/graphics/131937-chimera-hd-graphics-bootflags-igpenabler-igplatformid-igpdeviceid.html
Chameleon: Use GraphicsEnabler=Yes IntelCapriFB=4. Alternate values for IntelCapriFB are 4, 8, and 9.
More information: www.insanelymac.com/forum/topic/288241-intel-hd4000-and-haswell-inject-aaplig-platform-id/
Haswell HD4200/HD4400/HD5000/HD5200
These Haswell graphics devices are recognized natively by the Yosemite graphics drivers. As a result, it is necessary to inject the correct ig-platform-id that works with your laptop. Sometimes finding the right ig-platform-id can involve trial and error. For most laptops, much like in Mavericks, ig-platform-id = 0xa260006 works.
For Chimera, the default is 0A260006. You can change it with bootflag IGPlatformID.
Chameleon: Use GraphicsEnabler=Yes InjectIntel-ig=aabbccdd, where aabbccdd is a byte-reversed value for ig-platform-id.
For example, if you want to try 0a260005, use InjectIntel-ig=0500260a
Some common mobile Haswell ig-platform-id values are: 0a260006, 0a260005, 0a260000, 0a160000, 0a2e0008, 0a2e000a
Haswell HD4600
With HD4600 and Yosemite, you should be able to reach the installer without injecting an ig-platform-id value. This is because HD4600 is not recognized by the HD5000/Azul kexts anymore (a change from Mavericks). The installer, therefore, is expected to run with base/VESA drivers.
Post install, you'll need to do some patching to enable HD4600 QE/CI. See here for details:
www.tonymacx86.com/yosemite-laptop-support/145427-fix-intel-hd4400-hd4600-mobile-yosemite.html
Mixed Systems
If you have an Ivy CPU with a 6-series board (rare) or a Sandy CPU with a 7-series board (not as rare), you will probably have difficulty reaching the installer even if you provide the correct ig-platform-id. This is because the graphics drivers are dependent also on the driver for the Intel MEI device. The way Apple has factored these drivers does not allow for a mixed system because the MEI driver for 6-series boards is in the same kext as for HD3000, and the MEI driver for 7-series baords is in the same kext as for HD4000. It is not possible to load the framebuffer for HD4000 to get the MEI for a 7-series board when you have HD3000 on a 7-series board. Similarly, it is not possible to load the framebuffer for HD3000 to get the MEI for a 6-series board when you have HD4000 on a 6-series board.
In order to account for this problem, the Info.plist files need to be modified so that the 6-series MEI loads when you have HD3000 on 7-series, and 7-series MEI loads when you have HD4000 on 6-series. If you're thinking this is a bit sketchy you'd be right. It should be obvious that the driver for 7-series MEI may not work properly with the 6-series MEI device, and similarly, that the driver for 6-series MEI may not work properly for the 7-series MEI device. Perhaps there is some instabilty caused by this, but it does seem to work. The problem with Info.plist patches is that they can be overwritten by system updates. It is better, then, to use DSDT patches instead.
Having a mismatch will cause the graphics drivers to hang (or is a very long delay). You will also see verbose logs about duplicate kexts and the inability to load HDCPCtrl because of these duplicates.
To work around this problem, we use DSDT patches to inject the device-id of the correct MEI device for the graphics driver that will be in use.
Extract native DSDT with Linux (/sys/firmware/acpi/tables/DSDT) or Windows (RW-Everything).
HD4000 on 6-series: github.com/RehabMan/Laptop-DSDT-Patch
Apply: "HD4000 on 6-series"
HD3000 on 7-series: github.com/RehabMan/Laptop-DSDT-Patch
Apply: "HD3000 on 7-series"
Note: Please read the README so you know how to use MaciASL and the laptop DSDT patch repository.
Place at /Extra/dsdt.aml after creating your USB. And for your final install.
Note that if you had HD3000 on 7-series with a high resolution display, you would need to do both the patch previously mentioned for "HD3000 High Resolution" and for "HD3000 on 7-series"
Ultra High Resolution/QHD
Some of the high end laptops are coming with QHD+ displays. These displays pose a problem for OS X as it artificially limits the pixel clock.
Getting it to work involves patching the framebuffer, patching some framework code, and potentially flashing a patched BIOS.
There is some good information from the-darkvoid at these two threads:
www.tonymacx86.com/mavericks-laptop-support/136897-dell-xps-15-9530-intel-hd-4600-graphics-qhd-built-display-need-some-help.html
www.tonymacx86.com/mavericks-laptop-support/137928-guide-dell-xps-9530-a.html
Providing Feedback
Do not treat this thread as your private troubleshooting thread. If you have a specific problem with your specific laptop, open a separate thread. If you see something here that is in error, or wish to make a contribution, please reply to this thread.
Verbose boot
You should use -v to boot verbose, so you can see what is going on behind the scenes. If you don't use verbose boot, and the boot process should stop, there's no sense of why. So, no matter what flags you need to type, you should always use -v until you know the particular combination of flags that works for your hardware.
If you run into an issue booting the installer, capture a photo, or series of photos so the problem can be diagnosed. Always capture the entire screen with enough quality that the text can be read. Don't assume the last message logged is the most important (it almost always is not).
Realize also that booting the OS X installer from USB is quite slow. Don't give up on it too soon. It is possible to have up to two-minute pauses where nothing changes on screen.
nv_disable=1 and Dual GPU systems
With dual-GPU systems (AMD or Nvidia + Intel), the discrete graphics card (which is generally unsupported), can interfere with the Intel graphics kexts.
If you run into this with Nvidia (Optimus), use nv_disable=1 kernel flag, or disable it in BIOS.
If you run into this with AMD, disable the Radeon in BIOS or remove the Radeon/ATI kexts.
dart=0 and VT-d
Kernel flag dart=0 should be used when your CPU has VT-d and you cannot disable it in BIOS. Most laptop BIOS implementations are limited and do not allow you do disable it. If you're not sure, just use it anyway, as there seems to be no harm in using it when it is not necessary.
Haswell early reboot due to locked MSR 0xE2
If you have a Haswell CPU and experience a reboot just after starting the kernel, it is likely XCPM panic due to locked CPU MSR 0xE2.
With Chameleon/Chimera, you will need to patch the kernel, both on the USB and your final HDD install.
See here for details: www.tonymacx86.com/yosemite-laptop-support/147567-patching-kernel-haswell-cpus-xcpm-haswell-early-reboot.html
Local APIC panic
If you get a kernel panic "Local APIC" (lapic) panic, your interrupt controller is not set the way OS X expects. Lapic panic does not always stop the boot process, so you need to keep your eyes open for it. Also, it can cause a reboot early in the boot process (just as XCPM/Haswell early reboot). You will need to use cpus=1 and later install the KernelPatcher module from Chameleon Wizard so you can boot without cpus=1.
USB Problems
You're attempting to boot OS X from USB. At some point, the system needs to mount root (/) to your USB. If the USB drivers are not able to load and initialize the USB ports, the system will not be able to mount root and will not be able to boot.
Usually, the USB errors are apparent in the verbose log when this happens.
Boot with USBBusFix=Yes in this scenario. You may find EHCIhard=Yes and EHCIacquire=Yes also useful (although USBBusFix is supposed to encompass both). Also, USBLegacyOff=Yes can be useful. If your BIOS has options for USB you should experiment with them.
ACPI Problems
Some OEM SSDT tables can cause problems. You can disable these SSDTs (known as "dropping") with DropSSDT=Yes.
Graphics Problems
Most problems stem from graphics configuration problems. Often, a graphics issue will be mistaken for a bluetooth issue, only because on a successful boot, the bluetooth messages are one some the last to appear. A successful boot with a graphics issue (no framebuffer loaded, or a hung framebuffer), ends with bluetooth messages. Removing bluetooth kexts will not help. The solution is to provide the correct set of flags or other configuration to make the Intel graphics work.
If you are unable to activate the internal display, try plugging in an HDMI monitor as a temporary solution. Since you'll likely run into the same problem post-install, it will still remain a problem to solve.
Arrandale/1st gen Intel HD
First generation Intel HD graphics are not well supported, and as far as I know it is not possible to boot the installer without removing the Intel graphics kexts (AppleIntelSNB*, AppleIntelHD*, AppleIntelFrame*).
See this link for more information: www.insanelymac.com/forum/topic/286092-guide-1st-generation-intel-hd-graphics-qeci/
Sandy Bridge/HD3000/6-series chipset/low resolution
If your display is 1366x768, Chimera should be able to boot with working a working HD3000 graphics without any special graphics flags (just IGPEnabler=Yes, which is default on the Unibeast created USB). If your display is higher resolution (1600x900 or 1920x1080), then it is likely your laptop uses a dual-link display. In this case, you must pre-patch DSDT in order to inject AAPL,DualLink.
So for, Chimera, no special flags are generally required for HD3000 graphics.
With Chameleon, you will likely need: GraphicsEnabler=Yes
If you still have trouble, you should pre-patch DSDT...
HD3000 Low Resolution: github.com/RehabMan/Laptop-DSDT-Patch
Apply:
"HD3000 Low Resolution"
Sandy Bridge/HD3000/6-series chipset/high resolution
If your display is higher resolution (1600x900 or 1920x1080), then it is likely your laptop uses a dual-link display. In this case, you must pre-patch DSDT in order to inject AAPL,DualLink.
You will need to patch DSDT in order to reach the installer because of the duallink display.
Extract native DSDT with Linux (/sys/firmware/acpi/tables/) or Windows (RW-Everything).
HD3000 High Resolution: github.com/RehabMan/Laptop-DSDT-Patch
Apply:
"HD3000 High Resolution"
Place at /Extra/dsdt.aml after creating your USB and for your final install.
Ivy Bridge/HD4000/7-series chipset/low resolution
Similar to the HD3000/1366 case, you can usually boot without flags using Chimera3 and Chimera4.
With Chameleon, use: IntelCapriFB=3 GraphicsEnabler=Yes
Ivy Bridge/HD4000/7-series chipset/high resolution
For 1600x900 and 1920x1080, you will need to inject a different ig-platform-id than is default.
Chimera: Most HD4000 high resolution systems respond well with IGPlatformID=01660004. Note that HDMI does not work with 01660004 (requires kext patches). Alternates are IGPlatformID=01660008 and IGPlatformID=01660009. And, of course, 01660003 can be used in a pinch with an HDMI monitor.
www.tonymacx86.com/graphics/131937-chimera-hd-graphics-bootflags-igpenabler-igplatformid-igpdeviceid.html
Chameleon: Use GraphicsEnabler=Yes IntelCapriFB=4. Alternate values for IntelCapriFB are 4, 8, and 9.
More information: www.insanelymac.com/forum/topic/288241-intel-hd4000-and-haswell-inject-aaplig-platform-id/
Haswell HD4200/HD4400/HD5000/HD5200
These Haswell graphics devices are recognized natively by the Yosemite graphics drivers. As a result, it is necessary to inject the correct ig-platform-id that works with your laptop. Sometimes finding the right ig-platform-id can involve trial and error. For most laptops, much like in Mavericks, ig-platform-id = 0xa260006 works.
For Chimera, the default is 0A260006. You can change it with bootflag IGPlatformID.
Chameleon: Use GraphicsEnabler=Yes InjectIntel-ig=aabbccdd, where aabbccdd is a byte-reversed value for ig-platform-id.
For example, if you want to try 0a260005, use InjectIntel-ig=0500260a
Some common mobile Haswell ig-platform-id values are: 0a260006, 0a260005, 0a260000, 0a160000, 0a2e0008, 0a2e000a
Haswell HD4600
With HD4600 and Yosemite, you should be able to reach the installer without injecting an ig-platform-id value. This is because HD4600 is not recognized by the HD5000/Azul kexts anymore (a change from Mavericks). The installer, therefore, is expected to run with base/VESA drivers.
Post install, you'll need to do some patching to enable HD4600 QE/CI. See here for details:
www.tonymacx86.com/yosemite-laptop-support/145427-fix-intel-hd4400-hd4600-mobile-yosemite.html
Mixed Systems
If you have an Ivy CPU with a 6-series board (rare) or a Sandy CPU with a 7-series board (not as rare), you will probably have difficulty reaching the installer even if you provide the correct ig-platform-id. This is because the graphics drivers are dependent also on the driver for the Intel MEI device. The way Apple has factored these drivers does not allow for a mixed system because the MEI driver for 6-series boards is in the same kext as for HD3000, and the MEI driver for 7-series baords is in the same kext as for HD4000. It is not possible to load the framebuffer for HD4000 to get the MEI for a 7-series board when you have HD3000 on a 7-series board. Similarly, it is not possible to load the framebuffer for HD3000 to get the MEI for a 6-series board when you have HD4000 on a 6-series board.
In order to account for this problem, the Info.plist files need to be modified so that the 6-series MEI loads when you have HD3000 on 7-series, and 7-series MEI loads when you have HD4000 on 6-series. If you're thinking this is a bit sketchy you'd be right. It should be obvious that the driver for 7-series MEI may not work properly with the 6-series MEI device, and similarly, that the driver for 6-series MEI may not work properly for the 7-series MEI device. Perhaps there is some instabilty caused by this, but it does seem to work. The problem with Info.plist patches is that they can be overwritten by system updates. It is better, then, to use DSDT patches instead.
Having a mismatch will cause the graphics drivers to hang (or is a very long delay). You will also see verbose logs about duplicate kexts and the inability to load HDCPCtrl because of these duplicates.
To work around this problem, we use DSDT patches to inject the device-id of the correct MEI device for the graphics driver that will be in use.
Extract native DSDT with Linux (/sys/firmware/acpi/tables/DSDT) or Windows (RW-Everything).
HD4000 on 6-series: github.com/RehabMan/Laptop-DSDT-Patch
Apply: "HD4000 on 6-series"
HD3000 on 7-series: github.com/RehabMan/Laptop-DSDT-Patch
Apply: "HD3000 on 7-series"
Note: Please read the README so you know how to use MaciASL and the laptop DSDT patch repository.
Place at /Extra/dsdt.aml after creating your USB. And for your final install.
Note that if you had HD3000 on 7-series with a high resolution display, you would need to do both the patch previously mentioned for "HD3000 High Resolution" and for "HD3000 on 7-series"
Ultra High Resolution/QHD
Some of the high end laptops are coming with QHD+ displays. These displays pose a problem for OS X as it artificially limits the pixel clock.
Getting it to work involves patching the framebuffer, patching some framework code, and potentially flashing a patched BIOS.
There is some good information from the-darkvoid at these two threads:
www.tonymacx86.com/mavericks-laptop-support/136897-dell-xps-15-9530-intel-hd-4600-graphics-qhd-built-display-need-some-help.html
www.tonymacx86.com/mavericks-laptop-support/137928-guide-dell-xps-9530-a.html
Providing Feedback
Do not treat this thread as your private troubleshooting thread. If you have a specific problem with your specific laptop, open a separate thread. If you see something here that is in error, or wish to make a contribution, please reply to this thread.