Contribute
Register

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

A separate note about the HP EliteDesk 800 G3 Mini
I just picked up a like-new HP EliteDesk 800 G3 Mini / i7-7700T / 16GB / 256GB for $280.00 US. This is very off-topic, but if this runs MacOS, it might be an incredibly cost-effective Hackintosh. For those who stumble upon this thread while hacking your EliteDesk 800 G3 Mini, you've undoubtedly noticed that the G3 Mini BIOS does not have separate controls for Intel ME. I was checking the Intel ME firmware version on my G3 Mini and found that I could only "see" Intel ME when "Remote Management Options" > "Activate Management (AMT)" is checked / enabled. Since I found that HD Graphics sleep/wake requires Intel ME on the G4 Mini, I'm guessing that AMT must be enabled on the G3 Mini.

I confirmed in Windows 10 that Intel ME appears in Device Manager only when AMT is enabled in BIOS. If MacOS installs and runs well on the G3 Mini with minimal changes to the G4/G5 EFI, I'll post the solution in this thread. If it's much different, I'll create a new thread.
IntelME.jpg


Notes about the G3 Mini Install
Best SMBIOS MacModel for my 800 G3 Mini is iMac18,2 iMac18,1 or MacMini8,1: still testing
  • After latest BIOS update, needs this ACPI patch to boot MacOS
Catalina Install Notes
  • Experimented with various SMBIOS MacModels (iMac18,2, iMac18,1, MacMini8,1) and found it easiest to test HD 630 graphics patching with MacMini8,1. After testing with SMBIOS MM8,1 and finding working AAPL,ig-platform-id / framebuffer-conX-indices / framebuffer-conX-busids, I'm able to switch to iMac18,1 to test power management
Sleep remains elusive on the G3 Mini. With SMBIOS iMac18,1 and what I think is correct USB patching and correct Framebuffer patching, G3 Mini won't wake after sleep (it sleeps with flashing power light, but attempt to wake with keyboard or power button results in illuminated power LED, but no disk activity, dark displays and inability to Remote Desktop into the unit). After wake, must force shutdown (hold power button) to recover. Otherwise, this G3 Mini is an awesome deal for a mostly functional Hackintosh.
 
Last edited:
I think the issue that I was having was that when I was copying the files from the ZIP to the EFI I was putting them in the wrong spot (the previous post you helped me with), and I was doing a merge and not a replace (thanks Mac). When I started to manually replace all the files on the EFI partition, it started to work. I also had to swap to a different hard drive, the one I was using it did not like. When I was trying to wipe the drive, it was locking up on creating the partition. I don't know if the firmware was wrong or what. I also went out and got a different brand of USB Stick that helped. I'm all up and running for a couple days now. Waiting for my BCM94360NG to arrive so I can use my fancy Apple Keyboard and Mouse.

Thank you for all the help, this guide does work with the 800 G5 with the i5 and the Intel video.
 
I think the issue that I was having was that when I was copying the files from the ZIP to the EFI I was putting them in the wrong spot (the previous post you helped me with), and I was doing a merge and not a replace (thanks Mac). When I started to manually replace all the files on the EFI partition, it started to work. I also had to swap to a different hard drive, the one I was using it did not like. When I was trying to wipe the drive, it was locking up on creating the partition. I don't know if the firmware was wrong or what. I also went out and got a different brand of USB Stick that helped. I'm all up and running for a couple days now. Waiting for my BCM94360NG to arrive so I can use my fancy Apple Keyboard and Mouse.

Thank you for all the help, this guide does work with the 800 G5 with the i5 and the Intel video.
As per rules, please update your hardware profile to allow others to help you easier
 
I'm installing Catalina on the HP EliteDesk 800 G3 Mini (OC 0.6.3). This ACPI patch was needed after updating the G3 Mini to the latest BIOS (02.37 Rev.A, Nov 6, 2020). Posting this here in case this becomes necessary for the G4 Mini after a new BIOS update.

Without this patch, the macOS boot was stuck at "[ PCI configuration end, bridges..."
 
I learned some valuable lessons while trying to get the EliteDesk 800 G3 Mini working - these lessons apply to all hackintoshes (not just the HP EliteDesk Minis):

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
  • delete extraneous com.apple.PowerManagement plists in /Library/Preferences
  • reset keyboard modifier keys (if you changed any)
  • reset Energy settings
  • check and reset power settings with Hackintool (e.g. proximitywake)
 
It appears that our HackMini8,1 (and probably other newer hacks) DO NOT NEED HPET.

EDIT: Since I originally posted this discovery, I have confirmed that HPET is also disabled on iMac19,1 and iMacPro1,1 when running macOS.

