Contribute
Register

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

Status
Not open for further replies.
Joined
Jun 24, 2014
Messages
289
Motherboard
ASUS Maximus VII Hero
CPU
i7 4790k
Graphics
HD 4600 + GTX 970
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
You can find my new guide for Big Sur using OpenCore [Guide] Dell XPS 9560 Big Sur OpenCore

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. 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
  • CPUFriendDataProvider options including one for i5-7300HQ
  • Thunderbolt/USB SSDT options
  • Misc Folder
What Works
  • CPU Power Management
  • Native NVRAM
  • Battery Support (doesn't show cycle count)
  • Sleep and Wake with Lid Open and Close (10 hours = ~2% battery loss)
  • Intel HD 630 (2048MB VRAM)
  • 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 (DW1560)
  • iCloud Services
  • Continuity and Hand-off
  • USB-C hot plug / Thunderbolt semi hot plug
    • READ Understanding SSDT Hot patching Section
  • File Vault 2
What Doesn't Work
  • Finger Print Sensor
  • NVIDIA GTX 1050
  • SD CARD Reader (disable in you BIOS to save some battery)
Not Tested (by me)
  • File Vault 2
    • Currently being tested, link found here #20
    • Confirmed working, #586
    • My Clover does not include the files necessary, you must install these yourself!
      • Use the Clover installer customize/filevault section.
  • 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, it beat me down and I gave up)
  • USB-C to act natively instead of a PCI Express Card (WIP, it beat me down and I gave up)
  • 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/...k-touch-1tb-ssd-32gb-ram-100-adobergb.224486/.
  • Additional Bios options in Thunderbolt folder readme
  • Currently using BIOS 1.15.0
    • If you are not using a Windows dual boot you can update the BIOS from within the BIOS by using a flash drive. 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
  • If you do EFI-shell hacks like enabling HWP, you can restore these variable bit switches by using the BIOS Restore Settings and selecting Manufacture option.
Install
  • Create a macOS Mojave Clover USB installer and replace EFI Clover Folder with mine, small adjustments may be needed but we haven't come across any.
  • A couple reboots during installation and sometimes updates is normal.
  • SMBIOS info included is pre generated! 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.
    • Kernel Panics were plenty until I switched to AptioMemoryFix and VirtualSMC.
  • 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.
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
    • Optional if you want to use this feature then select the files accordingly.
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
    • It is included in the obvious named folder
    • 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.
  • TB and USB-C SSDT are not included in ACPI/patched, you must make your own decision on what you want.
  • 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.
    • His work and instructions is linked here https://www.tonymacx86.com/threads/...b-ram-100-adobergb.224486/page-9#post-1539760.
    • Verbstub.kext is already included in EFI/Clover/Kexts/Other and the layout is also set to 72 via SSDT.
    • You no longer need a modded AppleALC as that modification is now included. So we just need to run his install script.
    • Now when you insert anything into the jack, the ComboJack pop up will ask you what type of device you connected.
  • 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.
  • Enable HWP, SpeedShift via EFI-Shell BIOS hack
  • 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.
    • Apparently it doesn't persist through sleep even though it says it does. Meaning you'll have to either run the intervals or run it manually when wake. A small script makes this super easy.
    • 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 or sleep.
    • I've had success with these settings CPU -25mv, GPU -90mv, Cache -125mv
      • ./voltageshift offset -125 -90 -125
      • Above is for manually setting them! Follow the instructions for building the launch daemon.
    • 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.
  • Testing
    • Sleep Wake
      • Check assertions
        Code:
        pmset -g assertions
      • Grep logs for Sleep, Wake and DarkWake times and info
        Code:
        pmset -g log|grep -e " Sleep " -e " Wake " -e " DarkWake "
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
      • Generate/PluginType=YES
      • UseSystemIO=YES No longer necessary 7/11
    • Drop SSDT Tables, xh_rvp11 and PtidDevc. No longer necessary 7/11
    • AutoMerge, 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 No longer necessary 7/11
    • 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 = 0x28 and CsrActiveConfig = 0x67 0x03E7
    • 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 (now drivers/UEFI since Clover 4988)
  • 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
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
    • removed and add to misc folder may just be my system, this was causing laptop to go into deep idle instead of sleeping and caused needing to press power button to wake after opening.
  • 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 during initialization
  • SSDT-SMBUS.aml - SMBus
  • Thunderbolt and USB-C
    • Check the Readme in the folder
    • 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.
    • Two options
      • SSDT-TB3-V1.aml, from here.
      • SSDT-TYPC.aml, KNN method
        • USB-C docks and devices work properly, full hot plug capable.
        • TB needs to be plugged in at Clover screen, will crash system on unplug.
        • Acts 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 - 5/26/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

7/11 Release Clover v3.4, Updated Guide
NOTE for install with v3.4 you need to add HFSPlus.efi driver or you won't see the install partition. It isn't necessary for post install.
All kexts updated as of 7/11
Edited SSDT-config.aml
Clover updated to 4988
  • NOTE, recent update changed drivers64UEFI to drivers/UEFI
Removed from config
  • No longer need to set plugin type to 1, the generate plugin section will do
  • ACPI / UseSystemIO=YES
  • ACPI / Drop SSDT Tables, xh_rvp11 and PtidDevc
  • KernelandKextpatch / Apple RTC
  • KernelandKextpatch / Apple IntelCPUPM
Added to config
  • Added AutoMerge=YES
SSDT Removed
  • Deep Idle, still included in misc folder, read the readme
 

Attachments

  • XPS9560-CLOVER.zip
    5.1 MB · Views: 1,140
  • disablehibernate.zip
    871 bytes · Views: 915
  • ComboJack Installer.zip
    777.5 KB · Views: 904
  • XPS9560-CLOVER v2.zip
    5 MB · Views: 561
  • XPS9560-CLOVER v2.1.zip
    5 MB · Views: 657
  • XPS9560-CLOVER v3.0.zip
    5 MB · Views: 1,284
  • XPS9560-CLOVER v3.1.zip
    5.1 MB · Views: 871
  • XPS9560-CLOVER v3.3.zip
    5.5 MB · Views: 1,138
  • CLOVER v3.4.zip
    6.3 MB · Views: 2,463
Last edited:
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:
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.
 
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.
 
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.
 
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.
 
?
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?
 
?

"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.
 
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.
 
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 ;)
 
Status
Not open for further replies.
Back
Top