Contribute
Register

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

Joined
Sep 22, 2011
Messages
1,520
Motherboard
HP EliteDesk 800 G5 Mini
CPU
i9-9900
Graphics
UHD 630
Mac
  1. Mac mini
Mobile Phone
  1. iOS
***********************************************************************************
*** Click here for the thread dedicated to Big Sur installation on the HP EliteDesk 800 G4 / G5 Mini ***
***********************************************************************************

*******************************************************************************************
In this thread, I have fully documented the installation of macOS Catalina on my HP EliteDesk 800 G4 Mini. It is a PERFECT HackMini8,1 and is running very well for me without any issues. I hope this documentation helps you to install macOS on your hack. Please leave feedback if you think there is anything I can improve and let me know if you have any questions.
*******************************************************************************************

Background
This is my first "modern" hack supporting UEFI and my first hack using Clover "on-the-fly" patches. My previous hacks
  • Laptop: Thinkpad T61 / Nvidia NVS 140m
  • Laptop: Dell Latitude E6410 / Nvidia G3100m (Google "Catalina Latitude E6410" and look for user name deeveedee (old username tonyx86))
  • Desktop: Gigabyte G31 / GeForce 9800GT
  • Desktop: Biostar TH55HD / Sapphire Pulse RX580
are all perfectly running Catalina and I patched them all "manually" - all DSDT patches applied with MaciASL with virtually no Clover on-the-fly patching and all booted Legacy Clover. This UEFI hack was MUCH easier and took about 20 hours vs. a combined hundreds of hours for the old hacks. I wanted a hack that was a little more future proof and I think this is it. I hope you enjoy this as much as I am enjoying it. It is a perfect MacMini8,1.

Getting help with your hack
Before you ask for help, do your homework by reading ALL Known Issues here. If you want assistance with your hack or you have an issue that needs to be resolved, please post your question in this thread with your problem reporting files. If using OC, post your sanitized EFI (remove MLB, SystemSerialNumber, SystemUUID). If using CLOVER, use @black.dragon74 's problem reporting tool here. If macOS's Read-Only protections block your installation of black.dragon74's gen_debug script, please copy the attached gen_debug script to your Desktop, change script properties with the terminal command 'chmod a+x ~/Desktop/gen_debug' and run the script from your Desktop.

c06047206.png


My system specs
  • HP EliteDesk 800 G4 Mini (I7-8700T / UHD 630 / Q370 Chipset / 32GB DDR4 RAM)
  • 3 x DP Ports (connected to monitors using DP -> DVI adapters)
  • 6 x USB 3.1
  • 1 x USB Type-C 3.1
  • 2 x NVMe SSD (M.2 PCIe x4 2280/2230 combo ports)
  • 1 x SATA6 SSD
  • 1 x Intel Ethernet RJ-45
  • Conexant CX20632 Audio Codec
  • Unsupported M.2 PCIe x1 2230 Intel Wi-Fi. A possible solution is here, but I am NOT offering any support for this.

macOS Installation
  • See installation steps here
  • See Known Issues here for additional installation steps that may not yet be included in my attached config files
  • See CLOVER (UEFI) installation later in this first post
  • See OC (UEFI) draft EFI here
  • See BIOS configuration in attached BIOS configuration PDF document
  • See CLOVER EFI and /L/E kexts in attached EliteDesk.zip archive
  • See how I developed my installation methodology here
  • See references here
  • See instructions here for installing two M.2 2280 NVMe SSDs and one SATA HD / SSD

What is not working
  • Everything that I have tested is working perfectly

What is not tested
  • USB c 3.1 port (I have partially tested USB3.1 functionality of the port and it seems to work fine with the USBPorts.kext in the attached EliteDesk800.zip archive)
  • Wi-Fi / Bluetooth (intentional since I have not yet replaced my Intel card). A possible solution is here, but I am not offering any support for this.

What is working
  • Everything not mentioned above
  • Sleep / Wake
  • Multiple displays with IGPU graphics acceleration, hot pluggable display ports and DP->DVI adapters
  • USB 3.1 ports
  • Audio (internal speaker and headphone jack)
  • Ethernet
  • Microphone / front-right audio port (tested with CTIA-style / 4-connector headset)

Known Issues and their solutions

BIOS Version / Configuration
  • Version: 02.11.01 Rev.A, 02.12.00 Rev.A or 02.14.01 Rev.A
  • See attached Bios Configuration PDF document
  • Intel ME must be enabled for proper sleep / wake of UHD 630

