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

2 hours ago, zdragonkingz said:

Hello,

First I would like to thanks tonyx86 for his hard and well documented works (yep, you can succeed but well documented for me it's a next level of knowledge sharing).

I have the EliteDesk 800 G4, but micro. I don't know why, I choose to boot from USB, then nothing happen...

 

You're very welcome.  Glad this helps you.

 

EDIT: I just re-read your post and believe I may have misinterpreted your question/issue.  Two possibilities I can think of are 

  1. I am using DP->DVI adapters, so my graphics device properties set connector type to 0x0004.  If you have DP ports without DP->DVI adapter, you will need to change your connector type to 0x0400.
  2. Your USB port mapping may be different.

 

The USB port mapping for the micro may be different from the mini.  Try removing SSDT-UIAC.aml from EFI/CLOVER/ACPI/patched and enable the USB port limit patches in config.plist.  If you are using Clover Configurator, open the config.plist, navigate to Kernel and Kext Patches, enable the two USB port limit patches (I have them disabled) and save your config.plist.

 

Clover Configurator: Kernel and Kext Patches

Spoiler

111749589_ScreenShot2020-07-09at8_15_59AM.thumb.png.ef6367327e2c7273af652d9b77193683.png

 

If this "fixes" your problem, you will need to create your own USB port mapping for the micro.  I used Hackintool to create the SSDT-UIAC.aml for the mini.

Edited by tonyx86
Link to comment
Share on other sites

On 7/8/2020 at 4:22 AM, glasgood said:

Great that works for you!

 

After injecting EDID properties on my HP EliteDesk 800 G4 Mini, I have started noticing changes in sleep/wake behavior.  Sometimes my unit doesn't sleep when left unattended and sometimes my unit wakes to dark screens.  I have removed the injected EDID properties until I have more time to test.  Without injected EDID, my displays sometimes take a few more seconds to wake, but my system consistently sleeps and wakes reliably.

Link to comment
Share on other sites

3 hours ago, tonyx86 said:

 

After injecting EDID properties on my HP EliteDesk 800 G4 Mini, I have started noticing changes in sleep/wake behavior.  Sometimes my unit doesn't sleep when left unattended and sometimes my unit wakes to dark screens.  I have removed the injected EDID properties until I have more time to test.  Without injected EDID, my displays sometimes take a few more seconds to wake, but my system consistently sleeps and wakes reliably.

 

Try adding the following boot args 

igfxagdc=0 igfxonln=1 darkwake=3

 

Also are you able to use 07009B3E APL,ig-platform-id.

 

 

 

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

On 7/10/2020 at 2:49 PM, glasgood said:

Try adding the following boot args 

igfxagdc=0 igfxonln=1 darkwake=3

 

Also are you able to use 07009B3E APL,ig-platform-id.

 

Thank you!  Adding igfxonln=1 appears to have improved display wake.  I had a kext patch that mimicked igfxagdc=0, so I disabled the kext patch and added boot arg igfxagdc=0 (no difference in behavior as a result of this change).  I think that after changing darkwake=2 to darkwake=3, both displays consistently wake simultaneously (where with darkwake=2, one display might wake a second or two before the other), but I'm not certain there is a difference resulting from the darkwake change.  With these changes, I don't need to inject EDID - display sleep/wake seems perfect.  I'll test for a while before declaring success.

 

My test results for different ig-platform-ids are here.  07009B3E resulted in black screens at boot.  0000923E is best for me.  I currently have device-id undefined, so it defaults to 0x3e92 for my i7-8700T / UHD 630.

 

To be honest, I thought that my displays were working perfectly and sleep/wake was working without issues until I started experimenting with injecting EDID.  There must be something that I changed that now requires me to use igfxonln=1, but I can't figure out what that change might be.  Part of my experimentation included different display color profiles (System Preferences -> Displays -> Color) and I factory-reset my LCD displays.  Regardless, it does seem that igfxonln=1 does the trick.

 

Thanks again!

Edited by tonyx86
Fixed broken link
  • Like 1
Link to comment
Share on other sites

I have included these changes suggested by @glasgood here in the EliteDesk.zip archive attached to post #1.

  • Added igfxonln=1 to boot args: results in consistent and reliable display wake from sleep - even after repeated sleep / wake cycles
  • Changed darkwake=2 to darkwake=3: appears to result in simultaneous display wake from sleep (with darkwake=2, one display may wake a second or two before the other)
  • Added igfxagdc=0 to replace the AGDC kext patch and disabled the AGDC kext patch: no change in behavior, but it should be more reliable for future versions of macOS to use WhateverGreen to disable AGDC

My current CLOVER config.plist is attached. If you use this config.plist, you must replace all XX-MASKED-XX values with your own.

config.plist.zip

Edited by tonyx86
Fixed broken link
  • Like 1
Link to comment
Share on other sites

If someone knows and wants to explain why SSDT-XOSI should or should not include newer versions of Windows 10 for macOS running on the HP EliteDesk 800 G4 Mini, I welcome the explanation.

Summary: My previous SSDT-XOSI for this HP EliteDesk 800 G4 Mini included Windows 10 versions through "Windows 2015." The DSDT for my 800 G4 Mini checks for Windows 10 version through "Windows 2017" (_OSI ("Windows 2017") ). I believe this means that my SSDT-XOSI should include Windows versions at least through "Windows 2017" (so I need to update my SSDT-XOSI) and that any versions of Windows beyond "Windows 2017" in my SSDT-XOSI will not change my system behavior (but won't hurt anything). I am now running with the attached SSDT-XOSI, but have not yet included this in the EliteDesk.zip archive attached to Post #1.

Details
According to this document, there are new versions of Windows 10 that can be checked by ACPI Method _OSI and that are in addition to what Rehabman had included in his last commits to SSDT-XOSI.

I know that the HP EliteDesk 800 G4 Mini supports the latest version of Windows 10; however, the G4 Mini's DSDT _OSI checks do not check for Windows 10 versions beyond "Windows 2017." I believe this means that my SSDT-XOSI should include Windows versions at least through Windows 2017 (to match what is checked in my DSDT) and that any newer Windows versions in SSDT-XOSI beyond "Windows 2017" do not matter and have no effect on the DSDT. I've decided to uncomment "Windows2016" - "Windows 2018.2" and to add the newer versions of Windows 10 (below) to my SSDT-XOSI (attached). Since I don't fully understand _OSI and how it's used, I'm hoping that testing with this new version of SSDT-XOSI reveals something. Again, I suspect that adding newer versions of Windows 10 beyond "Windows 2017" have no affect on my system (because they're not checked in the DSDT).

New versions of Windows 10 added to SSDT-XOSI

  • "Windows 2019", // Windows 10, version 1903
  • "Windows 2020", // Windows 10, version 2004


I have included this SSDT-XOSI in the EliteDesk.zip archive attached to Post #1.

If someone knows and wants to explain why SSDT-XOSI should or should not include newer versions of Windows 10 for macOS running on the HP EliteDesk 800 G4 Mini, I welcome the explanation.

 

 

SSDT-XOSI.zip

Edited by tonyx86
Changed to indicate that the update is part of the EliteDesk.zip archive attached to Post #1
Link to comment
Share on other sites

The SSDT-XOSI.dsl that I copied from the web has a typo - it incorrectly included Windows Server 2008 ("Windows 2006.1"). If you examine Rehabman's SSDT-XOSI.dsl here, you will notice that Server 2008 (and other Server OSes) are commented out. This change is included in the EliteDesk.zip archive attached to Post #1.

Edited by tonyx86
Changed to indicate that the update is part of the EliteDesk.zip archive attached to Post #1
Link to comment
Share on other sites

My HP EliteDesk 800 G4 Mini has been running perfectly with my current configuration. I have updated the EFI attached to Post #1 in the EliteDesk.zip archive. If you use the CLOVER config.plist included in the EliteDesk.zip archive, you must replace XX-MASKED-XX values with your own values.

Edited by tonyx86
Fixed broken link
Link to comment
Share on other sites

The upgrade to 10.15.6 was easy with the steps below:

  1. Backup! Use Carbon Copy or your favorite backup utility.
  2. If you have installed your 3rd-party kexts in EFI/CLOVER/kexts/Other and not in /Library/Extensions, proceed to Step 3.
    If you have installed your 3rd-party kexts in /Library/Extensions as I have done, create a USB boot disk, install Clover r5119 on the USB drive and install your EFI on the USB drive. Copy all 3rd-party kexts to EFI/CLOVER/kexts/Other on the USB drive. Leave your USB drive inserted so that your system reboots from the USB drive. All 3rd-party kexts must be located in EFI/CLOVER/kexts/Other for the macOS upgrade.
  3. Select About This Mac -> Software Update and start the update. Your system will begin the update.
  4. After your system reboots the first time, select the "Install macOS from Catalina Data" Volume
  5. After your system reboots the second time, select the "Install macOS from Catalina Data" Volume
  6. After your system reboots the third time, boot from your Catalina Volume (now updated) and complete the update prompts. If you created a USB boot drive, you may now remove it.
  7. Welcome to Catalina 10.15.6!

 

Screenshot

Spoiler

908465643_ScreenShot2020-07-15at7_10_41PM.png.f0c7ff609f85c305e900af577ecb8799.png

 

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

EDIT: After reviewing and testing the EC and PMCR advice in Dortania's ACPI Guide, I'm sticking with my original solutions. No changes at this time. Leaving the info below for informational purposes, in case I need to revisit for OpenCore.
-----------------------------------------------

I'm starting to examine OpenCore for this HP EliteDesk 800 G4 Mini. Dortania's reference here appears to be extremely well done. In addition, Dortania's ACPI Guide is a wealth of information. In the ACPI Guide, there is excellent discussion of the Embedded Controller and PMCR devices.

Based on the teachings in Dortania's ACPI Guide, I'm specifically reviewing the following:

  • Creating a Fake EC device instead of renaming EC0->EC. Preliminary results suggest that renaming EC0 is the correct way to handle the Embedded Controller for this G4 Mini. When a Fake EC device is created (instead of renaming EC0), Device (EC) exists, but AppleACPIEC binds to the existing EC0 device (because the existing EC0 device has HID PNP0C09).
    Spoiler

    48777595_ScreenShot2020-07-17at12_48_23PM.png.000ecd275ba6b22b2f31adbc9dca8560.png

     

  • Moving Device (PMCR) from Scope (_SB.PCI0) to Scope (_SB.PCI0.LPCB) so that PMCR loads earlier. I'm hoping to assess the affect of this change through continued use, because I have not noticed any change in system behavior following this change. Note that as observed in the IORegistry dump from a real MacMini8,1, Device (PMCR) in a real MacMini8,1 is in Scope (_SB.PCI0).
Edited by tonyx86
Added note indicating no changes as a result of this post
Link to comment
Share on other sites

This post is not proposing a new SSDT-XOSI.  I'm posting this only to show the results of an experiment with SSDT-XOSI and am leaving this for the curious reader.

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

The DSDT for my HP EliteDesk 800 G4 Mini includes Device (PAGD) that is enabled on condition _OSI("Processor Aggregator Device").  I've searched for ACPI documentation on "Processor Aggregator Device" and found this reference.  Device (PAGD) does not appear in the IORegistry dump from a real MacMini8,1, so I'm fairly certain that Device (PAGD) is not relevant/applicable to macOS.

 

Just for fun, I added "Processor Aggregator Device" to my SSDT-XOSI (attached) and have confirmed (with IORegistryExplorer) that Device (PAGD) is loaded.

 

IORegistry Explorer Screenshot: SSDT-XOSI includes "Processor Aggregator Device"

Spoiler

1255262981_ScreenShot2020-07-18at11_10_50AM.png.c028cd4b6df8d406c6e231b4f9bfa2c5.png

 

IORegistry Explorer Screenshot: SSDT-XOSI does not include "Processor Aggregator Device"

Spoiler

1879469062_ScreenShot2020-07-18at11_39_15AM.png.edba7034d50305120f7f63a82b1a19bb.png

 

It doesn't appear that macOS does anything with this device.

 

If anyone knows more about this, I would welcome your explanation.

SSDT-XOSI.zip

Edited by tonyx86
Link to comment
Share on other sites

EDIT: I had inadvertently attached the wrong version of SSDT-XSPI.  The correct version (copied from a real MacMini8,1) is now attached.

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

There is an unnamed device revealed in IORegistry Explorer that is named XSPI on a real MacMini8,1.  The attached SSDT-XSPI names this device and injects the pci-device-hidden property to mimic Device (XSPI) in a real MacMini8,1 DSDT.  I suspect that this addition is purely cosmetic.  If you want to apply this change, simply copy the attached SSDT-XSPI to your EFI/CLOVER/ACPI/patched folder.

 

 

SSDT-XSPI.zip

Edited by tonyx86
Fixed download link
Link to comment
Share on other sites

Hi mate, automated Intel AC-Wireless builds are now found here, officially: https://github.com/1hbb/OpenIntelWireless-Factory/releases/

Been testing this for a couple of days, works great.

The BTLE integrated module is here: https://github.com/OpenIntelWireless/IntelBluetoothFirmware

All kexts loaded from CLOVER/kext/Other works great in Mojave

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

I am offering NO support for Intel Wi-Fi / Bluetooth and am only posting this for others who may want to experiment on their own. Please don't clutter this thread with Intel Wi-Fi /Bluetooth support questions. However, if after testing, you have concrete/tested suggestions that improve Intel Wi-Fi / Bluetooth performance, your posts are welcome.
----------------------------------------------------
Initial tests of Intel Wi-Fi/Bluetooth look promising after being alerted to this solution here. If you want to test with the Intel Wi-Fi/Bluetooth card that is factory-installed in your HP EliteDesk 800 G4 Mini, do the following:

  1. Enable Wi-Fi / Bluetooth device in BIOS
    1. Enable System Options -> M.2 WLAN / BT
    2. Enable Built-in Device Options -> M.2 USB / Bluetooth
  2. Add USB port HS14 to SSDT-UIAC.aml (used in conjunction with Rehabman's USBInjectAll.kext). An updated SSDT-UIAC.aml is attached. Replace SSDT-UIAC.aml in EFI/CLOVER/ACPI/patched with this updated version.
  3. Install kexts from the links at this post as follows:
    1. If you are injecting 3rd-party kexts with CLOVER (FakeSMC.kext or VirtualSMC.kext is NOT in /Library/Extensions), add IntelBluetoothFirmware.kext, IntelBluetoothInjector.kext and itlwm.ikext to /EFI/CLOVER/kexts/Other (do NOT add itlwmx.kext).
    2. If you have installed FakeSMC.kext or VirtualSMC.kext in /Library/Extensions with CLOVER's "Inject Kexts" = DETECT, you must remove all 3rd-party kexts from /EFI/CLOVER/kexts/Other, set CLOVER "Inject Kexts" = YES (not DETECT) and copy the following kexts to /EFI/CLOVER/kexts/Other: IntelBluetoothFirmware.kext, IntelBluetoothInjector.kext and itlwm.ikext (do NOT add itlwmx.kext)
  4. Reboot and configure Bluetooth and Wi-Fi

 

Since I am running with 3rd-party kexts in /Library/Extensions, my kext configuration is as follows

  • CLOVER "Inject Kexts" = YES
  • Kexts in /EFI/CLOVER/kexts/Other: IntelBluetoothFirmware.kext, IntelBluetoothInjector.kext, itlwm.ikext
  • Kexts in /Library/Extensions: AppleALC.kext, EFICheckDisabler.kext, FakeSMC_CPUSensors.kext, FakeSMC.kext, IntelMausi.kext, Lilu.kext, NVMeFix.kext, USBInjectAll.kext, WhateverGreen.kext


I have not thoroughly tested, but Intel Bluetooth/Wi-Fi looks promising. Below are some screenshots. Bluetooth connected easily to my Bluetooth speaker. Wi-Fi appears as another Ethernet device.

Screenshots

Spoiler

882342492_ScreenShot2020-07-21at12_02_20PM.png.3f40bb3f9357d9a85d0c5d7067282c97.png

 

1587742083_ScreenShot2020-07-21at12_05_05PM.png.a5fb1aa838f6be5e499b73ec7463a677.png


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

I am offering NO support for Intel Wi-Fi / Bluetooth and am only posting this for others who may want to experiment on their own. Please don't clutter this thread with Intel Wi-Fi /Bluetooth support questions. However, if after testing, you have concrete/tested suggestions that improve Intel Wi-Fi / Bluetooth performance, your posts are welcome.

 

 

SSDT-UIAC.zip

Edited by tonyx86
Fixed broken links
Link to comment
Share on other sites

  • 2 weeks later...

I hadn't run GeekBench 5 for a while. Attached are my latest GeekBench 5 graphics scores (OpenCL and Metal). These are consistent with what I first posted in Post #1 of this thread.

 

EDIT: These benchmarks were collected with the additional IGPU graphics attributes discussed in the next post.

 

Spoiler

1263295108_ScreenShot2020-07-31at12_33_50PM.thumb.png.9361fa5327529dde507b1f215c96556e.png

 

1215997181_ScreenShot2020-07-31at12_37_58PM.thumb.png.9d72c14ad29943cb3986b59ec54e3db4.png

 

 

Edited by tonyx86
Link to comment
Share on other sites

I have added the IGPU graphics attributes described here and am currently running with these defined on my system. I have not noticed any behavioral differences. If anyone else wants to experiment with these attributes defined on your system, I'd be curious to know if you find any reason that these attributes should be defined on the HP EliteDesk 800 G4 Mini.

 

EDIT: Attached is an updated CLOVER config.plist with the additional IGPU device properties.  You must replace the XX-MASKED-XX values in the config.plist with your own.

 

 

config.plist.zip

Edited by tonyx86
Fixed broken links
Link to comment
Share on other sites

I have upgraded kexts as follows. I'm observing improved performance as noted in the next post.

  • AppleALC.kext: v1.5.0 -> v1.5.1
  • Lilu.kext: v1.4.5 -> 1.4.6
  • NVMeFix: 1.0.2 -> 1.0.3
  • WhateverGreen.kext: 1.4.0 -> 1.4.1

I have not yet included these new kexts in the EliteDesk.zip archive attached to Post #1 and will update this archive after further testing.

Edited by tonyx86
Link to comment
Share on other sites

I initially thought that the WhateverGreen / Lilu update here made no difference. I stand corrected. My Metal and OpenCL GeekBench5 scores are better. See new scores attached to this post, see previous scores attached here and see comparison below.
 

GeekBench5 Test
WEG 1.40 / Lilu 1.4.5
WEG 1.4.1 / Lilu 1.4.6
Metal
4937
5044
OpenCL
5248
5303

 

GeekBench5 Graphics Scores with WEG 1.4.1 / Lilu 1.4.6

Spoiler

Screen Shot 2020-08-05 at 10.12.22 PM.png

 

Screen Shot 2020-08-05 at 10.09.38 PM.png

Edited by tonyx86
Fixed broken links
Link to comment
Share on other sites

I hadn't run the Unigine Heaven Benchmark for a while. The latest test with results attached shows an improvement in the Max FPS over the results I attached to Post #1. Since I hadn't run this since my first successful installation of Catalina on this rig, I don't know whether the recent WEG upgrade deserves credit for this FPS performance improvement (the latest test having a Max FPS of 35.8 vs. the originally tested Max FPS of 29.9).

While not anywhere near the performance of my Sapphire Pulse RX580, this UHD 630 graphics engine on a 35W integrated CPU/GPU is very respectable.

 

Engine Heaven Benchmark Results

Spoiler

360481367_ScreenShot2020-08-06at8_32_23PM.png.78e9b5a3e287a03d7ac1420b331bb911.png

 

Edited by tonyx86
Fixed broken link
Link to comment
Share on other sites

The upgrade to 10.15.6 19G2021 was easy with the steps below. During the upgrade, don't be surprised if displays flash on and off. Also, pay attention to the selected volume when the system reboots during the upgrade.

  1. Backup! Use Carbon Copy or your favorite backup utility.
  2. If you have installed your 3rd-party kexts in EFI/CLOVER/kexts/Other and not in /Library/Extensions, proceed to Step 3.
    If you have installed your 3rd-party kexts in /Library/Extensions as I have done, create a USB boot disk, install Clover r5119 on the USB drive and install your EFI on the USB drive. Copy all 3rd-party kexts to EFI/CLOVER/kexts/Other on the USB drive. Leave your USB drive inserted so that your system reboots from the USB drive. All 3rd-party kexts must be located in EFI/CLOVER/kexts/Other for the macOS upgrade.
  3. Select About This Mac -> Software Update and start the update. Your system will begin the update.
  4. After your system reboots the first time, select the "Install macOS from Catalina Data" Volume
  5. After your system reboots the second time, select the "Install macOS from Catalina Data" Volume
  6. After your system reboots the third time, boot from your Catalina Volume (now updated). If you created a USB boot drive, you may now remove it.
  7. Welcome to Catalina 10.15.6 19G2021!

 

Screenshot: About this Mac

Spoiler

1823276967_ScreenShot2020-08-13at12_21_11PM.png.c524e6a78bf7c67d7a34d5fb4e803509.png

 

Edited by tonyx86
Link to comment
Share on other sites

I needed to temporarily move my HackMini8,1 to a different desk with different LCD displays (1440x900 instead of the original 1680x1050). When I booted after connecting the new displays, my hack did not auto-detect the display resolution and one of the displays booted to black screen. I could recover the screen and force auto-detection of the black display by cycling power on the black display.

The "fix"for this black screen problem was to change the CLOVER Screen Resolution to 1440x900 (to match the native display resolution of the new displays). I used CLOVER configurator to change the CLOVER Screen Resolution.

Screenshot: CLOVER Screen Resolution

Spoiler

316216228_ScreenShot2020-08-13at1_20_31PM.png.421c0f041049e0a9eebec844fd721dc9.png

 

Link to comment
Share on other sites

  • 2 weeks later...

I just experienced my first issue after a long period of error-free operation. After extended sleep, my system woke with displays swapped. More details are here. This is minor and since I've never seen this before, it's a low priority issue, but one I'd like to solve.

Edited by tonyx86
Fixed broken link
Link to comment
Share on other sites

HP released a BIOS update (02.12.00 Rev.A). I have completed this update and have confirmed that it works fine with the EFI attached to Post #1. Not surprisingly, I have also confirmed that the same EFI works equally well with the i7-8700T (35W) and i7-8700 (65W) CPUs.

Edited by tonyx86
Fixed broken link
Link to comment
Share on other sites

I purchased another gently used HP EliteDesk 800 G4 Mini with i7-8700 65W CPU (vs. the original i7-8700T 35W CPU originally documented in this thread).  Purchase price was $419 USD and included 512GB M.2 SSD and one 16GB DDR4 RAM module (leaving room for an additional M.2 SSD, a SATA6 SSD/HD and another 16GB DDR4 RAM module).  These G4 Mini's are fantastic.  

 

GeekBench5 benchmarks for the "new" G4 Mini are summarized below with screenshots attached.

 

GeekBench5 Test i7-8700T (35W) i7-8700 (65W)
Metal 5044 5120
OpenCL 5303 5459
CPU 1098 / 5015 1255 / 5523

 

Screenshots: GeekBench5 Benchmarks

 

Spoiler

671135299_ScreenShot2020-08-27at4_51_47PM.thumb.png.64bc0a2e9a58dfa06222692d1e8a432c.png

 

106526324_ScreenShot2020-08-27at4_59_31PM.thumb.png.b34d50e32d34666cbe6800213bcb9548.png

 

1222289284_ScreenShot2020-08-27at5_04_00PM.thumb.png.ef2f6bb5aa992ceec2ae947dc72f8b48.png

 

Link to comment
Share on other sites

×
×
  • Create New...