Contribute
Register

[GUIDE] Catalina on HP EliteDesk 800 G4/G5 Mini - The Perfect MacMini8,1 Hackintosh - CLOVER & OC

I have added instructions here for modifying the HP EliteDesk 800 G4 Mini so that it easily accommodates two M.2 2280 NVMe SSD drives and one SATA HD / SSD. The instructions describe a modification of the SATA drive caddy that permits simultaneous installation of the M.2 and SATA drives.
 
Thanks for guide!Do feel the G4 mini is very hot running MacOS.
 
Thanks for guide!Do feel the G4 mini is very hot running MacOS.
No. It runs very cool and is silent. My fan hardly runs at all. I love this hack - it's awesome.
 
Ever since I figured out the framebuffer patching for the I7-8700T / UHD630 here, I have suspected that I specified device properties that are unnecessary. After a bit of experimentation, I have determined that I don't need to specify pipe properties or any device properties for a 4th "dummy" connector. I do, however, need to specify the indices, busids and flags. My test results are as follows:

Action Result
Remove busids (framebuffer-conX-busid) black screens
Remove device-id normal operation (defaults to 0x3e92 which is the detected device-id)
Remove pipes (framebuffer-conX-pipe) normal operation
Remove 4th "dummy" connector (framebuffer-con3) normal operation
Remove indices (framebuffer-conX-index) Single screen, flashing on and off
Remove flags (framebuffer-conX-flags) Black screens after wake from sleep; unable to remotely connect after wake from sleep


The following changes are included in the EFI in the archive attached to Post #1 in this thread:
  • Removed device-id
  • Removed framebuffer-conX-pipe properties
  • Removed 4th "dummy" connector framebuffer-con3 properties
My current Clover config.plist is attached to this post. If you use the attached config.plist, you must replace the XX-MASKED-XX values with your own (MLB, BoardSerialNumber, SerialNumber, SmUUID, CustomUUID). You can use Clover Configurator or your preferred plist editor to personalize your config.plist. Do NOT simply copy my provided config.plists (here or elsewhere in this thread) and use them without replacing the XX-MASKED-XX values.
 

Attachments

  • config.plist.zip
    2.3 KB · Views: 211
Last edited:
@Delek , Glad this guide helped you.

You forget about USB on m.2 socket
I setup WIFI/BT card (BT is working on HS14)

Good to know, thanks. I'm not using Wi-Fi / Bluetooth (yet), so this will help when I do. My system currently has the factory installed Intel Wi-Fi/Bluetooth card.