Clover Configuration (I have migrated to Open Core. My Clover r5122 baseline (attached) will be my last Clover configuration)
  • Clover for UEFI booting only
  • Install Clover in the ESP
  • UEFI Drivers
    • Recommended drivers
      • DataHubDxe
    • File System drivers
      • ApfsDriverLoader
      • VBoxHfs
    • Memory fix drivers
      • OcQuirks (replaces AptioMemoryFix) (selecting this in CLOVER config also installs OpenRuntime)
  • Install RC scripts on target volume
  • Themes
    • Choose your desired theme

UHD 630 Framebuffer Patching
  • See here and here to understand my graphics properties for use with WhateverGreen.kext
  • Read this to see my attempt at graphics patching without WhateverGreen.kext (WEG) to get a better understanding of what WEG is doing

Current Versions
  • Catalina 10.15.7
  • OpenCore (UEFI) 0.6.7 - see EFI attached here
  • Clover (UEFI) r5122 (my last Clover version - I have switched to OpenCore)
  • Lilu.kext 1.5.1
  • WhateverGreen.kext 1.4.8
  • AppleALC.kext 1.5.8
  • IntelMausi.kext 1.0.5 (acidanthera version)
  • EFICheckDisabler.kext 0.5
  • RTCMemoryFixup.kext 1.0.7
  • VirtualSMC 1.2.1
 

Attachments

  • Hackintool Framebuffer info.png
    Hackintool Framebuffer info.png
    30.6 KB · Views: 1,105
  • GeekBench 5.png
    GeekBench 5.png
    69.9 KB · Views: 1,099
  • Geekbench 5 OpenCL.png
    Geekbench 5 OpenCL.png
    66.5 KB · Views: 894
  • Unigine Heaven Benchmark.png
    Unigine Heaven Benchmark.png
    56.9 KB · Views: 1,039
  • gen_debug.zip
    7.4 KB · Views: 504
  • About MacOS.png
    About MacOS.png
    55.7 KB · Views: 1,132
  • Screen Shot 2020-05-28 at 1.40.50 PM.png
    Screen Shot 2020-05-28 at 1.40.50 PM.png
    93.2 KB · Views: 1,025
  • Screen Shot 2020-05-28 at 1.41.59 PM.png
    Screen Shot 2020-05-28 at 1.41.59 PM.png
    89 KB · Views: 794
  • Screen Shot 2020-06-09 at 12.03.37 PM.png
    Screen Shot 2020-06-09 at 12.03.37 PM.png
    55 KB · Views: 735
  • c06047206.png
    c06047206.png
    35.9 KB · Views: 923
  • HP EliteDesk 800 G4 Mini BIOS Configuration.pdf
    60.4 KB · Views: 3,886
  • EliteDesk 800 G4 Mini - CLOVER r5122-v6.zip
    4.2 MB · Views: 1,752
