Jump to content

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


270 posts in this topic

Recommended Posts

Posted (edited)

@ird The EFI that I attached to Post #1 boots macOS Catalina.  I don't have much premium content to test, but it appears to me that DRM works in Catalina with my MM8,1 SMBIOS and no special DRM "tricks."  I don't know how far we need to revert to older macOS versions (I only tested Catalina), but an option to watch DRM content may simply be to add another volume with an older macOS version.

 

EDIT: over at MacRumors, others report that DRM works in Monterey.  I haven't yet tested to know if this is true for both real Macs and hacks.

 

EDIT2: I tested Monterey 12.7.6 with SMBIOS MM8,1 and DRM is broken in Monterey. I'm testing DRM with FairPlay 1.x test from here.

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

22 hours ago, deeveedee said:

EDIT3: Leaving the post below, but I now believe that I never tested Unigine Valley benchmarks in Full-Screen mode on an iGPU-connected display.  The results below are no longer surprising to me, because Unigine Valley is not a Metal benchmark (it was released in 2013 - 11 years ago as of this post).  To summarize, Unigine Vallue benchmarks demonstrate full dGPU graphics acceleration (not Metal) on dGPU and iGPU-connected displays in Windowed (not Full-Screen) mode and full dGPU acceleration (not Metal) on a dGPU-connected display in Full-Screen mode.  GFXBench Metal (a Metal Benchmark) is fully accelerated in Full-Screen mode on both dGPU and iGPU-connected displays.

 

=====================================

 

I'm performing new dGPU performance testing and I am finding that if I run Unigine Valley benchmark in Full Screen mode on an iGPU-connected display, the benchmark runs at iGPU frame-rates (pathetic).  If I run Unigine Valley benchmark in "Windowed" mode on an iGPU-connected display, it runs at RX560x-accelerated frame-rates (excellent).

 

I could have sworn that I tested Unigine Valley full-screen mode before, so at this time I feel that these results are different from what I had observed when testing here.  I'll investigate to figure out what I changed to cause this.  I am currently running with the EFI that I posted in Post #1.  I have tested CFG,CFG_FB_LIMIT = 0 and 2 and the results are the same, so the new observed full-screen Unigine Valley benchmarks are not caused by CFG,CFG_FB_LIMIT.  I'm currently testing in Sonoma 14.6.1.

 

EDIT: I duplicated these "new" full-screen Unigine Valley benchmarks in Sequoia Beta 6.

 

EDIT2: With the same EFI used to test Unigine Valley benchmark above, GFXBench Metal benchmark runs fully accelerated by RX560x dGPU in Full-Screen mode on dGpu AND iGPU-connected displays... so, at this time, the full-screen issue on a iGPU-connected display is only with Unigine Valley.

 

@deeveedee : Your observation is correct. Unigine benchmarks (Heaven and Valley) on macOS are for erstwhile OpenGL API. macOS does not natively support OpenGL's successor: Vulkan API but supports Apple's proprietary Metal API. One of the things that changed with newer APIs is how the window management is handled. Exclusive access to low level HW (GPU in this case), is selectively enabled in certain cases and barred in others when you have one GPU responsible for 3D acceleration while the other is compositing (i.e., blending accelerated and non-accelerated/other windows). Your observation in the behavior is consistent with how it's supposed to work. So, all good. Microsoft also made some changes with the latest version of DX12, so much so that they discourage exclusive full-screen mode for 3D games and want the "compositor" to handle even 3D accelerated windows. Some of this has to do with "stability" (if a bad full screen app hangs, it will take the system down with it).

 

2 hours ago, deeveedee said:

@ird The EFI that I attached to Post #1 boots macOS Catalina.  I don't have much premium content to test, but it appears to me that DRM works in Catalina with my MM8,1 SMBIOS and no special DRM "tricks."  I don't know how far we need to revert to older macOS versions (I only tested Catalina), but an option to watch DRM content may simply be to add another volume with an older macOS version.

 

EDIT: over at MacRumors, others report that DRM works in Monterey.  I haven't yet tested to know if this is true for both real Macs and hacks.

 

EDIT2: I tested Monterey 12.7.6 with SMBIOS MM8,1 and DRM is broken in Monterey. I'm testing DRM with FairPlay 1.x test from here.

 

Thank you for this detail, this is helpful! I suspect that might have to do with an older version/SW based DRM? In either case, DRM has caused me much headache and I'm not sure there is a good solution for that with iGPU enabled but no Apple certificates installed in the GuC firmware.

  • Thanks 1
