Jump to content

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


54 posts in this topic

Recommended Posts

Well, it didn't take as long as you thought it would ONLY because you have that unique and incredible approach of troubleshooting. Always consistent and organized. 🙌 I would not say luck, there's a lot of knowledge behind to call this luck. It could have take more time but the end result is always the same - 100% working hack. Good job, again!

Link to comment
Share on other sites

Posted (edited)

I have attached the first fully working EFI to Post #1.  Enjoy!  The EFI is based on Open Core 1.0.0.

 

  • Instructions are included in Post #1
  • Methodology to develop this solution is here
Edited by deeveedee
  • Like 1
Link to comment
Share on other sites

Posted (edited)

For anyone who wants to experiment... I think there's an easy (albeit slight) RX560x performance increase that's realized when adding @0,name and @0,compatible properties to SSDT-GFX0.  A candidate SSDT is attached.  Replace the SSDT-GFX0 I provided in Post #1 with the attached SSDT and compare RX560x metal performance.

 

Details: I was testing two release candidates for my first EFI for Post #1 (one based on OC 0.9.9 and the other based on OC 1.0.0).  The OC 0.9.9 EFI produced slightly better RX560x GB5 Metal score. The only differences between the two EFIs (other than OC versions) was the additional boot-arg agdpmod-vit9696 and the addition of @0,name and @0,compatible properties to SSDT-GFX0 (which I removed, because I thought they were unnecessary).  I then added @0,name and @0,compatible properties to SSDT-GFX0 with OC 1.0.0 and observed the same RX560x performance increase.

 

If anyone is interested in helping me to determine whether I'm just imagining things, please test RX560x metal performance with the original EFI attached to Post #1 and with the same EFI but using the attached SSDT-GFX0.  Please report your findings if you notice a performance difference.  Thank you.

SSDT-GFX0.aml.zip

Edited by deeveedee
Link to comment
Share on other sites

Posted (edited)

Finally I had a few hours to play with my Mini. I was not able to boot the latest MacOS Sonoma 14.5 with your EFI but the fix was easy. Computer will stuck or restart on checking the iGPU firmware and I had to remove igfxfw=2 boot arg. After that everything was flawless. I also added the dGPU property. My dGPU is set to primary in BIOS and I am using DP->HDMI adapter connected directly to the dGPU. The other DP (iGPU) ports will not output anything with the current setup. Audio through the DP is also working. I have added Intel 8265 Wifi/BT card and it's working great for both Wifi and BT. 
Right before the welcome screen I see "No Output" for just a second. Guess that's a normal behaviour.
I see the igfxonln boot arg. Might not be needed since it's created for Intel iGPUs ? Will test the EFI without it when I have time again. :) 

 

On 5/11/2024 at 1:10 PM, deeveedee said:

If anyone is interested in helping me to determine whether I'm just imagining things, please test RX560x metal performance with the original EFI attached to Post #1 and with the same EFI but using the attached SSDT-GFX0.  Please report your findings if you notice a performance difference.  Thank you.

SSDT-GFX0.aml.zip 1.19 kB · 2 downloads

 

This boosted the performance with ~10% (at least in the benchmarks). I was able to get ~22000 in Geekbench. System is snappy and the temps of the dGPU are great. During the stress test it never exceeded 60'C. Only downside for me is no support for 4K@120Hz but hey... it's still impressive for the price :) 

Edited by CloverLeaf
  • Like 1
Link to comment
Share on other sites

Posted (edited)

@CloverLeaf I guess you'll need to experiment with IGPU DeviceProperties. With the posted EFI, all displays work perfectly with my DP->DVI adapters (displays connected to all 3 ports). Also, I don't see the 'No Output' message.

 

I haven't yet tested 14.5 and will when I'm prompted to install the final release.

 

Thanks for testing!

 