But it works with VoodooHDA.kext - but on it do not work HDMI audio(((

I have specified "no-hda-gfx" property in config.plist and do not define hda-gfx for reasons described at the bottom of this post. Did you try removing the no-hda-gfx property and defining hda-gfx before testing HDMI audio? Make sure that hda-gfx is defined in HDEF (you can use IORegistryExplorer to check). I have not setup HDMI audio (no HDAU device) and am not sure what VoodooHDA requires for working HDMI audio. If you need help, please post your debug files as described in Post #1.
 
Last edited:
Hi, I have another question, I using BCM94360NG which is natively support by Apple, in this mini Elitedesk, after install finished, the Bluetooth can't be driven, but the WiFi works fine. also I have tried intel 9560 and intel Ax200 using intelBluetoothInjector.kext, IntelBluetoothFirmware.kext for Bluetooth and itlwmx.kext for intel WiFi, all can't be driven.
I think the only method is using M.2 adapter to using apple BCM9430CS2, may be can solve the question.

If you haven't revised your USB port mapping for your M.2 bluetooth card, @Delek 's post here may solve your bluetooth issue.

@asleb This may apply to you, too.
 
Last edited:
I am posting this for education about WEG and am NOT proposing a solution without WEG. I am using WEG in my system and it works perfectly.
----------------------------------------------
I attempted to develop a UHD630 graphics solution that does not require WhateverGreen (WEG). My brute force approach duplicates the WhateverGreen graphics properties that I injected (with Clover) as described here. This non-WEG solution almost works, but has graphics glitches during boot (before login prompt) and sometimes boots to black screens, so clearly WEG is doing more than I understand. Posting this as an explanation of some of the magic in WEG. I am still using WEG for my UHD 630 graphics solution and don't expect to develop a solution without WEG.

In addition to removing WhateverGreen.kext, I modified my Clover config.plist to work without WEG as follows
  • Remove all but the AAPL,ig-platform-id graphics device property (0000923E)
  • Enable the following DSDT device renames (WEG was renaming these)
    • change GFX0 to IGPU
    • change HDAS to HDEF
    • change HECI to IMEI
  • Add the following kext patches
Name Find Replace Comment
com.apple.driver.AppleIntelCFLGraphicsFramebuffer 00000800
02000000
98000000
01010800
04000000
C7030000
10.15.5-CFL-3E920000-Con0-LVDS2DVI
com.apple.driver.AppleIntelCFLGraphicsFramebuffer 01050900
00040000
87010000
02020900
04000000
C7030000
10.15.5-CFL-3E920000-Con1-DP2DVI
com.apple.driver.AppleIntelCFLGraphicsFramebuffer 02040A00 00040000
87010000
03040A00
04000000 C7030000
10.15.5-CFL-3E920000-Con2-DP2DVI


The kext patches do the following
  • Add 1 (one) to each connector index (00 -> 01, 01 -> 02, 02 -> 03). Without this index change, my system would boot to a single display that flashed on and off
  • Change all connector types to DigitalDVI (my system has DP connectors, but I am using DP->DVI adapters. System booted to black screens without this connector type change and when I change connector types to DP.
  • Change all connector flags to 0x03C7. Without the change in flag values, displays remained black after sleep/wake and I could not remotely connect after sleep/wake.
  • Change Bus IDs 0, 5, 4 to 1, 2, 4 respectively. I determined this by trial and error. There may be other Bus IDs that work, but my system booted to black screens if I did not change the Bus IDs.
 
Last edited:
I'm posting this for those who are curious about VRAM and am not suggesting any changes. My configuration baseline is still running with 1536 MB VRAM which is the UHD 630 default and I don't see any performance benefits when running with 2048 MB VRAM.
------------------------------------------------------
The macOS supported UHD 630 VRAM sizes are 0x40000000 (1024 MB), 0x60000000 (1536 MB) and 0x80000000 (2048 MB). When graphics device property framebuffer-unifiedmem is unspecified, VRAM defaults to 1536 MB. When framebuffer-unifiedmem is set to 0x80000000 (Reverse Byte Order 0x00000080), VRAM is 2048 MB. I tried setting framebuffer-unifiedmem to 2048 MB, but don't notice any difference in graphics performance (as measured by GeekBench 5). The only difference I see is that macOS now reports 2048 MB VRAM.

*** NOTE *** This guide indicates that patching framebuffer-unifiedmem is not recommended.

Screen Shot 2020-07-04 at 9.09.02 AM.png
 
Last edited:
It's just for looks good! I uses 3072M!Because I have 64Gb DDR4 SDRAM.
 
EDIT: Faster and more reliable display wake appears to be achieved by adding the igfxonln=1 boot arg as described here. The EDID injection described below does not appear to be necessary.
--------------------------------------------------------
WARNING: After running with injected EDID properties described below, I have noticed a change in sleep/wake behavior. Sometimes my system does not sleep when left unattended and sometimes it wakes to dark screens. I have removed the injected EDID properties until I have more time to test. Without injected EDID properties, my system reliably and consistently sleeps/wakes. Displays may wake a few seconds more slowly, but I'd rather have reliable sleep/wake than occasionally have displays wake a few seconds faster.
---------------------------------------------------------
My displays wake from sleep even faster (now almost immediate) after injecting EDID (created with Hackintool) for each of my displays. I learned this tip in another forum that can't be linked to this post. I will add this to the config.plist that I include with a future EFI update attached to post #1 in this thread; however, users will need to generate their own EDID patches that are specific to their displays.

The EDID for each display is injected with graphics property key AAPL0X,override-no-connect, where X is the display number.
 
Last edited:
Back
Top