Recently Browsing 0 members
No registered users viewing this page.
I am trying to passthrough FirePro D700 gpu to MacOS Catalina VM in ESXi running on MacPro6,1.
I have tried normal MacOS VM with ESXi it didn't work. After deep inspection and research I found out that ESXi doesn't provide the VBIOS to MacOS VM and hence no way of MacOS to read information about the GPUs.
After researching more I found out that with SSDT i could inject VBIOS via "ATY,bin_image" property. I extracted VBIOS with DarwinDumper and created SSDT. I installed OpenCore to add this SSDT and enabled WhateverGreen and Lilu. Now IORegistry shows that I have bios for my GPU but still there is no output on any of my ports.
I am trying to inject more properties but no luck.
I have attached my OpenCore folder and IOReg from the VM below.
Has anyone ever attempted something similar? Any help or pointers how can I implement this?
PS : Just to let you know I can make this work with Proxmox as it allows an option to inject GPU vbios but need ESXi for compatibility purposes.
In this thread, I have fully documented the installation of macOS Catalina on my HP EliteDesk 800 G4 Mini. It is a PERFECT HackMini8,1 and is running very well for me without any issues. I hope this documentation helps you to install macOS on your hack. Please leave feedback if you think there is anything I can improve and let me know if you have any questions.
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 G4 Mini (I7-8700T / UHD 630 / Q370 Chipset / 32GB DDR4 RAM) 3 x DP Ports (connected to monitors using DP -> DVI adapters) 6 x USB 3.1 1 x USB Type-C 3.1 2 x NVMe SSD (M.2 PCIe x4 2280/2230 combo ports) 1 x SATA6 SSD 1 x Intel Ethernet RJ-45 Conexant CX20632 Audio Codec Unsupported M.2 PCIe x1 2230 Intel Wi-Fi. A possible solution is here, but I am NOT offering any support for this.
Important: You MUST BE LOGGED-IN to download attachments from this forum
See macOS installation steps here See Known Issues here for additional installation steps that may not yet be included in my attached config files See CLOVER (UEFI) installation later in this first post
See BIOS configuration in attached BIOS configuration PDF document
See EFI and /L/E kexts in attached EliteDesk.zip archive See how I developed my installation methodology here See references here See instructions here for installing two M.2 2280 NVMe SSDs and one SATA HD / SSD
What is not working
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 EliteDesk800.zip archive) Wi-Fi / Bluetooth (intentional since I have not yet replaced my Intel card). A possible solution is here, but I am not offering any support for this.
What is working
Everything not mentioned above Sleep / Wake Multiple displays with IGPU graphics acceleration, hot pluggable display ports and DP->DVI adapters USB 3.1 ports Audio (internal speaker and headphone jack) Ethernet
Known Issues and their solutions - see here
BIOS Version / Configuration
Version: 02.11.01 Rev.A or 02.12.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
Clover for UEFI booting only Install Clover in the ESP UEFI Drivers Recommended drivers DataHubDxe FSInject SMCHelper File System drivers ApfsDriverLoader VBoxHfs Memory fix drivers OcQuirks (replaces AptioMemoryFix) Additional drivers NvmExpressDxe Install RC scripts on target volume Themes Choose your desired theme Install Clover Preference Pane (option not available when installing on USB thumb drive)
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
Catalina 10.15.7 Clover (UEFI) r5122 Lilu.kext 1.4.8 WhateverGreen.kext 1.4.3 AppleALC.kext 1.5.3 IntelMausi.kext 1.0.4 (acidanthera version) NVMeFix.kext 1.0.4 EFIChecikDisabler.kext 0.5
Credits To be provided
HP EliteDesk 800 G4 Mini BIOS Configuration.pdf
EliteDesk 800 G4 Mini - Rev 1.3.zip
I have Big Sur beta 10 on my system. I also have native NVRAM thanks to SSDT-PMC.aml file.
I have seen that a nvram.plist file occasionally appears in /System/Volumes/Update volume root folder.
This file has many entries, some of them from past and not current settings (very different of keys founded in Hackintool or with nvram -p command).
If I delete it, everything seems to work fine. It is not created again at next boot but after an indefinite number of boots, it can be 2 or 3 or more than 20.
It happens to someone else? Is it something new in Big Sur? Does it mean that maybe I don't have native NVRAM although I think I do?
OpenCore as boot manager instead of Clover on a PC with Z390 Aorus Elite motherboard, i3 9100 Coffee Lake, RX 580 graphics card and macOS Catalina, with iMac19,1 SMBIOS, with integrated graphics card enabled and not configured in the config.plist file and USB port map specific for this motherboard.
Clover and OpenCore
Today we have 2 projects to boot macOS on compatible PCs: Clover and OpenCore (OC onwards). Clover is a mature project, started in 2011 by SergeySlice, capable of booting macOS, Windows and Linux in UEFI mode; currently it seems to be a little behind OC, a recent project started in 2019 by vit9696 and Download-Fritz among others under the name Acidanthera.
Clover is easier to configure. New versions are released at the CloverHackyColor GitHub website. It has an installer package. I have used it on my Hackintosh for 5 years and so far it has worked excellent.
OC is more difficult to configure, the number of options is greater and has some new ones to learn. It is considered to be slightly faster than Clover and its ability to inject extensions or patches at boot is higher. With the added advantage that some of the solutions that have appeared recently come from OC developers so it seems that their future evolution is clearer than in the case of Clover.
I have switched from Clover to OC on my PC with Z390 Aorus Elite board, i3 9100 Coffee Lake, Radeon RX 580 graphics card and macOS Catalina. The learning curve has been steeper than in the case of Clover but, once properly configured, it works very well. The general impression is that some things require more work in OC but it also offers other possibilities that Clover lacks. Not forgetting that, to this day, OC allows to start the beta versions of macOS Big Sur but Clover is not yet capable of doing so.
Migrate from Clover to OC
The main differences are:
EFI-Clover-ACPI-patched folder is now EFI-OC-ACPI EFI-Clover-drivers-UEFI folder is now EFI-OC-Drivers EFI-Clover-kexts-Other folder is now EFI-OC-Kexts There is no EFI-Clover-Themes folder but there is an EFI-OC-Resources folder containing folders and files required to display the OC menu with graphical interface The main configuration file has the same name, config.plist, it is in EFI-OC-config.plist and its structure is different from Clover. Once this file has been built, there is a website of the OC developers (OpenCore Sanity Checker) where to check the integrity and suitability of config.plist, at least in terms of the parameters used by the OC's specific version used, at the present time it is 0.6.2 and the official site of the project is called Dortania.
Mackie100 has a program designed to configure config.plist graphically much more comfortably than in text mode, it is called OpenCore Configurator, equivalent to Clover Configurator but specific for this platform, the most recent version is 188.8.131.52 suitable for 0.6.2, I have tested it and it works very well although on the net there are comments rejecting its use and encouraging the editing of config.plist in text mode. Among its many advantages is that of checking at startup if the config.plist file, which is XML type, is well formed, which can avoid errors with messages after BIOS such as "OC: Failed to parse configuration!" since, if this file is not well constructed, OC does not start.
My Clover and OC Files
OC's ACPI folder contains the same SSDT files as Clover's patched folder:
SSDT-AWAC.aml: for errors in system clock on Z390 chipsets among others. This file is equivalent to another called SSDT-RTC0.aml, SSDT-AWAC tries to activate the old macOS compatible RTC clock and SSDT-RTC0 creates a fake compatible RTC clock if it does not exist. SSDT-PMC.aml: native NVRAM on systems that lack it, for example Z390 chipsets. It is equivalent to SSDT-NVRAM.aml, both have the same function. SSDT-USBX.aml: to get USB3 ports working at its correct power. SSDT-PLUG.aml: to configure the plugin-type=1 parameter on the first processor (power management on the CPU). SSDT-USBW.aml: to get out of sleep with a single touch instead of 2 touches on USB mouse or keyboard.
Drivers folder differs from Clover's, it contains 3 files:
HfsPlus.efi: for volumes with HFS Plus file system. It can be replaced by VBoxHfs.efi but you cannot use both at the same time. OpenCanopy.efi: allows you to have a graphical interface in OC menu. OpenRuntime.efi: required to activate NVRAM among other functions. Mandatory.
Kexts folder also keeps same extensions as in Clover:
AppleALC.kext IntelMausi.kext Lilu.kext USBMap.kext USBWakeFixup.kext VirtualSMC.kext WhateverGreen.kext XHCI-unsupported.kext.
USBMap.kext defines the mapping of USB ports for this board to not exceed the limit of 15 imposed by macOS. This extension only has an Info.plist file (Show package content-Contents) with the ports that macOS must load at startup and in the IOKitPersonalities section it must refer to the type of Mac that we have configured, for example if we have iMacPro1,1 in SMBIOS, in this section this model must also appear (in 2 different lines). By modifying this parameter we can use the same USB port map with different SMBIOS.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <!-- (CFBundle keys) --> <key>IOKitPersonalities</key> <dict> <key>iMac19,1-XHC</key> <dict> <!-- (ports list) --> </dict> <key>model</key> <string>iMac19,1</string> </dict> </dict> <key>OSBundleRequired</key> <string>Root</string> </dict> </plist> USBWakeFixup.kext is complementary to SSDT-USBW.aml.
Resources folder contains files required for graphical interface of the OC menu. Font and Image folders are of interest. Image contains icons that OC will use to display different partitions and file systems in the boot menu. OpenCanopy.efi has a default theme but on the net there are sites with other icon themes. I like chris1111's Gold theme and it's the one included in my EFI folder (this and other themes are available at chris1111's github site).
Config.plist file differs from clover and requires specific training, these are the options I use. Remember that they are for version 0.6.2 of OC.
SSDT files are added and Quirks are left blank.
These Quirks are marked:
Blank since I have SMBIOS configured as iMacPro1,1, integrated graphics card enabled in BIOS and RX 580 card as primary, this way I have H264 and HEVC video encoding-decoding.
Kernel / Add
Kexts we have in kexts folder are added.
Kernel / Patch
3 patches are added: Hot plug SATA, Orange Desktop icons and TRIM for SSD.
Kernel / Scheme
FuzzyMatch selected. KernelArch and KernelCache in Auto.
Kernel / Quirks
These Quirks are marked:
Boot / Debug / Security tabs as in the pics.
OpenCore usually creates the required entries for this section. In case it is not, configure it as in the pics. There are 3 sections: Add, Delete and LegacySchema.
Note: csr-active-config = 67000000 equals SIP disabled. If you want to enable SIP, it must be csr-active-config = 00000000.
Here you configure SMBIOS parameters. I choose iMac19,1. Check the "Add this section to config.plist" box. At the bottom, check all boxes (Automatic, UpdateDataHub, UpdateNVRAM, UpdateSMBIOS) and in UpdateSMBIOSMode select Create.
It has 7 tabs (APFS, Audio, Drivers, Input, Output, ProtocolOverrides and ReservedMemory) that are configured as in the images (OCQuirks section included).
Note: EnableJumpstart and JumpstartHotPlug must be selected in order to boot from the recovery partition.
EFI folder attached.