Jump to content

[GUIDE] Catalina, Big Sur, Monterey, Ventura, Sonoma, Sequoia on HP EliteDesk 800 G4/G5 Mini - The perfect MacMini8,1 Hackintosh


deeveedee
964 posts in this topic

Recommended Posts

On December 17, 2021, HP released a new BIOS update 02.11.00 Rev.A for the EliteDesk 800 G5 Mini.  


This BIOS update includes new Intel ME Firmware and addresses many security vulnerabilities. I have not yet updated to this new BIOS version, so I have not tested yet with MacOS. If someone does apply this BIOS update, please post your test results. Thank you!

Link to comment
Share on other sites

  • 3 weeks later...

On December 27, 2021, HP released BIOS update version 02.17.00 Rev.A for the EliteDesk 800 G4 Mini. This means that there are now recent BIOS updates for both the G4 Mini and the G5 Mini.

If anyone tests either of these recent BIOS updates with macOS, please post your test results here. Thank you.

Link to comment
Share on other sites

I haven't updated the EFI to OC0.7.7 on this HackMini8,1, but I have updated to OC 0.7.7 on my HackBookPro15,2. For those who still perform their OC update manually, here are the changes that I needed to make to my HackBookPro15,2 EFI to update from OC 0.7.6 to OC 0.7.7.

Updating to OC 0.7.7 from OC 0.7.6

  • EFI/BOOT: Update BOOTx64.efi
  • EFI/OC: Update OpenCore.efi
  • EFI/OC/Drivers: Update OpenRuntime.efi, AudioDxe.efi
  • EFI/OC/Kexts:
    • Update Lilu.kext 1.5.8 -> 1.5.9
    • Update AppleALC.kext 1.6.7 -> 1.6.8
    • Update WhateverGreen.kext 1.5.5 -> 1.5.6
  • EFI/OC/Tools: Update tools
  • EFI/OC/config.plist:
    • Add UEFI > AppleInput > PointerPollMask (Integer, -1)
    • Add UEFI > AppleInput > PointerPollMax (Integer, 80)
    • Add UEFI > AppleInput > PointerPollMin (Integer, 10)
    • Add UEFI > Audio > AudioOutMask (Integer, 1)
    • Remove UEFI > Audio > AudioOut
    • Add UEFI > Audio > DisconnectHda (Boolean, False)
    • Add UEFI > Audio > MaximumGain (Integer, -15)
    • Add UEFI > Audio > MinimumAssistGain (Integer, -30)
    • Add UEFI > Audio > MinimumAudibleGain (Integer -55)
    • Remove UEFI > Audio > MinimumVolume
    • Remove UEFI > Audio > VolumeAmplifier
Edited by tonyx86
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...

EDIT: My EFI for OC 0.7.7 is now attached to Post #1.

 

I finally had time to update the BIOS on my HP EliteDesk 800 G5 Mini (from 02.10 to 02.11) and to update OpenCore from OC 0.7.6 to OC 0.7.7. I'm still running Big Sur 11.6.2 as my production baseline OS. Both updates were without challenges. More details below...