Link to comment
Share on other sites

23 hours ago, deeveedee said:

I disassembled my RX560x card to capture the photos below (and to clean-off the dust and apply new thermal paste).  The variant of the AMD chipset on this card (with AMD 216-0909018) is the "embedded" version that is also on the Lenovo Yoga All-In-One motherboard.  Based on brief searching, it appears that our RX560x chipset is different from what would normally be on a discrete RX560 graphics card.  I haven't searched extensively for chipset specs and am hoping that based on these photos, others might determine more about our RX560x.

 

  Reveal hidden contents

RX560x-1.thumb.jpg.27da9bd42831160a1efc2f827ee1c3be.jpg

 

  Reveal hidden contents

RX560x-2.thumb.jpg.6b144b080c33e76bde0ae4091bb429cb.jpg

 

  Reveal hidden contents

RX560x-4.thumb.jpg.18aebdb73c85848831a910dfaa388b9a.jpg

 

  Reveal hidden contents

RX560x-3.thumb.jpg.52a63b1785707ebdec00f0ac7bd45de8.jpg

 

 

Missed this. Your observation about this SKU being "embedded" is correct, AFAIK. The number specifically refers to BGA variant that is "soldered" down on motherboards vs. other packaging variants that are shipped out to discrete GPU board partners. Actual silicon wise, it should be no different than the dGPU variants (give or take a few shaders fused or enabled). Typically, lower binned silicon is marked for embedded variants as they are thermally constrained and not expected to be overclocked or pushed to limits; also the reason why many manufacturers may go with slower GDDR memory to cut costs.

  • Thanks 1
Link to comment
Share on other sites

6 hours ago, ird said:

One of the things that changed with newer APIs is how the window management is handled. Exclusive access to low level HW (GPU in this case), is selectively enabled in certain cases and barred in others when you have one GPU responsible for 3D acceleration...

 

That makes sense.  I just tested two simultaneous instances of Unigine Valley "windowed" (one window on a dGPU-connected display and one window on an iGPU-connected display).  Both windowed displays are accelerated by the dGPU (at half the frame rate of a single windowed instance running by itself).  Also, no surprise, but if I simultaneously run two full-screen instances of Unigine Valley  (one full-screen instance on the dGPU-connected display and one full-screen instance on the iGPU-connected display), the dGPU-connected full-screen display is accelerated by the dGPU and the iGPU-connected full-screen display is accelerated by the iGPU.  Again, no surprises.

 

I am actually typing this with two windowed instances of Unigine Valley running (one window on each of two displays) and Safari isn't skipping a beat (since the dGPU is handling all of the Unigine Valley graphics and the Intel CPU / iGPU is virtually unused.  I would not be able to do this without the dGPU.

 

One other note - I replaced the factory-installed thermal paste on the RX 560x with Noctua NT-H1 and don't see any temp differences.  The factory paste is decent (or the previous owner already replaced the thermal paste).

  • Like 2
Link to comment
Share on other sites

Posted (edited)

After upgrading from Sequoia Beta 6 -> Beta 7, I observed the best GB6 Metal benchmark that I have observed on this hack:

Spoiler

Screenshot2024-08-20at2_07_21PM.png.88b3ba7d256c802d33ddda9e8cd6813f.png

 

About this hack

Spoiler

Screenshot2024-08-20at1_45_10PM.png.d05fb8f1ff7a993061a4d1337ac24a67.png

 

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

Posted (edited)

Performance on this hack continues to amaze me.  The only downside to this hack (for me) is that the second m.2 2280 slot is blocked by the dGPU.  This thread (improperly titled as a G3 - it must be a G4 or G5 Mini) claims that it is possible to install a 2230 SSD in the m.2 Wi-Fi slot.  There are properly-keyed m.2 2230 SSDs available for purchase, so I do not think the adapter is necessary.

 

I do not have any properly-keyed 2230 SSDs (or an adapter).  Is anyone able to test an m.2 2230 SSD in the Wi-Fi slot of this hack?  If so, I'd love to see your compatibility / performance test results.

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

1 hour ago, deeveedee said:

Performance on this hack continues to amaze me.  The only downside to this hack (for me) is that the second m.2 2280 slot is blocked by the dGPU.  This thread (improperly titled as a G3 - it must be a G4 or G5 Mini) claims that it is possible to install a 2230 SSD in the m.2 Wi-Fi slot.  There are properly-keyed m.2 2230 SSDs available for purchase, so I do not think the adapter is necessary.

 