EDIT: @CloverLeaf I have changed my configuration to the following with Sonoma 14.4.1 and all is still working fine (even with igfxfw=2 boot-arg):

  • BiOS: Boot VGA: AMD Radeon
  • BIOS: Integrated Video: Checked
  • GFX0 DeviceProperties: Add @0,AAPL,boot-display=<01000000>

    With these settings, I still have all displays active and working.  Is it possible that you don't have the Integrated Video checkbox checked in BIOS? 

 

EDIT2: My RX560x GB5 Metal score with @0,name and @0,compatible (booting with OC 1.0.0).  My CPU is i5-8500T

Spoiler

Screenshot2024-05-12at3_04_46PM.thumb.png.1294b9813f89874e6499b97f4d6d7cd7.png

 

EDIT3: @CloverLeaf I think that my understanding of property @0,AAPL,boot-display was incorrect.  I don't think it has anything to do with selection of primary display.  I think it only affects display of the Apple boot logo as per this reference.  It's unlikely that this property has anything to do with the issues you are seeing and is probably not necessary.

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

Posted (edited)

For those who plan to use their EliteDesk 800 G4 / G5 Mini with a single display connected to the RX560x DP port, the following configuration and attached EFI may help to get you started:

  • config.plist: Change SMBIOS to iMac19,1 in PlatformInfo
  • config.plist: Set iGPU DeviceProperties: AAPL,ig-platform-id = <3000923E>
  • config.plist: Remove iGPU boot-args
  • Kexts: Change SMBIOS to iMac19,1 in DAGPM.kext
  • Kexts: Change SMBIOS to iMac19,1 in USBPorts.kext
  • BIOS: Set Boot VGA display to AMD Radeon

 

Note: The attached EFI is based on Open Core 1.0.0.  I may not be maintaining this EFI, so you may need to upgrade to newer versions of Open Core if necessary.

 

Also Note that the attached EFI does not include any AMD Radeon performance tweaks (e.g., there are no performance enhancing properties in DeviceProperties or SSDT-GFX0).  If you wish to experiment with performance enhancements, you'll need to add these.

 

EFI-iMac191-RX560x-OC100-01.zip

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

Posted (edited)

I ran the Unigine Heaven Benchmark just to see if it would run.  I think the results are respectable given that this is a mobile RX560x.  Without any performance enhancement properties in SSDT/DeviceProperties and with Benchmark set to "Extreme," the results are below.  I didn't try to change any benchmark settings from the Extreme defaults.

 

Unigine Heaven Benchmark: Extreme

Spoiler

Screenshot2024-05-13at7_13_03AM.png.219bb506d5b5ab0dfc8ede07586f31fb.png

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

Posted (edited)

Using the Open Core 1.0.0 EFI attached to Post #1, I upgraded from Sonoma 14.4.1 to 14.5 without issues.

 

About This Hack: Sonoma 14.5

Spoiler

Screenshot2024-05-13at12_52_45PM.png.5306e7ca9fc1c3a9f544a6e510828531.png

 

Note that SecureBootModel is already Disabled, so I did not need to change this for the Sonoma upgrade.

 

I'm currently testing this hack with the EFI attached to Post #1 (Macmini8,1 SMBIOS with DeviceProperties for both RX560x and UHD630 for multi-display operation), but I have only a single physical display connected to the RX560x DP port and I have Internal Graphics set as Boot VGA in BIOS.  This hack works fine with the single physical display and the multi-display EFI.  Note that with the single physical display connected to the RX560x DP port and the multi-display EFI, the "About This Hack" screen shot above reports graphics as Radeon RX 560x.

 

It appears to me that the multi-display EFI (configured for a combination of RX560x and UHD630 graphics ports) works just fine, regardless of the physical graphics configuration.

 

GB6 Metal Score after upgrade to Sonoma 14.5

Spoiler

Screenshot2024-05-13at1_15_27PM.png.770ffda5dcf64aec9853581c51aebeef.png

 

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

Posted (edited)

