Jump to content

HP EliteDesk 800 G4 / G5 Mini with RX560x dGPU (hackintosh)


265 posts in this topic

Recommended Posts

I saw the OC-Little-Translated link earlier but I hadn't had a chance to look at it closely until now. @cankiulascmnfye


It is a little funny that ACPI is being touted as the more native way to do this when Apple devices themselves use USB maps.

Look under /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBHostPlatformProperties.kext/Contents/Info.plist and you will see a bunch of USB maps for various Macs that attach to various USB controllers (EHC1, EHC2, and XHC1 being the most common).
The devices that do have USB maps isn't very consistent, it seems to mostly be Ivy Bridge/Haswell in there. I did see the iMacPro1,1 in there though.

ACPI mapping is a totally valid way to do things, but I don't think it should be considered more "native" compared to a USB map.

  • Like 2
Link to comment
Share on other sites

@1Revenger1 I assume your are referring to the "Benefits of mapping USB ports via ACPI vs. using a USB port kext" of the guide, where the point of mapping USB ports via ACPI as being "more native" is made.I had chatgpt generate this section and it seems it has hallucinated in this regard. Thanks for the info. I will redact it later. But as far as running macOS on Wintel systems is concerned, I think mapping ports via ACPI is the best solution, if applicable. I have a ThinkPad T490 which has thunderbold via USB-C and mapping via ACPI doesn't really work because USB definitions are not limited to one file, so it turned ot to be more complicated, so I resorted to the kext metodod. Bur I had to redo this mapping several times in the last 2 years because of things changing in macOS which would not have been necessary if I could have managed to map the ports viia ACPI.

  • Like 1
Link to comment
Share on other sites

47 minutes ago, cankiulascmnfye said:

@1Revenger1 I assume your are referring to the "Benefits of mapping USB ports via ACPI vs. using a USB port kext" of the guide, where the point of mapping USB ports via ACPI as being "more native" is made.I had chatgpt generate this section and it seems it has hallucinated in this regard. Thanks for the info. I will redact it later. But as far as running macOS on Wintel systems is concerned, I think mapping ports via ACPI is the best solution, if applicable. I have a ThinkPad T490 which has thunderbold via USB-C and mapping via ACPI doesn't really work because USB definitions are not limited to one file, so it turned ot to be more complicated, so I resorted to the kext metodod. Bur I had to redo this mapping several times in the last 2 years because of things changing in macOS which would not have been necessary if I could have managed to map the ports viia ACPI.

If you don't mind, can I ask what you had to change between macOS versions?

Link to comment
Share on other sites

If it helps at all, I haven't ever had to change the USBPorts.kext mapping for this HP EliteDesk 800 G4/G5 Mini because of macOS changes (and I first finalized this USBPorts.kext mapping for macOS Catalina).  I reviewed the history of my USBPorts.kext changes and they were driven by experimentation with Bluetooth, defining USB-TypeC connector types and adding port comments.  No USB port mapping changes were driven by changes in macOS.  I did not attempt installations of macOS earlier than Catalina, so I can't comment on any USB port map changes that might be required for earlier versions of macOS.  This hack boots macOS versions Catalina through Sequoia with the exact same USBPorts.kext.

 

EDIT: I also made the required USBPorts.kext changes when experimenting with different SMBIOS models, but it's not hard to incorporate multiple SMBIOS models in a single USBPorts.kext so that the single kext accommodates multiple SMBIOS models.

Edited by deeveedee
  • Like 4
Link to comment
Share on other sites

On 8/12/2024 at 5:35 PM, ird said:

 

All the reading I've done so far seems to point to BlueToolFixup.kext as the culprit for incremental updates failing and forcing a full update (after of course, disabling SecureBootModel). Seems to be orthogonal to what SMBIOS one uses (so MacMini8,1 users should also see the same issue if they use BT).

 

I will have to wait until Apple issues the next incremental update to confirm this theory.

 

This theory is confirmed. I disabled SecureBoot as well as the 3 Bluetooth Kexts (IntelBTPatcher.kext, IntelBluetoothFirmware.kext and BlueToolFixup.kext) and Sonoma 14.7 incremental update worked just fine. Enabled secure boot as well as those BT kexts after the update.

 

