Jump to content
blazinsmokey

XPS 9560 Mojave Guide

12 posts in this topic

Recommended Posts

Disclaimer: I am no expert or claim to be an expert in this field. I learn new things every time I dwell in the world of Hackintosh. All constructive criticism is welcomed. Lets get these laptops to be one of the best hackbooks.
 
My hardware
  • Dell XPS 9560
  • 1080p
  • i7-7700HQ
  • Intel HD 630
  • PM961 Samsung NVME 512
  • Dell DW1560 (Broadcom BCM94352Z)
  • 97whr Battery
Overview
I've been using and working on this laptop since its launch. My model was one of the first batches released, so I don't even have the fingerprint reader most people have. There was minor success until KNNSpeed came along with his guide. Seems he has since abandon it but a lot of the work he provided is still in effect today. Many advancements have been made since Sierra and KNNSpeed's guide. Lilu, Whatevergreen and now VirtualSMC. So I've taken some time to move our laptop to these new developments and will try to keep things to date. I also used wmchris' work he did on the 9550 to understand some of these new changes so thanks for his work as well. I have tried to make it as clean as possible but again I'm as noob as most of you. For now I am very happy with how it is working, especially with VoodooI2C.
 
What's Included
  • clover folder
  • disable hibernate script
  • combo jack installer
What Works
  • CPU Power Management
  • Native NVRAM
  • Battery Support
  • Sleep and Wake with Lid Open and Close (10 hours = ~2% battery loss)
  • Intel HD 620
  • HDMI out w/ Audio (1080p)
  • Audio ALC298
  • Headphone Jack/Combo Jack (headphone / headset(w/mic) support)
  • Brightness Keys
  • Brightness saved after restart
  • Keyboard
  • Trackpad with Gestures
  • Webcam
  • WiFi and Bluetooth
  • iCloud Services
  • Continuity and Hand-off
  • USB-C / Thunderbolt Hot plug (Updated 11/12/18, check Understanding SSDT Hot Patching for more info)
What Doesn't Work
  • Finger Print Sensor
  • NVIDIA GTX 1050
  • SD CARD Reader
  • Keyboard, sort of. Clover Kext Injection of VoodooPS2Controller.kext doesn't work on cold boots, system must be restarted and it'll work. I believe this is fixed by installing into /Library/Extensions.
Not Tested
  • File Vault 2
    • Currently being tested, link found here #20
  • Hibernation
    • I disabled it, the possibility of data corruption out weighs the minimal benefits, plus the writes to our NVME or even SATA SSD will shorten its life.
    • Some have been using it with no reports of corruption yet but you have been warned.
What Needs Improvement
  • Second stage boot glitch. About halfway through Apple logo and loading screen there's a horizontal glitch across the screen for as a second. I tried some things without success but it's really just an OCD thing.
  • When waking from sleep by opening the lid, the screen takes a second or two to come on and there's a black flash but then functions normally.
  • Battery percentage while mostly accurate is weird sometimes. For example sometimes it's 97% and I plug it in and it shoots to 100%.
    • Nothing serious but I think improvements will come with newer version of VirtualSMC and SMCBatteryManager.
  • VoodooPS2Controller injected by Clover doesn't work on cold boots, does work after a restart. Current fix is to install in /Library/Extensions.
BIOS Configuration
Install
  • Work in progress, I'll fill out better details when I have time.
  • You should be able to create a macOS Mojave Clover USB installer and replace EFI with mine, with little adjustments.
  • SMBIOS info included is pre generated but generate your own SMBIOS info if you want working and secure iCloud services.
  • My Samsung PM961 is not 4Kn sector, seems there is native support for it and matches a native device ID.
    • There are plenty of guides to get your NVME to be usable if this is not the case but here's one that may help.
    • KextsToPatch
      • Name: com.apple.iokit.IONVMeFamily
      • Find: F6C1100F 85410100 00
      • Replace: F6C1010F 85410100 00
      • Comment: IONVMeFamily Preferred Block Size 0x10 -> 0x01, credit RehabMan based on 10.12 patch (c) Pike R. Alpha
  • Note for 4K screen users you may or may not need to add -cdfon to boot-arg but I have already added enable-hdmi20 IGPU entry in Devices/Properties which should be suitable as well. Please report.
