A solid mix of changes before goodwin_c releases his Sierra guide in the coming days / weeks to get this guide back on par with developments:[/size]
Native AppleHDA patching, good riddance VoodooHDA
NVMe patching to get rid off NVMeGeneric
Enable Speed Shift for fancy Skylake power management
Added USBInjectAll.kext for using the internal Webcam
Access to App Store and iMessage via NullEthernet.kext
Sadly, due to my lack of time I couldn't keep up with the changes and improvements found in the wealth of the thread to this guide. With Sierra out and the recent introduction of MBP's nearly identical to this 2015 device (ah Apple, so sad) (minus our better discrete GPU) a Sierra guide will be done - but by someone more capable. I will update this guide with the latest changes to finalize it once the Sierra guide is out and I can incorporate the lessons learned since writing this up.
Coming: Changes and additions from the collaboration and notes for the new 2.10 BIOS from July 5th
10.11.5 update & alternative IOKIT patching
More info on injecting the ID for the Intel IGPU based in i5 or i7 & added minimal install Clover example folder
Fixed my iMessage problems with a proper MLB value and added warning about NVMeGeneric Kernel Panics
Added warning about DMVT memory pre-alloc and noted patch required
Added tdmsn's edits to SMBIOS MacBook9,1 and Nvidia GPU turn off, some snippet for Audio
Initial writeup of guide for 10.11.4
Status of the system
97% of the system
SD card reader
TB3 and USB 3.1 due to macOS 10.11 limitation - solved in macOS 10.12
The guide !!11elf
Please read and follow the FAQ by rehabman. Also the SSDT/DSDT patching guide. Read carefully, most of my problems came from me not reading thoroughly.
After that we can continue.
The BIOS should be set according to rehabman's Clover install guide:
- "VT-d" (virtualization for directed i/o) should be disabled if possible (the config.plist includes dart=0 in case you can't do this)
- "DEP" (data execution prevention) should be enabled for OS X
- "secure boot " should be disabled
- "legacy boot" optional
- "CSM" (compatibility support module) enabled or disabled (varies)
- "boot from USB" or "boot from external" enabled
Note: If you get a "garbled" screen when booting the installer in UEFI mode, enable legacy boot and/or CSM in BIOS (but still boot UEFI). Enabling legacy boot/CSM generally tends to clear that problem.
In my case I left VT-d and Fastboot as they were. Also, update your 9550 to the latest BIOS.
Don't forget to set mode to "AHCI" in the sub-menu "SATA Operation" of "System Configuration". It's mandatory.
(Old) Warning for 4k / UHD screen owners:
Do not use the EFI shell to to edit the DVMT Pre-allocation for getting your screen to work. This bricked a user's machine already. Instead, make use of a patch explained in a later section of this guide. All you need to do is follow the instruction in this guide. If you do not know about DVMT Pre-allocation, do not worry. You not need it. So in short: Do not use UEFI shell to edit DVMT allocation.
1.2 Prepare your USB
Simply follow rehabman's install guide referenced earlier for a USB install. For this you need a real Mac or a Hack with access to the Apple Store for downloading 10.11.4 or newer - >= .4 is necessary for initial Skylake Support. If you download freshly from the Apple Store, you'll get 10.11.6 or newer
During the preparation of the USB install it's best to go for a fail-safe clover configuration. A streamlined, all patches active configuration comes after your system said Hello world and is ready for usage.
In short, please use this plist by rehabman for the initial setup on your USB stick. This plist includes important patches, some of which we'll activate after the initial installation.
In this .plist you need to adjust a couple of things:
This will turn off the acceleration and thus the full driver, but it's enough to install and a safe bet. For the 4k screen to work, you'll also need to make a patch post-install, see below. Only post install! Only after making the patch should continue to enable QE/CI
Into "Graphics" section:
For injecting the Intel IGPU into OS X, you need to give Clover the correct ID.
The rest of the config.plist can stay as rehabman pre-configured it. Please don't make too many edits to your config.plist before finalizing your install.
1.3 Kernel Extensions for the installation process
You may need extra kexts, apart from the mandatory FakeSMC and VoodooPS2 (as per rehabman's install guide):
For those with fancy NVMe SSD
Do not attempt to use a NVMe SSD without such a kext, pure injection through clover may result in data loss.
Please see this guide by rehabman for a safe and easy method to use your NVMe during and after the install.
If you have troubles getting an NVMe to install, see this:
Recommended escalation of getting your drive to cooperate:
Use the HackrNVMeFamily kext
If the Installer doesn't see your SSD with this kext, then it might be missing the patches for your device. In this case
you have to use NVMeGeneric for install. Please report if you have to do so, maybe your drive can be "hacked" post-install. Of course, delete HackrNVMeFamily
Please refrain from using other kexts during install. Go with a bare minimum. All you want is to get the system on your Laptop and boot.
Installation is pretty much 100% in alignment with rehabman's guide
Just make sure, again, to follow the installation guide
I split up the drive into two partitions to prepare the second one for Windows later. So I left the second one just untouched by formatting it HFS+ which was later overwritten by the Windows 10 install routines. But that is just if you also want to use the silenced beast that is the GTX 960M for gaming outside of serious Mac business.
How to get MacOS booting again after installing Windows and vice vera
When installing Windows after having installed Clover, it will install its own bootloader into your EFI partition. To get back to boot macOS, you need to have the USB key from the install handy, so you can add Clover's UEFI boot entries. So don't panic
rehabman promotes the following methods:
To recover Clover, easy way: - on the EFI partition: rename EFI/Microsoft/Boot/bootmgfw.efi to bootmgfw-orig.efi
After a Windows update, Windows may re-create bootmgfw.efi with updated code. To fix after a Windows update: - on the EFI partition, remove EFI/Microsoft/Boot/bootmgfw-orig.efi - rename EFI/Microsoft/Boot/bootmgfw.efi to bootmgfw-orig.efi
Wow, short install section, eh? It seems so, but please check the installation guide by rehabman to grasp the full scope
3. Post install
After your install went smooth and you installed Clover to your SSD as per guide, it's time for the real work.
It's also a good idea to keep the USB stick handy and not fiddle with it's config. It was good enough for a install, it's good enough to start your machine with and fix the errors your *.dsl patching and config.plist adjustments brought along.
3.1 DSDT/SSDT Patching
This is not just needed when initially setting up a new system, after updating firmware or BIOS, re-patching might become necessary. So please try to restrain from updating when your system runs stable and you are happy just for the sake of updating.
Update your BIOS to the newest version and install the newest Firmwares available before continuing! You might need a Windows install to do so.
Patching DSDTs and SSDTs will enable the following:
Turn off the NVIDIA GPU for OS X - this is a must - it saves a lot of battery and the discrete GPU won't be utilized by MacOS anyway
Backlight control, important for proper sleep and resume
Fn keys for Backlight control via Fn keys
Audio, see below for the special section pertaining how to enable our codec
Proper sleep and wakeup
rehabman, again, provides all info needed for patching these files. His master guide is a "must be open at all time"
When in the Clover boot menu, press F4 to extract vanilla DSDT and SSDTs from the system and save them in your Clover ACPI folder. These files shall be the base for all the patching following.
For all DSDTs and SSDTs, please remove or rename _DSM methods via rehabman's patch repo, which is now neatly waiting in your MacIASL if you read the guide by rehabman. If I haven't mentioned before, read his guide before continuing to avoid mistakes and unnecessary questions. If at this point you do not know what MacIASL is, read rehabman's guide. Did I mention to read his guide?
After you extracted your DSDT and SSDTs, you need to descramble them as guided:
Important is to use a refs.txt such as this:
Now you have a set of descrambled *.dsl files and you do want to create a backup of them - so your patching attempts don't have to start from scratch
When using patched DSDT and SSDTs it's necessary to add the following to your config.plist in "SSDT"
The preparation work is done, let's patch!
The first patch you should apply to your DSDT and all necessary SSDTs is
Rename _DSM methods to XDSM
rehabman's guide also gives hints at usually good and unproblematic patches. Try it yourself - rather don't patch too much, try to boot and see if you get the desired effect after every patch.
3.2.1 Backlight control Patching guide for backlight control. All you need is the "OS Check Fix (Windows 8)" and a kext, see below.
In addition to this, you need to follow @tdmsn's findings for adjusting your DSDT for getting our dedicated brightness keys to work. One of the following patches need to be added to your DSDT via MaciASL's patch window:
Name (W98S, "Microsoft Windows")
it should look like this:
Name (W98S, "Microsoft Windows")
Name (NT5S, "Microsoft Windows NT")
Name (WINM, "Microsoft WindowsME: Millennium Edition")
Name (WXP, "Windows 2001")
Name (WLG, "Windows 2006")
Name (WIN7, "Windows 2009")
Name (WIN8, "Windows 2012")
Name (WN81, "Windows 2013")
Name (LINX, "Linux")
I opted for ApplePS2SmartTouchPad.kext - I found it to offer better Palm rejection while also supporting more gestures. Version 4.x works just fine.
Retain brightness value upon resume from sleep and benefit from super fine brightness steps
This tip, SSDT and script is courtesy of TMX user dpassmor:
If installed, remove 'IntelBacklight.kext' from S/L/E
If patched, remove brightness fixes from DSDT
Remove the existing PNLF device from the DSDT
Compile and install the SSDT SSDT-PNLF from my repo, add it to the 'PATCHED' folder of your Clover installation - also add it to your named list of SSDTs in config.plist, if you are using a named list
Create a 'AppleBacklightInjector' kext with the tool 'backlight_patch' in my repo and install it in S/L/E
3.2.2 Turn off NVIDIA aka gGPU
This video plus rehabman's guide helped me. Why would you do this? Our dGPU is attached via NVIDIA's Optimus technology for switching from iGPU to dGPU. Apple uses their own silicon for this and thus NVIDIA's tech is not supported. You cannot use the dGPU for displaying and I'm not sure if its computing power could be used. Therefore turning it off is great for heat and battery life. If you want to harness your dGPU, you have to use Windows. Hint: For gaming this is the best decision anyway.
3.2.3 Rename iGPU
If you read the guide linked in 3.2.2 and saw the video, this should already be done.
Most essential for me to get it working were:
"Rename GFX0 to IGPU"
"Cleanup/Fix Errors (SSDT)"
But it always depends on your SSDTs. Just be sure to follow the guide, especially making sure you treat every SSDT with the rename.
3.2.4 Patches I use(d)
I did fiddle a lot with my system and these are the patches I always apply. Some maybe not necessary, some even hinder perfect performance, so rather follow rehabman's guide and use this list for orientation
add Rename _DSM methods to XDSM
usb_prw_0x6d_xhc_skl.txt and usb_prw_0x0d_xhc_skl.txt
If I not disable dGPU by hand per video linked, then these patches help:
graphics_Rename-GFX0.txt for all relevant *.dsl files
graphics_Rename-PCI0_GFX0.txt yes, this is a variant of the above, I used both
If these names don't say anything to you, then you have not read the DSDT patching guide by rehabman and you should catch up on your reading.
3.3 SSDT.aml via pikeralpha
Deprecated in my opinion, speed shift (HWP, see below) is superior. If you want, you can still check on it's how-to here
3.4. More kexts
Besides the kexts you already had during install, you could install a couple of more into the "Other" folder of Clover:
BrcmFirmwareData - For Bluetooth
BrcmPatchRAM2 - For Blueetooth
VoodooHDA - Works, but not recommended
ACPIBatteryManager - for displaying the battery and its status correctly
FakePCIID - for enabling the kext injector below
FakePCIID_Intel_HD_Graphics - for the Intel iGPU
NullEthernet & SSDT-renameme - for getting an en0 device recognized as built-in (App Store, iMessage etc)
USBInjectAll - for using the Webcam. Some say using this kext is too much and injecting the needed USB ports via a patch is better, your choice
If using this "hack", you also need the file SSDT-UIC-ALL.ssdt (see my repo for an example)
ApplePS2SmartTouchPad - a good Touchpad and Keyboard driver
As you read above, one injector should be installed to S/L/E by now:
3.5 config.plist additions
Edits to this file will yield the following:
Full QE/CI by removing the FakeID from the install
Fully activating the internal GPU
Adding an SMBIOS definition closer to the real system
Only after these changes will 4k work. Which you want, if you paid $$$ for 100% AdobeRGB
3.7 iMessage, App Store, iCloud etc.
For proper functionality you need to generate MLB and SMUUID. As usually, the guide from rehabman covers that in depth. I was successful with the following steps:
Generate a proper Serial No not in use yet by others. Either through Clover configurator for supported System and its SMBIOS generator, or by hand
Make sure you don't have a MLB or SmUUID value set
You can take the Board-ID and Bios from the examples in this guide for the system definitions provided
Reboot after setting Serial number, Board-ID and Bios
Use Clover Configurator's Rt variable generator for getting the MLB, SmUUID value. ROM is usually set correctly automatically.
Save the details given by the configurator into SMBIOS fields
Reboot and try iCloud, Message etc.
I also found that the aforementioned NullEthernet.kext enables a reliable connection to these services. Please follow the instructions when installing.
As explained by rehabman, you also need to place ssdt-rmne.ssdt with a custom MAC address and edit the ssdt into your config.plist
Since I last wrote about Audio, things have improved a lot. No more Voodoo, now let's patch native via injection, yeah.
You need two kexts and the SSDT-ALC298.aml found in my repo
Place CodecCommander and AppleALC into your Clover kexts folder
Place the afromentioned ALC298.aml int your ACPI/patched folder - don't forget to adjust your config.plist if you use a named SSDT list
Inject Audio ID 13 via config.plist
If you previously committed Audio patches, like injecting Audio ID through DSDT or even renaming the Audio device (I did that, thus finding the device was a bit harder), then you need to adjust the Audio ID in your DSDT as well
3.9 Speed Shift (HWP)
Skylake brings a new, fancy method of managing your C- and P-States of your CPU called Speed Shift. This means quicker throttling up and down, can mean higher power or longer battery, depending on your needs. Bare in Mind, this is a pretty new development in the Hackintosh world, so use this as an alternative to generating states via the guide linked in 3.4.
If you are interested (I'm happily using it, it keeps the fan on lower settings), there are two ways:
1. Enable HWP in Clover:
Add the following to the CPU section of config.plist
2. Use the dedicated kext by fellow board member goodwin_c:
The kext allows for fine granular control and thus adjusting the power profile to your liking. You can use it alongside the Clover key. In fact, you need this kext to retain Speed Shift after sleep.
2.1 Keep Speed Shift after sleep
To retain Speed Shift after resume from sleep, you need to follow a few simple steps.Otherwise, Speed Shift won't work after your system slept. Kinda pointless. Thanks to DELL we don't have Speed Shift enabled in our BIOS, so we need to help ourselves.
Create a file called '.wakeup' and fill it with the following:
Remember: It's either Speed Shift or SSDT.aml patching via Pike R. Alpha for Power Management, not both.
PS: Homebrew is great for a lot of things, so no hurt in having it installed
4. Updating 4.1 10.11.6 & Security updates
Updating to 10.11.6 worked for me via the App Store (see 3.3.6 for getting the App Store to work). Here's the steps I took:
Make sure that the App Store is working by providing a proper SMBIOS
Download the Update and let it install itself, it will reboot when it's done to the Clover boot menu
With FHD, you're done at this point, apart from re-patching or re-installing kexts in S/L/E
Additional steps for 4k/UHD
After the initial installation restart, don't boot directly boot OS X, instead enter Clover Options during OS selection after boot
In the Clover boot menu, open the "Graphics injector menu" and inject a fake ID for the Intel IGPU, much like during install. This edit is non-permanent and just valid for the coming start of OS X
Now boot macOS and re-patch IOKIT as explained above.
After patching, simply reboot and you're golden
You may need to reinstall .kexts or kext patches depending on your setup
4.2 10.12 - Sierra
Now this is a bigger task.
Apple changed some things, which made it a bit harder to upgrade.
Since you now have a running, custom patched system, after painfully patching your DSDT and SSDTs and avoiding ANY change to the BIOS since the inception of your Hack, you might be delighted to learn that you can ditch all that. Yes. All of your statically patched files.
When I moved to Sierra, I followed @wmchris's guide and ditched static patching in favour of hot patching. I had to, because otherwise strange things happened. This is now the recommended way of doing things for all but for one case: NVMe
Steps to install Sierra:
Download the installer from the AppStore - since you should have Hack capable of using the AppStore, this should not be a problem
Run the installer, you have two options for preparing the install:
a) Either directly create an install medium on a USB stick OR
First let the installer create an install-partition on your SSD, avoid the automatic reboot and then ALSO create a USB stick as install medium by re-running the installer. This way you use the stick to boot, but install from SSD. Much faster.
An exemplary config.plist and clover folders will be available in my repo
Prepare the USB-Stick with Clover as per @wmchris guide by installing Clover and copying his files on your USB stick
Delete ALL IO related "IONVMeFamily" kext patches from the config.plist*
Add a spoofed NVMeFamily kext for the point release of Sierra you are going to install - this is an approach enabling use to bypass NVMeFamily.kext even when installing* You might find one on the web. If not, you'll soon can find one at my repo.
Make a backup of your /EFI/Clover folder from your SSD - you never know what could go wrong
Delete all SSDTs and DSDT from /patched - you should only have the hotpatch SSDTs from wmchris in there now
Delete the content of the 10.11 kext folder on your SSD and make sure that all kexts you use in "other" or "10.12" are Sierra ready. Ideally, use only the ones
Optional: Overwrite the SMBIOS data with your "old" SMBIOS data on the new clover.config on the USB stick
Reboot with the Sierra install stick ready and continue installing Sierra either from USB or SSD, depending on your choice.
Follow @wmchris guide to regain full graphics acceleration and finalize your SSD Clover folder for booting 10.12. If you followed 2. and 3. your NVMe part is already good to go
In deviation from wmchris, I'm still using AppleALC with codeccommand and not VoodooPS2 - but this a question of taste
* if you feel unsure about this, you can also follow wmchris's guide 100% and use NVMeFamily hotpatching during install. It works.
None - This guide is finalized
Ok, one thing: Push my 10.12 install and running setup to my repo
A git of the current kexts, configs & ACPI files I use can be found here. As always, be careful when using ACPI files from other systems.
7. Files attached
All the files attached are tuned to i7 systems. You need to adjust the injected ID pertaining your CPU (see above for details) as well as decide on using
Display #1 2016-11-13 14-13 2.2 F-S XYZLUT+MTX
ICC profile for 4k screen calibrated with Spyder4Pro colorimeter and DisplayCAL. Every panel is different, so don't expect too much precision, but this profile works great for sRGB and AdobeRGB
An icon to brand your Desktop Apply with LiteIcon or manually
Because this question came up several times in another forum:
the 4K Display of the Dell XPS 15 is identified as a retina display. That's why it's locked to maximum 1920x1080px resolution with a high DPI. If you want to use the 4k natively (which will obviously harm your eyes) you can use the same tools as with real Retina Macs. Examples are available here: http://www.everymac....resolution.html
No, I did not request that deletion. I questioned the deletion and censoring of posts after wmchris got permabanned, then I deleted post #1 from the guide protesting the hard-handed moderation practices. I did not request to delete the entire guide, but offered to accept banning my account, deletion of last postings and locking of the thread. That the mods even ninja-edit posts is low.
Over the next few days I will beautify this guide here to be free of references to other "communities" and style it up.
Overall, it's sad. There are very good and helpful people over there. Really good cooperation. But the background of enforcing arbitrary rules is laughable. This whole scene is build upon a few smart and resourceful hackers, on ignoring license agreements. To slap on self-interest in form of rules on top of collaborative efforts is stupid and cancerous.
Dagor, once again thanks for the guide. I've used ready to copy files from other Sierra guide but your thread made me buy XPS 15 and when I finally installed Mac on it I was super excited. I can't imagine better laptop now. One of the coolest things I made in the last year in terms of geeking. I will replace the battery with smaller one and put another SSD for Windows. It's gonna be best laptop in the whole universe😄
Can you buy report your battery life with smaller battery and 4k?
i would not suggest downgrading the battery. as far as i know the battery life with the ~60Wh is between 1-2hours of "normal browsing" usage. the 4k display sucks too much power. i would suggest placing a bigger M.2 ssd in it. will cost less than a new battery, the needed cables and a 3rd party ssd.
Can someone make a zip of the EFI partition with the correct config.plist and kexts ready for reaching the installer, please?
Are you guys actually reading this and the El capitan threads. There is a lot information to know before getting into hackintosh. The zip can be obtained by cloning wmchris repo. Everything is there. Keep in mind that those patches are for his specific machine. It is not a good practice to copy someone else dsdt/ssdt. We must patch our own files.