Dell XPS 15 9560: 4K Touch, 1TB SSD, 32GB RAM, 100% AdobeRGB
Current OS: Sierra 10.12.5
Image Source: Dell
Intel Core i7-7700HQ (2.8-3.8 GHz)
Intel HD Graphics 630 (GTX 1050 disabled)
Crucial 32GB DDR4 2400MHz
1TB NVMe Toshiba XG4 THNSN51T02DUK
4K Touch, 100% AdobeRGB
Realtek ALC298 (ALC3266 according to Dell)
Dell Wireless 1830 (DW1830)*
97Wh (8.2Ah @ 12V)
Image Source: Dell
The laptop I’ve always wished Apple would make
(…and one which totally consumed my life for the past 3 weeks)
This setup is not supported on drives that don’t support 4k sector sizes (e.g. Samsungs), which Mac OS uses natively. Do not blame me for data loss/corruption. This install is also not for the faint of heart, since setup requires booting to command-line UEFI tools.
*Wi-Fi on the stock Killer 1535 does not work, even though Bluetooth does. I installed a DW1830 card on eBay and bought an extra antenna for it (https://www.amazon.c...onymacx86com-20). Proper installation of the antenna is required to get 1.3Gbps Wi-Fi—there is room next to the existing antennas, but you will need to perform a little surgery on the antenna cover to get it to fit. Dell’s Service Manual is necessary for the procedure, which does involve removing the display (http://topics-cdn.de...Guide_en-us.pdf). The prerequisites are mandatory.
Alternatively, the DW1560 is a 2-antenna card like the Killer (max 5GHz wireless-AC speed is 867Mbps). It will need an extra patch. I think you need FakePCIID_Broadcom_WiFi.kext in Clover/Kexts/Other (from https://github.com/R...S-X-Fake-PCI-ID) and this patch in the Clover/config.plist "KextsToPatch" section:
<dict> <key>Comment</key> <string>AirPortBrcm4360 - fcvo</string> <key>Disabled</key> <false/> <key>Find</key> <data>gflSqgAAdSk=</data> <key>Name</key> <string>AirPortBrcm4360</string> <key>Replace</key> <data>gflSqgAAZpA=</data> </dict>
(Credit to feartech in the thread "[solved] BCM94352Z card help" at tonymacx86.com for spelling it out.)
- Idle power consumption is ~1.6W
- Battery life’s >6 hrs with "office use" (web/docs)
- It might actually be more; it feels more like >8 hrs
- All SSDT DSLs are commented with descriptions of what's going on
- All 8 EC temp sensors show up in HWMonitor
- FakeSMC ACPISensors doesn't work the way it's supposed to, so I had to make the EC’s temperature sensors show up as fans. All that really means is the unit is shown as "RPM" instead of "C", but in your head just read it as "C"
- The USB part of the Type-C port is perfect
- Bear in mind there is a natural delay between unplugging/plugging in the device (it's a hardware thing; the controller's a bit slow). Just wait 2 seconds between plugs and all should be fine. Alternatively, watch RP15 in IORegistryExplorer to see what's going on in the background when something gets unplugged.
- Thunderbolt works reliably if plugged in pre-boot and left plugged in until shutdown.
- All kexts are loaded through Clover, and SIP is enabled
- Recovery HD works fine as far as I can tell
- Brightness is saved between reboots
- Lid wake works properly
- I haven't had the "Disk not ejected properly" error in many sleeps now
- Power Nap works
- 32GB RAM, a touchscreen, and 100% AdobeRGB
Things that don't work:
a. I’m not even going to try with the amount of trial and error it would take, but if you want to take a stab at it, go for it.
b. Contrary to what I’ve stated in the past, sleepimage is actually not all zeroes. I really don’t know what’s wrong at this point.
2. GTX 1050
a. This laptop uses Optimus switching, which doesn’t work on Macs.
b. Support for Optimus would require emulating the GMUX, sort of like how FakeSMC emulates the SMC (not something I can do)
3. Fingerprint sensor
a. It is, however, seen by the OS as a USB device.
b. Touch ID is handled by a proprietary chip similar to GMUX/SMC called ASOC in ACPI. I think this chip is actually connected over UART on Macs, but I’m not 100% sure.
4. SD Card
a. This just needs a driver actually finished for it, and then it will work.
b. Vendor/Device ID: 10EC 525A (Realtek RTS525A)
5. Proper Thunderbolt hot plug (USB-C is fine)
a. I’m trying to get this to work. It sometimes works after a long sleep (don’t try it: device removal will hard-lock and crash, guaranteed).
b. It’s not easy, and I could sure use some help. SSDT-TYPC.dsl has my most successful attempt in it.
Things that work:
1. Pretty much everything else! It’s like a MacBook Pro with a touchscreen.
Of all the things that don’t work, 4 & 5 have the highest chance of being made to work. 4 just needs this (https://github.com/s...3/Dell-XPS-9550) or this (http://www.insanelym...c-card-readers/) to be finished/to add support for the card reader. It would be super awesome if someone who knows C++ & how to code kexts could help those guys...
Useful keys to know: On boot, pressing F2 goes to BIOS setup, while F12 brings up the boot device menu (which also has an option to enter BIOS setup).
The attached Clover folder includes text documents that briefly describe what each kext and SSDT does to the best of my understanding. It also has some snippets like how to convert hex to base64 by hand and what that mysterious “booterconfig” Clover option does (Tip: it’s actually a bitmask).
Image Source: Dell
Before you install:
People have been reporting trouble booting with the included config.plist--that makes sense, the serial number, board serial number, and smUUID are obviously junk. You need to provide a proper set for a MacBook Pro (13,3).
1. Update SSD firmware
a. In Windows, the SSD MUST be updated to the latest firmware. This is EXTREMELY important, otherwise it might disappear from the system on step 4 (4k sector patch) due to a nasty bug that is fixed in the latest firmware.
b. Gotten here, in the “Serial ATA” section: http://www.dell.com/...-laptop/drivers
2. Update BIOS to v1.3.3
a. These SSDTs will only work on BIOS v1.3.3.
b. Gotten from the same link as step 1, but from the “BIOS” section.
3. BIOS Settings (only relevant settings listed):
i. System Information
1. Check that Video Memory is already 64MB (scroll down to the bottom)
ii. Advanced Boot Options (all off, UEFI Network Stack might be fine either way)
b. System Configuration
i. SATA Operation (AHCI)
1. Will break Windows boot
ii. Drives (all on)
iii. SMART Reporting (on)
iv. USB Configuration (all on)
v. Dell Type-C Dock Configuration (on)
vi. Thunderbolt Adapter Configuration (all on, no security)
vii. USB PowerShare (on)
viii. Audio (all on)
ix. Keyboard Illumination (whatever; this gets overridden by the F10 key)
x. Touchscreen (on)
xi. Miscellaneous Devices (all on except SD Card Read-Only Mode)
i. CPU XD (on)
d. Secure Boot
i. Secure Boot Enable (disabled)
e. Intel Software Guard Extensions
i. Intel SGX Enable (Software-Controlled)
i. (Everything on/enabled)
g. Power Management
i. USB Wake Support
1. (USB Wake Support = off)
2. (Wake on Dell USB-C Dock = on)
ii. Wake on WLAN (off)
iii. Block Sleep (off)
h. Virtualization Support
i. (Everything on)
i. The rest is personal preference.
4. Apply 4k sector patch
a. Non-Samsungs only!
i. I can only verify the Toshiba XG4.
b. In order for native NVMe drivers to work, the drive must be set to use 4k/“Advanced Format” sector sizes instead of legacy 512-byte sectors.
c. wmchris made a nice tutorial for this: https://github.com/w...er/4k_sector.md
i. It doesn’t have to be pure Ubuntu; I used Linux Mint.
5. Enable Intel SpeedShift (setup_var 0x4BC 0x1)
a. To enable Kaby Lake hardware P-states, which Dell has decided it wouldn’t add an option to do in the GUI (http://en.community....3518/t/20007733), requires a command-line setting. It’s a setting just like any other, so resetting BIOS to default settings will clear this bit and it would then need to be reapplied.
b. Rockstar75 made a nice tutorial: http://forum.noteboo...4#post-10454342
i. Don’t re-enable Secure Boot, obviously.
6. Clover USB setup
a. Follow RehabMan’s guide, "Booting the OS X installer on LAPTOPS with Clover," at tonymacx86.com to get OS X onto a USB drive.
i. Start at "Installing Clover to USB," and follow "Option 2."
ii. Stop at “Preparing essential kexts,” and skip to "Building the OS X installer."
iii. Follow "createinstallmedia method," and stop at "BaseBinaries clone method."
iv. No other install method is supported.
7. Copy attached Clover folder to the USB drive’s EFI partition
a. “diskutil mount EFI” in Terminal should mount it.
b. Delete the default “Clover” folder and just use the attached one instead; it already contains all kexts, SSDTs, and config.plist options needed. That’s basically the whole point of this.
8. Copy the Clover installer package to “Install OS X” partition
a. Remember: no Wi-Fi without a card swap!
b. This is the only way to install Clover onto the main system if wireless doesn’t work, and it will only work for the DW1830 with the attached folder.
9. Reboot and boot from the USB drive
a. Until post-install is finished, adding “-v” to the boot arguments is highly recommended. It’s how I keep track of whether I’m booting from USB or the main drive.
10. Use Disk Utility to format the drive so that the installer can see it
a. Recommended filesystem: Mac OS Extended, Journaled—NOT case-sensitive.
i. The case-sensitive one tends to cause a lot of problems with programs. It’s not worth it.
b. The partition style of the overall disk should be GPT (GUID Partition Map).
11. Install normally and, on reboot, boot from the USB drive
a. From the USB drive’s Clover menu, boot to the SSD.
1. Install Clover to ESP
a. From RehabMan’s install guide, just this part matters (my edits in bold):
Installing to the HDD/SSD after installation is very similar to installing to the USB. Refer back to this section when you get to that stage.
Notes on SSD install:
- you might want "EmuVariableUefi-64.efi", but it would depend on whether native NVRAM works for you (most Skylake hardware has non-functional native NVRAM with OS X/macOS)
- select "Install RC scripts on target volume" and/or "Install all RC scripts on all other boot volumes", but not for USB
- selecting "Install Clover Preference Pane" is optional
- there are also some "Optional RC Scripts" you might want to read about
- if you're installing Clover legacy, check "Install Clover in the ESP"
After making your selections you can continue to "Install" the Clover bootloader to your SSD. Make sure the install location is the Mac partition, so that Clover can properly auto-install to the EFI System Partition (ESP) and put its RC scripts on the Mac partition.
i. Original install guide by RehabMan, "Booting the OS X installer on LAPTOPS with Clover," at tonymacx86.com
2. Copy Clover folder from USB EFI partition to system ESP
a. “diskutil mount EFI” will mount the USB drive’s EFI partition instead of the system partition. “diskutil mount disk0s1” will always mount the EFI partition for disk 0 (as reported by “diskutil list”) on a GPT disk.
3. Unplug the USB drive and reboot to make sure the SSD is bootable
a. If not, start over from “Install” section, step 11.
b. If the obviously junk serial numbers cause a problem, see step 6 below and then come back here.
4. Run install.sh from within the AudioFix folder
a. Use Terminal to “cd” into the folder, first!
b. This enables audio to persist after sleeping in the few instances where it stops working. More details are included in the “AudioFix” folder.
5. Run disablehibernate.sh
a. Hibernation doesn’t work, so it must be disabled. Skip this step if you want to try and get hibernation working.
6. Serial numbers are obviously bunk
a. Get yer own!
7. [Optional] Flip Alt and CMD in keyboard preferences
a. System Preferences → Keyboard → Modifier Keys → swap Option and Command keys for the keyboard to make more sense.
i. This does break some of the predefined shortcut mappings in VoodooPS2Controller.
ii. It also messes with muscle memory a bit…
8. [Optional] Customize shortcuts in System Preferences -> Keyboard
a. VoodooPS2Controller (this is syscl’s version) maps these swipes to keyboard combos:
i. 4-finger up/left/right/down
ii. 3-finger up/left/right/down/tap
iii. 2-finger left/right (I recommend remapping these since they tend to cause extraneous 0s and 9s to be pressed if left unmapped)
9. [Recommended, but optional] Install HWMonitor
a. I managed to get all the Embedded Controller-reported sensors to work… As long as they show up as fans. It required modding ACPISensors, as documented in “Kext Descriptions.txt” in the attached archive. Just imagine that “rpm” is actually “C” and not “rpm.” I haven’t been able to figure out what temperature B0D4 actually measures, though… :/
10. Reboot for good measure
a. If it worked, remove “-v” from config.plist.
11. Kick back, finish reading this post, and then read included text docs and DSL sources to know what's going on behind the scenes. That's It!
A Few Important Notes:
1. DO NOT HOT PLUG A THUNDERBOLT DEVICE. Though Thunderbolt hot plug sometimes works after a long sleep, removal of the device WILL crash the system. I want this fixed so badly… USB-C, however, works flawlessly.
2. Note that there is a ~2 second delay between when you unplug one USB-C device and when you can plug in another. I usually open IORegistryExplorer and watch RP15 to know when everything’s all clear/if the plug-in messed up. This behavior is normal, even under Windows (it’s because the laptop turns off the type-C controller when not in use, which Apple’s current laptops don’t do—the older ones did, e.g. the Late 2013 MBP).
3. Ignore the "Card" icon in the menubar. You won't want to get rid of it in the event that the SD reader or reliable Thunderbolt hot plug can be made working. Without any experimental driver installed, it can also be used to turn off the SD reader from the OS (with an experimental driver it tends to hard-lock and crash the system—which is the same behavior Thunderbolt unplug causes, by the way).
1. Audio sometimes disappears after sleep. Sleep again or plug/unplug something into the headphone jack and it'll come back.
a. This just means ALCPlugFix "missed" its patch on wake. Though, ever since I switched to the new audio layout 28 I haven’t run into it. Might just be good luck. Or maybe it’s fixed… O_o
2. Thunderbolt device removal causes a hard-lock and crash
- Sleeping the laptop will stop powering USB devices.
- BUT, if you were to, for example, plug a phone in while the laptop is already asleep, the phone will charge. (Enabling Power Nap will interrupt and disconnect the charge, however.)
- To save brightness between reboots, "Automatically adjust brightness" in System Preferences → Displays MUST be checked (there is no light sensor, so it won't actually automatically change)
For more in-depth details of what was done, see the included text documents. Also, FakeSMC and ACPISensors (one of the FakeSMC modules) were modded for this, and blindly overwriting them might break things.
Image Source: Dell
Credits and Special Thanks:
- Dell for making this laptop
- Apple for Mac OS
- RehabMan for so many detailed posts, enormous collection of SSDT files, kext development, and being overall incredibly helpful throughout this whole process
- Pike R. Alpha for his in-depth blog and the 0xE2 patch (among being the source of many other developments and patches)
- The Clover team for the Clover bootloader
- netkas, kozlek, and Slice for FakeSMC
- wmchris for his initial XPS 9550 write-up
- Jonny4911 for posting his 9560 setup and his version of the AudioFix folder
- syscl for a lot of work into the XPS 9360 and his build of VoodooPS2Controller
- darkhandz for his XPS 9550 repo
- toleda and goodwin_c for audio, ALCPlugFix
- goodwin_c for HWP
- dpassmor for the Thunderbolt/USB-C ExpressCard trick
- vit9696 for Lilu and AppleALC
- PMHeart for CoreDisplayFixup
- lvs1974 for NvidiaGraphicsFixup
- darkvoid for Wi-Fi patches
- filequit for the 5GHz global channel bonding patch
- denskop for the “Boot Graphics Glitch” patch
- netkas, kid2010, and syscl for the Thunderbolt 3 blacklist bypass patch
Those whose work I used or modified are mentioned on the specific patches in config.plist, in the corresponding SSDT, or are linked to in “Kext Descriptions.txt.” This build would not have been possible without the efforts of every person listed.
Images taken from the Dell XPS 15 9560 product page: http://www.dell.com/...-15-9560-laptop
(Release.7z was compressed with Keka for Mac. Unfortunately the .zip file was just barely too big.)
Edited to better conform to InsanelyMac's rules.