Clover Boot Loader Settings
We are working with native nvram here on our laptops. You should not have nvram.plist, EmuVariableUEFI or RC scripts. If you have installed these on your boot drive you need to remove them and clear nvram from from Clover boot loader using F11.
  • Clover for UEFI booting only
  • Install Clover in the ESP
  • UEFI Drivers
  • FileVault 2 Files
    • Still testing
Post Install
  • Disable hibernate. A script is included, cd to directory of script and run. Every update or any major changes in your config, please do your self a favor unless you like corrupt data. RUN THIS SCRIPT AGAIN!
  • Install VoodooPS2Controller.kext to L/E so keyboard works on cold boots. If you find yourself without keyboard after a cold boot, restart for it to pickup. This is weird but Rehabman has specified in his install instructions to to install to L/E so maybe this is the reason. I will look further into this as Clover injection has worked for me up until now but this one kext install isn't the end of the world. You may also do as Rehabman suggests in his guides and install all other non-essential kexts if you want but I have not.
  • Headphone/Headset/Combo Jack, thank KNNSpeed for his work on this.
  • Bluetooth two methods (Updated 11/1)
    • Sorry, my mistake, I had BrcmFirmwareRepo being injected where it should not be the case. Pairing did not work although AirDrop worked fine. Credit to [USER=368095]@dmitry_matora[/USER] for spotting this
    • The Clover/kexts/Other folder now replaces that with BrcmFirmwareData.kext. This injections does work but needs dart=0 in clover config. Credit to [USER=6160]@fabiofabio[/USER] for commenting about the need for dart=0
    • If you are not comfortable with above injection method, remove the files and properly install BrcmFirmwareRepo.kext and BrcmPatchRAM2.kext to L/E
  • Trackpad Settings
  • Everything set as defaults.
  • If you change the Swipe between pages to "Swipe with two or three fingers" you can now get back/forth gestures in Finder and possibly other apps. The caveat to this is that Mission Control now had to be 4 finger swipes, which works fine.
  • Optional Sensors
    • In my experience sensor kexts can cause problems in the long run when dealing with updates. I don't monitor my system like this and feel that Intel Power Gadget is enough for me when necessary. I have however tested this functionality, but do not expect me to keep up with this.
      • How To (https://github.com/acidanthera/VirtualSMC)Download the release from link above.
      • Install HWMonitor but do not install FakeSMC or it's sensors. Only the software.
      • You can download the package here https://github.com/kozlekek/HWSensors/releases
      • Install SMCProcessor.kext from VirtualSMC in EFI/CLOVER/kexts/Others
      • Restart your system
      • Other sensors from VirtualSMC could be tested as well, I however will not be doing so. Please report with your findings.
 
Geekbench 4.3
1460950037_XPS956010_14.0Geekbench4.3_0CPU.png.018ea40ec71dfc821063644b17caf03e.png
747619123_XPS956010_14.0Geekbench4.3.0Compute.png.838b73f6ff8590cd706b5d865d7c411c.png
 
Cinebench R15.038 CPU
565458873_CinebenchR15.038CPU.png.8e9df78d67470ba03a5fd66e05699c66.png
 
Persistence and Upgrading
Troubleshooting
 
Understanding config.plist
  • ACPI Section
    • DSDT patches section is self explanatory. Standard changes and Method renames for the SSDT hot patches.
    • SSDT includes Use SystemIO, PluginType 1 and PluginType=Yes.
    • Drop SSDT Tables, xh_rvp11 and PtidDevc.
    • Fix Headers, Reset Address 0x0CF9 and Reset Value 0x06.
    • SortedOrder is not necessary for this setup.
  • Boot Section
    • Arguments, darkwake=no, necessary to sleep properly.
    • dart=0 while eliminates problems with VT-D also helps load BrcmFirmwareData.kext.
      • Without this flag, timeouts will occur causing very long boot and shutdown times plus Bluetooth doesn't work.
    • Custom Flags, brcmfx-country=#a to ignore country code for WiFi, helpful for 5GHz.
    • XMPDetection=Yes, better ram speed detection but can be set to NO as well.
  • Boot Graphics Section
    • Empty
  • CPU Section
    • HWPEnabled=YES, this is needed since we are not using SSDT-XCPM. In combo with CPUFriend.kext and CPUFriendDataProvider.kext we get idle at 800MHz vs native 1.3GHz. So a bit of battery life savings here. CPU will still hit 3.8GHz turbo boost.
  • Devices Section
    • USB Inject, Add ClockID, and FixOwnership = YES.
    • AddProperties, IntelGFX the key and value help HDMI audio out.
    • Properties, the device listed PciRoot(0x0)/Pci(0x2,0x0) is the graphics location. The included Properties Key and Property Values took KNNSpeeds old frame buffer patch to recognize the XPS15 ports in macOS and converted for use via WhateverGreen through this method.
  • Disable Drivers Section
    • VBoxHfs
  • GUI Section
    • Put in your screen resolution but the rest is really up to you.
  • Graphics Section
    • Empty. Isn't that great?!
  • Kernel and Kext Patches Section
  • Apple RTC, AppleIntelCPUPM, KernelPM, DellSMBIOSPatch = YES
  • KextsToPatch, nothing!
  • KerneToPatch include patch for MSR 0xE2 _xcpm_idle prevent instant reboot (c) Pike R. Alpha and Disable panic kext logging on 10.14 release kernel (credit Vandroiy)
  • RT Variable Section
    • BooterConfig = 0xEE and CsrActiveConfig = 0x67
    • Generate a Rom
  • SMBIOS Section
    • MacBookPro 14,1
    • There are guides for using a proper serial and setting up these values for iCloud, you will need SmUUID and Board Serial Number.
  • System Parameters Section
    • Inject Kexts=Yes
 
Understanding drivers64UEFI
  • ApfsDriverLoader-64.efi - loads APFS drivers
  • DataHubDxe-64.efi - honestly don't know, but every source I found says it's always safe and no conflicts so...
  • FSInject-64.efi - injects kexts
  • HFSPlus.efi -  hfs support, optional can be removed
 
Understanding SSDT Hot Patching
  • SSDT-ALC298.aml - audio
  • SSDT-ALS0.aml - ambient light sensor, we don't have one this helps fakes it for saving brightness
  • SSDT-BRT6.aml - brightness keys
  • SSDT-Config.aml - rehabmans rmcf configuration
  • SSDT-DeepIdle.aml - enables deep idle support, power saving
  • SSDT-DMAC.aml - DMA controller
  • SSDT-HDEF.aml - audio properties
  • SSDT-I2C.aml - voodooi2c trackpad
  • SSDT-LPC.aml - LPC bus
  • SSDT-MCHC.aml - memory controller
  • SSDT-MEM2.aml - via KNNSpeed's explanation "Defines a fixed memory region that gets used for something (hardly any information on it, but PNP0C01 is “System Board” in Windows so it has to do with motherboard resource allocation). Presumably, it’s related to the Integrated Graphics, as that’s the section in which Apple defines the MEM2 device."
  • SSDT-PMCR.aml - via KNNSpeed's explanation "Complements the PPMC (Platform Power Management Controller) with the seemingly useless PMCR device that exists in Mac DSDTs. It doesn’t hurt anything to have this, and it can really only help, so it’s here."
  • SSDT-PNLF.aml - backlight
  • SSDT-PTSWAK.aml - powers on dGPU before sleep and power is off after wake for tracking purposes
  • SSDT-RMDGPU.aml - powers off dGPU
  • SSDT-SMBUS.aml - SMBus
  • SSDT-UIAC.aml - USB ports defined, use with USBInjectALL.kext
  • SSDT-UPRW.aml - Stops instant wake from USB and Lan
  • SSDT-USBX.aml - USB Power properties
  • SSDT-XOSI.aml - system exposed as if Windows 10
  • SSDT-YTBT.aml - USB Type-C hot plug
 
Understanding Kexts Injected
  • AirportBrcmFixup.kext - Wifi, DW1560 used with Lilu
  • AppleALC.kext - Audio used with Lilu
  • AppleBacklightFixup.kext - Backlight, Brightness. Used with Lilu
  • BrcmFirmwareData.kext - Bluetooth used with BrcmPatchRAM2
  • BT4LEContiunityFixup.kext - Bluetooth Continuity used with Lilu
  • CPUFriend.kext - allows for idling at 800MHz used with Lilu
  • CPUFriendDataProvider.kext - used with  CPUFriend and with Lilu
  • FakePCIID_Intel_HDMI_Audio.kext - HDMI audio used with FakePCIID
  • HibernationFixup.kext - Used for hibernation, not recommended but just incase this helps if you accidentally forget to to disable. Used with Lilu.
  • SMCBatteryManager.kext - battery support used with VirtualSMC
  • VerbStub.kext - audio support from KNNSpeed
  • VoodooI2CHID.kext - Trackpad supports VoodooI2C
 
Updates
10/28 Added trackpad options to Post Install Section, Geekbench 4.3 scores
 
10/29 Added SMCProcessor.zip and info on using with HWMonitor, added more links and some formatting
 
11/1 Added new Clover folder XPS9560-Clover v2.zip with updated kexts and drivers. Added Bluetooth pairing fix plus install options and extra trackpad option. FileVault 2 currently being tested by [USER=6160]@fabiofabio[/USER] his post here #20. Adjusted Optional sensors with link and removed attached SMCProcessor from post.
 
11/5 Clover updated v2.1 brightness save fixed by editing config.plist #70. Cinebench CPU benchmarks posted. TB3 testing in progress look here #53 please test if you have the hardware and report.
 
11/8 Updated with Clover Boot Loader Settings, other minor fixes
 
11/12 Clover updated v3.0 Thunderbolt 3 and USB-C hot plug working, removed SSDT-TYPC.aml and replaced with SSDT-TB3-V1.aml from https://www.tonymacx86.com/threads/in-progress-ssdt-for-thunderbolt-3-hotplug.248784/. Updated clover config dsdt hot patch comments to reflect this change. Clover and Kexts are latest versions.

disablehibernate.zip

ComboJack Installer.zip

XPS9560-CLOVER v3.0.zip

Edited by blazinsmokey
Update 11/12

Share this post


Link to post
Share on other sites
Advertisement

Hi,

 

Ive updated to latest bios 1.12.1 and Mojave 10.14.1 and it still works.

 

I have a few issues.

1. I cant get hdmi to work. When I plug in hdmi cable nothing happens.

2. Bluetooth wont detect any device since I swapped DW1830 for DW1560.

3. Headphones are distorted when plugged in.

 

Here are my specs

  • Dell XPS 9560 4K Touchscreen
  • i7-7700HQ
  • Intel HD 630
  • SanDisk A400 512GB NVME
  • Dell DW1560
  • 97whr Battery

 

Thanks for the great guide.

Edited by kamalaggi

Share this post


Link to post
Share on other sites
On 11/3/2018 at 10:21 PM, kamalaggi said:

Hi,

 

Ive updated to latest bios 1.12.1 and Mojave 10.14.1 and it still works.

 

I have a few issues.

1. I cant get hdmi to work. When I plug in hdmi cable nothing happens.

2. Bluetooth wont detect any device since I swapped DW1830 for DW1560.

3. Headphones are distorted when plugged in.

 

Guide updated with new Clover folder for bluetooth fix. Headphones work fine on my end, make sure you follow instructions on that.

HDMI still works for me as well. Try clean install or makes sure nothing else is affecting the files in this guide.

Share this post


Link to post
Share on other sites
20 hours ago, matgeo said:

Do have working bluetooth and trackpad during fresh install ?

 

Fix permissions and rebuild kext cache. Bluetooth pairing was fixed in v2. Min has been working fine on 10.14.1

 

Guide updated with Clover 2.1 with fixes for saving backlight level.

Share this post


Link to post
Share on other sites
2 hours ago, blazinsmokey said:

 

Fix permissions and rebuild kext cache. Bluetooth pairing was fixed in v2. Min has been working fine on 10.14.1

 

 

I mean bluetooth pairing when you install HS or Mojave. At the install progress can you use your bluetooth mouse ?

Share this post


Link to post
Share on other sites

This is a n00b question but - will installing a fresh Mojave from USB completely wipe out my partitions and data? I'm hoping to preserve my Windows dual boot, as well as all my data on macOS... 

Share this post


Link to post
Share on other sites
8 hours ago, TheBeev said:

This is a n00b question but - will installing a fresh Mojave from USB completely wipe out my partitions and data? I'm hoping to preserve my Windows dual boot, as well as all my data on macOS... 

 

Not if you install to a separate partition on the drive. Obviously if you overwrite your Windows or other macOS partition you'll lose all the data on those respective partitions.

Resize and create a new partition for the install, make sure you install to the correct partition and all should be well.

Share this post


Link to post
Share on other sites

Hi,

 

I am using XPS 15 9550 and I put your Clover setting for trying touchpad enable gestures.

And it works and great!! but the problem is your setting is not quite suitable for 9550 like different cpu and vga crashed and making some errors like not correct vram *7mb). 

So what I want to do is only inject touchpad setting. Can you please give some hint to get there?

I have done few thing, like kext and ssdt but nothing work to my laptop. 

THanks.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×