I do not have any properly-keyed 2230 SSDs (or an adapter).  Is anyone able to test an m.2 2230 SSD in the Wi-Fi slot of this hack?  If so, I'd love to see your compatibility / performance test results.


i agree with you, the loss of second NVMe slot was something that made me gave up dual boot with windows (I prefer separate drives as I experienced data loss before). There is no way with dgpu to get this unlike cutting out the hdd bracket in non-gpu version.

 

As for WiFi-to-NVMe, I’ve used adapters before and they definitely work (cnvi slots have issues but thankfully elitedesks are not one of those). They are limited to pcie 1x speeds though. I haven’t tried it myself as I need WiFi but here’s a guy on YouTube that has, on G4/G5: 

 

Spoiler

 

 

Edited by ird
Corrected typos, added video link under spoiler tag
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Btw slightly off topic, but because there was a question on using the wifi m.2 slot for other peripherals I wanted to confirm that it does support other PCIe A+E devices. I have a second HP Elitedesk 800 G4 mini with a Coral TPU (M.2 Accelerator A+E key) that's passed through to an Ubuntu Linux VM on Proxmox hypervisor that runs at PCIe 1x rates. For anyone interested I have drivers/instructions on my github page: hpe800g4dm_server/coral_tpu

Edited by ird
Corrected links
  • Like 1
Link to comment
Share on other sites

@ird Continuing the off-topic conversation, do you mind if I ask what applications you are running/developing for the Coral TPU?

Link to comment
Share on other sites

18 hours ago, deeveedee said:

@ird Continuing the off-topic conversation, do you mind if I ask what applications you are running/developing for the Coral TPU?

 

I've been trying to setup frigate with TPU acceleration but so far, it's been a pain as Coral drivers and SDKs don't seem to be updated for newer versions of python etc. I also host "cloud" for sharing files, pictures, local backup/archive on this server so face detection for my home pictures/videos would be good. Yet to find something that has good tpu integration. My realization so far has been much of coral infrastructure has been virtually "abandoned" by google unfortunately. To be fair, what I read about frigate was that intel iGPU now seems to have decent performance with OpenCL drivers, so the advantage difference of TPU could be narrowing. I'm yet to validate that claim, though.

Link to comment
Share on other sites

Posted (edited)

Upgrade from Sequoia Beta 7 -> Beta 8 proceeded without issues.

 

Interesting but not surprising result:  I used a single display during my Sequoia upgrade.  With a single display connected to a UHD630 DP port (no display connected to the RX 560x DP port), About This Mac shows the Graphics as UHD630.  With the EFI attached to Post #1, as long as a display is connected to the RX 560x DP port (in single and multi-display configurations), About This Mac shows the Graphics as RX 560x.

 

Screenshot2024-08-29at2_24_06PM.png.db4fe1f1719433078f3a10e81b984dd9.png

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

Does anyone have an M-keyed m.2 2230 NVMe card to test in the second (higher) M.2 slot?  I don't have a 2230 card to test, but it appears to me that the shorter 2230 m.2 card may fit in the second m.2 port when our RX 560x is installed.  The card will need to "bend" down toward the motherboard (as shown in the diagram below) to clear the RX 560x card, but even when bent down, the m.2 2230 card will maintain full electrical connectivity with the m.2 slot.

 

If the 2230 NVMe card does work in the second m.2 slot, we would just need to figure out a way to secure the card (should be easy).

 

Possible use of m.2 2230 NVMe SSD in second m.2 slot

Spoiler

Screenshot2024-08-29at4_34_48PM.png.ca64d0038527c6450ff29e51ae90065c.png

 

  • Like 3
Link to comment
Share on other sites

3 hours ago, deeveedee said:

Does anyone have an M-keyed m.2 2230 NVMe card to test in the second (higher) M.2 slot?  I don't have a 2230 card to test, but it appears to me that the shorter 2230 m.2 card may fit in the second m.2 port when our RX 560x is installed.  The card will need to "bend" down toward the motherboard (as shown in the diagram below) to clear the RX 560x card, but even when bent down, the m.2 2230 card will maintain full electrical connectivity with the m.2 slot.

 

If the 2230 NVMe card does work in the second m.2 slot, we would just need to figure out a way to secure the card (should be easy).

 

Possible use of m.2 2230 NVMe SSD in second m.2 slot

  Reveal hidden contents