@deeveedee You may want to document this either in this thread or the master thread regarding incremental updates in case someone else is also scratching their heads like I was.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

@ird That is a known (or at least highly suspected) issue for BlueToolFixup.kext, but I can certainly add it to Known Issues the next time I update them.  See other discussions like this.

 

EDIT: I don't have Bluetooth enabled (only enabling it for testing and to help others).  I'll leave it enabled and test with you to see if I can help to isolate the relationship between Bluetooth and OTA.

Edited by deeveedee
  • Like 2
Link to comment
Share on other sites

@ird EDIT: I have confirmed that incremental Sequoia updates fail with Bluetooth kexts.

 

EDIT2: My Bluetooth-related config.plist entries are attached.  Not pictured is the corresponding NVRAM Delete entries for bluetoothExternalDongleFailed and bluetoothInternalControllerInfo.

Spoiler

Screenshot2024-09-23at1_49_43PM.thumb.png.322738b7bea424c659f54a7f75f7668a.png

 

@EDIT3: Like you, I have confirmed that disabling BluetoolFixup.kext allows incremental macOS updates to complete without issues.  I have reported the problem here and hope that someone has found the cause/solution (hopefully not simply disabling BluetoolFixup.kext).

Edited by deeveedee
  • Like 3
Link to comment
Share on other sites

