OverviewThe XPS 15 9500 is a Skylake Laptop with decent Hardware for running a Hackintosh without too much fiddling.
Details of the system: http://www.dell.com/us/p/xps-15-9550-laptop/pd?oc=dncwx1631h&model_id=xps-15-9550-laptop
All of the info here is based on the brains of
- rehabman
- tdmsn
- reece394
- pikeralpha
and all the others getting Skylake to fly.
The Dell Notebooks works nicely out-of-the-box:
Working
1. Prerequisites:
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.
1.1. Bios
The BIOS should be set according to rehabman's Clover install guide:
In my case I left VT-d and Fastboot as they were. Also, update your 9550 to the latest BIOS. As of writing this, that is 1.02 - The BIOS of this Dell is still a work in progress and the fans run too often, Windows 10 suffers from BSODs when browsing etc.
So, prepare to update your BIOS during the run time of your hack. This will also mean that you might need to re-extract and patch DSDTs and SSDTs, which is a pain.
Don't forget to set mode to "AHCI" in the sub-menu "SATA Operation" of "System Configuration". It's mandatory.
There's a setting for auto power-on once AC is plugged in. I turned that off, too. I think it makes no sense to wake-up or power on a Laptop just because I plug it in
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 lower section of this guide
1.2 Prepare the 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.5 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:
Into "Devices" section:
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. This is still a WIP, two working IDs for i5 and i7 have been identified:
For i7 based systems
For i5 based systems
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 finalising your install.
Kernel Extensions for Install
You may need extra kexts, apart from the mandatory FakeSMC and VoodooPS2 (as per rehabman's install guide):
A word of warning about NVMeGeneric: This kext produces Kernel panics. They may appear on boot, shutdown, restart, wake-up. Waking up might be delayed. All in all, it's not optimal. The only fixes right now is a new, non-NVM SSD.
2. Installation
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.
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.
When booting up, press F4 to extra DSDT and SSDTs from the system and have them in your Clover folder
3.1 DSDT/SSDT Patching
You need to patch DSDTs and SSDTs for making the system work as you want it to.
In short, the patches will enable the following:
The master guide is a "must be open at all time"
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
After you extracted your DSDT and SSDTs you need to descramble them as guided.
Important is to use a refs.txt such as this:
And the following command:
Now you have a set of descrambled *.dsl files and you do want to make a backup of them.
When using patched DSDT and SSDTs it's necessary to add the following to your config.plist in "SSDT"
3.1.1 Backlight control
Patching guide for backlight control. All you need is the "Brightness Fix", "OS Check Fix (Windows 8)" and a kext, see below.
In addition to this, you need to follow @tdmsn's findings for adjusting the DSDT:
Find
so that the method looks like this:
and add
change
to
If you opt for the ApplePS2SmartTouchPad driver instead of rehabman's voodoops2 for driving your Touchpad, you should also edit in the last edit to BRT6 by @tdmsn:
Method (BRT6, 2, NotSerialized)
{
If (LEqual (Arg0, One))
{
Notify (^^LPCB.PS2K, 0x10)
}
If (And (Arg0, 0x02))
{
Notify (^^LPCB.PS2K, 0x20)
}
}
3.1.2 Turn off NVIDIA
This video plus rehabman's guide helped me.
I patched most of the SSDTs and the DSDT, but this may not be necessary:
@tdmsn patched mostly the DSDT only and turnf the discrete GPU off as well. His method is in this post
3.1.3 Rename iGPU
There are patches and a guide by rehabman
Most essential for me to get it working were:
I would do all these edits, because then your system also sleeps well.
For starters, you can check the DSDT and SSDTs attached in the archive. But you should extract yourself and patch yourself. Who knows what Firmware and Bios is driving your 9550.
3.2. More kexts
Besides the kexts you already had during install, you could install a couple of more into the "Other" folder of Clover:
Into S/L/E you should install, according to rehabman they can't go into Clover's kext folders:
To make it simple and for starters, you can use the config.plist from the Archive attached.
Edits to this file will yield the following:
3.3.1 Full QE/CI, 4k and fix memory allocation
Thanks to 10.11.4+ this is super simple. Just take out the Fake-ID and ensure you kept the InjectedID as in the beginning of the guide. If you employ the Backlight Fix and IntelBacklight.kext - which you should - you'll have a super smooth boot-up experience, too.
Additional steps for 4k / UHD screens:
If you have a 4k screen, you must make two additional changes, courtesy of the guide by "the-darkvoid" for the Dell 9350 and rehabman:
First run this command in a terminal session:
git clone https://github.com/the-darkvoid/XPS9530-OSX.gitThen run the following command in the extracted files location:
Alternatively, you can patch IOKIT directly yourself in the terminal with these commands:
The following patch is currently under evaluation, it might not be needed after all. Try without first
I am so lost on how do to it? I have followed these guides and read them over but after getting the .dsl files I have no idea what to do with them with MaciASL. I have an i5 model with an HDD and SSD if that mattersDetails of the system: http://www.dell.com/us/p/xps-15-9550-laptop/pd?oc=dncwx1631h&model_id=xps-15-9550-laptop
All of the info here is based on the brains of
- rehabman
- tdmsn
- reece394
- pikeralpha
and all the others getting Skylake to fly.
The Dell Notebooks works nicely out-of-the-box:
- WiFi
- Touchscreen (so cool)
- Keyboard
- 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
Working
- 95% of the system
- Reboots sometimes hang at the "DELL" screen
- Still too much fan noise, but this is a BIOS problem
- SD card reader
- Internal camera
1. Prerequisites:
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.
1.1. Bios
The BIOS should be set according to rehabman's Clover install guide:
So, prepare to update your BIOS during the run time of your hack. This will also mean that you might need to re-extract and patch DSDTs and SSDTs, which is a pain.
Don't forget to set mode to "AHCI" in the sub-menu "SATA Operation" of "System Configuration". It's mandatory.
There's a setting for auto power-on once AC is plugged in. I turned that off, too. I think it makes no sense to wake-up or power on a Laptop just because I plug it in
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 lower section of this guide
1.2 Prepare the 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.5 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:
Into "Devices" section:
Code (Text):
<key>FakeID</key>
<dict>
<key>IntelGFX</key>
<string>0x12345678</string>
</dict>
<dict>
<key>IntelGFX</key>
<string>0x12345678</string>
</dict>
Into "Graphics" section:
For injecting the Intel IGPU into OS X, you need to give Clover the correct ID. This is still a WIP, two working IDs for i5 and i7 have been identified:
For i7 based systems
Code (Text):
<key>ig-platform-id</key>
<string>0x191b0000</string>
<string>0x191b0000</string>
Code (Text):
<key>ig-platform-id</key>
<string>0x19160000</string>
<string>0x19160000</string>
Kernel Extensions for Install
You may need extra kexts, apart from the mandatory FakeSMC and VoodooPS2 (as per rehabman's install guide):
- NVMeGeneric - for seeing and installing on a stock SSD, only use if you have a M2 NVMe SDD!
A word of warning about NVMeGeneric: This kext produces Kernel panics. They may appear on boot, shutdown, restart, wake-up. Waking up might be delayed. All in all, it's not optimal. The only fixes right now is a new, non-NVM SSD.
2. Installation
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.
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.
When booting up, press F4 to extra DSDT and SSDTs from the system and have them in your Clover folder
3.1 DSDT/SSDT Patching
You need to patch DSDTs and SSDTs for making the system work as you want it to.
In short, the patches will enable the following:
- Turn off the NVIDIA GPU for OS X - this is a must - it saves so much battery
- Backlight control, also important for sleep
- Fn keys for Backlight control via Fn keys
- More to come
The master guide is a "must be open at all time"
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
After you extracted your DSDT and SSDTs you need to descramble them as guided.
Important is to use a refs.txt such as this:
Code (Text):
External(MDBG, MethodObj, 1)
External(_GPE.MMTB, MethodObj, 0)
External(_SB_.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)
External(_SB_.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)
External(_SB_.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External(_SB.PCI0.SAT1.SDSM, MethodObj, 4)
External(_GPE.VHOV, MethodObj, 3)
External(_GPE.MMTB, MethodObj, 0)
External(_SB_.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)
External(_SB_.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)
External(_SB_.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External(_SB.PCI0.SAT1.SDSM, MethodObj, 4)
External(_GPE.VHOV, MethodObj, 3)
Code (Text):
iasl -da -dl -fe refs.txt *.aml
When using patched DSDT and SSDTs it's necessary to add the following to your config.plist in "SSDT"
Code (Text):
<key>DropOem</key>
<true/>
<true/>
Patching guide for backlight control. All you need is the "Brightness Fix", "OS Check Fix (Windows 8)" and a kext, see below.
In addition to this, you need to follow @tdmsn's findings for adjusting the DSDT:
Find
Code (Text):
Name (W98S, "Microsoft Windows")
Code (Text):
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")
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")
Code (Text):
Name (OSX, "Darwin")
Code (Text):
If (_OSI (WN81))
Code (Text):
If (LOr (_OSI (OSX), _OSI (WN81)))
Code (Text):
Method (BRT6, 2, NotSerialized)
{
If (LEqual (Arg0, One))
{
Notify (^^LPCB.PS2K, 0x10)
}
If (And (Arg0, 0x02))
{
Notify (^^LPCB.PS2K, 0x20)
}
}
3.1.2 Turn off NVIDIA
This video plus rehabman's guide helped me.
I patched most of the SSDTs and the DSDT, but this may not be necessary:
@tdmsn patched mostly the DSDT only and turnf the discrete GPU off as well. His method is in this post
3.1.3 Rename iGPU
There are patches and a guide by rehabman
Most essential for me to get it working were:
- "Rename _DSM methods to XDSM"
- "Rename GFX0 to IGPU"
- "Cleanup/Fix Errors (SSDT)"
I would do all these edits, because then your system also sleeps well.
For starters, you can check the DSDT and SSDTs attached in the archive. But you should extract yourself and patch yourself. Who knows what Firmware and Bios is driving your 9550.
3.2. More kexts
Besides the kexts you already had during install, you could install a couple of more into the "Other" folder of Clover:
- BrcmFirmwareData
- BrcmPatchRAM2
- VoodooHDA - this is temporary until someone figures out native AppleHDA patching for this system
- ACPIBatteryManager - this is also temp, I was too lazy to patch my DSDT to do it without the kext
- FakePCIID - for enabling the kext injector below
- FakePCIID_Intel_HD_Graphics - for the Intel iGPU
Into S/L/E you should install, according to rehabman they can't go into Clover's kext folders:
- IntelBacklight - needs DSDT patching, see above
- ApplePS2SmartTouchPad
To make it simple and for starters, you can use the config.plist from the Archive attached.
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
- BT handsoff / 5Ghz
- Drop SSDT Oem - see section above
3.3.1 Full QE/CI, 4k and fix memory allocation
Thanks to 10.11.4+ this is super simple. Just take out the Fake-ID and ensure you kept the InjectedID as in the beginning of the guide. If you employ the Backlight Fix and IntelBacklight.kext - which you should - you'll have a super smooth boot-up experience, too.
Additional steps for 4k / UHD screens:
If you have a 4k screen, you must make two additional changes, courtesy of the guide by "the-darkvoid" for the Dell 9350 and rehabman:
First run this command in a terminal session:
Code (Text):
git clone https://github.com/the-darkvoid/XPS9530-OSX.git
Code (Text):
./XPS9530.sh --patch-iokit
Code (Text):
# Run the following command in order to patch IOKit in order to disable CheckTimingWithRange
sudo perl -i.bak -pe 's|\xB8\x01\x00\x00\x00\xF6\xC1\x01\x0F\x85|\x33\xC0\x90\x90\x90\x90\x90\x90\x90\xE9|sg' /System/Library/Frameworks/IOKit.framework/Versions/Current/IOKit
sudo codesign -f -s - /System/Library/Frameworks/IOKit.framework/Versions/Current/IOKit
sudo perl -i.bak -pe 's|\xB8\x01\x00\x00\x00\xF6\xC1\x01\x0F\x85|\x33\xC0\x90\x90\x90\x90\x90\x90\x90\xE9|sg' /System/Library/Frameworks/IOKit.framework/Versions/Current/IOKit
sudo codesign -f -s - /System/Library/Frameworks/IOKit.framework/Versions/Current/IOKit
Post a Comment