I have been playing with this "new" hack and am very impressed.  Has anyone attempted to install a "non-T" processor in a 35W EliteDesk 800 G4/G5 Mini?  My hack currently has an i5-8500T with an aluminum heatsink and a 150W power adapter.  I have an i5-8600 and a copper heatsink and am curious to know if the 65W CPU works with the RX560x dGPU.  If no one has tested with success, I may just have to try it myself.

 

Also, I have unsuccessfully tried to get this hack working without my connector patch (without WhateverGreen.kext and my SSDT-GFX0).  If anyone does have a working/tested graphics solution for this hack that is different from the connector patch that I created, I'd be interested in learning more about it.  When I was creating this solution, I searched and didn't find any published solutions for working RX560x graphics on this EliteDesk 800 G4 Mini.

Edited by deeveedee
Link to comment
Share on other sites

8 minutes ago, deeveedee said:

I have been playing with this "new" hack and am very impressed.  Has anyone attempted to install a "non-T" processor in a 35W EliteDesk 800 G4/G5 Mini?  My hack currently has an i5-8500T with an aluminum heatsink and a 150W power adapter.  I have an i5-8600 and a copper heatsink and am curious to know if the 65W CPU works with the RX560x dGPU.  If no one has tested with success, I may just have to try it myself.

 

Also, I have unsuccessfully tried to get this hack working without my connector patch (without WhateverGreen.kext and my SSDT-GFX0).  If anyone does have a working/tested graphics solution for this hack that is different from the connector patch that I created, I'd be interested in learning more about it.  When I was creating this solution, I searched and didn't find any published solutions for working RX560x graphics on this EliteDesk 800 G4 Mini.

 

As far as I know the 35W Mini's will work with "non-T" CPU as long as you have the appropriate cooling and power supply. In your case that's available so I would give it a try. I have a spare i7 8700 but I don't have the copper heatsink. 
I was not able to get the hack working without WateverGreend and SSDT-GFX0 as well, tried different combinations but... nada :) I think you are the first to dig so deep with the RX560x. 

PS - I tried to find perforated top cover and a copper heatsink before but no luck, neither new or used.

Link to comment
Share on other sites

Posted (edited)

If anyone is interested in helping to test this hack, there is one thing that I'd like help with.  As I mentioned in my known issues here, I'm suspicious of my connectors patch (in SSDT-GFX0).  While my patch (based on my work here) works, I think it should be confirmed or changed based on a WhateverGreen/Lilu debug log as described here.  If any testers are interested in producing the debug log to reveal the Radeon connectors detected by WEG on this hack, that would be interesting.

 

EDIT: Here's another thing for interested testers.  I noticed that a real iMac19,2 has an RX560x option, so I tested this hack's performance with the attached EFI (SMBIOS set to iMac19,2 in config.plist, DAGPM.kext and USBPorts.kext).  I also disabled DAGPM.kext in config.plist, since RX560x power management should be handled natively.  I didn't notice any performance differences (tested with GB6 Metal Benchmark) nor did I notice any power management differences (based on fan activity and not any tool measurements).

 

EDIT2: Without DAGPM.kext enabled, I experienced some strange hesitation when running GB6 and I lost the left mouse button.  I don't know the cause, but I enabled DAGPM.kext in my config.plist and am currently testing with DAGPM.kext enabled (SMBIOS iMac19,2).

 

EFI-iMac192-RX560x-OC100-01.zip

Edited by deeveedee
Enabled DAGPM.kext in attached EFI
Link to comment
Share on other sites

Posted (edited)

If you want your "About This Mac"  screen in Sonoma 14.5 to show your EliteDesk 800 info, you'll need to edit ~/Library/Preferences/com.apple.SystemProfiler.plist.  The format for the "CPU" in com.apple.SystemProfiler.plist is 

Description, Date

For example, for my About This Mac screen below, I changed all instances of CPU description in com.apple.SystemProfiler.plist to "HP EliteDesk 800 G4 Mini, 2018" (without quotes).  The iMac descriptions in my com.apple.SystemProfiler.plist become "iMac (HP EliteDesk 800 G4 Mini, 2018)" and the MacMini instances become "Mac mini (HP EliteDesk 800 G4 Mini, 2018)" (without quotes).

