Contribute
Register

[Guide] Dell XPS 8930 Mojave 10.14.4, RX580/UHD630

Joined
May 29, 2018
Messages
42
Motherboard
Dell XPS 8930
CPU
i7-8700
Graphics
RX 580
This is a new write-up based on my earlier guide on High Sierra on the same system:

Dell XPS 8930 High Sierra Guide 10.13.6 (Nvidia 1050 Ti)

A lot of discussions are still made on the old thread along with some very useful comments. You may want to check that thread out even though you are installing Mojave.

Update 6/26/19: I have finally mapped the remaining USB C ports. The only catch is all the USB ports on this system go over 15-port limit. So you may have to disable some ports, or you may have to use the remove USB port limit patch which gives me trouble sometimes (e.g. USB devices gets "unplugged" as I plug another USB device in)

Model: Dell XPS 8930
CPU: i7 8700 Coffee Lake
Chipset: z370
Graphics: Sapphire Nitro+ RX580 / Intel UHD Graphics 630
Ram: 16GB
Audio: ALC3861
Ethernet: Killer E2400 Gigabit Ethernet Controller
Wifi: BCM943602CS PCI-e card (non-OEM)
Harddisk:
  • 500GB WD-Black (2nd generation) m.2 NVMe x4 + OEM 2TB Harddisk fusion drive
  • 512GB Intel SSD for Windows
  • 2TB 3.5” HDD for Time Machine
Installed macOS version: 10.14.4

What doesn't work:
  • OEM Wifi
  • USB C ports (because I do not have any USB-C devices to map the ports) See correct port injections for all USB ports (including 2.0, 3.0, 3.1 gen2, and USB C) (06/26/2019)
  • Intel integrated graphics (output only) (QuickSync works): Dell BIOS seems to automatically turn off output of the IGPU when a discrete graphics card has been installed.
Tools needed:
  • macOS Mojave bootable USB drive (created with another macOS computer)
  • Ubuntu bootable live USB drive
  • A USB wifi adaptor (optional, you can use ethernet instead), or
    • A BCM943602CS PCI-e card with a spare USB 2.0 cord. Should work out of the box when connected correctly. See below
  • Apps (please google and download the latest version)
  • EFI Drivers:
    • ApfsDriverLoder-64.efi (For original installation only! Does not work with fusion drives afterwards!)
    • APFS.efi from your installation (For subsequent system boot after your installation. Make sure you copy this into your clover EFI Drivers right after your first boot and remove APFSDriverLoader-64.efi! I got stuck here because I needed my APFS.efi to get clover to boot my system, but I would first need clover to first boot my system to obtain my APFS.efi.... so I was in a catch-22)
    • AptioMemoryFix-64.efi
    • NTFS-64.efi
    • VBoxHfs-64.efi
  • Kexts:
    • /Library/Extensions
      • AppleALC
      • USBInjectAll
      • XHCI-200-series-injector
    • EFI/Clover/kexts/other
      • FakeSMC
      • FakeSMC_ACPISensors
      • FakeSMC_CPUSensors
      • FakeSMC_GPUSensors
      • FakeSMC_LPCSensors
      • FakeSMC_SMMSensors.kext
      • AtherosE2200Ethernet
      • The following two I decided to put in EFI because they are necessary to get any display. If they're in L/E you will not get any display when booting into recovery
        • Lilu
        • WhateverGreen (I used a pre-released version 1.2.8 because of problems with UHD 630)
