✅ This configuration is fully compatible with macOS BigSur
, macOS Monterey
and macOS Catalina
!
⏳ The latest supported and tested version is: macOS BigSur 12.1
.
😔 Two of the most awesome features of this laptop don't yet work: S3 sleep and audio. If you want to help, contact me!
My main goal for this "guide" is to provide a smooth installation experience with no indefinite steps, which is why I've documented everything to a pretty high extent. You can skip through and probably be just fine, but I'd still advise you to take your time!
- Hardware
- BIOS
- Deactivating unsupported NVMe
- Undervolting Preliminary Work
- Installation
- Post-Installation
As far as I know, all XPS 9700 4K machines will ship with the exact same hardware, other than RAM and SSD. RAM is pretty much irrelevant in our case, but if you got an SK Hynix as your SSD, it needs to go. Actually, I've kept mine, and installed a compatible drive in the second available M.2 slot. This is efficient, but comes with one small caveat: The Hynix slot needs to be "disabled" with a custom SSDT in order for macOS not to loose it's mind on boot. More on that later!
After adding custom bought parts, this is what I'm running on (check against yours, or your mileage may vary):
Part | Description | Working on macOS | Comment |
---|---|---|---|
Working | |||
Intel Core i7-10875H | 8C/16T CometLake Processor, UHD-630 | yes, fully | / |
Display | Dell XPS 17 SHP14D6 4K 16:10 | yes, fully | / |
Kingston Fury DDR4-2933 2x16GB | 32GB of CL17-19-19 | yes, fully | 2933MHz is max |
WD Black SN750 1TB | M.2 Gen3 SSD, Slot B | yes, fully | / |
Killer AX1650s | WiFi 6 & BT 5 Card | yes, pretty good | soldered in |
Touchpad | DELL098F:0004F3:311C, I2C | yes, fully | all gestures operational |
Keyboard | Standard PS2 | yes, fully | function keys are mapped |
Touch-Digitizer | ELAN2097:0004F3:2A15, I2C | yes, fully | all native gestures operational |
SD-Card reader | Realtek RTS5260 | yes, with most cards | / |
Webcam | Micromedia 0c45:6d14, 0.9MP | yes, fully | / |
Battery | DELL 01RR3YM Li-poly 95.1Wh | yes, fully | / |
Sensors | Intel 8086:06fc:1028:098f 400 Series Sensor Hub | yes | Fans & Temps |
Thunderbolt 3 | Intel JHL7540, JHL6540 | yes, yet w/o hotplug | / |
USB-C Video 4K@60Hz | / | yes, fully | / |
External Monitor Audio | / | yes, fully | / |
Untested | |||
Gigabit Ethernet | Realtek RTL8153 | not yet tested | / |
Currently Not Working | |||
Speakers & Jack | / | no | Codec currently unknown, it's tough |
Ambient Light Sensor | / | no | _ALI only responds 0x0 |
S3 sleep state | Deepest possible sleep state | no | panics on wake |
Dead forever | |||
SK Hynix PC611 1TB | M.2 Gen3 SSD, Slot A | no | deactivated using SSDT |
Nvidia RTX 2060 Max-Q | 6GB DDR6 VRAM | no | deactivated using SSDT |
Fingerprint reader | Shenzhen Goodix 27c6:533c | no | / |
I am on the currently (date: 11th Dec, 2021) latest available BIOS, which I installed using windows updates. It then flashed the firmware onto my device on a reboot. The exact version is: 1.11.1 11/18/2021. In order to have no complications, make sure you change these BIOS settings:
Menu | Setting | State |
---|---|---|
Boot Configuration | Enable Secure Boot | Off |
Pre-boot Behavior | Fastboot | Thorough |
Integrated Devices | Thunderbolt Security Level | No Security |
Storage | Sata Operation | AHCI |
Power | Enable Lid Switch | On |
Security | Intel Software Guard Extensions | Software Control |
Power | Block Sleep | On |
Blocking sleep is just a bypass for now, I hope there's a fix down the road. I'll keep an eye on the topic.
If you also want to use an unsupported NVMe drive in the second slot, you need to disable it for macOS. When looking at the opened up machine having the battery at the bottom (and thus the labels on it readable), the left slot is at \_SB.PCI0.RP21.PXSX
and the right slot is at \_SB.PCI0.RP17.PXSX
. You can always check your paths in Windows' Device Manger, at Storage controllers > NVM Express Controller > Details > BIOS device name. Then, just adapt the paths in SSDT-NVMe-SLT.aml
under ACPI
, and enable it in config.plist
.
In order to undervolt this machine, you need to change the value of two memory addresses. When performed properly, this is totally safe. Just triple-check what you've typed, as writing to wrong addresses can really ruin your whole day. To start, activate the two tools VerifyMsrE2.efi
and modGRUBShell.efi
in config.plist
's Tools section, then boot and run modGRUBShell.efi
. This will open up a GRUB shell, in which you execute the following commands:
setup_var CpuSetup 0xDA 0x0
setup_var CpuSetup 0x3E 0x0
exit
After executing exit
, you're back in the picker. In order to apply this tho, you need to restart, hit F2, go into BIOS and do a factory reset, then reboot again. After all of this, check that VerifyMsrE2.efi
prints a success message. If it does, you're good to go using something like ThrottleStop on Windows and VoltageShift on macOS.
If you experience any crashes, you can try limiting your max turbo to 4200MHz
. This made things stable on my machine, even at a CPU offset of -140mV. Higher clock speeds are not really going to help you anyways, as they would only be very short-term.
Please use EFI-PREINST
for the installation-process. Because I want to have WiFi available during install, I am loading AirportItlwm
, and not itlwm
, which would require HeliPort
. This provides a better installation experience.
When booting into the installer, please bring some patience with you! The Monterey installer boots even a bit slower than BigSur, but both speeds don't matter, as this is a one time thing. I can assure you that both operating-systems boot up pretty quickly! There can be many reboots until you're greeted with the setup screen, that's completely normal.
Other than that, there's not much you need to be aware of. Maybe keep your device plugged in during installation, to avoid disk corruption due to a dead battery. I formatted my SN750 as an APFS
drive called "Macintosh", then just installed onto that.
From now on, please use EFI-POSTINST
. Since this should be your true EFI, I cleared the PlatformInfo > Generic fields, so you need to fill them up with custom generated values.
Download gensmbios, execute it, and generate for an MacBookPro16,1
. Then, fill in the following values:
- MLB
- ROM
- SystemSerialNumber
- SystemUUID
As AirportItlwm
is by far not as stable as itlwm
, and HeliPort
has gotten pretty good, I think that it just makes sense to switch from now on. Download HeliPort
beforehand, swap the EFI and reboot. Then, add HeliPort
to your login-items.
To have a proper trackpad-experience, go to the Trackpad pane, then change:
- Point & Click
- Look up & data detectors - OFF
- Secondary click - ON (choose your preferred gesture from dropdown)
- Tap to click - ON
- Silent clicking - OFF (not supported)
- Force Click and haptic feedback - OFF (not supported)
- Tracking speed - I personally like to bump that up a bit
- More Gestures
- Notification Centre - OFF (this gesture seems buggy)
The following changes are optional, but I think they'll improve the over all experience:
-
Dock & Menu Bar
- WiFi
- Show in Menu Bar - OFF (because of HeliPort)
- Bluetooth
- Show in Menu Bar - ON
- Sound
- Show in Menu Bar - always
- Battery
- Show in Menu Bar - ON
- Show Percentage - ON
- WiFi
-
Accessibility
- Zoom
- Use scroll gesture with modifier keys to zoom - ON
- Zoom
-
Software Update
- Advanced
- Check for updates - OFF (you always should update manually!)
- Advanced
-
Open Finder
- Press CMD + ,
- General - Hard disks - ON (show all disks)
- Press CMD + ,
Quickly download and launch hackintool, then go to the "Power" tab and click the screwdriver icon in order to change the power-management variables to hackintosh-sane values.
VoltageShift.kext
is within OpenCore's Kext folder and get's injected during boot. I generally don't recommend fiddling around with /Library/Extensions
or /System/Library/Extensions
. In an ideal case, the macOS disk would look just like a vanilla mac's, and all stuff hackintosh-related get's isolated into /EFI. As of now, voltageshift doesn't support boot arguments, and thus needs to still build it's launch daemon into /Library/LaunchDaemons/com.sicreative.VoltageShift.plist
, which is a init-script that launches the executable that get's copied into /Library/Application\ Support/VoltageShift/
. Yes, it's far from ideal, but it's what we have to work with... Luckily, all of this is managed under the hood by the voltageshift
executable. Download it here, then I suggest to create a tools folder within Documents, where you can store and leave this tool.
These values are pretty safe and stable, you need to try yourself if you can push it further:
CPU Core: -130mV
iGPU: -75mV
Cache: -90mV
Turbo: ON
PL1: 90W
PL2: 45W
Applying them like this:
sudo ./voltageshift buildlaunchd -130 -75 -90 0 0 0 1 90 45 -1
Afterwards, just reboot and check with ./voltageshift into
if your work has been applied.
The stock thermal paste and pads are (in my humble opinion) very poor, and swapping them out for better stuff will yield better temps, don't underestimate this! It's not that hard to disassemble the vapor-chamber, if you managed to open the laptop up in the first place, this'll be a piece of cake!
I ordered three different thermal-pads: 0.5mm
, 1.0mm
and 3.0mm
. You'll need the first two underneath the vapor-champer, and I then used the thickest one inbetween the M.2 slot heatsinks and the chassis bottom, to further help dissipate the otherwise uprising heats towards my palms. As for thermal-paste, I went with Thermal Grizzly Kryonaut
.
After application, this is what it looked like:
I also cleaned up the vapor champer before putting the new pads down, and it was very dirty. Acetone was a great helper for all cleaning purposes, since it really gets the job done.
The 3.0mm
-Pads were a perfect fit to make contact with the chassis and now help to dissipate the generated heat from both M.2 drives.