About This Mac (iMac19,2)

Spoiler

Screenshot2024-05-15at12_08_42PM.png.6c58a7134f7e1f0131533257ab8b02e4.png

 

My GB6 scores with SMBIOS iMac19,2

Spoiler

Screenshot2024-05-16at5_42_30AM.png.67a392a52e29af8ddebfd062e7f330ac.png

 

EDIT: Performance on this hack, even with i5-8500T, is phenomenal.  This little hack is very responsive.  The RX560x graphics acceleration over the UHD630 iGPU makes a big difference.

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

22 hours ago, deeveedee said:

EDIT: Performance on this hack, even with i5-8500T, is phenomenal.  This little hack is very responsive.  The RX560x graphics acceleration over the UHD630 iGPU makes a big difference.

 

Do you actually see the difference in day-to-day tasks ? It's working just fine but unless I push it with something graphically intense I don't see any difference between the iGPU and dGPU. I am planning to install Windows 11 on it and put it under one of the TVs at my house for some old school games :) 

Link to comment
Share on other sites

Posted (edited)

Without any basis other than naive optimism, I am expecting Apple to support Intel-based Macs in macOS 15.  If that's the case, I'll continue to support this thread.  If Apple does not include Intel-based Macs in macOS 15, then I won't be spending much more effort on this thread.  The EFIs that I have posted (MacMini8,1, iMac19,1 and iMac19,2) are working very well with the caveats listed here.

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

Posted (edited)

This problem is solved.  See EDIT2 in this post for the solution.

 

I just discovered that when using SMBIOS iMac19,2, my hack wakes to blackscreen.  The only way I found to recover is <Ctrl><Option><Power Button> to reset.  Sleep / Wake works perfectly when I use SMBIOS Macmini8,1.  Since SMBIOS Macmini8,1 is my baseline for this hack, fixing iMac19,x wake is a low priority for me.  I welcome help from others to fix this.  It is possible that the problem is caused by my DP->DVI graphics adapters (which caused UHD630 iGPU sleep/wake problems for me that I need to resolve by adding DeviceProperty No-hda-gfx in my original EliteDesk 800 G4/G5 Mini Solution).

 

I unsuccessfully tried to resolve the iMac19,2 black screen on wake with boot-args darkwake=0 and darkwake=2.  I also tried replacing hda-gfx with No-hda-gfx in PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x1), but that didn't fix the blackscreen-on-wake either.

 

I am documenting my issues and observations here.  If you find a solution to any of the reported problems, please post your fix.  While guesses can be helpful, any suggested fixes would be much more helpful if you first tested and proved them before posting. Thank you.

 

EDIT: Need to look at com.apple.PowerManagement plists in /Library/Preferences.  It's possible that I need to delete these and recreate power management settings, since I'm switching between SMBIOS models during testing (and MM81 was the first SMBIOS I tested).

 

EDIT2: I tested SMBIOS iMac19,2 after deleting PowerManagement plists and recreating PowerManagement settings.  Still wakes to black screen.  I then replaced the iGPU headless frame buffer property with the iGPU DeviceProperties from my Macmini8,1 EFI.  iMac19,2 sleep/wake works perfectly without a headless iGPU and the hack boots much more quickly.  For whatever reason, this hack doesn't like to be headless.  But who does?

Edited by deeveedee
Link to comment
Share on other sites

Posted (edited)

This hack ended up being way too boring.  I was hoping for more of a challenge.  To spice things up a little, I have ordered a 230W power supply and components to convert this 35W rig into a 65W rig with i7-8700CPU.  The plan is to solder the missing MOSFETS and Power Inductor Choke Coil  onto the motherboard and replace the aluminum CPU heatsink with a copper heatsink to see if this hack will run reliably with the RX560x and 65W CPU.  I'll report back when I have an update.

 