Last edited:
Revision History
  • 26-May-2020: Created thread with draft content
  • 26-May-2020: Updated EliteDesk.zip archive attached to Post #1 to v0.6. This new version includes an updated SSDT-UIAC.aml that addresses the missing USB port issue explained in Known Issues.
  • 27-May-2020: Updated EliteDesk.zip archive attached to Post #1 to v0.7. This new version replaces IntelMausiEthernet.kext with IntelMausi.kext (Rev 1.0.2) to support the upgrade to 10.15.5. Also updated "About MacOS" attached to Post #1 for the new 10.15.5 macOS.
  • 28-May-2020: Added Geekbench 4 screenshot attachments to Post #1
  • 29-May-2020: Solved UHD 630 "VideoDecodersUnavailable" problem. Solution was to enable Intel ME in BIOS.
  • 01-Jun-2020: Updated the EliteDesk800.zip archive (v0.8) attached to Post #1 of this thread with the changes/additions described here.
  • 02-Jun-2020: Applied Catalina supplemental update 10.15.5.02
  • 02-Jun-2020: Added Clover configuration to Post #1
  • 03-Jun-2020: Updated the EliteDesk800.zip archive (v0.81) attached to Post #1 of this thread with the change described here.
  • 03-Jun-2020: Updated the EliteDesk800.zip archive (v0.82) attached to Post #1 of this thread with the change described here.
  • 05-Jun-2020: Upgraded to Clover r5119 using the Clover configuration in Post #1
  • 08-Jun-2020: Updated the EliteDesk800.zip archive (v0.9) attached to Post #1 of this thread with added SSDT-USBX.aml to EFI/CLOVER/ACPI/patched. See here for explanation.
  • 09-Jun-2020: Added GeekBench 5 Metal benchmark screenshot to Post #1
  • 09-Jun-2020: Attached "HP EliteDesk BIOS Configuration.pdf" document to Post #1
  • 10-Jun-2020: Updated the EliteDesk800.zip archive (v0.91) attached to Post #1 of this thread with new SSDT-PMCR (see here), enabled Clover's "Add MCHC" (see here) and added SSDT-PPMC (see here)
  • 12-Jun-2020: Added Catalina installation instructions link in Post #1
  • 28-Jun-2020: Added link in Post #1 with instructions for installing three SSDs/ HDs in the HP EliteDesk 800 G4 Mini
  • 15-Jul-2020: Updated EliteDesk.zip archive attached to Post #1 with version 1.0.
  • 15-Jul-2020: Updated macOS to 10.15.6
  • 21-Jul-2020: Added link for possible Intel Wi-Fi / Bluetooth solution to Post #1
  • 27-Aug-2020: Added BIOS ver. 02.12.00 Rev.A to Post #1 after testing with this HP BIOS update
  • 31-Aug-2020: Updated EliteDesk800.zip archive attached to Post #1. Includes latest Acidanthera kexts, SSDT injection of Device XSPI, additional graphics device properties found on real MacMini8,1.
  • 13-Sep-2020: Updated EliteDesk800.zip archive attached to Post #1. Includes EFI for CLOVER r5122 (including Quirks configuration in CLOVER config.plist for OcQuirks (replaces AptioMemoryFix) and OcQuirks / OpenRuntime drivers), adds graphics device properties that I had previously removed (explained here) and includes latest kexts from acidanthera
  • 24-Sep-2020: Upgraded to Catalina 10.15.7
  • 02-Oct-2020: Attached updated HP EliteDesk 800 BIOS Configuration PDF document (version 1.1) to Post #1. This updated version increase Video Memory Size to 512MB (from 64MB) and disables audio alerts during boot.
  • 22-Oct-2020: Attached updated EliteDesk800.zip (Rev 1.3) to Post #1. This updated version includes latest Acidanthera kexts, removes unnecessary UHD 630 graphics properties from config.plist, replaces USBInjectAll.kext/SSDT-UIAC.aml with USBPorts.kext and changes AppleALC layout-id to 20 (from 28).
  • 19-Nov-2020: Attached updated "EliteDesk 800 G4 Mini - CLOVER Rev 1.4.zip" archive to Post #1. This updated archive includes a revised CLOVER EFI with the following changes: Removed NVMeFix.kext, Updated USBPorts.kext, Update Lilu.kext, AppleALC.kext and WhateverGreen.kext. Removed ACPI/SSDT-USBX.aml (not needed with USBPorts.kext). USBPorts.kext now includes USB power properties from a real MacMini8,1 and correct port types for internal and Type C ports. Note that the LE folder (/Library/Extensions) in the updated archive also includes the updated kexts.
  • 11-December-2020: Attached updated "EliteDesk 800 G4 Mini - CLOVER r5122-v5.zip" archive to Post #1. This new archive includes updated Acidanthera kexts, disables HPET, reduces the number of CLOVER ACPI fixes and reduces the CLOVER driver set.
  • 4-January-2021: Attached an updated "EliteDesk 800 G4 Mini - CLOVER r5122-v6.zip" archive to Post #1. This new archive includes the changes listed here.
  • 5-January-2021: Updated CLOVER configuration in Post #1 to reflect reduced driver set as discussed here and here.
 
