Popular Post deeveedee Posted May 23, 2020 Popular Post Share Posted May 23, 2020 (edited) ********************************************************************************** In this thread, I have fully documented the installation of macOS on my HP EliteDesk 800 G4 / G5 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. ********************************************************************************** This thread is for the EliteDesk 800 G4 / G5 Mini with UHD630 iGPU graphics. If you want a solution for the HP EliteDesk 800 G4 / G5 Mini with AMD Radeon RX560x graphics, see this thread. 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 Desktop: Gigabyte G31 / GeForce 9600 Desktop: Biostar TH55HD / Sapphire Pulse RX580 (Google "Catalina Biostar TH55HD" and look for user name deeveedee) are all perfectly running Catalina and I patched them all "manually" - all DSDT patches applied with MaciSL 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. My system specs HP EliteDesk 800 G5 Mini (I9-9900 / UHD 630 / Q370 Chipset / 32GB DDR4 RAM) (also own 800 G5 Mini with i7-9700, 800 G4 Mini with i7-8700 and have owned 800 G4 Mini with i7-8700T - all work perfectly) 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 I am not using Wi-Fi. See below in "What is not tested" for Wi-Fi solutions. macOS Installation Important: You MUST BE LOGGED-IN to download attachments from this forum See macOS installation steps for OC and CLOVER here See Known Issues here for additional installation steps that may not yet be included in my attached config files See OC and CLOVER EFIs in attached to this post See BIOS configuration in attached BIOS configuration PDF document 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 DRM (no hackintosh solution for DRM with UHD 630 iGPU) Everything else that I have tested is working perfectly What is not tested USB c 3.1 port (I have partially tested the USB 3 functionality of the port and it seems to be working fine with the USBPorts.kext in the attached EFI .zip archives) Wi-Fi / Bluetooth I am not currently using Wi-Fi/Bluetooth in this hack, but starting with Sonoma, Broadcom Wi-Fi is not supported without 3rd-party macOS root patches. I am not in favor of installing Open Core Legacy Patcher (OCLP) root-patches to enable Broadcom Wi-Fi (see my opinion here). If you need basic Wi-Fi/Bluetooth (and don't care about Apple-specific functions like Airdrop), I recommend Open Wireless project to enable Intel Wi-fi/Bluetooth. I don't believe that OCLP Wi-Fi root-patches are safe for secure computing operations (e.g., online banking or even accessing your Facebook page). If you prefer Broadcom Wi-Fi/Bluetooth, replace intel Wi-Fi with Broadcom Wi-Fi here and here and here. 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 - see here BIOS Version / Configuration Tested BIOS Versions for G4 Mini: 02.11.01 Rev.A or 02.12.00 Rev.A or 02.14.01 Rev.A, 02.15.00 Rev.A, 02.16.00 Rev.A, 02.17.00 Rev.A, 02.19.00 Rev.A, 02.20.01 Rev A, 02.21.00 Rev.A Tested BIOS Versions for G5 Mini: 02.07.01 Rev.A, 02.08.00 Rev.A, 02.09.00 Rev.A, 02.10.01 Rev.A, 02.11.00 Rev.A, 02.12.00 Rev.A, 02.12.10 Rev.A, 02.13.00 Rev.A, 02.14.01 Rev.A, 02.15.00 Rev.A See attached BIOS configuration in PDF document "HP EliteDesk 800 G4 Mini BIOS Configuration.pdf" Intel ME must be enabled for proper sleep / wake of UHD 630 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 OpenCore 1.0.2 Lilu.kext 1.6.9 WhateverGreen.kext 1.6.8 AppleALC.kext 1.9.2 IntelMausi.kext 1.0.7 RestrictEvents.kext 1.1.5 VirtualSMC 1.3.4 NVMeFix.kext 1.1.1 Elements of this implementation that you may not see in other hacks HPET is disabled for the reason stated here RTC memory size is patched (like CLOVER's "Fix RTC") instead of using RtcMemoryFixup.kext for reasons here ScreenShots Spoiler OC1.0.2-EFI-R001.zip HP EliteDesk 800 G4 Mini BIOS Configuration.pdf CLOVER-r5122-v6.zip Edited October 12 by deeveedee Added Open Core 1.0.2 EFI 27 12 Link to comment Share on other sites More sharing options...
deeveedee Posted May 23, 2020 Author Share Posted May 23, 2020 (edited) Revision History 23-May-2020: Created thread with draft content 24-May-2020: Updated EliteDesk.zip archive (Rev 0.4) in Post #1 to add darkwake=2 and remove -disablegfxfirmware boot args. See Known Issues in Post #1. 24-May-2020: Updated EliteDesk.zip archive (Rev 0.5) in Post #1 to include missing EFICheckDisabler.kext in LE. 26-May-2020: Updated EliteDesk.zip archive (Rev 0.6) in Post #1 to include an updated SSDT-UIAC.aml to address the missing port types described in Known Issues in Post #1. 27-May-2020: Updated EliteDesk.zip archive (Rev 0.7) in Post #1 to change IntelMausiEthernet.kext to IntelMausi.kext as described in Known Issues in Post #1. 29-May-2020: Solved the UHD 630 "VideoEncodersUnavailable" problem (enabled Intel ME in BIOS). Marked this as solved in Post #1 Known Issues. 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; 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 Clover to r5119 with 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: 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 increases 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. 02-January-2021: Attached new OC 0.6.3 EFI (r006) to Post #1. This revised EFI includes the changes listed here. 04-January-2021: Attached new OC 0.6.5 EFI (r001) to Post #1. This revised EFI includes the changes listed here. 04-January-2021: Attached an updated "CLOVER r5122-v6.zip" archive to Post #1. This new archive includes the changes listed here. 05-January-2021: Removed unnecessary drivers from recommended CLOVER config in Post #1. These drivers have already been removed from the CLOVER EFI archive attached to Post #1. 06-January-2021: Attached new OC 0.6.5 EFI (r002) to Post #1. This revised EFI includes the changes listed here. 03-February-2021: Attached new OC 0.6.6 EFI (r001) to Post #1. This revised EFI includes the changes listed here. 03-February-2021: Attached new OC 0.6.6 EFI (r002) to Post #1. This revised EFI includes the changes listed here. Deleted OC0.6.6-EFI-r001 from Post #1. 13-February-2021: Updated Post #1 with new tested BIOS versions for G4 Mini and G5 Mini 17-February-2021: Attached new OC 0.6.6 EFI (r003) to Post #1. This revised EFI includes the change listed here. 01-March-2021: Attached new OC 0.6.7 EFI (r001) to Post #1. This revised EFI includes the change listed here. 02-March-2021: Created first draft of macOS / OC installation instructions here. 05-April-2021: Attached new OC 0.6.8 EFI (r001) to Post #1. This revised EFI for OpenCore 0.6.8 includes the changes listed here. 27-April-2021: Attached new OC 0.6.8 EFI (r004) to Post #1. This revised EFI for OpenCore 0.6.8 includes the changes listed here. 06-May-2021: Attached new OC 0.6.9 EFI (r001) to Post #1. This revised EFI for OpenCore 0.6.9 includes the changes listed here. 08-May-2021: Attached new OC 0.6.9 EFI (r002) to Post #1. This revised EFI for OpenCore 0.6.9 includes the changes listed here. 07-June-2021: Attached new OC 0.7.0 EFI (r001) to Post #1. This revised EFI for OpenCore 0.7.0 includes the changes listed here. 08-June-2021: Attached new OC 0.7.0 EFI (r002) to Post #1. This revised EFI for OpenCore 0.7.0 includes the changes listed here. 08-July-2021: Attached new OC 0.7.1 EFI (r001) to Post #1. This revised EFI for OpenCore 0.7.1 includes the changes listed here. 07-September-2021: Attached new OC 0.7.3 EFI (r001) to Post #1. This revised EFI for OpenCore 0.7.3 includes the changes listed here. 07-October-2021: Attached new OC 0.7.4 EFI (r001) to Post #1. This revised EFI for OpenCore 0.7.4 includes the changes listed here. 02-November-2021: Upgraded to OC 0.7.5 following upgrade steps here. 07-December-2021: Attached new OC 0.7.6 EFI (r001) to Post #1. This revised EFI for OpenCore 0.7.6 includes the changes listed here. 22-December-2021: Attached new OC 0.7.6 EFI (r002) to Post #1. This revised EFI for OpenCore 0.7.6 includes the changes listed here. 20-January-2022: Attached new OC 0.7.7 EFI (r001) to Post #1. This revised EFI for OpenCore 0.7.7 includes the changes listed here. 12-February-2022: Attached new OC 0.7.8 EFI (r001) to Post #1. This revised EFI for OpenCore 0.7.8 includes the changes listed here. 09-March-2022: Attached new OC 0.7.9 EFI (r001) to Post #1. This revised EFI for OpenCore 0.7.9 includes the changes listed here. 19-April-2022: Attached new OC 0.8.0 EFI (r001) to Post #1. This revised EFI for OpenCore 0.8.0 includes the changes listed here. 07-June-2022: Attached new OC 0.8.1 EFI (r001) to Post #1. This revised EFI for OpenCore 0.8.1 includes the changes listed here. 04-July-2022: Attached new OC 0.8.1 EFI (r004) to Post #1. This revised EFI for OpenCore 0.8.1 includes the changes listed here. 09-July-2022: Attached new OC 0.8.2 EFI (r002) to Post #1. This revised EFI for OpenCore 0.8.2 includes the changes listed here. 02-August-2022: Attached new OC 0.8.3 EFI (r001) to Post #1. This revised EFI for OpenCore 0.8.3 includes the changes listed here. 06-August-2022: Attached new OC 0.8.3 EFI (r002) to Post #1. This revised EFI for OpenCore 0.8.3 includes the changes listed here. 05-September-2022: Attached new OC 0.8.4 EFI (r001) to Post #1. The revised EFI for OpenCore 0.8.4 includes the changes listed here. 04-October-2022: Attached new OC 0.8.5 EFI (r001) to Post #1. The revised EFI for OpenCore 0.8.5 includes the changes listed here. 14-November-2022: Attached new OC0.8.6-EFI-R001 to Post #1. The revised EFI for OpenCore 0.8.6 includes the changes listed here. 10-December-2022: Attached new OC0.8.7-EFI-R001 to Post #1. The revised EFI for OpenCore 0.8.7 includes the changes listed here. 3-January-2023: Attached new 0C0.8.8-EFI-R001 to Post #1. The revised EFI for OpenCore 0.8.8 includes the changes listed here. 4-January-2023: Attached new OC0.8.8-EFI-R002 to Post #1. The revised EFI for OpenCore 0.8.8 includes the changes listed here. 7-March-2023: Attached new OC0.9.0-EFI-R001 to Post #1. The revised EFI for OpenCore 0.9.0 includes the changes listed here. 12-May-2023: Attached new OC0.9.2-EFI-R001 to Post #1. The revised EFI for OpenCore 0.9.2 includes the changes listed here. 13-June-2023: Attached new OC0.9.3-EFI-R001 to Post #1. The revised EFI for OpenCore 0.9.3 includes the changes listed here. 6-July-2023: Attached new OC0.9.3-EFI-R003 to Post #1. The revised EFI for OpenCore 0.9.3 includes the changes listed here. 7-November-2023: Attached new OC0.9.6-EFI-R001 to Post #1. The revised EFI for OpenCore 0.9.6 includes the changes listed here. 13-May-2024: Attached new OC1.0.0-EFI-R001 to Post #1. The revised EFI for OpenCore 1.0.0 includes the changes listed here. 06-August-2024: Attached new OC1.0.1-EFI-R001 to Post #1. The revised EFI for OpenCore 1.0.1 includes the changes listed here. 12-October-2024: Attached new OC1.0.2-EFI-R002 to Post #1. The revised EFI for OpenCore 1.0.2 includes the changes listed here. Edited October 12 by deeveedee 2 Link to comment Share on other sites More sharing options...
deeveedee Posted May 23, 2020 Author Share Posted May 23, 2020 (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 Temporarily added USB port limit patch to permit Catalina USB installation. Then created SSDT-UIAC (using Hackintool) and removed port limit patch. 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. 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. 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 Removed -disablegfxfirmware boot arg which is not needed after successfully implementing FB patching with WEG Edited May 28, 2020 by tonyx86 4 1 Link to comment Share on other sites More sharing options...
deeveedee Posted May 23, 2020 Author Share Posted May 23, 2020 (edited) References that helped me with this build Intel HD Graphics FAQs Intel Framebuffer patching using WhateverGreen Edited January 14, 2021 by tonyx86 Fixed broken link Link to comment Share on other sites More sharing options...
deeveedee Posted May 23, 2020 Author Share Posted May 23, 2020 (edited) Known Issues and Their Solutions As mentioned by Mieze here, modifying the DMAR table may have unintended consequences. Since modifying DMAR table is not required in this hack when enabling VT-d in BIOS, the DMAR modification will be removed from a future EFI. My _PTS -> XPTS ACPI patch has been wrong for as long as I can remember for this hack. As discussed here and here, my 4-byte Find/Replace sequence results in an incorrect match/replace. My fix (adding a byte to the Find/Replace sequence, will be in a future EFI. Sonoma 14.4 will not install with the EFI attached to Post #1. The solution (so far) is to change Open Core's SecureBootModel to "Disabled." See here. VT-d is not enabled in BIOS - solution is to change VT-d to enabled in BIOS. With my OC EFIs starting with OC 0.9.6, my EFI modifies the ACPI DMAR table, so VT-d should be enabled in BIOS. At the time of this writing, I have not modified my BIOS configuration PDF attached to Post #1, so it still says to disable VT-d. (Solved - and included in posted EFI) macOS Volumes on USB devices do not appear in OC boot menu. Read more here. BCM94360NG Wi-Fi has reduced speed on 802.11ac (5 GHz). This is a macOS driver problem as stated here. See here for macOS Ventura Beta test updates (Solved and included in EFI attached to Post #1 starting with OC 0.8.2 EFI R002) If you are experiencing sleep issues with your hack, see solution here). (Solution here) If you are unable to create a bootable backup with Carbon Copy or other software, use DiskUtility as discussed here. (Solution here) If you are installing Big Sur or later on a SATA SSD, the macOS installer does not "see" the SATA SSD. See solution here. (Solution here) If you are unable to perform an HP EliteDesk 800 G4/G5 Mini BIOS update via the built-in BIOS updater, use the BIOS recovery procedure here. (Potential solution here) If you are experiencing "lost display" issues when running Microsoft Remote Desktop in macOS Monterey, try solution here. (Potential solution here) If you are experiencing Bluetooth connectivity issues with the BCM94360NG module, try the solution here and here. HackMIni8,1 freezes during upgrade from XCode 12.5.1 to XCode 13.2.1. See here. (Solved. Configure manually since this is not configured in posted EFI) Boot chime (startup audio) does not play after upgrading to OC 0.7.7. See UEFI audio configuration here. (Solved and included in EFI attached to Post #1 starting with OC 0.7.6 R002) Monterey does not support patched connector type Dual-Link DVI (<04000000>) which I had been using to enable displays with DP->DVI adapters. With connector type DVI, Monterey boots to black screens. Starting with Monterey, we must use patched connector type HDMI (<00080000>) with DP->DVI adapters as discussed here. (Solved and included in OC 0.7.6 and newer EFIs attached to Post #1) Apple's Intel GUC firmware update is not applied for increased iGPU performance. Solution is to add igfxfw=2 boot-arg as discussed here. (Solved - See solution here) Volumes names are incorrect in OC's boot menu and/or graphics boot picker. See solution here. (Solved - See solution here) Unable to upgrade XCode from 12.4 to 12.5+ after upgrading from Catalina to Big Sur. Solution is to perform a clean installation of Big Sur as described here. (Solved - See solution here) Unable to print from macOS to Windows shared printers (SMB). Problem was caused by a Microsoft and Apple updates as explained here. (Solved - Don't use Samsung SSDs) Samsung SSDs may cause problems in your system, even if they are not your primary boot device. The Dortania guide advises against the use of some Samsung SSD models here. Since there are alternatives (like Western Digital Black SSDs), I'm not recommending any Samsung SSDs for our hackintosh. More info here. (Solved and included in the latest OC EFI attached to Post #1) As discussed here, the _DSM->XDSM rename patch enabled in OC config.plist is unnecessary. This rename does not affect booting macOS with OC, but it may affect booting Windows with OC. Solution is to disable or remove this rename rule. (Solved and included in the OC EFI attached to Post #1) Either BIOS or macOS updates (maybe both?) may require a new rtcfx_exclude range for RtcMemoryFixup.kext. I don't like periodically having to find a new rtcfx_exclude range, so I'm abandoning RtcMemoryFixup and reverting to the RTC memory size patch employed by CLOVER (Fix RTC). According to Download-Fritz here, RtcMemoryFixup patches upper RTC memory for use with hibernate and FV2 unattended restart. I don't care about either of these, so RtcMemoryFixup.kext has no value for me. See here. (Solved. Remove AudioDXE driver and disable UEFI Audio Support in OC config.plist) If OpenCore startup times are long (delay before seeing the boot picker), try disabling the AudioDXE driver and disabling UEFI Audio Support in the OC config.plist. Currently, AudioDXE driver and UEFI Audio Support are enabled in the OC EFI attached to Post #1, so you will need to make this change yourself. (Solved. Switched to VirtualSMC.kext which is included in the OC EFI attached to Post #1) The 'old' FakeSMC.kext has compatibility issues with OC. If you like FakeSMC's HWMonitor.app/Sensors, there's a newer version of FakeSMC. See here. I suspect that the 'old' FakeSMC is responsible for a random restart that I experienced when updating BS 11.2 to BS 11.2.1 and that it was responsible for random restarts that I observed after upgrading my G4 Mini's BIOS from 2.14.01 to 2.15. If you're using VirtualSMC.kext (instead of FakeSMC), you can disregard this issue. (Solved and included in the EFI attached to Post #1) Big Sur update notifications do not appear via the normal 'Software Update' mechanism. Big Sur updates may require certain SIP levels. The OC EFI attached to Post #1 has SIP fully enabled (in OC config.plist, NVRAM>Add>7C436110-AB2A-4BBB-A880-FE41995C9F82>csr-active-config is <00000000>). If you have fully or partially disabled SIP, you may not be notified of Big Sur updates. (Solved. Not yet included in the EFI attached to Post #1) The Connector specified in USBPorts.kext may not be correct for the USB-C port on the front of the HP EliteDesk 800 G4 Mini. See here. (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 several 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+ (I won't be testing, but this is apparently fixed in a release AFTER CLOVER r5128 (see commit here)). (Solved. This will not be updated in the CLOVER EFI 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. (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 your system includes a SATA SSD, you may need to enable Kernel > Quirk > ThirdPartyDrives (in OC config.plist) or enable a CLOVER TRIM patch to enable TRIM on your 3rd-party SSD. NVMe SSDs do not require this. (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. (Solved and included in the OC EFI attached to Post #1) Following a reboot during macOS install/upgrade, real time clock may be lost. The fix for this is RTCMemoryFixup.kext with a custom rtcfx_exclude range as noted here. Abandoned RtcMemoryFixup.kext and reverted to RTC memory size patch (0x02) which is the same as CLOVER's Fix RTX patch. (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 EliteDesk.zip archive attached to Post #1) USBPorts.kext has wrong M.2 USB port type, wrong USB Type C port type and incorrect USB Sleep/Wake Power properties. SSDT-USBX.aml is not necessary when using USBPorts.kext. 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. (Solved and included in the EliteDesk.zip archive 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. (Solved and included in the EliteDesk.zip archive 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. (Solved and included in the EFI attached to Post #1) 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 ONLY: 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 'MacMin8,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. This is included in the EliteDesk.zip archive attached to Post #1. (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, you will need to add the Bluetooth USB port mapping to SSDT-UIAC.aml. (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 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 and are included in the 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. This driver has been removed from EliteDesk.zip archive attached to Post #1. (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. Problem resolves itself after a few boot cycles) After applying the Catalina 10.15.5.02 supplemental update, Catalina booted to a single display. After a few boot cycles, multi-display operation was restored to normal. (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 (Rev 1.0.2 here). (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). The attached EliteDesk.zip archive includes this fix. (No longer observed. Possibly resolved in a Clover fix.) 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. (Solved - this is a BIOS setting and requires no macOS changes) Safari has problems loading insanelymac web pages after sleep / wake. I suspect that the problem is with the embedded video on the pages. Also observed video problem in AppStore after sleep/wake. Console: VideoDecodersUnavailable. Solution is to enable Intel ME in BIOS. (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 attached EliteDesk.zip archive) 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 include Q370 chipset. See here. Edited July 20 by deeveedee 2 Link to comment Share on other sites More sharing options...
deeveedee Posted May 26, 2020 Author Share Posted May 26, 2020 (edited) Install macOS on HP EliteDesk 800 G4/G5 Mini with Open Core (OC). (See Catalina/CLOVER installation instructions later in this post) Rev 1.0.9 9-July-2024 **************************************************************** This guide is for installing macOS with Open Core (OC) boot loader on HP EliteDesk G4/G5 Minis. This guide is tested with the EliteDesk 800 G4/G5 Mini. Others have claimed that it works with ProDesk 600 Mini as well. This guide is not intended for other HP EliteDesk models. **************************************************************** IMPORTANT Sonoma 14.4+ will not install on this EliteDesk 800 G4 / G5 Mini unless SecureBootModel is disabled in the Open Core config.plist. See here. You may restore SecureBootModel to its enabled configuration after Sonoma 14.4+ is installed. If you need Bluetooth functionality, you WILL need to edit the USB port map in USBPorts.kext. As-is, the provided EFI will NOT support Bluetooth, since the Bluetooth USB port (HS14) is not included in the USB port map. If you require functioning Bluetooth, read these directions carefully to make sure that Bluetooth is enabled in BIOS and in the USB port map. Pay close attention to the boot options you select from the OC boot picker to make sure that you complete all steps of the macOS installation. OC usually does a good job of picking the correct boot option, but you should still confirm each selected boot option each time the macOS installer reboots. This guide assumes that you are using an Open Core (OC) EFI.zip archive attached to Post #1. BEFORE installing macOS, edit the provided OC config.plist, replacing PlatformInfo>Generic> MLB, ROM, SystemSerialNumber, SystemUUID values with your own unique values. If you don’t already have your own unique values, use corpnewt/GenSMBIOS to create your own MLB, SystemSerialNumber and SystemUUID. User your rig's Ethernet MAC Address for your ROM. If you need to add any OC components to your EFI, use components ONLY from the OC version indicated in the name of the provided EFI.zip archive (e.g. use ONLY OC 0.6.7 with OC0.6.7-EFI-r001.zip). Configuring your BIOS with USB as your first UEFI boot device will simplify macOS installation, since you will be rebooting multiple times from the USB stick. Beginning with Big Sur 11.3, you must make sure that your USBPorts.kext (in EFI/OC/Kexts) has only 15 logical ports. Starting with EFI archive OCO.6.7-EFI-r001.zip, the included USBPorts.kext matches the included Sample USBPorts-noHS14.kext (internal Bluetooth USB port HS14 is removed from the USB port map). The provided OC EFI includes USBPorts-16.kext (in the OC/Kexts/SampleUsbKexts folder) that includes all 16 available logical USB ports. After installing macOS, you may need to edit USBPorts-16.kext/Contents/Info.plist to create your own custom USBPorts.kext to enable/disable the ports that you require (while remaining within the 15-port limit). Creating your own USBPorts.kext will be important if your bluetooth requires port HS14. The BIOS configuration instructions attached to Post #1 indicate that M.2 USB / Bluetooth is disabled. Enable M.2 / USB Bluetooth in BIOS if you are using Bluetooth. The graphics DeviceProperties in the provided config.plist are for systems using DP->DVI adapters for their displays. You may need to edit your own config.plist DeviceProperties if you are using different displays (e.g. if you are using DP or HDMI ports without adapters). See here for example DeviceProperties that may be suitable for your graphics. The audio DeviceProperties in the provided config.plist have audio over DP/HDMI disabled (No-hda-gfx is defined). You will need to delete No-hda-gfx from the config.plist audio DeviceProperties to enable audio over DP/HDMI. Don't forget to review known issues and their solutions here. There may be some resolved issues that are not yet included in the provided EFI. ************************************ Configure your G4/G5 Mini BIOS as per the BIOS configuration attached to Post #1. It is possible that HP has released a newer BIOS version than the tested versions, so be sure to test your hackintosh if you use a BIOS version that is not listed. If you want to replace your Intel Wi-Fi/Bluetooth with Broadcom, here is a tested option. Create a macOS USB Installer (follow instructions here) Copy the provided OC EFI (attached to Post #1) to the EFI on your macOS USB Installer. After you copy the EFI to your USB drive, the EFI directory structure on your USB drive should be /Volumes/EFI/EFI containing folders BOOT and OC. If you are installing Sonoma 14.4+ or upgrading to Sonoma 14.4+, you must disable SecureBootModel in Open Core's config.plist. See more here. After Sonoma 14.4+ is installed, you may restore SecureBootModel to its fully enabled state. Edit config.plist in the USB stick EFI/OC, replacing the PlatformInfo>Generic> MLB, ROM, SystemSerialNumber, SystemUUID values with your own values. If you don’t already have your own unique values, use corpnewt/GenSMBIOS to create your own MLB, SystemSerialNumber and SystemUUID. User your rig's Ethernet MAC Address for your ROM. Customize USBPorts.kext in OC/EFI with your own 15-port USBPorts.kext. If you are not sure which USB ports you need, you may start with the provided USBPorts.kext (which does NOT include Bluetooth USB port HS14). Beginning with EFI archive OC0.6.7-EFI-r001, the provided USBPorts.kext matches the Sample USBPorts-NoHS14.kext (removes the internal Bluetooth USB port HS14). The provided EFI includes USBPorts-16.kext (in OC/Kexts/SampleUsbKexts) which defines all 16 available logical USB ports. You can edit USBPorts-16.kext/Contents/Info.plist to create your own custom USBPorts.kext. After you create your own custom USBPorts.kext, be sure that it has only 15 defined USB ports and that it is named USBPorts.kext. Replace the original USBPorts.kext in OC/Kexts with your new USBPorts.kext. The BIOS configuration instructions attached to Post #1 indicate that M.2 USB / Bluetooth is disabled. Enable M.2 / USB Bluetooth in BIOS if you are using Bluetooth. The graphics DeviceProperties in the provided config.plist are for systems using DP->DVI adapters for their displays. You may need to edit your own config.plist DeviceProperties if you are using different displays (e.g. if you are using DP or HDMI ports without adapters). See here for example DeviceProperties that may be suitable for your graphics. Boot from the macOS Installer USB stick If booting for the first time after updating/changing your OC EFI, Reset NVRAM and reboot At the OC boot picker, select “Boot macOS Install” from the macOS installer USB stick If you are performing a new macOS 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 Select Install macOS from the macOS Utilities screen and click Continue Click Continue and click Agree Select the target volume for your macOS installation and click Continue When the macOS installer reboots, boot from the USB stick At the OC boot picker, select “Boot macOS Install” from your macOS target disk (NOT the macOS installer on the USB stick) When the macOS installer reboots, boot from the USB stick At the OC boot picker, select “Boot macOS Install” from your macOS target disk (NOT the macOS installer on the USB stick). Note that you are selecting this same entry for the SECOND TIME. When the macOS installer reboots, boot from the USB stick At the macOS boot screen, select “Boot macOS” from your macOS target disk Follow the macOS configuration prompts Copy the OC EFI from your USB stick to your target disk EFI Eject / Remove the macOS installer USB stick Reboot and confirm that your new macOS installation starts and runs properly Use pmset to set hibernatemode and proximitywake to 0 to address potential sleep issues. You may use the attached pmset-fix script to automate setting pm settings. Chmod +X in order to be able to execute the script. Disable "Wake for Ethernet" and disable "Enable Power Nap" (System Preferences > Energy Saver) If necessary, modify USBPort.kext/Contents/Info.plist to customize your USB port map. Begining with Big Sur 11.3, USB port maps must include no more than 15 logical USB ports (port limit patching is no longer supported). The OC EFI.zip attached to Post #1 includes USBPorts-16.kext (in OC/Kexts/SampleUsbKexts) with all 16 available logical USB ports. Edit USBPorts-16.kext/Contents/Info.plist to remove one logical port that you are not using, rename it to USBPorts.kext and copy it to EFI/OC/Kexts. The audio DeviceProperties in the provided config.plist have audio over DP/HDMI disabled (No-hda-gfx is defined). You will need to delete No-hda-gfx from the config.plist audio DeviceProperties to enable audio over DP/HDMI. See my Known Issues here for solutions that have not yet been included in the provided EFI (you may need to apply these fixes yourself). If you have successfully created Device Properties for a Graphics/Audio configuration that is not listed here, please create a new post in this thread with your new Device Properties. See this post as an example for your post. Thank you! ============================================================================================= ============================================================================================= Install Catalina on HP EliteDesk 800 G4 Mini using CLOVER bootloader (these instructions assume CLOVER r5122 with Catalina) Rev 1.0 12-June-2020 ************************************ 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. ************************************ 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. Create a “vanilla” Catalina USB Installer (follow instructions here) Install CLOVER boot loader on the Catalina Installer USB stick. Use the CLOVER configuration provided at the end of this post with the CLOVER version specified at the end of this post Copy CLOVER 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. Edit config.plist in the USB stick EFI/CLOVER, replacing the XX-MASKED-XX values with your own values Boot your G4 Mini from the Catalina Installer USB stick At the Clover boot screen, select “Boot macOS Install” from the Catalina installer USB stick If upgrading an existing macOS installation, skip to Step 10 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 Select Install macOS from the macOS Utilities screen and click Continue Click Continue and click Agree Select the target drive for your Catalina installation or upgrade and click Continue When the Catalina installer reboots, boot from the Catalina installer USB stick At the CLOVER boot screen, select “Boot macOS Install” from your Catalina target disk (NOT the Catalina installer on the USB stick) When the Catalina installer reboots, boot from the Catalina installer USB stick 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. When the Catalina installer reboots, boot from the Catalina installer USB stick At the CLOVER boot screen, select “Boot macOS” from your Catalina target disk Follow the Catalina configuration prompts Welcome to Catalina! If performing an upgrade, confirm your new macOS version by viewing About This Mac If performing a new installation Install CLOVER boot loader on the Catalina target disk. Use the CLOVER configuration provided at the end of this post and the CLOVER version specified at the end of this post Copy CLOVER 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. 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. Eject / Remove the Catalina installer USB stick Reboot and confirm that your new Catalina installation starts and runs properly Use pmset to set hibernatemode and proximitywake to 0 to address potential sleep issues Disable "Wake for Ethernet" and disable "Enable Power Nap" (System Preferences > Energy Saver) Delete hibernatefile ‘/var/vm/sleepimage’ and recreate “dummy” ‘/var/vm/sleepimage’ See my Known Issues here for solutions that have not yet been included in the CLOVER EliteDesk.zip archive attached to Post #1 (you may need to apply these fixes yourself). Clover Configuration (CLOVER r5122 will be my last CLOVER-based solution. I will be using OC as I migrate to Big Sur) 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 OcQuirks in CLOVER config also installs OpenRuntime) Install RC scripts on target volume Themes Choose your desired theme 3xDP-to-DVI.plist.zip pmset-fix.zip Edited July 9 by deeveedee Added Brcm Wi-Fi/Bluetooth option 3 Link to comment Share on other sites More sharing options...
deeveedee Posted May 27, 2020 Author Share Posted May 27, 2020 (edited) Things that I'm still investigating Single-link DVI connector type for my "low res" display here OpenCore here Intel Wi-Fi / Bluetooth support here Multicore performance is better in Windows 10 than in Catalina as discussed here Edited January 14, 2021 by tonyx86 Fixed broken links Link to comment Share on other sites More sharing options...
deeveedee Posted May 27, 2020 Author Share Posted May 27, 2020 (edited) Lesson learned. I tried to change my framebuffer-conX-type to 0x0400 (DP) and thought my system worked with framebuffer-conX-type DP, but it does not. My EliteDesk 800 G4 Mini DOES require framebuffer-conX-type = 0x0004 (DigitalDVI) and not 0x0400 (DP). I needed to reboot a couple of times to observe the problem when framebuffer-conX-type = 0x0400 (DP) (Display is blank or garbled with framebuffer-conX-type = 0x0400 DP). I suspect this is an NVRAM issue, where NVRAM is retaining display configuration after I make a display property change. My lesson learned is that I need to reboot a few times after making a display change to confirm the change. I will NOT be changing my framebuffer-conX-type. The correct port type with DP->DVI adapters is DigitalDVI. Edited October 1, 2020 by tonyx86 Link to comment Share on other sites More sharing options...
deeveedee Posted May 27, 2020 Author Share Posted May 27, 2020 EDIT: After switching from IntelMausiEthernet.kext to IntelMausi.kext, the 10.15.4 to 10.15.5 upgrade proceeded without issues. ----------------------------------------------- I'm currently updating from 10.15.4.02 to 10.15.5.01. During the upgrade, I found that my HP EliteDesk 800 G4 froze at "26 minutes remaining." An inspection of the problem revealed that my Ethernet switch was crippled by the HP EliteDesk (I'm not sure if this was because of a packet storm from the EliteDesk or a link negotiation problem - I didn't check). I switched IntelMausiEthernet.kext to IntelMausi.kext (rev 1.0.2) here and the 10.15.5 install was able to proceed normally. Note that during the upgrade from 10.15.4 to 10.15.5, my displays changed from one to the other and displays blanked and reappeared repeatedly. Aside from this strange display behavior, the upgrade proceeds without issues. Spoiler 1 Link to comment Share on other sites More sharing options...
deeveedee Posted May 28, 2020 Author Share Posted May 28, 2020 (edited) EDIT: After I posted this, I fixed the "VideoDecodersUnavailable" problem mentioned in the attached table. Sleep/wake now works fine without the "VideoDecoderUnavailable" problem mentioned in the attached table. ----------------------------------- While experimenting with FrameBuffer patching / WEG, I tried all Coffeelake AAPL,ig-platform-id values for frame buffers that have 3 connectors. My IGPU device-id is 0x3e92. My test results are below. Note that I would only see the display when the AAPL,ig-platform-id value ends in 0x00. My current working configuration is device-id=0x00003E92, AAPL,ig-platform-id=0x3E920000 (reverse byte order: device-id = 0x923E0000, AAPL,ig-platform-id = 0x0000923E) **** IMPORTANT NOTE ABOUT REVERSE BYTE ORDER **** The byte order of data in the config.plist MUST be "reverse byte order" and NOT the actual value. The 64-bit hexadecimal value framebuffer-patch-enable = 0x00000001 (one) must be specified in the config.plist in its reverse byte order 0x01000000 The value AAPL,ig-platform-id = 0x3E920000 but be specified in the config.plist in its reverse byte order 0x0000923e The value device-id = 0x00003E92 must be specified in the config.plist in its reverse byte order 0x923e0000 The value framebuffer-con0-type = 0x00000004 must be specified in the config.plist in its reverse byte order 0x04000000 ------------------------------------------------ EDIT: While experimenting with BusIDs, I tried the following with the results noted. When configured with the BusIDs noted in the "Working" column, all displays worked properly. When configured with the BusIDs noted in the "Non-Working" column, one of the displays was black. Note that these BusIDs are valid for DigitalDVI connector types. Working Non-Working framebuffer-con0-busid 0x01 0x02 framebuffer-con1-busid 0x02 0x04 framebuffer-con2-busid 0x04 0x06 Test Results Spoiler Edited September 2, 2020 by tonyx86 Added BusIDs 2 Link to comment Share on other sites More sharing options...
deeveedee Posted May 29, 2020 Author Share Posted May 29, 2020 (edited) With my solution to the UHD 630 sleep / wake problem here, I am not observing any other meaningful issues with this MacMini8,1. Note that at the time of this writing, I still have not tested the USB Type-C port (which probably doesn't work at this time because I haven't mapped it in SSDT-UIAC) and I have not tested the microphone port. This is a perfect MacMini8,1. Edited January 14, 2021 by tonyx86 Fixed broken link Link to comment Share on other sites More sharing options...
deeveedee Posted June 1, 2020 Author Share Posted June 1, 2020 (edited) I have updated the EliteDesk800.zip archive attached to Post #1 of this thread with the following changes/additions. The new version of this archive is rev 0.8. Updated AppleALC.kext from 1.4.9 to 1.5.0 Updated IntelMausi.kext from 1.0.2 to 1.0.3 Updated Lilu.kext from 1.4.4 to 1.4.5 Updated WhateverGreen.kext from 1.3.9 to 1.4.0 Added FakeSMC_CPUSensors.kext to support HWMonitor app Added Applications folder with HWMonitor app Note that my installation methodology installs kexts in /Library/Extensions (read my installation methodology here). If you are installing all of your 3rd-party kexts in EFI/CLOVER/kexts/Other (not in /Library/Extensions), make sure that all of the 3rd party kexts in the LE folder in the EliteDesk800.zip archive are in your EFI/CLOVER/kexts/Other folder. If you are installing 3rd-party kexts in /Library/Extensions, make sure that you properly install the kexts with the correct ownership / permissions. I use Hackintool to install 3rd-party kexts in /Library/Extensions. Edited January 14, 2021 by tonyx86 Fixed broken link Link to comment Share on other sites More sharing options...
deeveedee Posted June 2, 2020 Author Share Posted June 2, 2020 The 10.15.5.02 supplemental update installed easily. After first applying the 10.15.5.02 supplemental update, Catalina booted to a single display (additional displays did not work). After a few reboots, displays are back to normal. Spoiler Link to comment Share on other sites More sharing options...
deeveedee Posted June 3, 2020 Author Share Posted June 3, 2020 (edited) I have attached an updated EliteDesk800.zip archive to Post #1 in this thread. I inadvertently masked the Board-ID property in the CLOVER config.plist included in the EliteDesk800.zip archive attached to Post #1. This Board-ID should not have been masked (nothing private about it) and is necessary (with MacModel MacMini8,1) for Catalina 10.15.5 to install. Edited January 14, 2021 by tonyx86 Fixed broken links Link to comment Share on other sites More sharing options...
brx7 Posted June 3, 2020 Share Posted June 3, 2020 Did you change the id due to catalina 15.5.5 update ? Link to comment Share on other sites More sharing options...
deeveedee Posted June 3, 2020 Author Share Posted June 3, 2020 (edited) 37 minutes ago, brx7 said: Did you change the id due to catalina 15.5.5 update ? I didn't actually change the Board-ID. In my original "sanitized" config.plist, I had replaced the MacMini8,1 Board-ID with XXX-MASKED-XXX when I was masking other sensitive values (like my serial number). Beginning with 10.15.5, the installer will not install without both a supported MacModel (MacMini8,1) AND a supported Board-ID. Prior to 10.15.5, the installer would check only the MacModel. The Board-ID in the latest archive attached to Post #1 is now the Board-ID auto-populated by Clover Configurator for MacMini8,1. Edited June 3, 2020 by tonyx86 Link to comment Share on other sites More sharing options...
brx7 Posted June 3, 2020 Share Posted June 3, 2020 12 minutes ago, tonyx86 said: I didn't actually change the Board-ID. In my original "sanitized" config.plist, I had replaced the MacMini8,1 Board-ID with XXX-MASKED-XXX when I was masking other sensitive values (like my serial number). Beginning with 10.15.5, the installer will not install without both a supported MacModel (MacMini8,1) AND a supported Board-ID. Prior to 10.15.5, the installer would check only the MacModel. The Board-ID in the latest archive attached to Post #1 is now the Board-ID auto-populated by Clover Configurator for MacMini8,1. Did you also change the device id for igpu uhd630? Link to comment Share on other sites More sharing options...
brx7 Posted June 3, 2020 Share Posted June 3, 2020 (edited) Got it working, . 0x3E920000 was correct for me. using latest lilu and web, OC 0.6.0, all connection are dummy in hackintool though uhd630_cat1555.plist Edited June 3, 2020 by brx7 1 Link to comment Share on other sites More sharing options...
deeveedee Posted June 3, 2020 Author Share Posted June 3, 2020 (edited) 19 hours ago, brx7 said: Got it working, . 0x3E920000 was correct for me. using latest lilu and web, OC 0.6.0, all connection are dummy in hackintool though uhd630_cat1555.plist That's great that the AAPL,ig-platform-id in my config.plist also worked for you. Glad you found this helpful. Note that my default device-id is 0x3e92. I included device-id in my config.plist device properties, but did not change the value from its default. Edited June 4, 2020 by tonyx86 Link to comment Share on other sites More sharing options...
deeveedee Posted June 4, 2020 Author Share Posted June 4, 2020 (edited) I attached an updated EliteDesk800.zip archive to Post #1 in this thread. This update restores the missing graphics device properties device-id and AAPL,ig-platform-id. Not sure how this happened, since my production system was fine - only the archive that I attached to Post #1 had the missing properties. Edited January 14, 2021 by tonyx86 Fixed broken links Link to comment Share on other sites More sharing options...
deeveedee Posted June 4, 2020 Author Share Posted June 4, 2020 If I plug a new display in while my HP EliteDesk800 G4 Mini is sleeping, the new display may not be automatically detected on wake. The solution is to cycle the power on the new display. Cycling power on the newly added display triggers re-detection of the displays. Link to comment Share on other sites More sharing options...
deeveedee Posted June 5, 2020 Author Share Posted June 5, 2020 (edited) Just upgraded to Clover r5119. My system is working perfectly. The Clover team is doing a great job of making improvements. Use the Clover configuration in Post #1 of this thread. Edited January 14, 2021 by tonyx86 Fixed broken link Link to comment Share on other sites More sharing options...
deeveedee Posted June 7, 2020 Author Share Posted June 7, 2020 Not the boot times that I expected... I just ran a test to compare Catalina 10.15.5.02 boot times from my M.2 NVMe x4 SSD (ADATA SX8200PNP 256GB) and my 2.5" SATA 6 SSD (ADATA SU800 256GB). My system boots faster from the 2.5" SATA6 SSD than from the NVMe SSD. I expected faster boot times from the NVMe drive. Boot times measured from Clover r5119 boot screen to Catalina 10.15.5.02 Login prompt with all displays visible M.2 NVMe x4 SSD: 14.4 seconds 2.5" SATA6 SSD: 11.5 seconds Link to comment Share on other sites More sharing options...
deeveedee Posted June 8, 2020 Author Share Posted June 8, 2020 Rehabman's USB Power Property tutorial appears to still be relevant to this HackMini8,1 running Catalina. The USBMap tool (Option U) indicates that USB Power properties are not properly defined (see attached screenshot "BEFORE"). I examined the ACPI dump of a real MacMini8,1 and see that the real MacMini8,1 DSDT.aml defines Device USBX (below). After adding SSDT-USBX.aml with the real MacMini8,1 USB Power properties, USBMap tool (Option U) indicates that USB Power properties are ok (see attached screenshot "AFTER"). Copy the attached SSDT-USBX.aml to EFI/CLOVER/ACPI/patched for your HackMini8,1.Device (USBX) from a real MacMini8,1 DSDT.aml Device (USBX) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Local0 = Package (0x08) { "kUSBSleepPowerSupply", 0x0C80, "kUSBSleepPortCurrentLimit", 0x0834, "kUSBWakePowerSupply", 0x0C80, "kUSBWakePortCurrentLimit", 0x0834 } DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Spoiler SSDT-USBX.zip Link to comment Share on other sites More sharing options...
deeveedee Posted June 8, 2020 Author Share Posted June 8, 2020 As I was exploring the ACPI from a real MacMini8,1, I noticed a couple of differences that need to be remedied in our HackMini8,1: The real MacMini8,1 ACPI has Device (MCHC). This is easily remedied by enabling "Add MCHC" in Clover's config.plist The real MacMini8,1 ACPI has a different Device (PMCR) than the fake PMCR that is floating around the web. With the fake PMCR version that I found, Device (PMCR) is not loaded (as viewed with IORegistry Explorer). With the "real" Device (PMCR) (from the real MacMini8,1 ACPI), Device (PMCR) is loaded. The "real" Device (PMCR) is below and is injected with the attached SSDT. See attached IORegistry Explorer screenshot to see why the modified PMCR now has an IONameMatch. DefinitionBlock ("", "SSDT", 2, "hack", "_PMCR", 0x00000000) { External (_SB_.PCI0, DeviceObj) Scope (_SB.PCI0) { Device (PMCR) { Name (_HID, EisaId ("APP9876")) // _HID: Hardware ID Name (_STA, 0x0B) // _STA: Status Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings { Memory32Fixed (ReadWrite, 0xFE000000, // Address Base 0x00010000, // Address Length ) }) } } } SSDT-PMCR.zip Spoiler Link to comment Share on other sites More sharing options...
Recommended Posts