Contribute
Register

[Guide] Dell XPS 9560 Mojave VirtualSMC, I2C Trackpad, Clover UEFI Hotpatch

Joined
Jun 24, 2014
Messages
144
Motherboard
ASUS Maximus VII Hero
CPU
i7 4790k
Graphics
HD 4600 + GTX 970
Mac
iMac, MacBook Pro
Mobile Phone
iOS
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 hot plug / Thunderbolt semi hot plug
    • READ Understanding SSDT Hot patching Section
    • Updated 4/22/19
What Doesn't Work
  • Finger Print Sensor
  • NVIDIA GTX 1050
  • SD CARD Reader
Not Tested
  • File Vault 2
    • Currently being tested, link found here #20
  • Hibernation
    • Supposedly works but you'll need to do your own testing.
    • 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
  • Thunderbolt (full Hotplug) (WIP)
  • USB-C to act natively instead of a PCI Express Card (WIP)
  • Second stage boot glitch
  • Waking from sleep when opening lid causes a hesitation and flash/flicker.
    • (fixed Darkwake = 1)
  • Battery percentage while mostly accurate is weird sometimes. For example sometimes it's 97% and I plug it in and it shoots to 100%.
    • (fixed possibly by adding SSDT-ADP1.aml and DSDT patch in config)
  • 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
  • You can use KNNSpeed's BIOS Settings found here https://www.tonymacx86.com/threads/guide-dell-xps-15-9560-4k-touch-1tb-ssd-32gb-ram-100-adobergb.224486/.
  • Currently using BIOS 1.12.1 (11/9)
    • If you are not using a Windows dual boot you can easily update the BIOS from within the BIOS by using a flash drive and placing the .exe file directly on it. Has to be a FAT32 partition I believe. I placed it in my Clover EFI partition for the update.
  • If you are having problems booting Clover
    • You have to go into BIOS and set the path for the boot entry on the USB drive or NVME drive. Bios->General->Boot Sequence. Add boot option, give it a name, select the right file system from the list, and select EFI/Clover/CLOVERX64.efi
Install
  • Create a macOS Mojave Clover USB installer and replace EFI Clover Folder with mine, small adjustments may be needed.
  • 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.
    • To be clear since there is some confusion, I am NOT using the patch below, I only added it for those that need it!
    • 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 need volunteer testing and reports