Last edited:
My methodology for developing this solution

  • Started by disassembling ACPI to confirm that it didn't contain any errors
  • I researched various BIOS suggestions and found that they were in agreement. I don't think my BIOS settings have any surprises.
  • I experimented with different CLOVER UEFI configurations (this is my first UEFI hack) and think I settled on a minimal set of required drivers. Found that KernelPM fix was required to boot. I kept Clover in verbose (-v) boot mode during initial installation / debugging.
  • I prefer to install kexts in /L/E, so my kext installation strategy is based on that preference. My reasoning for kext installation in /L/E follows the logic that @jaymonkey describes here.
  • Temporarily added USB port limit patch to permit Catalina USB installation. Then created SSDT-UIAC (using Hackintool) and removed port limit patch. Thank you @UtterDisbelief and @Feartech for their help here.
  • Researched Apple devices and selected MacMini8,1 as closest architectural match (CPU and graphics)
  • Inspected disassembled DSDT to observe device names for potential renaming or missing (e.g. GFX0, EC0, SAT0, HDAS, HECI). Note that Lilu/WhateverGreen handles video/audio renaming.
  • Created Clover config.plist with _OSI and _DSM renames and also EC0 and SAT0 renames
  • I added SSDT-XOSI.aml and SSDT-PMCR.aml to EFI/CLOVER/ACPI
  • Enabled typical Clover ACPI fixes (identifying and testing the need for these fixes will be ongoing)
  • Dropped DMAR and MATS tables after a bit of research (not certain this is needed)
  • Enabled PluginType after a bit of research
  • Added -disablegfxfirmware boot arg to resolve gfx firmware boot loop while I was trying to get my display working (before I established working FrameBuffer patching with WhateverGreen). After successfully implementing FB patching with WEG, removed -disablegfxfirmware boot arg.
  • Created device properties (in Clover config.plist) for IGPU / Framebuffers. This was the hardest part. LOTS OF TRIAL and ERROR since I'm using DP > DVI adapters with multiple displays. Attempted video with and without WEG and ended up staying with WEG. I got lucky with an accidental ig-platform-id mistake that actually kept IGPU acceleration from loading and allowed me to boot the Catalina installer. The incorrect ig-platform-id allowed me to boot the Catalina installer and see the display (single display) before I had a working FrameBuffer solution. Without this "accident" the Catalina installer booted to black screen. After extensive reading of Hackintool and WEG guides and other posts, I ended up manually creating my device properties and experimenting with different ig-platform-ids and port types. My approach was a methodical, brute-force trial and error elimination of the possibilities until I found one that worked (see here for a sample of my work). I suspect that my device properties currently include things that are unnecessary.
    Critical to my Framebuffer patching was enabling System Preferences > Sharing > Remote Login and Remote Management to allow me to "Remote Desktop" into my hack. Each failed Framebuffer patch resulted in a black screen. The only way to see the desktop was to remote into the hack. I disabled sharing after I was certain that my Framebuffer patching was working properly.
    Also critical to my Framebuffer patching: While trying to get a working Framebuffer patch with WEG, I discovered that I needed to use framebuffer-conX-type = 0x0004 (DigitalDVI) and NOT 0x0400 (DP) (even though my system has DP ports). This is because I'm using DP->DVI adapters.
  • While trying to get IGPU acceleration working with FrameBuffer patching, I added an AppleGraphicsDevicePolicy patch. I have confirmed that this AGDP patch is required for multiple displays on my HackMini8,1. Thank you @shuhung for his explanation here.
  • Set hibernatemode and proximitywake to 0 to address potential sleep issues and also disabled "Wake for Ethernet" and "Enable Power Nap"
  • I added No-hda-gfx device property to HDEF after finding that my system froze on sleep / wake. See here.
  • Removed -disablegfxfirmware boot arg which is not needed after successfully implementing FB patching with WEG.
 
Last edited:
References that helped me with this build
*** This is my first hack that uses Clover's on-the-fly patching (no manually applied DSDT patches). I think it's important to understand the basics of DSDT patching to appreciate why we're applying Clover's on-the-fly patches. Thank you @RehabMan for being a great teacher (and for always insisting on problem reporting files)
 