Screenshot2024-08-29at4_34_48PM.png.ca64d0038527c6450ff29e51ae90065c.png

 

 

I have tried and unfortunately it doesn't fit. Even if it would some fit (I didn't have the courage to force it in), we'd need to insulate the top of the nvme as the underside of the GPU mounting plate is metal and can short bits out on the nvme.

 

EDIT1: If you notice, there is a large indent underneath the dgpu on the backplate for the connector but not where the slot starts. I believe other than hacking the backplate there is no other way. Haven't tried that yet, though.

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

@ird Thank you for testing.  I'm not saving this Mini for anything else, so I'm tempted to buy a 2230 NVMe card and modify the dGPU backplate.

  • Like 3
Link to comment
Share on other sites

@deeveedee @ird Has anyone of you tried modifying original usb SSDT Tables to map USBPORTs for this machine?, As i tried many times but don't have success to Map USBs using original USB-SSDT Fetched by Clover boot screen F4 Function.

Here i am attaching my works if some one can help to map USBs in original SSDT, I already have a SSDT mapped USB Tables but that are the custom Methods, I want to learn Adding Methods in Original tables.

 

SSDT-4-HP_XHC_P.aml --> Extracted using Xiasl by @ic005k (Original Untouched SSDT)
SSDT-4.aml --> Extracted using Clover r5156 F4 Function  (Original Untouched SSDT)
SSDT-USB-Edited.aml --> tried my self using @dreamwhite Guide  (Not Success)

SSDT-USB-Alternative --> Tried My self Using @AppleBreak Guide (Not Success)
The screenshot have USB types 0x03- USB 2/3 | 0x09-USB Type C With Switch | 0x0A- USB Type C ,  
@cankiulascmnfye Can you please check my work in these SSDT's so i can find where i am mistaken?


     image.png.9d3dadba0d1cb4e9afdc9060957110fb.png

SSDT-4-HP_XHC_P.aml SSDT-4.aml SSDT-USB-Alternative.aml SSDT-USB-Edited.aml

Edited by datafeedexpert
Spel checks
  • Like 1
Link to comment
Share on other sites

5 hours ago, deeveedee said:

@datafeedexpert I don't understand your question.  Are you saying that you do not want to use USBPorts.kext?  If not, why?

I Just want to Learn Modifying original USB Tables.

 

The advantage of using ACPI USB port mapping method.

1 - Kextless

2- USB ports are defined at the ACPI level and is unlikely to break because of future macOS updates

3 - Will work on any SMBIOS

4 - Does not affect other types of operating systems

Link to comment
Share on other sites

Posted (edited)
39 minutes ago, datafeedexpert said:

I Just want to Learn Modifying original USB Tables.

 

The advantage of using ACPI USB port mapping method.

1 - Kextless

2- USB ports are defined at the ACPI level and is unlikely to break because of future macOS updates

3 - Will work on any SMBIOS

4 - Does not affect other types of operating systems

 

Lerning is a legitimate reason - I encourage it.  #3 and #4 are also true for USBPorts.kext (with a minor change for #3).  #2 is unlikely to be a concern (even if there is a future version of macoS for Intel.  I'm not trying to dismiss your opinion - just want to make sure I understand why you are doing it.

 

EDIT: Regarding #1, USBPorts.kext is a codeless kext.  If you are able, I'd like to understand your perception of the risks and/or disadvantages of using a codeless kext vs. patching ACPI.  Over time, I have become very skeptical of the "vanilla" hack argument.

Edited by deeveedee
Link to comment
Share on other sites

8 hours ago, datafeedexpert said:

@deeveedee @ird Has anyone of you tried modifying original usb SSDT Tables to map USBPORTs for this machine?, As i tried many times but don't have success to Map USBs using original USB-SSDT Fetched by Clover boot screen F4 Function.

Here i am attaching my works if some one can help to map USBs in original SSDT, I already have a SSDT mapped USB Tables but that are the custom Methods, I want to learn Adding Methods in Original tables.

 

SSDT-4-HP_XHC_P.aml --> Extracted using Xiasl by @ic005k (Original Untouched SSDT)
SSDT-4.aml --> Extracted using Clover r5156 F4 Function  (Original Untouched SSDT)
SSDT-USB-Edited.aml --> tried my self using @dreamwhite Guide  (Not Success)