Step 1: create bootable macOS installation USB drive
  1. Follow this guide to create the bootable drive using UniBeast (https://www.tonymacx86.com/threads/unibeast-install-macos-high-sierra-on-any-supported-intel-based-pc.235474/)
Step 2: wipe hard drive with Ubuntu live CD
  1. Dell has a 500Mb EFI folder in front and a Recovery partition at the end of the disk. I tried installing just by using Disk Utilities in the macOS installer to wipe the disk. That was a mistake. The computer kept trying to boot into recovery but couldn’t because the main OS has been wiped.
  2. I ended up booting with Ubuntu live USB to wipe the drive clean and delete all existing partitions
    1. Boot computer with Ubuntu live USB
    2. Click on the “Activities” text on the top left corner, then in the search bar on top in the middle of your screen, type in “disks”. First result should be Ubuntu’s “disk utilities”
    3. Choose the correct hard disk (disk size is a good estimate), and delete all partitions you see there
Step 3: Install macOS
  1. For ethernet, install AtherosE2200Ethernet.kext into EFI/Clover/kext/others folder of install macOS USB drive
  2. Plug the USB drive into the machine you want to install hackintosh onto
  3. Boot into bios and make the suggested changes
    1. Intel SpeedStep, Virtualization, VT for Direct I/O = Enabled
    2. SATA Operation: ACHI
    3. Everything else = disabled
    4. Secure Boot = Disabled
  4. Boot using the EFI installation drive
  5. Follow the macOS installation wizard, create fusion drive here before installation if you intend to use fusion drive. A quick google search should return some good write-ups
  6. Disable hibernation:
  7. Code:
    sudo pmset -a hibernatemode 0
    sudo rm /var/vm/sleepimage
    sudo mkdir /var/vm/sleepimage
Step 4: Clover configuration
  1. Tl;dr: use the attached config.plist and skip to the next step
  2. ACPI -> enable change GFX0 to IGPU. AFAIK WhateverGreen automatically do this for *most* instances of GFX0 but sometimes you may still need to enable this patch
  3. Boot -> boot arguments -> "-v" (optional, but helps a lot with troubleshooting)
  4. Boot -> check "neverhibernate"
  5. For 4K screens: Boot Graphics -> EfILoginHiDPI = 1, UScale = 2
  6. Devices -> USB -> check "inject" and "FixOwnership"
  7. Devices -> Audio -> Inject "1"
  8. To set up UHD 630
    1. Devices -> Properties (Bottom, next to Arbitrary) -> Devices (Bottom Left) -> PciRoot(0x0)/Pci(0x2,0x0)
    2. Devices -> Properties -> Devices -> Properties -> Bottom Right ->
      1. AAPL,ig-platform-id; 07009B3E (00009B3E for headless. I haven't tested it. Dell Bios makes it headless regardless whenever a discrete graphics card is plugged in); Data
      2. framebuffer-fbmem; 00000000; Data
      3. framebuffer-unifiedmem; 00000080; Data
      4. framebuffer-patch-enable; 01000000; Data
      5. framebuffer-stolenmem; 00009003; Data
  9. Graphics -> Leave everything BLANK
  10. Kernel and Kext Patches -> AppleRTC, AppleIntelCPUPM
  11. Kernel and Kext Patches -> Disable USB Port Limit (See Step 5)
  12. SMBIOS: iMac18,3 (Use iMac18,1 if you do not have a discrete graphic card)
  13. System Parameters -> Check Inject System ID; Inject Kexts -> Detect


Step 5: Inject USB Properties and Power Properties
Thanks @lisai9093 for correction on card reader
Update (06/26/2019): The most up-to-date SSDT-UIAC contains the correct USB injection for the front USB C port. Please note the 2.0 port of the rear 3rd and 4th USB 3.0 port, as well as internal bluetooth has been disabled. Please comment/uncomment out the correct port injections to suit your own needs.

  1. Tl;dr: use the attached SSDT-UIAC.aml and skip to the next step
  2. Follow these two guides:
    1. https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/
    2. https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/
  3. Add the port limit patch in clover config
  4. Below is a table of what ports in IOReg correspond to physical port location
  5. Do not use FakePCIID_XHCIMux.kext because chipset z370 does not have an EHCI controller to move USB 2.0 ports to
  6. Use bootleg example: uia_exclude=SS06;SS07 to disable any ports that you do not need in case it goes over the 15-port limit
  7. Turn off the 15-port limit patch after done
  8. I do not have any USB-C device so I do not have them tested/listed/enabled
  9. May need to turn on clover config -> devices -> USB -> fix ownership. I did not have to until I cloned my drive onto a fusion drive and lost all my USB ports except for the USB 3.1 gen 2 port under PXSX
  10. PXSX is a different USB controller (ASMedia 1242) pci1b21_1242. This controller controls the USB 3.1 gen2 port, the rear USB type-c port (2.0 and 3.1 gen2), and an unknown “internal” port.
    1. The 3.1 gen2 port is misrecognized as an internal port. Edit DSDT by looking for Device (HS01) and change “Return (TUPC (0xFF))” to “Return (TUPC (0x03))
    2. Not sure if necessary: Open the Info.plist in USBInjectAll.kext and add these lines under <key>Configuration</key> <dict>
    3. Code:
            <key>port-count</key>
      <data>BAAAAA==</data>
      <key>ports</key>
      <dict>
      <key>HS01</key>
      <dict>
      <key>UsbConnector</key>
      <integer>3</integer>
      <key>port</key>
      <data>AQAAAA==</data>
      </dict>
      <key>HS02</key>
      <dict>
      <key>UsbConnector</key>
      <integer>9</integer>
      <key>port</key>
      <data>AgAAAA==</data>
      </dict>
      <key>SS01</key>
      <dict>
      <key>UsbConnector</key>
      <integer>255</integer>
      <key>port</key>
      <data>AwAAAA==</data>
      </dict>
      <key>SS02</key>
      <dict>
      <key>UsbConnector</key>
      <integer>9</integer>
      <key>port</key>
      <data>BAAAAA==</data>
      </dict>
      </dict>
                  </dict>


Step 6: Enable hardware temperature and fan speed sensors
  1. Put FakeSMC_ACPISensors.kext, FakeSMC_CPUSensors.kext, FakeSMC_GPUSensors.kext, FakeSMC_LPCSensors.kext, and FakeSMC_SMMSensors.kext into EFI/Clover/kexts/Other
  2. Reboot
  3. Use HWMonitor or other monitoring software
Step 7: DSDT and SSDT Patches
  1. Apply the following DSDT Patches using MaciASL, see this guidefor details. I have attached my DSDT but we probably have different BIOS version so it may not work for you
    1. _Wak Arg0 v2: For sleep/wake
    2. HPET
    3. SMBUS
    4. IRQ: For sound
    5. OS Check
    6. Mutex with non-zero SyncLevel
    7. Add IMEI
    8. Shutdown fix v2
    9. PXSX USB Fix from 0x99 to 0x03 (see step 4.10.1)
    10. PXSX USB Power Injection (see step 4.10.1)
  2. Apply the following SSDT Patches (Tl;dr, see step 5.1)
    1. SSDT-UIAC (Follow Rehabman’s USB PORT injection guide)
    2. SSDT-USBX (Follow Rehabman’s USB POWer injection guide, may be combined into SSDT-UIAC)
    3. SSDT-EC (Follow Rehabman’s USB POWer injection guide)
Step 8: Install natively supported Wifi and Bluetooth card for handoff and continuity
  1. I originally tried to use the BCM94360CS2 MacBook Air card with m2 (a+e key) adapter for the built-in USB connection and internal antennae. Sadly there was not enough clearance to install the card. The m2 port is too close to the PCI-e x16 port that this card simply won't fit. A flex cable for a+e keyed m2 ports costs $40+, so I went the other route instead.
  2. I ended up purchasing a BCM943602CS PCI-e card and installed into the PCI-e x1 port.
  3. For handoff to work, you would have to plug in the 4-pin port on the card into a USB port. Unfortunately the XPS 8930 does not have an available internal USB header. What I ended up doing was cutting an spare USB 2.0 cable that I have, and attach the cable that came with the Wifi+Bluetooth card to it so I can plug it into an external USB 2.0 port. You would only need to connect the 4 color wires to their corresponding color wires of the cut USB cable. Breadboard jumper wires, heat-shrink tubings and the heat gun from my Arduino project came in really handy. You can probably make do with electrical tape although the connection wouldn't be as good. For a more robust cable, soldering is recommended.
  4. After connecting everything, Wifi and Bluetooth should work out of the box.
  5. Unlock with Apple Watch works sometimes. Seems like the trick with Unlock with Apple Watch is signing out and back in of your iCloud account, and restarting both your hackintosh and Apple Watch. I have it working consistently well.
  6. I haven't been able to get Continuity Camera working yet. Continuity Camera started working after like a week or so. Maybe sync your iPhone with iTunes a couple of times?
EOF
 

Attachments

Last edited:
Joined
Dec 20, 2018
Messages
125
Motherboard
Optiplex 7010 MT
CPU
i5-3470S/Q77
Graphics
RX 570 ITX
Mac
iMac
Mobile Phone
iOS
This is a new write-up based on my earlier guide on High Sierra on the same system:

Dell XPS 8930 High Sierra Guide 10.13.6 (Nvidia 1050 Ti)

Model: Dell XPS 8930
CPU: i7 8700 Coffee Lake
Chipset: z370
Graphics: Sapphire Nitro+ RX580 / Intel UHD Graphics 630
Ram: 16GB
Audio: ALC3861
Ethernet: Killer E2400 Gigabit Ethernet Controller
Wifi: BCM943602CS PCI-e card (non-OEM)
Harddisk:
  • 500GB WD-Black (2nd generation) m.2 NVMe x4 + OEM 2TB Harddisk fusion drive
  • 512GB Intel SSD for Windows
  • 2TB 3.5” HDD for Time Machine
Installed macOS version: 10.14.4

What doesn't work:
  • OEM Wifi
  • USB C ports (because I do not have any USB-C devices to map the ports)
  • Intel integrated graphics (output only) (QuickSync works): Dell BIOS seems to automatically turn off output of the IGPU when a discrete graphics card has been installed.
Tools needed:
  • macOS High Sierra bootable USB drive (created with another macOS computer)
  • Ubuntu bootable live USB drive
  • A USB wifi adaptor (optional, you can use ethernet instead), or
    • A BCM943602CS PCI-e card with a spare USB 2.0 cord. Should work out of the box when connected correctly. See below
  • Apps (please google and download the latest version)
  • EFI Drivers:
    • ApfsDriverLoder-64.efi (For original installation only! Does not work with fusion drives afterwards!)
    • APFS.efi from your installation (For subsequent system boot after your installation. Make sure you copy this into your clover EFI Drivers right after your first boot and remove APFSDriverLoader-64.efi! I got stuck here because I needed my APFS.efi to get clover to boot my system, but I would first need clover to first boot my system to obtain my APFS.efi.... so I was in a catch-22)
    • AptioMemoryFix-64.efi
    • NTFS-64.efi
    • VBoxHfs-64.efi
  • Kexts:
    • /Library/Extensions
      • AppleALC
      • USBInjectAll
      • XHCI-200-series-injector
    • EFI/Clover/kexts/other
      • FakeSMC
      • FakeSMC_ACPISensors
      • FakeSMC_CPUSensors
      • FakeSMC_GPUSensors
      • FakeSMC_LPCSensors
      • FakeSMC_SMMSensors.kext
      • AtherosE2200Ethernet
      • The following two I decided to put in EFI because they are necessary to get any display. If they're in L/E you will not get any display when booting into recovery
        • Lilu
        • WhateverGreen (I used a pre-released version 1.2.8 because of problems with UHD 630)
Step 1: create bootable macOS installation USB drive
  1. Follow this guide to create the bootable drive using UniBeast (https://www.tonymacx86.com/threads/unibeast-install-macos-high-sierra-on-any-supported-intel-based-pc.235474/)
Step 2: wipe hard drive with Ubuntu live CD
  1. Dell has a 500Mb EFI folder in front and a Recovery partition at the end of the disk. I tried installing just by using Disk Utilities in the macOS installer to wipe the disk. That was a mistake. The computer kept trying to boot into recovery but couldn’t because the main OS has been wiped.
  2. I ended up booting with Ubuntu live USB to wipe the drive clean and delete all existing partitions
    1. Boot computer with Ubuntu live USB
    2. Click on the “Activities” text on the top left corner, then in the search bar on top in the middle of your screen, type in “disks”. First result should be Ubuntu’s “disk utilities”
    3. Choose the correct hard disk (disk size is a good estimate), and delete all partitions you see there
Step 3: Install macOS
  1. For ethernet, install AtherosE2200Ethernet.kext into EFI/Clover/kext/others folder of install macOS USB drive
  2. Plug the USB drive into the machine you want to install hackintosh onto
  3. Boot into bios and make the suggested changes
    1. Intel SpeedStep, Virtualization, VT for Direct I/O = Enabled
    2. SATA Operation: ACHI
    3. Everything else = disabled
    4. Secure Boot = Disabled
  4. Boot using the EFI installation drive
  5. Follow the macOS installation wizard, create fusion drive here before installation if you intend to use fusion drive. A quick google search should return some good write-ups
  6. Disable hibernation:
  7. Code:
    sudo pmset -a hibernatemode 0
    sudo rm /var/vm/sleepimage
    sudo mkdir /var/vm/sleepimage
Step 4: Clover configuration
  1. Tl;dr: use the attached config.plist and skip to the next step
  2. ACPI -> enable change GFX0 to IGPU. AFAIK WhateverGreen automatically do this for *most* instances of GFX0 but sometimes you may still need to enable this patch
  3. Boot -> boot arguments -> "-v" (optional, but helps a lot with troubleshooting)
  4. Boot -> check "neverhibernate"
  5. For 4K screens: Boot Graphics -> EfILoginHiDPI = 1, UScale = 2
  6. Devices -> USB -> check "inject" and "FixOwnership"
  7. Devices -> Audio -> Inject "1"
  8. To set up UHD 630
    1. Devices -> Properties (Bottom, next to Arbitrary) -> Devices (Bottom Left) -> PciRoot(0x0)/Pci(0x2,0x0)
    2. Devices -> Properties -> Devices -> Properties -> Bottom Right ->
      1. AAPL,ig-platform-id; 07009B3E (00009B3E for headless. I haven't tested it. Dell Bios makes it headless regardless whenever a discrete graphics card is plugged in); Data
      2. framebuffer-fbmem; 00000000; Data
      3. framebuffer-unifiedmem; 00000080; Data
      4. framebuffer-patch-enable; 01000000; Data
      5. framebuffer-stolenmem; 00009003; Data
  9. Graphics -> Leave everything BLANK
  10. Kernel and Kext Patches -> AppleRTC, AppleIntelCPUPM
  11. Kernel and Kext Patches -> Disable USB Port Limit (See Step 5)
  12. SMBIOS: iMac18,3 (Use iMac18,1 if you do not have a discrete graphic card)
  13. System Parameters -> Check Inject System ID; Inject Kexts -> Detect


Step 5: Inject USB Properties and Power Properties
Thanks @lisai9093 for correction on card reader
  1. Tl;dr: use the attached SSDT-EC.aml and SSDT-UIAC.aml and skip to the next step
  2. Follow these two guides:
    1. https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/
    2. https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/
  3. Add the port limit patch in clover config
  4. Below is a table of what ports in IOReg correspond to physical port location
  5. Do not use FakePCIID_XHCIMux.kext because chipset z370 does not have an EHCI controller to move USB 2.0 ports to
  6. Use bootleg example: uia_exclude=SS06;SS07 to disable any ports that you do not need in case it goes over the 15-port limit
  7. Turn off the 15-port limit after done
  8. I do not have any USB-C device so I do not have them tested/listed/enabled
  9. May need to turn on clover config -> devices -> USB -> fix ownership. I did not have to until I cloned my drive onto a fusion drive and lost all my USB ports except for the USB 3.1 gen 2 port under PXSX
  10. PXSX is a different USB controller (ASMedia 1242) pci1b21_1242. This controller controls the USB 3.1 gen2 port, the 2 USB type-c ports, and an unknown “internal” port.
    1. The 3.1 gen2 port is misrecognized as an internal port. Edit DSDT by looking for Device (HS01) and change “Return (TUPC (0xFF))” to “Return (TUPC (0x03))
    2. Not sure if necessary: Open the Info.plist in USBInjectAll.kext and add these lines under <key>Configuration</key> <dict>
    3. Code:
            <key>port-count</key>
                  <data>BAAAAA==</data>
                  <key>ports</key>
                  <dict>
                                  <key>HS01</key>
                                      <dict>
                                  <key>UsbConnector</key>
                                  <integer>3</integer>
                                  <key>port</key>
                                  <data>AQAAAA==</data>
                              </dict>
                              <key>HS02</key>
                              <dict>
                                  <key>UsbConnector</key>
                                  <integer>9</integer>
                                  <key>port</key>
                                  <data>AgAAAA==</data>
                              </dict>
                              <key>SS01</key>
                              <dict>
                                  <key>UsbConnector</key>
                                  <integer>255</integer>
                                  <key>port</key>
                                  <data>AwAAAA==</data>
                              </dict>
                              <key>SS02</key>
                              <dict>
                                  <key>UsbConnector</key>
                                  <integer>9</integer>
                                  <key>port</key>
                                  <data>BAAAAA==</data>
                              </dict>
                          </dict>
                  </dict>


Step 6: Enable hardware temperature and fan speed sensors
  1. Put FakeSMC_ACPISensors.kext, FakeSMC_CPUSensors.kext, FakeSMC_GPUSensors.kext, FakeSMC_LPCSensors.kext, and FakeSMC_SMMSensors.kext into EFI/Clover/kexts/Other
  2. Reboot
  3. Use HWMonitor or other monitoring software
Step 7: DSDT and SSDT Patches
  1. Apply the following DSDT Patches using MaciASL, see this guide for details. I have attached my DSDT but we probably have different BIOS version so it may not work for you
    1. _Wak Arg0 v2: For sleep/wake
    2. HPET
    3. SMBUS
    4. IRQ: For sound
    5. OS Check
    6. Mutex with non-zero SyncLevel
    7. Add IMEI
    8. Shutdown fix v2
    9. PXSX USB Fix from 0x99 to 0x03 (see step 4.10.1)
    10. PXSX USB Power Injection (see step 4.10.1)
  2. Apply the following SSDT Patches
    1. SSDT-UIAC (Follow Rehabman’s USB PORT injection guide)
    2. SSDT-USBX (Follow Rehabman’s USB POWer injection guide, may be combined into SSDT-UIAC)
    3. SSDT-EC (Follow Rehabman’s USB POWer injection guide)
Step 8: Install natively supported Wifi and Bluetooth card for handoff and continuity
  1. I originally tried to use the BCM94360CS2 MacBook Air card with m2 (a+e key) adapter for the built-in USB connection and internal antennae. Sadly there was not enough clearance to install the card. The m2 port is too close to the PCI-e x16 port that this card simply won't fit. A flex cable for a+e keyed m2 ports costs $40+, so I went the other route instead.
  2. I ended up purchasing a BCM943602CS PCI-e card and installed into the PCI-e x1 port.
  3. For handoff to work, you would have to plug in the 4-pin port on the card into a USB port. Unfortunately the XPS 8930 does not have an available internal USB header. What I ended up doing was cutting an spare USB 2.0 cable that I have, and attach the cable that came with the Wifi+Bluetooth card to it so I can plug it into an external USB 2.0 port. You would only need to connect the 4 color wires to their corresponding color wires of the cut USB cable. Breadboard jumper wires, heat-shrink tubings and the heat gun from my Arduino project came in really handy. You can probably make do with electrical tape although the connection wouldn't be as good. For a more robust cable, soldering is recommended.
  4. After connecting everything, Wifi and Bluetooth should work out of the box.
  5. Unlock with Apple Watch works sometimes. I haven't been able to get Continuity Camera working yet.
EOL
Very nice post. Although I do not plan to build this exactly, I specifically interested in the wifi+BT solution, particularly the custom USB connection to support the BT. Could you share an image of your cable/wiring?
 
Joined
May 29, 2018
Messages
42
Motherboard
Dell XPS 8930
CPU
i7-8700
Graphics
RX 580
Very nice post. Although I do not plan to build this exactly, I specifically interested in the wifi+BT solution, particularly the custom USB connection to support the BT. Could you share an image of your cable/wiring?
My wiring is all shrink wrapped so it won’t show you much unfortunately. But basically you just snip a regular usb cable and you’ll find 4 colored wires inside. Connect those 4 color wires to the corresponding pin. If you cannot figure out the correct pin for the color, the cable attached that’s for internal usb header is color coded I believe.

Look up usb cable color wires on google and you’ll see which wire is for what.
 
Joined
May 29, 2018
Messages
42
Motherboard
Dell XPS 8930
CPU
i7-8700
Graphics
RX 580
Update 6/26/19: I have finally mapped the remaining USB C ports. The only catch is all the USB ports on this system go over 15-port limit. So you may have to disable some ports, or you may have to use the remove USB port limit patch which gives me trouble sometimes (e.g. USB devices gets "unplugged" as I plug another USB device in)
 
Top