The HP laptop SATA cable/connector works perfectly in this EliteDesk 800 G4 Mini.  With the addition of this SATA solution and the m.2 slot 2 solution explained previously, all three available drive ports can be utilized (2 x m.2 and 1 x SATA) when the dGPU is installed.

 

  1. The HP laptop SATA cable/connector that I purchased has small tabs as shown.  I trimmed the small tabs using a razor blade.  After trimming the tabs, the SATA cable width perfectly matched that of an EliteDesk 800 G4 Mini SATA ribbon cable.
    Spoiler

    thumbnail_IMG_3358.jpg.3987583e2b313defc9811b9d897df3c8.jpg

  2. After trimming the tabs, I fed the new ribbon cable through the lock port on the back of the unit ( @ird's great suggestion) and inserted it into the SATA0 port.  Be sure to enable SATA0 in BIOS.
    Spoiler

    thumbnail_IMG_3359.jpg.cc45a419e8937e4e7291511ab6a2ef3d.jpg

  3. The laptop SATA cable is plenty long enough to allow slack when the dGPU is installed.
    Spoiler

    thumbnail_IMG_3360.thumb.jpg.0a5409cfe185662779daccc3d491a683.jpg

  4. With the cover installed, the SATA connector is easily accessible for use as a backup drive (e.g., Time Machine).  For those who want a second SSD and who don't want to perform the dGPU surgery for a second m.2 drive, this SATA option may be a good solution for you.
    Spoiler

    thumbnail_IMG_3362.thumb.jpg.3e54afba37df4ae44ff2d096000885fa.jpg

 

 

NOTES: 

  • As installed above, the SATA cable does not have a strain relief (the internal connector is not designed for external use).  There's plenty of slack to allow for cable movement, but don't pull the SATA cable far out of the back of the unit.  Creating a strain relief for the SATA cable should be as easy as applying hot glue or similar to the SATA cable on the inner side of the lock port.
  • The HP EliteDesk BIOS checks for the presence of the SATA caddy fan when a drive is connected to the SATA0 port.  The cooling fan on the dGPU satisfies the BIOS requirement for the SATA caddy fan, so the BIOS does not throw a SATA caddy fan error on boot.  You will notice that if you attempt to boot your EliteDesk Mini with the SATA drive, but without the SATA caddy fan or the dGPU fan, the BIOS will throw an error at boot.

 

This SATA drive solution works perfectly.

 

EDIT: For others who wish to purchase this cable, here's the description of what I purchased: "SATA Cable HP 17-by L22526-001 L22534-001 6017B0970101".  My cost was under $7 USD with shipping.

 

EDIT2: While it may be tempting to try a 3.5" SATA drive, it's not likely to work.  3.5" SATA drives typically have higher power requirements than 2.5" SATA drives (requiring additional power lines not present in our EliteDesk Mini SATA connector).  I tried it and the 3.5" SATA drive didn't even power up.  No harm done - it just didn't work.

Edited by deeveedee
  • Like 3
Link to comment
Share on other sites

Posted (edited)

Closer inspection of the 35W and 65W EliteDesk 800 G4 Mini motherboards revealed additional circuitry differences that may explain why the 35W board does not POST after MOSFETs and Inductor Choke Coil are added to the top-side of the board.  On the bottom-side of the 65W board in the space directly opposite the CPU Power MOSFETS is additional circuitry that is missing on the 35W board.  The missing components have feature sizes that can be soldered with a heatgun.  I would need to desolder the components from a 65W board and solder them onto a 35W board.  Tempting...

 

65W Motherboard

Spoiler

thumbnail_IMG_3366.jpg.fc5e40a7bb0b21e51391e8e86bdf4268.jpg

 

35W Motherboard (missing components)

Spoiler

thumbnail_IMG_3367.thumb.jpg.46212d6102d4f5475d0efd69ac0ebe17.jpg

 

 

EDIT: I am now seeing other differences between the populated components.  For those who loved the "Spot the Difference" puzzles when you were growing up, this takes the game to a whole new level. :hysterical:

Edited by deeveedee
  • Like 3
Link to comment
Share on other sites

This is a commonly known fix, but I'll post it here for those who may not know about it.  Now that we can dual-boot this hack with macOS and Windows (using separate NVMe SSDs for each OS), Windows Time and macOS Time are out-of-sync when using the default time sync settings of each OS. There are multiple ways to compensate for this time sync issue (adjusting the settings in macOS or in Windows).  I prefer to make the time sync adjustment in Windows, but that's just my preference.

 

Choose the method described here that works best for you.

  • Thanks 1
Link to comment
Share on other sites

47 minutes ago, deeveedee said:

This is a commonly known fix, but I'll post it here for those who may not know about it.  Now that we can dual-boot this hack with macOS and Windows (using separate NVMe SSDs for each OS), Windows Time and macOS Time are out-of-sync when using the default time sync settings of each OS. There are multiple ways to compensate for this time sync issue (adjusting the settings in macOS or in Windows).  I prefer to make the time sync adjustment in Windows, but that's just my preference.

 

Choose the method described here that works best for you.

 

Good tip. Btw, this will work for dual-booting any non-Windows OS with Windows (Linux+Windows etc.).

 

In addition, if you have bluetooth devices paired in Mac and want to reuse them in Windows, I've found this guide to be useful.

 

Edit: On a side note, registry key generation for both sync'ing time and BT keys is now supported in Hackintool as well, I believe.

 

 

Edited by ird
  • Thanks 1
Link to comment
Share on other sites

I don't see any compelling reasons to upgrade to Open Core 1.0.2 from 1.0.1, so if you're happy with your hack, you can leave it alone.  For those who want to upgrade to OC 1.0.2, the EFI changes for the EFI attached to Post #1 are below.  As of the writing of this post, the EFI attached to Post #1 is still based on OC 1.0.1 without any of the updates below.

 

Upgrading to Open Core 1.0.2

  • Upgrade BOOT/BOOTx64.efi
  • Upgrade OC/OpenCore.efi
  • Upgrade OC/Drivers/*.* (except HfsPlus.efi)
  • Upgrade OC/Tools/*.*
  • Upgrade OC/Kexts
    • AppleALC.kext 1.9.1 -> 1.9.2
    • Lilu.kext 1.6.8 -> 1.6.9
    • RestrictEvents.kext 1.1.4 -> 1.1.5
    • VirtualSMC.kext 1.3.3 -> 1.3.4
      •  SMCProcessor.kext 1.3.3 -> 1.3.4
      •  SMCSuperIO.kext 1.3.3 -> 1.3.4
    • WhateverGreen.kext 1.6.7 -> 1.6.8
  • OC/config.plist
    • Add UEFI > Unload

If you are using Bluetooth, 

  • BluetoolFixup.kext 2.6.9 Beta -> 2.6.9 Release
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

×
×
  • Create New...