SSDT-USB-Alternative --> Tried My self Using @AppleBreak Guide (Not Success)
The screenshot have USB types 0x03- USB 2/3 | 0x09-USB Type C With Switch | 0x0A- USB Type C ,  
@cankiulascmnfye Can you please check my work in these SSDT's so i can find where i am mistaken?


     image.png.9d3dadba0d1cb4e9afdc9060957110fb.png

SSDT-4-HP_XHC_P.aml 3.28 kB · 0 downloads SSDT-4.aml 3.28 kB · 0 downloads SSDT-USB-Alternative.aml 4.2 kB · 0 downloads SSDT-USB-Edited.aml 3.5 kB · 0 downloads

 

I wrote a pretty extensive guide about to do this about 3 years ago: https://github.com/5T33Z0/OC-Little-Translated/tree/main/03_USB_Fixes/ACPI_Mapping_USB_Ports

 

The bottom line is: if you can't get it to work, start over, or find somebbody who does it for you or use a USB port mapping kext.

  • Like 2
Link to comment
Share on other sites

9 hours ago, datafeedexpert said:

I Just want to Learn Modifying original USB Tables.

 

The advantage of using ACPI USB port mapping method.

1 - Kextless

2- USB ports are defined at the ACPI level and is unlikely to break because of future macOS updates

3 - Will work on any SMBIOS

4 - Does not affect other types of operating systems

 

This is a great way to experiment and learn. I haven't done it myself but will certainly keep an eye on the progress you make. I concur with @deeveedee regarding the other point she made - while this is a great learning exercise, I don't think you should expect any performance/vanilla advantage as these tables as well as the codeless kext are loaded pretty much similarly before macOS. The universal SMBIOS sure seems like a genuine advantage though in case you are SMBIOS-hopping quite a bit.

Link to comment
Share on other sites

I would purchase a m.2 2230 NVMe SSD to test in the second m.2 slot if someone else can suggest a fully tested 2230 card that works with macOS.  I have a couple of physical configuration ideas, but won't propose them until I test the physical configurations myself.

 

I see the WD SN740 and KIOXIA BG5 (Apple uses Xioxia brand NVMe in some genuine Macs).  The 256GB modules are inexpensive and suitable for testing (if they are fully compatible with macOS).  Any recommendations (only fully tested options) would be greatly appreciated.  Thank you.

 

EDIT: another option might be creative use of the SATA port (using a mini SATA drive without a SATA drive caddy).

Edited by deeveedee
Link to comment
Share on other sites

2 hours ago, deeveedee said:

I would purchase a m.2 2230 NVMe SSD to test in the second m.2 slot if someone else can suggest a fully tested 2230 card that works with macOS.  I have a couple of physical configuration ideas, but won't propose them until I test the physical configurations myself.

 

I see the WD SN740 and KIOXIA BG5 (Apple uses Xioxia brand NVMe in some genuine Macs).  The 256GB modules are inexpensive and suitable for testing (if they are fully compatible with macOS).  Any recommendations (only fully tested options) would be greatly appreciated.  Thank you.

 

EDIT: another option might be creative use of the SATA port (using a mini SATA drive without a SATA drive caddy).

 

I've tested this Dell OEM nvme: Amazon.com: Toshiba(Kioxia) 256GB PCIe NVMe 2230 SSD (KBG40ZNS256G) (OEM), 30mm : Electronics

 

I can't say I've tested this extensively but this works.

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

Hi,

 

I'm using the EFI from the 1st post I have the HP Elitedesk 800 G4 35W with the RX560X DGPU installed, everything is working except the Ethernet, I tried to reinstall the IntelMausi kext and changed the order of the kext loading, am I missing something, I attached the EFI I'm using. The Ethernet is working fine in Windows, so it's not a hardware issue

 

Could somebody help me with this.

 

Thank you.

efi.zip

Edited by robi39
Link to comment
Share on other sites

@robi39 I ran Open Core's ocvalidate on your config.plist and see a bunch of errors.  I ran ocvalidate on the config.plist that I provide in my EFI attached to Post #1 and see no errors.  Please start again with the EFI I attached to Post #1 (making only the necessary changes for PlatformInfo) and test again.

 

EDIT: @robi39 Also, make sure that your BIOS is configured as specified in my BIOS configuration PDF document attached here.

 

EDIT2: @robi39 I downloaded the EFI attached to Post #1, inserted my private info into config.plist > PlatformInfo and rebooted.  I am typing this EDIT from my hack booted with the EFI attached to Post #1.  All works perfectly.

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

×
×
  • Create New...