I updated my HP EliteDesk 800 G5 Mini BIOS from 02.10 to 02.11 using HP's updater within the BIOS. This BIOS update method did not work for me when updating to 02.10 and I had to boot Windows and perform the update to 02.10 using HP's Windows executable. The BIOS update from 02.10 to 02.11 required multiple reboots (after starting the BIOS update, be patient, don't touch any keys and and wait for all updates to complete). The only "issue" I experienced after the BIOS update was that my storage boot order was reset to factory. I like USB to boot first and I disable SATA0 boot, so I needed to modify my boot order after the BIOS update. After the BIOS update to 02.11, all appears to be working normally.

I updated OC 0.7.6 to OC 0.7.7 with the changes here. The OC update to 0.7.7 was uneventful.

 

EliteDesk 800 G5 Mini BIOS version 02.11.00

Spoiler

thumbnail_IMG_1874.jpg.62e4f5860f80ed628ddc6427c1898b48.jpg

 

Edited by tonyx86
Link to comment
Share on other sites

For those who want to enable the boot chime (startup audio) with the new OC UEFI audio config, I did some experimenting. The following config.plist properties enabled the boot chime on my HackMini8,1. I don't like the startup delay that is added when enabling the boot chime, so I keep it disabled. I'm providing this for those who are interested.

  • UEFI > Audio > AudioCodec: 0 (This is the IOHDACodecAddress in our IORegistry)
  • UEFI > Audio > AudioDevice: PciRoot(0x0)/Pci(0x1F,0x3)
  • UEFI > Audio > AudioOutMask: 15 Enables audio on channels 0, 1, 2 and 3 (I'm not sure how many audio channels we have, but this should enable audio output on all of them) (setting AudioOutMask to the FailSafe value of -1 should also enable all channels, as -1 is ONES in binary).
  • UEFI > Audio > AudioSupport: True
  • UEFI > Audio > MaximumGain, MinimumAssistGain, MinimumAudibleGain: I left these as specified in the posted OC0.7.7-EFI-R001 attached to Post #1.
  • UEFI > Audio > PlayChime: Auto
  • UEFI > Audio > SetupDelay: I'm not certain, but you may need to change this from 0 to 500000 (.5 sec) if boot chime doesn't play when booting from USB. Start experimenting with a value of 0.
  • UEFI > Drivers: Enable AudioDxe.efi (Set Enabled to True in Item 2 in the OC0.7.7-EFI-R001 attached to Post #1)
Edited by tonyx86
  • Like 2
Link to comment
Share on other sites

Does PlayChime: Auto work or should you set to Enabled per this Dortania's guide? I suspect Auto would expect the tick-mark in System Preferences -> Sound --> Sound Effects to have startup boot chime enabled, no? (as it writes to NVRAM some parameter for chime)

Just wondering :D Thanks mate.

 

EDIT: Per the Dortania guide, the AudioCodec address can be found after enumerating all audio devices and targeting that one:

ioreg -rxn IOHDACodecDevice | grep VendorID   // List all possible devices
ioreg -rxn IOHDACodecDevice | grep IOHDACodecAddress // Grab the codec address

On my Lenovo IdeaPad S145 laptop for example, it's 0x00 and the audio PCI device is like yours i.e. <string>PciRoot(0x0)/Pci(0x1f,0x3)</string>

 

EDIT: @tonyx86 what is your understanding of channels? Monophonic/single channels? So if our laptop has 2 speakers (stereo) should we enable 0 and 1 for example? I refer to your comment:

UEFI > Audio > AudioOutMask: 15 Enables audio on channels 0, 1, 2 and 3 (I'm not sure how many audio channels we have...)

 

The Dortania's guide (still referring to 0.7.6 parameters) talks of "outputs" and suggests we use OpenCore Debug to read the logs regarding the channels "detected", so I assume you didn't go (yet) through this exercise, right? :D

 

EDIT: I confirm that when un-checking the option System Preferences -> Sound --> Sound Effects --> Play sound on startupthe chime is not heard upon reboot when PlayChime: Auto; however, AudioDxe.efi seems still run as I still see the minor delay between Lenovo splash logo and the picker screen (not there if I disable AudioDxe completely)

 

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

@MacKonsti Great observations!  I have not changed PlayChime to Enabled (mine is Auto), but you are correct that I have startup sound enabled in System Preferences. Thank you for pointing this out.

 

I have not captured debug output for channels.  Setting AudioOutMask to -1 (binary ONES) should enable all channels.  I don't have a reason to selectively enable channels, so running with all channels enabled is fine for me.

Link to comment
Share on other sites

After cloning my production NVMe SSD to my backup NVMe SSD, I attempted an upgrade from XCode 12.5.1 to XCode 13.2.1. My HackMini8,1 froze with the AppStore update progress showing about 95%. There was no disk activity and no response from the mouse or keyboard. I was not able to remote into my hack.

I held the power button to force a shutdown and then booted. The XCode install is now completing (installd running in Activity Monitor, LaunchPad shows updating install progress and disk is active).

Others have reported problems with the XCode 13.2 update here.

UPDATE: The XCode 13.2 update completed, but my HackMini8,1 froze again after attempting to install XCode's "additional required components." I forced another shutdown and then booted. After starting XCode 13.2.1, I was prompted (again) to "Install additional required components." The additional components installed and XCode 13.2.1 started.

Link to comment
Share on other sites

Is anyone enabling Kernel > Quirk > LapicKernelPanic in their OC config.plist? Details below...

I haven't been one to follow every Dortania Guide recommendation and generally refer to the guide for Open Core configuration instruction rather than for how to hack a PC. My hacking methodology is learned primarily from Rehabman and his examples. While looking for something else, I stumbled upon the Dortania recommendation that Kernel > Quirk > LapicKernelPanic be enabled for HP machines (both Desktop and Laptop). I have not been enabling this Quirk in any of my EFIs for this HP EliteDesk 800 Mini and for my HP Envy KabyLake-R laptop.

Is anyone enabling this Quirk and if so, can you explain why you're enabling it? I have enabled this Quirk and will continue to run with it enabled to determine whether I notice any change in behavior.

Dortania Laptop Recommendation: LapicKernelPanic required for HP machines

Dortania Desktop Recommendation: LapicKernelPanic required for HP machines

 

EDIT: I have been running with Kernel > Quirk > LapicKernelPanic=True and also Booter > Quirk > ProtectUefiServices = False (I think I had set ProtectUefiServices to True when testing something and forgot to change it back). I'm not noticing any change in behavior with these two config.plist changes.

Edited by deeveedee
Added test results after a few days of testing
Link to comment
Share on other sites

I found this which is could be only mildly helpful:

 

I don't have it enabled either. I get the feeling that it fixed a problem from a long time ago and that the dortania documentation was just not updated.

It was preventing a "kernel panic on LAPIC interrupts."

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

@rafale77 Possibly.  Let's see if anyone else replies.  The Dortania guide seems to put a lot of effort into creating unique guidelines for each Intel architecture (for both laptop and desktop).  Strange that LapicKernelPanic is still recommended for CoffeeLake and CometLake. If what you're saying is true, then the same is probably true for other Dortania recommendations.

Link to comment
Share on other sites

Since they don't have every piece of hardware under the sun, they heavily rely on community feedback like ours through Github. And even then, it is difficult for them to keep up. They seem to be faster at updating when there is a problem than when something else fixed the issue and a patch/fix is no longer needed. I can see for example under the storage section that the commentary about the Samsung 970 EVO plus SSD is not quite up to date: Though a firmware update enables them to work, the TRIM implementation Samsung uses still conflicts with MacOS and causes hangs and degradation over time. There is also now two versions of that drive, the more recent one using the 980 pro controller "elpis" doesn't require a firmware update but appears to still having some issues from the reports I read. After firmware update, they seem to work fine as storage drives but have some weird behavior if the OS is installed on them.

Have you tried enabling that patch on your unit? Since this is to prevent a kernel panic which I have never seen...  I am too keen on touching it. Humor me but this hack is actually more stable than my real macbook pro.

 

A couple of days ago, I noticed that my HEVC hardware acceleration was not working. It was working before and I had not checked it for quite some time. After digging into it, I found this:

 

https://github.com/gajjartejas/Lenovo-Ideapad-320-15ISK-14ISK-Laptop-Hackintosh/issues/39

 

After removing the "AAPL,slot-name" injection which I got from the hackintool patch, sure enough it is working again. It is not in @deeveedee's EFI so it is not much of a concern for people in this thread but I am posting it anyway in case someone runs into the same thing. Tagging @Hervé, @headkaze as I saw a few posts showing that this injection is optional and only cosmetic. MacOS versions since Big Sur apparently do not like this entry.

 

 

 

Link to comment
Share on other sites

@Hervé, I am with you on the constant changes in opencore but in this particular case, it appears to not just not work, or be just cosmetic, adding that entry breaks something. Although I have not tested it myself, it appears from my searches online that the problem occurred when upgrading from Catalina to Big Sur regardless of OC version so... this case maybe different. What breaks is also not something most people will check right away and could go unnoticed for quite some time as it was in my case. My suggestion was just to remove that entry altogether from hackintool and to other people injecting their frame-buffers.

Link to comment
Share on other sites

I love Hackintool for making it easy to view my patched framebuffer/connectors, but I don't use it to generate my DeviceProperties.  Nothing against the tool (I'm a big fan and a Headkaze donator) - just not my preference.

  • Like 1
Link to comment
Share on other sites

Upgrade from OC 0.7.7 to OC 0.7.8 is very easy - no config.plist changes.

 

Changes from OC 0.7.7 EFI to OC 0.7.8 EFI

  • EFI/BOOT: Update BOOTx64.efi
  • EFI/OC: Update OpenCore.efi
  • EFI/OC/Drivers: Update OpenRuntime.efi, AudioDxe.efi
  • EFI/OC/Kexts:
    • Update Lilu.kext 1.5.9 -> 1.6.0
    • Update AppleALC.kext 1.6.8 -> 1.6.9
    • Update WhateverGreen.kext 1.5.6 -> 1.5.7
  • EFI/OC/Tools: Update tools
  • EFI/OC/config.plist:
    • No changes
  • Like 1
Link to comment
Share on other sites

HP has released BIOS updates for the EliteDesk 800 G4 and G5 Minis (version 02.18.00 Rev.A for the G4 Mini and version 02.12.00 Rev.A for the G5 Mini). These updates have more "security vulnerability" updates.

I have not tested these BIOS versions and welcome test results from anyone who does test them.

Link to comment
Share on other sites

I have attached my OC 0.7.8 EFI to Post #1. This EFI is my current baseline and includes the following changes from the OC0.7.7-EFI-r001 that I had last posted. Note that I never posted my OC-0.7.7-EFI-r002 which changed Quirks LapicKernelPanic and ProtectUefiServices. These Quirk changes are included in my OC-0.7.8-EFI-r001.

 

OC 0.7.8 EFI R001 changes from OC 0.7.7 EFI R001

  • EFI/BOOT: Update BOOTx64.efi
  • EFI/OC: Update OpenCore.efi
  • EFI/OC/Drivers: Update OpenRuntime.efi, AudioDxe.efi
  • EFI/OC/Kexts:
    • Update Lilu.kext 1.5.9 -> 1.6.0
    • Update AppleALC.kext 1.6.8 -> 1.6.9
    • Update WhateverGreen.kext 1.5.6 -> 1.5.7
  • EFI/OC/Tools: Update tools
  • EFI/OC/ACPI:
    • Updated SSDT-XOSI to include Windows 11 (Windows 2021). The HP EliteDesk 800 G4/G5 Mini ACPI doesn't reference Windows versions beyond Windows 2017 (Windows 10, version 1703), so this update will have no affect on our hack's operation. This change is to keep my SSDT-XOSI consistent across my hacks.
  • EFI/OC/config.plist
    • Kernel > Quirk > LapicKernelPanic: Change from False to True (Dortania recommendation for HP machines)
    • Booter > Quirk > ProtectUefiServices: Change from True to False (Dortania recommendation for CoffeeLake)
Edited by deeveedee
Link to comment
Share on other sites

I thought I was being smart by using 8" "pigtail" straight-through male/female USB cables to make it easier for me to plug USB devices into my HackMini8,l ports.  It turns out that what I thought were simply "straight-through" cables affected how the USB device negotiated with the USB port.  My USB3 devices connected via the pigtail cables were connecting as USB2 (with USB2 current limits and data rates as viewed in About This Mac > System Report).  Eliminating the pigtail connector and connecting the USB3 devices directly to the port allowed the USB3 devices to negotiate as USB3 with higher USB3 current limits and data rates.

Edited by deeveedee
Link to comment
Share on other sites

I updated my 800 G5 Mini BIOS to version 02.12.00 Rev.A using the built-in updater within the BIOS - no issues.  Just be patient with lots of reboots and messages indicating that "this will take a few minutes."  Once I started the process, I didn't touch my system again until macOS booted.

 

I will not be testing the firmware update on an 800 G4 Mini (I no longer have a G4 Mini running macOS), so if someone else performs this BIOS update on their G4 Mini, please report your results. Thank you.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

I upgraded my HackMini8,1 to OC 0.7.9.  The manual upgrade steps are listed below.  OC-0.7.9-EFI-r001 is now attached to Post #1.

 

Upgrade to OC 0.7.9 from OC 0.7.8

  • EFI/BOOT: Update BOOTx64.efi
  • EFI/OC: Update OpenCore.efi
  • EFI/OC/Drivers: Update OpenRuntime.efi, Update AudioDxe.efi
  • EFI/OC/Kexts:
    • Update AppleALC.kext 1.6.9 -> 1.7.0
    • Update VirtualSMC.kext 1.2.8 -> 1.2.9
    • Update WhateverGreen.kext 1.5.7 -> 1.5.8
  • EFI/OC/Tools: Update tools
  • EFI/OC/config.plist:
    • Added Misc > Debug > LogModules (String, *)
    • Added Kernel > Block > Item n > Strategy (String, Disable)
Edited by deeveedee
  • Like 4
Link to comment
Share on other sites

×
×
  • Create New...