EDIT: I have the components to attempt an alternate strategy first.  I'm going to attempt to install the dGPU PCI connector on a 65W G4 Motherboard.  With a heat gun rework station and solder paste, I think this approach may actually be easier than attempting to solder the MOSFETS.

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

Sounds like a fun project. I don't want to ruin your idea but my i7 8700 in HP Z2 G4 goes over 90'C easily with way better cooler than the Mini's one. Some power limits could possibly help. 

Link to comment
Share on other sites

Posted (edited)

@CloverLeaf  No worries - you're not ruining the idea. G4 Minis have restrictive PL1/PL2 power limits that throttle max CPU. You can learn more about that in my original G4/G5 thread. Performance is still good (and with G4, performance is better with higher wattage supply). If you find my analysis through links in the other thread, you'll find that it's tested extensively. The minis will never match unrestricted power limits (no matter what cooling measures we add to them), but for their size, they're quite good.

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

Posted (edited)

I hope you can all live vicariously through me as I perform surgery on my EliteDesk Mini mother board.  Details are below...

 

Circuit board rework is NOT my area of expertise, so please understand that my experience is likely very different from that of a professional (or the hobbiest who does this stuff on a regular basis).  If a simple component change could produce a working 65W motherboard with dGPU connector, I determined that there are two ways to create a "65W" motherboard with a PCI connector for the dGPU:

  1. Solder a PCI dGPU connector onto a 65W motherboard
  2. Solder the missing MOSFETs and Power Inductor Choke Coil onto a 35W Board (a board that already has the PCI dGPU connector)

I determined that Option 1 (soldering a PCI connector onto a 65W board) is not possible for me with the tools that I have.  I have a soldering heat gun, solder paste and other tools for occasional circuit board rework (NOT my area of expertise).  These HP Mini boards are multi-layer with substantial ground and power planes that draw heat away from the solder points.  AND the boards are tightly populated.  AND the boards are double-sided (tiny components on both sides of the board).  I don't have a spare PCI dGPU connector, which means that I would need to remove the connector from a 35W board.  The amount of heat required to de-solder the PCI connector with a heat gun would melt the plastic PCI connector.  The only way that I know to safely de-solder this connector without damaging the connector is with a hot plate (heating the opposite side of the board), but that isn't possible with components on the other side of the board and would require substantial heat because of the multiple planes.  Option 1 is a no go for me.

 

I attempted Option 2 by first depopulating the required MOSFETS and Power Inductor Choke Coil from a 65W board.  Because the motherboard has numerous planes with substantial power and ground planes, I needed my heat gun temp to be 700F (~370 C) for extended periods.  This was very risky, because nearby capacitors have plastic parts that melted and I risked blowing off nearby small components with the air flow.  I was also concerned that heating the board might cause small components to drop off of the opposite side.  After I successfully removed the MOSETS and Coil from the 65W Board (which went much better than I though it would), I cleaned up the 65W board and attempted to boot the modified 65W board with a 35W CPU.  The board would not even POST.  The CPU fan cycled on and off with no sign of any other life, no beeps and no display.  The board was dead.  I used the same heat gun process to restore the missing components to the 65W board.  The board worked again!  I was amazed.  My conclusion is that there is more to a "35W -> 65W" conversion than installing the missing MOSFETS and Coil.  I'm extrapolating from my 65W board experience, but I don't think that adding the components to a 35W board will make it a 65W board.  There is something else that is different about 35W and 65W boards.

 

The bottom line: I'm amazed that my 65W board still works after removing and reinstalling the components and I'm not inclined to attempt the modification of my 35W board (which is the only 35W board that I have at this time).  My next test will be of the unmodified 35W board with a 230W power supply and 65W CPU.

 

EDIT: An interesting but not surprising observation - My Macmini8,1 EFI attached to Post #1 works just fine without the Radeon dGPU.  While not a goal for me at this time, it's quite possible that a single Open Core EFI for the EliteDesk 800 G4 Mini will support hacks with and without the Radeon dGPU.

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

Posted (edited)