Last edited:
Known Issues and their solutions
  • (Solved. This will not be updated in the CLOVER EFI attached to Post #1 - I am switching to OC) CLOVER r5127 has known issues with Power Management when enabling CLOVER's SSDT->Generate->PluginType (see here). There are multiple ways to fix this CLOVER r5127 issue: 1) Disable CLOVER r5127's SSDT->Generate->PluginType and use an SSDT patch (like SSDT-PLUG that we use for OpenCore). -OR- 2) Add SSDT->PluginType=1 to CLOVER config.plist (in additon to SSDT->Generate->PluginType) -OR- 3) Upgrade to CLOVER r5128+ (the commit for this is here, so you may need an official release after r5128).
  • (Solved. This will not be included in CLOVER EFI archive attached to Post #1 - I am switching to OC) CLOVER r5122's "Fix SBUS" injects a bad SBUS.BUS0._DSM which causes an ACPI parse error at boot. See solution here.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1.). The SSD TRIM patch enabled in my CLOVER config.plist (KernelandKextPatches > KextsToPatch) is unnecessary for NVMe SSDs. SSD TRIM for the NVMe SSDs is still enabled without this patch. Solution is to disable this patch in the CLOVER config.plist. If you have a SATA SSD, you still need a solution to enable TRIM on non-Apple SATA SSDs.
  • (Still testing. Candidate solution included in the EliteDesk.zip archive attached to Post #1.) Following a reboot during macOS install/upgrade, real time clock may be lost. Simply acknowledging the RTC warning will permit the HP EliteDesk 800 G4 Mini to recover gracefully and the install / upgrade will resume without issues. The fix for this should be RTCMemoryFixup.kext with a custom rtcfx_exclude range as noted here. The proposed rtcfx_exclude range (along with RTCMemoryFixup.kext) is now included in the EFI archive attached to Post #1. The RTC issue is hard to reproduce on the G4 Mini, so I am still monitoring this.
  • (This will not be updated in the EFI attached to Post #1. If applicable to your system, you will need to make this change in your own system.) If you make SMBIOS changes while experimenting for best graphics/power management (e.g. change MacMini8,1 to iMac19,1), you will likely have to generate new USBPort mapping and delete extraneous com.apple.PowerManagement plists in /Library/Preferences. You may also need to reset keyboard modifier keys (if you changed any), reset Energy settings and check/reset power settings with Hackintool (e.g. proximitywake).
  • (Solved and included in the EFI attached to Post #1) USBPorts.kext has wrong HS14 port type and incorrect USB Sleep/Wake Power properties. See here.
  • (This will not be updated in the EFI attached to Post #1. If applicable to your system, you will need to make this change in your own system.) If you are applying this guide to an HP EliteDesk 800 G4/G5 that is NOT a mini and your system has more USB ports than the mini, the USB port mapping in this guide may not work for you. Your system may not boot with the USB port mapping in this guide. You will need to create your own USB port mapping. See here.
  • (Solved and included in the EFI attached to Post #1) When using AppleALC.kext for audio, the headphone port does not support CTIA style (4-connector) headset and microphone does not work. Solution is to upgrade to AppleALC.kext 1.5.5 as noted here.
  • (This will not be updated in the EFI attached to Post #1. If applicable to your system, you will need to make this change in your own system.) I will no longer be including Acidanthera's NVMeFix.kext in my EFI archive attached to Post #1. After experimenting with this kext, I have found that my system does not require it. If your system needs this kext, you will need to add this yourself.
  • (Solved and included in the EFI attached to Post #1) The audio properties for the CX20632 do not recognize both the line out and headphone ports. AppleALC.kext v1.5.3 and layout-id 20 fix this as noted here.
  • (Solved and included in the 'HP EliteDesk 800 BIOS Configuration.PDF' document attached to Post #1) It appears that I may have incorrectly configured 'Video Memory Size' (configured in BIOS) as described here. I am currently running with 'Video Memory Size' configured at 512MB (not 64MB). This change is reflected in the updated HP EliteDesk 800 BIOS Configuration PDF document attached to Post #1.
  • (This will not be updated in the EFI attached to Post #1. If applicable to your system, you will need to make this change in your own system.) The patched ACPI files (EFI/CLOVER/ACPI/patched) in the EliteDesk.zip archive attached to Post #1 are specific to macOS. They have not been patched for Windows or any other OS. If you are multi-booting your PC, using a boot loader to load nonMac OSes and your boot loader passes the patched ACPI to the booted OS, you may have problems with OSes other than macOS. Note that I am dual-booting my system with macOS and Windows, but my boot order defaults to macOS and I press F9 to boot Windows. I do not use a boot loader to boot Windows, so my patched ACPI does not need to support Windows (or any nonMac OS).
  • (This will not be updated in the EFI attached to Post #1. If applicable to your system, you will need to make this change in your own system.) The config.plist included in the EliteDesk.zip archive attached to Post #1 adds device property "no-hda-gfx" to HDEF ( PciRoot(0x0)/Pci(0x1F,0x3) ). I needed to add this to prevent an AppleALC kernel panic when waking from sleep, because I am using DP->DVI adapters. While this prevents the kernel panic, it also disables sound over DP. If you are using DP / HDMI connectors without adapters, you should remove the "no-hda-gfx" property so that sound works over DP / HDMI.
  • (This will not be updated in the EFI attached to Post #1. If applicable to your system, you will need to make this change in your own system.) The config.plist included in the EliteDesk.zip archive attached to Post #1 specifies DigitalDVI connectors in the graphics device properties. If you are using different display connectors (e.g. HDMI or DP), you will need to change the connector types in your config.plist. If you do change connector types, you may need to change connector BusIDs as well (e.g. BusID 0x01 is not valid for DP connector type).
  • (User action may be required) CPU Benchmarks may be less than those reported in this thread. CPU performance may be limited if your HP EliteDesk 800 G4 Mini has only one of the two memory slots populated as described here.
  • (FOR CLOVER Users: This will not be updated in the EFI attached to Post #1. If applicable to your system, you will need to make this change in your own system.) The config.plist included in the EliteDesk.zip archive attached to Post #1 specifies a Screen Resolution of 1680x1050. As described here, connecting displays with a native Screen Resolution other than 1680x1050 may result in booting to black screen. Solution is to change Screen Resolution in CLOVER config.plist to match the native Screen Resolution of the displays.
  • (This will not be updated in the EFI attached to Post #1. If applicable to your system, you will need to make this change in your own system.) The SMBIOS MacModel 'MacMini8,1' in the EFI included in the EliteDesk800.zip archive attached to Post #1 is optimal for 8th gen Intel CPU power management. If your system has a 9th gen Intel CPU, you may need to change the SMBIOS MacModel in your config.plist (e.g. iMac19,1 may be a better SMBIOS MacModel for 9th gen Intel CPU power management).
  • (Still testing. I am NOT offering any support for this.) Factory-installed Intel Wi-Fi / Bluetooth does not work. See possible solution here.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) IORegistry Explorer reveals an unnamed device that is named XSPI on a real MacMini8,1. I suspect this is purely cosmetic. See solution here.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) The SSDT-XOSI that I copied from the web has a typo. it incorrectly includes Windows Server 2008 ("Windows 2006.1"). I have removed "Windows 2006.1" and added newer versions of Windows 2010 in the SSDT-XOSI attached here.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) Displays may remain dark after wake from sleep - especially after repeated sleep / wake cycles. Displays wake if power is cycled on one display. Solution is the addition of the igfxonln=1 boot arg as described here.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) I replaced USBInjectAll.kext/SSDT-UIAC.aml with USBPorts.kext that includes the Bluetooth USB port. Originally, my SSDT-UIAC.aml USB port maps did not include the USB port for M.2 Bluetooth. This was intentional, because my system does not have a supported Wi-Fi/Bluetooth card. If you have a supported M.2 Wi-Fi / Bluetooth card, see solution here.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) There were unnecessary graphics device properties injected via my Clover config.plist as specified here. Solution is to remove these unnecessary properties.
  • (Solved - See mechanical modification here) The HP EliteDesk 800 G4 Mini has a mechanical design flaw that prevents simultaneous installation of two M.2 2280 NVMe SSDs and a SATA HD / SSD. Solution is to modify the SATA drive caddy as shown here.
  • (Solved - no further work required) After cloning my backup to a new NVMe SSD (using Carbon Copy), my displays did not work correctly. System would appear to boot properly, but after login, one display would go black. Solution is to rebuild kextcache as described here.
  • (Solved and included in the 'HP EliteDesk 800 BIOS Configuration.PDF' document attached to Post #1) When pressing F9 at start-up to display boot menu, the G4 Mini makes an annoying, loud beep. Solution is to disable startup sounds in BIOS configuration.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) SSDT-UIAC.aml in EFI/CLOVER/ACPI/patched does not include port mappings for the USB 3.1 Type C port. The HS10 and SS03 mappings are added in the updated SSDT_UIAC.aml here which is included in the EFI in EliteDesk.zip archive attached to Post #1.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) Audio "pop" during macOS startup (before login prompt). Solution is to uninstall CLOVER's AudioDxe.efi driver. I have removed this driver from the EliteDesk.zip archive attached to Post #1. A possible fix for this may be scheduled for a Clover release as per this commit.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) When first configuring my Clover config.plist, I enabled "ResetHDA" (Devices > Audio Properties). It does not appear that this is necessary. This change is included in the EliteDesk.zip archive attached to Post #1.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) A real MacMini 8,1 has ACPI Device (PPMC) but this device does not appear in the real MacMini8,1 IORegistry. I'm not sure why this device would be needed. The SSDT to inject Device (PPMC) is here and is included in the EliteDesk.zip archive attached to Post #1.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) A real MacMini8,1 has ACPI Device (MCHC). Solution is to enable "Add MCHC" in Clover's config.plist.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) Device (PMCR) is not loaded as viewed with IORegistry Explorer. The solution is to use the ACPI Device (PMCR) from a real MacMini8,1 (not a simplified fake Device (PMCR) ). With the real ACPI Device (PMCR), PMCR is loaded as viewed with IO Registry Explorer. See solution here.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) USB Power properties are not defined. Solution is to add SSDT-USBX.aml to EFI/CLOVER/ACPI/patched, with power properties extracted from a real MacMini8,1 DSDT.
  • (Solved. Cycle power on the new display) A new display may not be detected if the new display is plugged into an unused display port while the HP EliteDesk 800 G4 Mini is sleeping. Solution is to cycle power on the new display after waking the EliteDesk 800 G4 Mini. Cycling display power on the newly added display causes displays to be re-detected.
  • (Solved. Create a USB installer for upgrading macOS) macOS upgrades may not install when applied via the "normal" in-place macOS upgrade process. If the macOS upgrade fails, download the new macOS installer and create a USB installer. Install the new macOS to the target volume to be upgraded. The macOS installer will upgrade the macOS version on the target volume while retaining data / programs.
  • (Solved. Reboot a few times until normal display operation is restored) Immediately after applying Catalina supplemental update 10.15.5.02, Catalina booted to a single display. I need to cycle power on the blank displays after booting. This was not a problem with 10.15.5.01 and earlier. After a few boot cycles, display operation is back to normal. Multi-display works fine with 10.15.5.02.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) Unable to upgrade from 10.15.4 to 10.15.5 when using IntelMausiEthernet.kext. Solution is to switch to IntelMausi.kext.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) Some USB devices were not recognized. My SSDT-UIAC.aml was incomplete and did not specify all required USB port types (missing SSxx ports).
  • (No longer observed. This may have been fixed in Clover) Clover boot loader may default to Recovery volume after a normal shutdown. Work-around is to select your normal macOS volume. This may only happen when Clover is configured to boot LastBootedVolume and may be "fixable" by explicitly setting a boot volume (haven't tested this).
  • (No longer observed) At least one display blanks (sleeps) when plugging / unplugging USB device (observed in front USB 3.1 ports). Display wakes immediately on keyboard and mouse activity, so this is a minor issue but may be indicative of another issue. I believe that this was solved when I updated my SSDT-UIAC.aml to include SSxx ports.
  • (Solved - BIOS Issue, no changes in macOS) Safari has problems loading web pages after sleep / wake. I suspect that it might be related to embedded video on the pages (since I haven't observed the issue on "static" pages). Also observed video problem in AppStore after sleep/wake. Console: VideoDecodersUnavailable. See more details here. Solution was to enable Intel ME in BIOS settings.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) Display does not fully wake after resuming from sleep (needs an extra mouse or keyboard stimulus to fully wake). Solution is to change boot arg darkwake=0 to darkwake=2. Other values of darkwake may work as well, but this is the first I tried and it worked.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) -disablegfxfirmware boot arg is not required with WEG. I inadvertently left this boot arg after I encountered an endless gfx firmware update boot loop while working on my FB patching. This boot arg is no longer necessary after completing FB patching with WEG.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) Sometimes, CMOS time is lost on shutdown or restart. Solution is to enable Clover's Apple RTC fix in config.plist.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) headphone jack doesn't work. Solution is to change HDEF layout-id to 28.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) System freezes on wake from sleep because of a kernel panic related to hda-gfx (my system does not have HDMI and my DP->DVI adapters do not drive monitor speakers). Solution is to add No-hda-gfx property to HDEF as described here. This property is recognized as a Lilu flag and prevents loading hda-gfx.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) Device (PMCR) is not defined. Solution is a SSDT that "injects" the missing device.
  • (Solved and included in the EliteDesk.zip archive attached to Post #1) eficheck is loaded (not sure why this is bad, but may be a privacy issue - see here). Solution is to add updated EFICheckDisabler kext that includes the Q370 chipset.
 
Last edited:
Install Catalina on HP EliteDesk 800 G4 Mini
Rev 1.0.1
11-19-2020

*****************************************************************************
This guide is for installing Catalina with CLOVER boot loader. See the Big Sur thread for installing Big Sur.
*****************************************************************************
IMPORTANT
  • Your displays may flash on and off during Catalina installation. If you have multiple displays, your displays may alternate during Catalina installation.
  • Pay close attention to the options you select from the CLOVER boot screen to make sure that you complete all steps of the Catalina installation.
  • Be sure to edit the provided CLOVER config.plist, replacing all XX-MASKED-XX values with your own unique values.
  • Configuring your BIOS with USB as your first UEFI boot device will simplify Catalina installation, since you will be rebooting multiple times from the USB stick.
  • Don't forget to review known issues and their solutions here. There may be some resolved issues that are not yet included in the configuration files attached to Post #1.
************************************

  1. Configure your G4 Mini BIOS as per the BIOS configuration attached to Post #1 of this thread. Make sure your BIOS version matches the BIOS version specified in Post #1 of this threat.
  2. Create a “vanilla” Catalina USB Installer (follow instructions here)
  3. Install CLOVER boot loader on the Catalina Installer USB stick. Use the CLOVER configuration provided in Post #1 of this thread and the CLOVER version specified in Post #1 of this thread.
  4. Copy EFI from EliteDesk.zip archive (attached to Post #1 of this thread) to the USB stick EFI. Copy all kexts from the LE folder in the EliteDesk.zip archive to the USB stick EFI/CLOVER/kexts/Other.
  5. Edit config.plist in the USB stick EFI/CLOVER, replacing the XX-MASKED-XX values with your own values
  6. Boot your G4 Mini from the Catalina Installer USB stick
  7. At the Clover boot screen, select “Boot macOS Install” from the Catalina installer USB stick
  8. If upgrading an existing macOS installation, skip to Step 10
  9. If you’re performing a new Catalina installation, select Disk Utility from the macOS Utilities screen and click Continue
    • Erase the target disk with Format APFS and Scheme GUID Partition Map
    • Exit Disk Utility
  10. Select Install macOS from the macOS Utilities screen and click Continue
  11. Click Continue and click Agree
  12. Select the target drive for your Catalina installation or upgrade and click Continue
  13. When the Catalina installer reboots, boot from the Catalina installer USB stick
  14. At the CLOVER boot screen, select “Boot macOS Install” from your Catalina target disk (NOT the Catalina installer on the USB stick)
  15. When the Catalina installer reboots, boot from the Catalina installer USB stick
  16. At the CLOVER boot screen, select “Boot macOS Install” from your Catalina target disk (NOT the Catalina installer on the USB stick). Note that you are selecting this same entry for the SECOND TIME.
  17. When the Catalina installer reboots, boot from the Catalina installer USB stick
  18. At the CLOVER boot screen, select “Boot macOS” from your Catalina target disk
  19. Follow the Catalina configuration prompts
    Welcome to Catalina!
  20. If performing an upgrade, confirm your new macOS version by viewing About This Mac
  21. If performing a new installation
    • Install CLOVER boot loader on the Catalina target disk. Use the CLOVER configuration provided in Post #1 of this thread and the CLOVER version specified in Post #1 of this thread.
    • Copy EFI from EliteDesk.zip archive (attached to Post #1 of this thread) to the Catalina target disk EFI.
    • Edit config.plist in the Catalina target disk EFI/CLOVER, replacing the XX-MASKED-XX values with your own values
    • PROPERLY INSTALL all kexts from the LE folder in the EliteDesk.zip archive to the /Library/Extensions folder on the Catalina target disk. Use Hackintool or your preferred 3rd-party kext installer. It is wrong to simply copy 3rd-party kexts to /Library/Extensions.
  22. If performing an upgrade, make sure that your target disk EFI and 3rd-party kexts in /Library/Extensions are updated using the EFI and LE folder contents in the EliteDesk.zip archive attached to Post #1 in this thread.
  23. Eject / Remove the Catalina installer USB stick
  24. Reboot and confirm that your new Catalina installation starts and runs properly
  25. Use pmset to set hibernatemode and proximitywake to 0 to address potential sleep issues
  26. Disable "Wake for Ethernet" and disable "Enable Power Nap" (System Preferences > Energy Saver)
  27. Delete hibernatefile ‘/var/vm/sleepimage’ and recreate “dummy” ‘/var/vm/sleepimage’
  28. See my Known Issues here for solutions that have not yet been included in the EliteDesk.zip archive attached to Post #1 (you may need to apply these fixes yourself).
 
Last edited:
Things that I'm still investigating
  • Single-link DVI connector for my "low res" displays. See here.
  • CLOVER's NvmExpressDxe.efi driver is not necessary as noted here. NvmExpressDxe driver has been deleted from the posted CLOVER EFI.
  • How to hide mechanical drives from macOS here.
  • Device (HPET) may be unnecessary as noted here. HPET has been deleted in the posted CLOVER EFI.
  • OpenCore here
  • Intel Bluetooth and Wi-Fi support here
  • Multicore performance is better in Windows 10 than in Catalina as discussed here
 
Last edited:
*** WARNING *** If you perform this drive caddy modification, make sure that you thoroughly clean the modified drive caddy so that you don't introduce metal fragments into your PC ***

Installing 3 drives in your HP EliteDesk 800 G4 Mini (2 x M.2 2280 NVMe SSDs and 1 x SATA HD / SSD)


The HP EliteDesk 800 G4 Mini specs indicate that the G4 Mini supports two M.2 2280 NVMe SSDs and one SATA6 HD/SSD. Unfortunately, a mechanical design flaw prevents simultaneous use of the second M.2 2280 slot and the SATA drive caddy. As shown here, when the second M.2 2280 slot is populated, the SATA drive caddy sits on top of the M.2 2280 SSD card and the drive caddy cannot be properly installed. If you call HP support, they will admit that you can only install one or the other and not both.

Unmodified SATA Drive Caddy SATA Caddy sits on second M.2 2280 NVMe SSD
g4-mini-original-caddy.jpg
g4-mini-before-cutout.jpg


My solution was to modify the SATA drive caddy by making a cutout that provides clearance for the second M.2 2280 slot as shown here. A Dremel tool and cutting wheel works perfectly for this modification.

Modified SATA Drive Caddy
g4-mini-caddy-cutout.jpg


With this modified SATA drive caddy, the HP EliteDesk 800 G4 Mini easily accommodates two M.2 2280 NVMe SSDs and a SATA HD / SSD in the SATA drive caddy.

g4-mini-3drives.jpg


HD Fan Assembly in 65W HP EliteDesk 800 G4 Mini
Note that this caddy mod works perfectly with the HD fan in 65W units

thumbnail_IMG_1211.jpg
thumbnail_IMG_1212.jpg


See additional mod instructions here.
 

Attachments

  • g4-mini-3drives.jpg
    g4-mini-3drives.jpg
    211.6 KB · Views: 2,184
  • thumbnail_IMG_1211.jpg
    thumbnail_IMG_1211.jpg
    307.9 KB · Views: 505
  • thumbnail_IMG_1212.jpg
    thumbnail_IMG_1212.jpg
    313 KB · Views: 411
Last edited:
Back
Top