EDIT2: I have confirmed that Apple has been setting HPET._STA = 0 when running macOS since Skylake platforms (maybe earlier). I'm surprised that I haven't seen this in any guides and that guides still explain how to enable / patch HPET for newer platforms. I have concluded that HPET should not be enabled on newer hacks, so my next posted EFI will have HPET._STA = 0 (deleting HPET from macOS). With HPET disabled, I suspect that IRQ patching (e.g. with SSDT-TIME) is unecessary (since IRQ conflicts with HPET won't be an issue) and will experiment with this.

-----------------------------------------------------------

I wouldn't call this an earth-shattering discovery, but for me it was kind of a big deal. I was reviewing the ACPI and IORegistry dumps of a real MacMini8,1 and noticed something that I've never seen in ANY hackintosh guides: Device (HPET) is DISABLED on a real MacMini8,1 when running macOS! It's also disabled on a real iMac18,3, so I think that newer Macs don't enable HPET (unlike a MacPro5,1 which does enable HPET). Just for fun, I disabled Device (HPET) on my HackMini8,1 and wouldn't you know it - it appears to run fine without Device (HPET). I will continue to test, but this is contrary to everything I've always read and learned about hacking. If this is true, all the HPET patches that you read about in newer guides for newer hacks are unnecessary, and HPET should simply be disabled.

If you want to try this yourself, add the attached SSDT to your patched ACPI folder (slightly different methods for doing this if you're running CLOVER or OC, so know what you're doing).

If you already have a SSDT-AWAC.aml (to disable device AWAC), you'll notice that my attached SSDT-AWAC-HPET adds initialization of HPTE (in addition to initialization of STAS). If you want a "quick and dirty" test and you already have SSDT-AWAC, modify your SSDT-AWAC to match my attached SSDT.

How this works...

If you examine the extracted DSDT of an HP EliteDesk 800 G4 Mini, you'll see that HPET._STA is conditional on HPTE (same as AWAC._STA is conditional on STAS) as follows:

Code:
        Device (HPET)
        {
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    If (HPTE)
                    {
                        Return (0x0F)
                    }

                    Return (Zero)
                }
        }

If we create Method _SB.INI (which does not already exist in an HP EliteDesk 800 G4 Mini) and initialize HPTE = 0 in this new method, HPET._STA will return 0 and Device (HPET) will be disabled.

If you are multi-booting multiple OSes, be careful with this patch, since it will disable HPET for all OSes if you're injecting patched ACPI for all OSes. In this case, you will want to wrap your condition with a check for _OSI("Darwin") (so that it only sets HPTE = 0 when running macOS).


To confirm that you've successfully disabled HPET, open IORegistryExplorer and search for HPET. If it's not there, you've disabled it. If the patch didn't work (and HPET is still enabled), make sure you've disabled other HPET patches (including CLOVER's "Fix HPET").
 

Attachments

  • SSDT-AWAC-HPET.zip
    812 bytes · Views: 211
Last edited:
EDIT: A note about CLOVER's FixRTC ACPI patch mentioned below: in addition to excluding the RTC IRQ (to prevent the IRQ conflict with HPET), CLOVER's FixRTC ACPI patch also patches ACPI to change the RTC memory length to 0x02. I believe that this prevents macOS from writing to and corrupting RTC. I suspect that setting RTC memory to 0x02 may not be the best way to address RTC corruption issues in our newer-generation hacks (may adversely affect sleep). If there are any RTC corruption issues after disabling CLOVER's FixRTC ACPI patch, I believe that Acidanthera's RTCMemoryFixup.kext should be used with an rtcfx-exclude range. Start with an rtcfx-exclude range of 00-FF as explained here and then narrow the range to find the specific range that causes the RTC corruption.

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

After patching HPET._STA=0, I am now testing the following CLOVER r5122 config.plist changes (for the reasons stated). @rafale77 is finding that similar changes are appropriate for OC here.

The following CLOVER ACPI fixes do not appear to be necessary for the HP EliteDesk 800 G4/G5 Mini:
  • FixTMR - not needed after setting HPET._STA=0 (no longer a risk of IRQ conflict)
  • FixHPET - not needed after setting HPET._STA=0 (no longer a risk of IRQ conflict and we no longer want to "force" HPET._STA as available)
  • FixIPIC - there never was an IRQ conflict and this was always unnecessary
  • FixRTC - not needed after setting HPET._STA=0 (no longer a risk of IRQ conflict)
  • FixMutex - was never necessary, since original DSDT has properly formed Mutexes
  • FixS3D - was never necessary, since there are no S3D issues in original DSDT
 
Last edited:
Good news for microphone users - User @v.osypets in another forum shared his AppleALC.kext v1.5.5 with me. He has fixed the microphone/audio input. It's not mine to share, but if you look at my HP EliteDesk 800 G4 Mini thread in the other forum, you'll find the shared kext near the end of the thread.

I'm testing now and microphone seems to be working. Hopefully this is submitted to Acidenthera. Also fixed is the "relocation error" that I observed here.
 
I have upgraded my Catalina 10.15.7.03 configuration with the latest Acidanthera kexts listed below. All working fine and Line-in/Mic works with layout-id 20 (0x14).
  • Lilu.kext: upgrade from 1.4.9 to 1.5.0
  • AppleALC.kext: upgrade from 1.5.4 to 1.5.5
  • WhateverGreen.kext: upgrade from 1.4.4 to 1.4.5
I will test for a while before updating the baseline attached to Post #1 in this thread. When I post the new baseline, it will include the following changes:
  • Setting HPET._STA=0 (delete HPET from macOS IORegistry)
  • Remove unnecessary CLOVER ACPI patches
  • Upgrade Acidanthera kexts
 
Last edited:
I read a post by @5T33Z0 in another forum where he suggests a reduced driver set with CLOVER (especially after r5122). Based on his recommendations, I am currently running without FSInject.efi and without SMCHelper.efi. My reduced CLOVER r5122 driver set is as follows:
  • ApfsDriverLoader.efi
  • DataHubDxe.efi
  • NvmExpressDxe.efi
  • OcQuirks.efi (since I'm still booting with r5122)
  • OpenRuntime.efi
  • VBoxHfs.efi
According to him, after r5123, OcQuirks.efi is no longer necessary.
 
Back
Top