My 230W power supply arrived and I was finally able to free up an i5-8600 65W CPU.  The 35W HP EliteDesk 800 G4 Mini with RX560x appears to be fully compatible with the 65W i5-8600 CPU.  There were no errors during POST and macOS booted without issues.  GeekBench benchmarks ran without issues.  Below is a comparison of CPU and Graphics performance.  CPU benchmarks are with GB5 and GPU benchmarks are with GB6.   I'm using a copper heatsink with the 65W CPU and an aluminum heatsink with the 35W CPU.

 

i5-8500T 35W CPU GB5 (911 Single Core / 4617 Multi-Core)

Spoiler

Screenshot2024-05-23at4_49_18PM.png.ae4dc2e744c11d060ae8fe1819127a22.png

 

i5-8600 65W CPU GB5 (1123 Single Core / 5605 Multi-Core)

Spoiler

Screenshot2024-05-24at12_11_33PM.png.2ceb7b05d0f0e6ffd47134f30917b675.png

 

RX560x GB6 Metal with i5-8500T 35W CPU (23454)

Spoiler

Screenshot2024-05-23at4_45_06PM.png.e26ab72b1d015b2a351ebd99898c0e14.png

 

RX560x GB6 Metal with i5-8600 65W CPU (23548)

Spoiler

Screenshot2024-05-24at12_19_36PM.png.be1d804d086b54b8fdd6a593d9adecc9.png

 

EDIT: My system configuration for these tests is as follows:

  • HP EliteDesk 800 G4 Mini 35W with 230W Power Supply
  • BIOS: 02.27.00 Rev.A
  • Memory: 32GB (2 x 16GB) DDR4-2666
  • SSD: M.2 NVMe 500 GB WD SN750
  • Graphics: AMD Radeon RX560x 4GB DDR5 and Intel UHD630 (DP->DVI adapters)
  • macOS: Sonoma 14.5
  • SMBIOS: Macmini8,1
Edited by deeveedee
Link to comment
Share on other sites

Posted (edited)

I attempted to perform benchmarks with an i7-8700 65W CPU, but my 35W Mini shut down during the GB5 CPU benchmark.  There were no POST errors when booting the 35W Mini with i7-8700 and macOS booted without issues.  The CPU fan (with copper heatsink) spun up considerably during the benchmark.  No permanent damage was done, as the Mini booted up without issues after shutting itself down.

 

It does appear that the i7-8700 requires the full complement of MOSFETS / Power Inductor Choke Coils on the 65W Mini.

 

EDIT: I measured i5-8600 CPU power / temps with Intel Power Gadget.  According to Power Gadget, Pkg Power exceeded 80W and CPU Pkg Temps reached ~90C.

Spoiler

Screenshot2024-05-24at2_51_58PM.thumb.png.63227c660dfb4506295ea71396330089.png

 

 

EDIT2: I read here that i7-8700 power draw can reach 130W.  Here, it says that i5-8600 power draw can reach 105W.  Note that the 65W TDP published by Intel for both i5-8600 and i7-8700 can't be used when assessing total actual power draw for a system.

 

EDIT3: If I get the chance, I will extract PL1/PL2 limits on this HP EliteDesk 800 G4 Mini 35W.  Based on these test results, it appears that the 65W and 35W units have the same PL1/PL2 limits (which makes sense since they appear to have the same BIOS).  It appears that the 35W units don't do anything to restrict the CPU any more than the 65W units restrict CPU.  The method to extract/assess PL1/PL2 is documented here.

 

EDIT4: According to TechPowerUp here, the max power draw of the RX560x is 75W.  While this is a very rough total system power estimate, combining the 105W i5-8600 with the 75W RX560x yields a total Max power consumption of 180W (without factoring in power consumption of the other system components including RAM, Motherboard, SSD).  I recognize that the power limits in the HP BIOS will restrict CPU power, but this total power estimate suggests that a 150W power adapter is insufficient if expecting to max-out the capabilities of this HP Mini.

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

 Share

×
×
  • Create New...