Post Install
  • If you have an i5-7300HQ, take a look at post #316
    • Replace the included CPUFriendDataProvider.kext with the one from the post
    • If you have already started by using the 7 which is default in the folder, F11 to clear NVRAM at boot after you make the replacement.
  • 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!
  • Headphone/Headset/Combo Jack, thank KNNSpeed for his work on this.
  • Trackpad Settings
    • Everything set as defaults.
    • Make sure tap to click is enabled so that tapping with two fingers invokes right click #195
    • 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.
  • Fix Tilde Key
    • System preferences > Keyboard > Change Keyboard Type
    • Hit the buttons as normal then select ISO instead of ANSI
    • Credit: #141
  • 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. No longer necessary as of latest files (4/17/19).
  • 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.
    • The only benefit currently is seeing core specific temps.
    • Sensors w: HWMonitor.png
    • How To (https://github.com/acidanthera/VirtualSMC)
      • Download the release from link.
      • 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.
      • No fan controls, we don't have adequate SSDT and support from VirtualSMC.
  • HWP will work much better if you enable SpeedShift via BIOS
  • Undervolting with VoltageShift
    • https://sitechprog.blogspot.com/2017/06/voltageshift.html
    • https://github.com/sicreative/VoltageShift
    • The two links have a pretty decent explanation of how to use it.
    • Here is a brief explanation of how it works. VoltageShift writes these offsets to MSR. Meaning once the system shutdown completely you will lose these settings. That includes shutdown and hibernation but if you were to just restart and boot into Windows, these settings actually stay. When you build with their launch daemon tool, it builds a daemon which will set these offsets on boot and to the offsets in x time intervals to set them again if your laptop happened to hibernate.
    • I've had success with these settings CPU -25mv, GPU -90mv, Cache -125mv
      • ./voltageshift offset -125 -90 -125
    • My recommendation is to just set it manually for a week or so, once you know you are stable then build the launch daemon.
    • Also you can change these settings on the fly if you have Windows installed with Intel XTU. Test for stability there then apply the same with VoltageShift.
Geekbench 4.3
XPS 9560 10.14.0 Geekbench 4.3.0 CPU.pngXPS 9560 10.14.0 Geekbench 4.3.0 Compute.png

Cinebench R15.038 CPU
Cinebench R15.038 CPU.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. You can read the comments to see explanations.
      • Includes patches to support I2C and USB-C/TB.
    • 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=1
      • 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.
      • 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.
      • Patched for 4K use, extra vram
  • 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!
  • KernelToPatch includes patch
    • 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
  • AptioMemoryFix.efi - installed separately from https://github.com/acidanthera/AptioFixPkg
  • 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-ADP1.aml - allows ApleACPIACAdapter to load (thanks to @mazakiss for finding this out)
  • 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
  • Thunderbolt and USB-C
    • All a WIP, I have not TB devices to test but USB-C seems to be working pretty good for the most part. Quick unplug replug may cause issues since it's acting like express card.
    • SSDT-TB3-9560.aml
      • Edit of SSDT-TB3-V1.aml from here.
      • In short I ripped out DSB2 which was the Implementation for USB-C
      • Info at posts #46 and #118
      • Thunderbolt still needs to be plugged in at boot but can be plugged in and unplugged without crashing
      • For 1 TB device only, multiple will give issues, and it's still iffy.
    • SSDT-TYPC-9560.aml
      • Edit of SSDT-TYPC.aml from KNNSpeeds original guide.
      • In short I ripped out the TB3 tree and only left the main device TBL3/DSB2
      • USB-C docks and devices work properly, full hot plug capable.
      • It keeps in KNNSpeed's method on acting like a PCI Express card.
  • SSDT-UPRW.aml - Stops instant wake from USB and Lan
  • SSDT-XOSI.aml - system exposed as if Windows 10
  • SSDT-YTBT.aml - USB Type-C hot plug support
Understanding Kexts Injected

Updates
10/28/18 - 3/25/19
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 @fabiofabio 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 STILL UNDER TESTING 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.

12/18 Updated tilde fix and ok to update to 10.14.2, reminder Clover 3.0 here is still under testing with TB3 and USB-C

3/25/19 Updated to 10.14.4 after updating Clover to r4895, kexts, etc. I uploaded my current clover folder, Clover v3.1 zip for you guys as it includes all the latest kexts to this day and AptioFix R25. Rebuild kext cache and permissions after to get touchpad working again.
4/25 Decent amount of changes and details on what's in progress. Clover 3.2 can be found here. I will add it to this guide after some more testing.

5/26 Updated Guide, Released Clover v3.3, details #399
 

Attachments

Last edited:
Joined
Dec 27, 2012
Messages
93
Motherboard
Dell XPS 9560 FHD
CPU
i7-7700HQ
Graphics
HD 630
Mac
MacBook
Mobile Phone
iOS
Hi @blazinsmokey ! Thank you so much for this wonderful guide.
I just bought this laptop on eBay a few days ago, the first version like you (1080p).
All is working so smoothly thanks to your guide and the community.
Just a question: you said you manage to get the gestures working? Even zoom and rotate?
So far I have 1, 2, 3 fingers scroll & click working but not swipe, zoom or rotate (don't care that much).
Sometimes scrolling is freezing a bit here and there, and 2 fingers right click is a bit erratic.
But hey, can't complain this laptop is so wonderful on MacOS.
Thank you again to continue @KNNSpeed guide to make this laptop one of the best hackbook ever!
Cheers!
 
Last edited:
Joined
Jun 24, 2014
Messages
144
Motherboard
ASUS Maximus VII Hero
CPU
i7 4790k
Graphics
HD 4600 + GTX 970
Mac
iMac, MacBook Pro
Mobile Phone
iOS
Just a question: you said you manage to get the gestures working? Even zoom and rotate?
So far I have 1, 2, 3 fingers scroll & click working but not swipe, zoom or rotate (don't care that much).
Sometimes scrolling is freezing a bit here and there, and 2 fingers right click is a bit erratic.
Your welcome and hopefully this guide works well for many but yes gestures are working for me. Pinch to zoom, three finger swipe left and right in Safari work fine. Even 4 finger swipe for workspaces work. It's really great! I've never had a trackpad work this well before. Hopefully we can figure yours out. I also have no issues with freezing scrolling and 2 finger click problems.

I updated the guide's Post Install sections with my trackpad settings. See if yours match. Also clearing nvram may help. Not sure if you did a clean install but also makes sure you are not using any other kexts other then what I have provided. Like if you installed kexts previously into LE or SLE.
 
Joined
Dec 27, 2012
Messages
93
Motherboard
Dell XPS 9560 FHD
CPU
i7-7700HQ
Graphics
HD 630
Mac
MacBook
Mobile Phone
iOS
After a clean install, I confirm trackpad works with all gestures and perfect scrolling. Great work!

Why having choose Virtual SMC instead of FakeSMC?

No chance to use FileVault 2 anytime soon? Is there a way to have CPU sensors like HWMonitor with Virtual SMC?

Cheers.
 
Joined
Jun 24, 2014
Messages
144
Motherboard
ASUS Maximus VII Hero
CPU
i7 4790k
Graphics
HD 4600 + GTX 970
Mac
iMac, MacBook Pro
Mobile Phone
iOS
After a clean install, I confirm trackpad works with all gestures and perfect scrolling. Great work!
Why having choose Virtual SMC instead of FakeSMC?
No chance to use FileVault 2 anytime soon? Is there a way to have CPU sensors like HWMonitor with Virtual SMC?
Glad to hear you got the trackpad working.

The move to Virtual SMC was a hunch after reading their development thread all +12 pages. Certain problems I was having, people reported there that it fixed it for them. The developers there seem to work closer with Clover, aptiomemfix, lilu and some work on all of them. Also the trackpad and voodooi2c implementation was all funky with Rehabman's ACPIBattery Driver. Unplugged cause sporadic movement, plugged it didn't. VirtualSMC has it's own battery implementation which resolved the funkiness. I then researched and re-found wmchris' guide on his 9550 and moved to this technique. His guide has been sound and confirmed working for quite some time. VirtualSMC at that point became a method I could then trust and try. Glad I did.

FileVault 2 interests me but worries me even more. People still have problems and I'm just not in a state with my laptop to risk losing it all and spending the time on it. It can work though with the proper files in drivers64UEFI but the implementation is far from bulletproof so I'll have to pass for now. If you try yourself and it works, please share.

CPU sensors, I have my personal opinion on sensors in general but I tried it quickly and it works. Guide updated to reflect that with instructions.
 
Joined
Jan 10, 2013
Messages
8
Motherboard
Dell XPS 15 9560
CPU
i7-7700HQ
Graphics
Intel HD 630, 4K Touch
Mac
MacBook Pro
Mobile Phone
Android
Thanks for this guide. This is so much cleaner. My only problem is the keyboard not working randomly every reboot or cold boot. I have to mess around the kextcache to make it work again.
 
Joined
Dec 27, 2012
Messages
93
Motherboard
Dell XPS 9560 FHD
CPU
i7-7700HQ
Graphics
HD 630
Mac
MacBook
Mobile Phone
iOS
?
Thanks for this guide. This is so much cleaner. My only problem is the keyboard not working randomly every reboot or cold boot. I have to mess around the kextcache to make it work again.
"Keyboard, 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."

Did you try putting only this kext in /Library/Extensions as explained in the guide?
 
Joined
Jan 10, 2013
Messages
8
Motherboard
Dell XPS 15 9560
CPU
i7-7700HQ
Graphics
Intel HD 630, 4K Touch
Mac
MacBook Pro
Mobile Phone
Android
?

"Keyboard, 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."

Did you try putting only this kext in /Library/Extensions as explained in the guide?
I have. They keyboard isn't working every next cold boot. I can't say what's different in this set up apart from VoodooI2C.
 
Joined
Feb 25, 2012
Messages
285
Motherboard
GA-Z370N-WIFI
CPU
i5-8600K
Graphics
RX 460
Mac
MacBook Pro, Mac mini
Mobile Phone
Android, iOS
Thank you very much, this solves so many issues I was having (min brightness, headphone jack, etc), and trackpad experience is just amazing!
I'm not even sure anymore, I want eventually swap it with 32GB MacBook.
XPS 4K screen is SO MUCH better! I can finally use 1440p HiDPI on a laptop! :)

Anyone else having issue with the fans spinning too loud when laptop is idling?
Only solution I have discovered so far is to let laptop go to sleep and then wake it.
 
Joined
Jun 24, 2014
Messages
144
Motherboard
ASUS Maximus VII Hero
CPU
i7 4790k
Graphics
HD 4600 + GTX 970
Mac
iMac, MacBook Pro
Mobile Phone
iOS
I have. They keyboard isn't working every next cold boot. I can't say what's different in this set up apart from VoodooI2C.
When you say "every next cold boot", that's from shutdown to on, then restart for the keyboard to work, correct? If so that is the symptom of not having VooDooPS2Controller installed in LE. Make sure VoodooPS2Controller is installed correctly into LE. Fix ownership, repairs permissions and rebuild kext cache. No other kexts need to be installed to system. Injection works fine for everything else.

This whole keyboard thing angers me like you wouldn't believe. I have never even had to install it into LE but now that's the best solution I could find currently. Eventually when I have more time I want to figure out a better solution.

Anyone else having issue with the fans spinning too loud when laptop is idling?
Only solution I have discovered so far is to let laptop go to sleep and then wake it.
That is interesting, I do not have this problem. Do you have 7700HQ? You should add your XPS specs to your signature ;)
 
Top