XPS-9360-macOS
XPS-9360-macOS copied to clipboard
XPS 13 (9360) with macOS Big Sur
macOS on XPS 13 9360
This repo is currently compatible with macOS versions as below...
| macOS Big Sur | macOS Catalina | macOS Mojave | macOS High Sierra |
|---|---|---|---|
| 11.2.3 (20D91) | 10.15.7 (19H15) | 10.14.6 (18G87) | 10.13.6 (17G2112) |
| 11.2.1 (20D74) | 10.15.6 (19G2021) | 10.14.5 (18F132) | 10.13.6 (17G65) |
| 11.2 (20D64) | 10.15.5 (19F2200) | 10.14.4 (18E226) | |
| 11.1 (20C69) | 10.15.4 (19E287) | 10.14.3 (18D42) | |
| 11.0.1 (20B50) | 10.15.3 (19D76) | 10.14.2 (18C54) | |
| 11.0 (20A2411) | 10.15.2 (19C57) | 10.14.1 (18B75) | |
| 10.15.1 (19B88) | 10.14 (18A389) | ||
| 10.15 (19A583) |
- Device : Dell XPS 13 9360
- CPU : Intel i7-8550U
- GPU : Intel UHD 620 Kaby Lake
- RAM : SK Hynix 16GB 2133 MHz LPDDR3
- Sound : Realtek ALC256 (ALC3246)
- SSD : WD Black SN750 (WDS100T3X0C) 1TB NVMe PCIe SSD
- Display : FHD (1920x1080) on XPS | QHD (2560x1440) on external display (CHIMEI 27P10Q)
- Camera : UVC Camera VendorID_3034 ProductID_22155
- Wireless Card (3 options):
Swapped the originalKiller 1535withBCM94360NG.
Swapped the originalKiller 1535withBCM94360CS2.
Swapped the originalKiller 1535withDW1560. - Thunderbolt 3 Dongle : Dell DA300
- Dual-Boot OS: macOS Catalina
11.2.3 (20D91)& Ubuntu20.04 LTS
Device Firmware
- BIOS Version:
2.8.1-2.13.0 - Thunderbolt 3 Version:
NVM 26 BCM94360CS2Bluetooth Version:v150 c9318DW1560Bluetooth Version:v16.0 (1657)with BrcmPatchv2.5.8
Bootloader Firmware
- Default bootloader: OpenCore
0.6.7See more info about migration. - No longer maintained: Clover
r5118
Pre-Installation
Create bootable USB installer: (With gibMacOS)
- Running gibMacOS, then download the version you prefer (gibMacOS script is allowed to download macOS images on all OS platforms with Python installed).
- Finding and running
InstallAssistant.pkgunder the pathmacOS Downloads. - Erase your USB drive with
Disk Utility(Name: "USB"; Format: "Mac OS Extended (Journaled)"; Scheme: "GUID") - Running the following commands to make bootable USB with
Install macOS Big Sur.app:
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/USB
- Running the commands to mount the EFI partion of USB:
sudo diskutil mount /dev/disk3s1
- Copy the whole repository to EFI partition to the path mentioned above. (You have to create an empty EFI directory, and put the whole repo in it).
DVMT
- Enter
BIOS/Boot SequenceinBIOS, addBoot Entrywith/EFI/CLOVER/tools/DVMT.efi, then run the following commands
setup_var 0x4de 0x00 // Disable CFG Lock
setup_var 0x785 0x06 // Increase DVMT pre-allocated size to 192M For FHD version, it's also recommended setting to 192M
setup_var 0x786 0x03 // Increase CFG Memory to maximum
Format SSD with 4K sectors for APFS - Creating a Linux bootable drive is needed.
- Choose any Linux distribution you like, I prefer Ubuntu
- Formatting SSD to
4K sectorswithnvme-cli... for working better withAPFS, seeStep 2in this guide.
Get compatible with LITEON and PLEXTOR SSD - If you are not using with LITEON or PLEXTOR SSD, skip it.
- To solve the problem,
config.plistwith patches is needed. - The
config.plistwith patches is under the path config for LITEON. - Rename to
config.plistand try one at each time, one of them would be capatible with your SSD.
BIOS settings
-
Sata: AHCI
-
Enable SMART Reporting
-
Disable thunderbolt boot and pre-boot support
-
USB security level: disabled
-
Enable USB powershare
-
Enable Unobtrusive mode
-
Disable SD card reader (saves 0.5W of power)
-
TPM Off
-
Deactivate Computrace
-
Enable CPU XD
-
Disable Secure Boot
-
Disable Intel SGX
-
Enable Multi Core Support
-
Enable Speedstep
-
Enable C-States
-
Enable TurboBoost
-
Enable HyperThread
-
Disable Wake on USB-C Dell Dock
-
Battery charge profile: Standard
-
Numlock Enable
-
FN-lock mode: Disable/Standard
-
Fastboot: minimal
-
BIOS POST Time: 0s
-
Enable VT
-
Disable VT-D
-
Wireless switch OFF for Wifi and BT
-
Enable Wireless Wifi and BT
-
Allow BIOS Downgrade
-
Allow BIOS Recovery from HD, disable Auto-recovery
-
Auto-OS recovery threshold: OFF
-
SupportAssist OS Recovery: OFF
-
Disable Camera (Optional)
Post-Installation
-
Copy all folders and files from this repository to EFI partition.
-
Enter
BIOS/Boot Sequence, and adding new entry with path/CLOVER/CLOVERX64.efi -
To activate Wifi and Bluetooth functions for
DW1560, follow next step, or skip it.
Wireless card - BCM94360CS2 Installation (If not using this card, skip it.)
- To use this card, you need BCM94360CS2, Custom Adapter, and Antenna Extended Cable.
- Wireless card installation:
Instruction with images: here. - After installation, other modification is no needed.
Wireless card - BCM94360NG (If not using this card, skip it.)
- Install directly, kexts and adapter are not needed.
Wireless card - DW1560 Installation (If not using this card, skip it.)
- Running following commands...
sudo diskutil mount /dev/disk0s1
cd /Volumes/EFI/EFI
cp -R DW1560/*.kext CLOVER/kexts/Other
bash /Volumes/EFI/EFI/XPS.sh --rebuild-cache
If booting with OpenCore rather than Clover Configurator, copy the three kexts above to /EFI/OC/Kexts, and then running previous command to rebuild cache.
Running shell script in Terminal
- After mounting the EFI partition with Clover Configurator or running the following commands below in terminal..
- Mount EFI partition with the command below
sudo diskutil mount /dev/disk0s1
- Running
XPS.shto compile DSDT
./Volumes/EFI/EFI/XPS.sh --compile-dsdt
- Running
XPS.shto Allow 3rd party Applications to install on macOS
./Volumes/EFI/EFI/XPS.sh --enable-3rdparty
- Running
XPS.shto fix Headphone Jack
./Volumes/EFI/EFI/XPS.sh --combo-jack
- Running
XPS.shto enable TRIM support on SSD
./Volumes/EFI/EFI/XPS.sh --enable-trim
- Running
XPS.shto rebuild cache
./Volumes/EFI/EFI/XPS.sh --rebuild-cache
- Running
XPS.shto enable better sleep support
./Volumes/EFI/EFI/XPS.sh --better-sleep
- Running
XPS.shto Disable 4-Digit Pin Required on macOS
./Volumes/EFI/EFI/XPS.sh --pin-custom
Fix the buzz sound from headphone jack
Open System Preferences/Sound/Input
Fix the "Webcam Black Screen" problem
Unsolved
SMBIOS
- Default SMBIOS settings of this repo is
MacbookPro15,2. Serial NumberandSmUUIDare erased beforehand, you need to generaete on your own.
CPUFriend
- The kexts and SSDT for
i7-8550Uhas put here, by working SMBIOS withMacbookPro15,2. - You have to put
CPUFriend.kext&CPUFrindDataProvider.kextin both/CLOVER/kexts/OtherandLibrary/Extensions, then rebuild cache. - Furthermore, you also have to put
SSDT-CPUF.amlin/EFI/CLOVER/ACPI/patchedfor working as normal after awake.
If you need to generate new CPUFriend kexts, refer to Commands, and follow here
Enable eGPU with Thunderbolt 3
- You need to set
No Securityin TB3 BIOS option. - Stop
Cloverwhen it counts down during booting with pressingSpace. - Connect the TB3 cable to XPS.
- Turn on the eGPU.
- Wait for few seconds, and press
Enterto boot macOS.
Custom setting the delay between trackpad and keyboard
To do that you need to edit Info.plist in VoodooI2CHID.kext:
- Open the
Info.plistin theVoodooI2CHID.kextwith any Text Editor(I use Atom) - Finding the
QuietTimeAfterTyping - Changing the
valueyou prefer
I have preset the value to 0
More Custom Settings
- Refer to Commands for more customization.
HiDPI
- Use one-key-HiDPI
Fix Blurry Fonts for Non-Retina Displays
- Refer to here.
If booting with Clover, blurry font is required to fix.
If booting with OpenCore, font is clear as Retina, no need to fix.
Fix AppleID issue on macOS Catalina
- If you encounter the problem with AppleID which cannot login and logout, this problem happened on both Hackintosh and Macintosh.
- Fix this issue with the follwing commands...
sudo -v
killall -9 accountsd com.apple.iCloudHelper
defaults delete MobileMeAccounts
rm -rf ~/Library/Accounts
killall -9 accountsd com.apple.iCloudHelper
sudo reboot
Fix the AirPods choppy/unreliable when connected to macOS
- Open
System Preferences>Sound>Input - Change
Sound InputfromAirpodstoInternal Microphone - Possible explanation:
SinceBCM94360CS2/DW1560/BCM94360NGare running withBluetooth 4.0, which has too low bandwidth to handle both input/output at a high quality.
Therefore, changingSound InputtoInternal Microphoneto ensure audio output is working as normal.
Optional Settings
CPU Undervolting
If having the same CPU as mine, you can do the undervolting settings below.
Warning!!! This may cause crash on your device, please be aware of that.
Enter BIOS/Boot Sequence , add new Boot Option with /EFI/CLOVER/tools/DVMT.efi, then run the following commands...
- Overclock, CFG, WDT & XTU enable
setup_var 0x4DE 0x00
setup_var 0x64D 0x01
setup_var 0x64E 0x01
- Undervolting values:
setup_var 0x653 0x64 // CPU: -100 mV
setup_var 0x655 0x01 // Negative voltage for 0x653
setup_var 0x85A 0x1E // GPU: -30 mV
setup_var 0x85C 0x01 // Negative voltage for 0x85A
Swapping SSD
- You need an external NVMe reader to carry your new SSD as an external drive.
- Under macOS environment, using
Disk Utilityformat your new SSD asAPFSformat. - Using Carbon Copy Cloner, to clone the whole System Disk to your new drive.
Upgrading macOS
- Before upgrading, remember to backup with
Time Machinethrough external drive. - Create bootable USB drive with the version of macOS you prefer, and replace files under path
/EFIin EFI partition with this repo. - After booting sucessfully, copy the whole repo to you EFI partition. (The commands to mount EFI partition is provided above.)
- If you use
DW1560, follow the guide. - Refer to shell script part, and follow the commands.
- Follow the guide to set your CPUFriend.
- Recovery you data and settings from your backup through
Migration Assistant.
Migrate bootloader from Clover to OpenCore
- Copy the OC folder to EFI partition.
- Clear caches of
Clover, and compile your own DSDTs by running the followig commands...
bash /Volumes/EFI/EFI/OC/trans.sh
bash /Volumes/EFI/EFI/OC/XPS_OC.sh --compile-dsdt
- Enter
BIOS/Boot SequenceinBIOS, addBoot Entrywith path/EFI/OC/OpenCore.efi - Reboot and enjoy the flight, and feel free to file issues if encounter any problems.
Dev-Notes
External Display Support
- According to ioregistryExplorer,
Framebuffer@0 (Connector 0)is LVDS (Internal Display). Framebuffer@1 (Connector 1),Framebuffer@2 (Connector 2)are pointing to DisplayPort and HDMI respectively.- Refer to gfxutil, path of iGPU is
DevicePath = PciRoot(0x0)/Pci(0x2,0x0) - HDMI is working perfectly, video and audio output are both working flawlessly.
ID: 59160000, STOLEN: 34 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x00000B0B
TOTAL STOLEN: 35 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 103 MB, MAX OVERALL: 104 MB (109588480 bytes)
GPU Name: Intel HD Graphics 620
Model Name(s): MacBookPro14,2
Camelia: Disabled, Freq: 1388 Hz, FreqMax: 1388 Hz
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - LVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - DP
[2] busId: 0x04, pipe: 10, type: 0x00000800, flags: 0x00000187 - HDMI
00000800 02000000 98000000
01050900 00040000 87010000
02040A00 00080000 87010000
- Known info
Digital Audio (HDMI / DVI / DP)
To enable digital audio it is necessary to set the necessary properties and, usually, patch the connectors.
To enable audio in general and HDMI in particular use WEG along with AppleALC.kext.
On 10.10.5 and above, WEG automatically changes the connector-type of DP (00040000) to HDMI (00080000) if no custom patches are used.
The actual connection may be of any type (HDMI / DVI / DP), but for the digital audio to function the connector-type must explicitly be HDMI.
When HDMI plugged in, macOS would recognize as DP (busID: 0x05), not HDMI (busID: 0x04).
- Table of busID and ports are listed below:
| DP | HDMI | DVI |
|---|---|---|
| 0x02 | 0x00 | 0x01 |
| 0x04 | 0x02 | 0x02 |
| 0x05 | 0x04 | 0x04 |
| 0x06 | 0x06 | 0x06 |
framebuffer-conX-enable
01000000-> Enable,00000000-> Disableframebuffer-conX-type00000800-> HDMI output,00000400-> DP outputframebuffer-conX-indexfffffff-> Blockframebuffer-unifiedmem00000080-> VRAM to 2048M,000000C0-> VRAM to 3072Mframebuffer-fbmem00009000-> 9M for FHD,00000003-> 48M for QHD/UHD- All framebuffer values can be insert as
NUMBERtype, exceptig-platform-id.
USB Ports Mapping
- Table of Type and Dev Speed are listed below:
| USB 2 (XHC) | USB 3 (XHC) | Thunderbolt 3 (TBTU) | Dev Speed |
|---|---|---|---|
| HS01 | HS01 | 12/480 Mbps | |
| HS02 | HS02 | 12/480 Mbps | |
| SS01 | 5 Gbps | ||
| SS02 | 5 Gbps | ||
| UB21 | 5 Gbps | ||
| UB21 | 5 Gbps |
- When USB3 injected, speed would run as 480Mbps/5Gbps.
- USB2 port: Wireless receiver would run as 12Mbps, other USB2 deivces run as 480Mbps.
- TB3 devices run as 5Gbps.
HS03is occupied byBCM9460CS2/DW1560.HS05is occupied byIntergrated Webcam HD.
Boot Arguments Explanation
darkwake=4
Thedarkwakeflag has to do with sleep. More information can be found in this thread.igfxcflbklt=opcode
To work withWhateverGreen.kext, fixing BackLight.brcmfx-country=XX
Change the country code to XX (US, CN, #a, ...) For Broadcom WiFi card.brcmfx-country=#a
Enables 80MHz wide channels on the 5GHz spectrum. For Broadcom WiFi card.agdpmod=vit9696
Disable check forboard-id.
XCPM and HWP
- Verify working
XCPMconfiguration by typing the commands below
sysctl machdep.xcpm.mode
// If returns '1', which means the XCPM is active.
- Verify if the
X86PlatformPlugin.kextis loaded
kextstat|grep -y x86plat
Shutdown Dialog
- To activate
shutdown dialog, it's necessary toRename PBTN to PWRB. - Although
SSDT-PWRBis added, rename part is also needed inLPCB.