Let ChatGPT create a config.plist for you! Example below. - What quality do you expect?

This is just a fun experiment. Try it with your hardware!

Has anyone had success using such a configuration created by ChatGPT-4 on actual PC hardware? Can you find some of the obvious mistakes in the config.plist?

My questions to ChatGPT in Italics:

Are you able to write OpenCore config.plist files based on hardware specs such as CPU, GPU and chipsets?

Yes, I can help you write an OpenCore config.plist file based on your hardware specs. Please provide the details of your hardware, including the CPU, GPU, motherboard, and any other relevant components. Additionally, let me know the version of macOS you are aiming to install.

Please write a valid OpenCore config.plist file for a desktop PC using the CPU Intel i5-10400, a Gigabyte B460 HD3 motherboard, a Sapphire RX 580 GPU, 16 GB of RAM and a Western Digital SN750 NVMe 500 GB SSD. Use a stable recent OpenCore version. macOS installed shall be Sonoma.

Please first confirm, if the hardware is compatible. Also let me know any limitations of the generated config.plist

Answer by ChatGPT:

Compatibility Confirmation

  • CPU: Intel i5-10400
    • Compatible with macOS Sonoma using OpenCore.
  • Motherboard: Gigabyte B460 HD3
    • Compatible. Requires proper configuration for audio, USB, and network.
  • GPU: Sapphire RX 580
    • Fully compatible and natively supported by macOS Sonoma.
  • RAM: 16 GB
    • Fully compatible.
  • SSD: Western Digital SN750 NVMe 500 GB
    • Compatible. Requires proper NVMe driver configuration.

Limitations

- Integrated Graphics: You won't be using the integrated graphics as the RX 580 is fully supported. - Audio: Realtek ALC887 on the B460 HD3 may need additional configuration. - Network: Intel I219V Ethernet requires IntelMausiEthernet.kext. - USB Ports: Proper USB port mapping is necessary for full functionality. - NVMe SSD: Might require NVMeFix.kext for better compatibility. 

OpenCore Version

Use the latest stable version, currently OpenCore 0.9.3. 

Kexts Required

Lilu.kext WhateverGreen.kext VirtualSMC.kext AppleALC.kext (for audio) IntelMausi.kext (for Ethernet) NVMeFix.kext 

Sample config.plist

Here's a basic config.plist for your setup. This is a starting point and may need adjustments based on your specific setup.

<?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> <key>ACPI</key> <dict> <key>Add</key> <array/> <key>Delete</key> <array/> <key>Patch</key> <array/> <key>Quirks</key> <dict> <key>FadtEnableReset</key> <false/> <key>NormalizeHeaders</key> <false/> <key>RebaseRegions</key> <false/> <key>ResetHwSig</key> <false/> <key>ResetLogoStatus</key> <false/> <key>SyncRuntimePermissions</key> <false/> </dict> </dict> <key>Booter</key> <dict> <key>MmioWhitelist</key> <array/> <key>Patch</key> <array/> <key>Quirks</key> <dict> <key>AvoidRuntimeDefrag</key> <true/> <key>DevirtualiseMmio</key> <true/> <key>DisableVariableWrite</key> <true/> <key>DiscardHibernateMap</key> <true/> <key>EnableSafeModeSlide</key> <true/> <key>EnableWriteUnprotector</key> <true/> <key>ForceExitBootServices</key> <true/> <key>ProtectMemoryRegions</key> <true/> <key>ProtectSecureBoot</key> <true/> <key>ProtectUefiServices</key> <true/> <key>ProvideCustomSlide</key> <true/> <key>RebuildAppleMemoryMap</key> <true/> <key>SetupVirtualMap</key> <true/> <key>SignalAppleOS</key> <true/> <key>SyncRuntimePermissions</key> <true/> </dict> </dict> <key>DeviceProperties</key> <dict> <key>Add</key> <dict> <key>PciRoot(0x0)/Pci(0x2,0x0)</key> <dict> <key>AAPL,ig-platform-id</key> <data>BwCbPgEC</data> </dict> </dict> <key>Delete</key> <dict/> </dict> <key>Kernel</key> <dict> <key>Add</key> <array> <dict> <key>Arch</key> <string>x86_64</string> <key>BundlePath</key> <string>Lilu.kext</string> <key>Enabled</key> <true/> <key>ExecutablePath</key> <string>Contents/MacOS/Lilu</string> <key>MaxKernel</key> <string></string> <key>MinKernel</key> <string></string> <key>PlistPath</key> <string>Contents/Info.plist</string> </dict> <dict> <key>Arch</key> <string>x86_64</string> <key>BundlePath</key> <string>WhateverGreen.kext</string> <key>Enabled</key> <true/> <key>ExecutablePath</key> <string>Contents/MacOS/WhateverGreen</string> <key>MaxKernel</key> <string></string> <key>MinKernel</key> <string></string> <key>PlistPath</key> <string>Contents/Info.plist</string> </dict> <dict> <key>Arch</key> <string>x86_64</string> <key>BundlePath</key> <string>VirtualSMC.kext</string> <key>Enabled</key> <true/> <key>ExecutablePath</key> <string>Contents/MacOS/VirtualSMC</string> <key>MaxKernel</key> <string></string> <key>MinKernel</key> <string></string> <key>PlistPath</key> <string>Contents/Info.plist</string> </dict> <dict> <key>Arch</key> <string>x86_64</string> <key>BundlePath</key> <string>AppleALC.kext</string> <key>Enabled</key> <true/> <key>ExecutablePath</key> <string>Contents/MacOS/AppleALC</string> <key>MaxKernel</key> <string></string> <key>MinKernel</key> <string></string> <key>PlistPath</key> <string>Contents/Info.plist</string> </dict> <dict> <key>Arch</key> <string>x86_64</string> <key>BundlePath</key> <string>IntelMausi.kext</string> <key>Enabled</key> <true/> <key>ExecutablePath</key> <string>Contents/MacOS/IntelMausi</string> <key>MaxKernel</key> <string></string> <key>MinKernel</key> <string></string> <key>PlistPath</key> <string>Contents/Info.plist</string> </dict> <dict> <key>Arch</key> <string>x86_64</string> <key>BundlePath</key> <string>NVMeFix.kext</string> <key>Enabled</key> <true/> <key>ExecutablePath</key> <string>Contents/MacOS/NVMeFix</string> <key>MaxKernel</key> <string></string> <key>MinKernel</key> <string></string> <key>PlistPath</key> <string>Contents/Info.plist</string> </dict> </array> <key>Block</key> <array/> <key>Emulate</key> <dict> <key>Cpuid1Data</key> <data>AAAAAAAAAAAAAAAAAAAAAA==</data> <key>Cpuid1Mask</key> <data>AAAAAAAAAAAAAAAAAAAAAA==</data> <key>DummyPowerManagement</key> <false/> </dict> <key>Force</key> <array/> <key>Patch</key> <array/> <key>Quirks</key> <dict> <key>AppleCpuPmCfgLock</key> <true/> <key>AppleXcpmCfgLock</key> <true/> <key>DisableIoMapper</key> <true/> <key>DisableLinkeditJettison</key> <true/> <key>DisableRtcChecksum</key> <false/> <key>ExtendBTFeatureFlags</key> <true/> <key>ExternalDiskIcons</key> <true/> <key>ForceAquantiaEthernet</key> <false/> <key>ForceSecureBootScheme</key> <true/> <key>IncreasePciBarSize</key> <false/> <key>LapicKernelPanic</key> <true/> <key>PanicNoKextDump</key> <true/> <key>PowerTimeoutKernelPanic</key> <true/> <key>ProvideCurrentCpuInfo</key> <true/> <key>SetApfsTrimTimeout</key> <false/> <key>SetDefaultMacInfo</key> <true/> <key>ThirdPartyDrives</key> <true/> <key>XhciPortLimit</key> <false/> </dict> <key>Scheme</key> <dict> <key>FsyncRead</key> <true/> <key>KernelArch</key> <string>x86_64</string> <key>KernelCache</key> <string>Prelinked</string> </dict> </dict> <key>Misc</key> <dict> <key>Boot</key> <dict> <key>ConsoleAttributes</key> <integer>0</integer> <key>HibernateMode</key> <string>None</string> <key>HideAuxiliary</key> <true/> <key>PickerAttributes</key> <integer>1</integer> <key>PickerMode</key> <string>External</string> <key>PollAppleHotKeys</key> <true/> <key>ShowPicker</key> <true/> <key>TakeoffDelay</key> <integer>0</integer> <key>Timeout</key> <integer>5</integer> </dict> <key>Debug</key> <dict> <key>AppleDebug</key> <true/> <key>ApplePanic</key> <true/> <key>DisableWatchDog</key> <true/> <key>SysReport</key> <true/> <key>Target</key> <integer>67</integer> </dict> <key>Entries</key> <array/> <key>Security</key> <dict> <key>AllowNvramReset</key> <true/> <key>AllowSetDefault</key> <true/> <key>ApECID</key> <integer>0</integer> <key>AuthRestart</key> <true/> <key>BlacklistAppleUpdate</key> <true/> <key>BootProtect</key> <string>None</string> <key>DmgLoading</key> <string>Signed</string> <key>ExposeSensitiveData</key> <integer>6</integer> <key>Vault</key> <string>Optional</string> </dict> <key>Tools</key> <array/> </dict> <key>NVRAM</key> <dict> <key>Add</key> <dict> <key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key> <dict> <key>csr-active-config</key> <data>AQAAAA==</data> <key>nvda_drv</key> <string>1</string> <key>prev-lang:kbd</key> <string>en:0</string> <key>boot-args</key> <string>-v keepsyms=1 debug=0x100 alcid=1</string> </dict> </dict> <key>Delete</key> <dict> <key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key> <array> <string>csr-active-config</string> <string>nvda_drv</string> <string>prev-lang:kbd</string> <string>boot-args</string> </array> </dict> <key>LegacySchema</key> <dict/> </dict> <key>PlatformInfo</key> <dict> <key>Automatic</key> <true/> <key>CustomMemory</key> <false/> <key>UpdateDataHub</key> <true/> <key>UpdateNVRAM</key> <true/> <key>UpdateSMBIOS</key> <true/> <key>UpdateSMBIOSMode</key> <string>Create</string> <key>Generic</key> <dict> <key>AdviseWindows</key> <true/> <key>MLB</key> <string>XXXXXXXXXXXXXXX</string> <key>MaxBIOSVersion</key> <false/> <key>SystemMemoryStatus</key> <string>Auto</string> <key>SystemProductName</key> <string>iMac20,1</string> <key>SystemSerialNumber</key> <string>XXXXXXXXXXXX</string> <key>SystemUUID</key> <string>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</string> </dict> <key>DataHub</key> <dict> <key>ARTFrequency</key> <integer>0</integer> <key>BoardProduct</key> <string>Mac-XXXXXXXXXXXXXXX</string> <key>BoardRevision</key> <data></data> <key>DevicePath</key> <data></data> <key>FSBFrequency</key> <integer>0</integer> <key>InitialTSC</key> <integer>0</integer> <key>PlatformName</key> <string>iMac20,1</string> <key>SmcBranch</key> <data></data> <key>SmcPlatform</key> <data></data> <key>StartupPowerEvents</key> <integer>0</integer> <key>SystemSerialNumber</key> <string>XXXXXXXXXXXX</string> <key>SystemUUID</key> <string>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</string> </dict> </dict> <key>UEFI</key> <dict> <key>APFS</key> <dict> <key>EnableJumpstart</key> <true/> <key>GlobalConnect</key> <true/> <key>HideVerbose</key> <true/> <key>JumpstartHotPlug</key> <true/> <key>MinDate</key> <integer>0</integer> <key>MinVersion</key> <integer>0</integer> </dict> <key>ConnectDrivers</key> <true/> <key>Drivers</key> <array> <string>OpenRuntime.efi</string> <string>AudioDxe.efi</string> </array> <key>Input</key> <dict> <key>KeyFiltering</key> <true/> <key>KeyForgetThreshold</key> <integer>5</integer> <key>KeySupport</key> <true/> <key>KeySupportMode</key> <string>Auto</string> <key>KeySwap</key> <false/> <key>PointerSupport</key> <true/> <key>PointerSupportMode</key> <string>Auto</string> </dict> <key>Output</key> <dict> <key>ConsoleMode</key> <string>Max</string> <key>DirectGopRendering</key> <true/> <key>GopBurstMode</key> <true/> <key>GopPassThrough</key> <true/> <key>IgnoreTextInGraphics</key> <false/> <key>ProvideConsoleGop</key> <true/> <key>ReconnectOnResChange</key> <true/> <key>ReplaceTabWithSpace</key> <true/> <key>Resolution</key> <string>Max</string> <key>TextRenderer</key> <string>BuiltinGraphics</string> <key>UIScale</key> <integer>2</integer> </dict> <key>ProtocolOverrides</key> <dict> <key>AppleAudio</key> <true/> <key>AppleBootPolicy</key> <true/> <key>AppleDebugLog</key> <true/> <key>AppleEvent</key> <true/> <key>AppleFramebufferInfo</key> <true/> <key>AppleImageConversion</key> <true/> <key>AppleImg4Verification</key> <true/> <key>AppleKeyMap</key> <true/> <key>AppleRtcRam</key> <true/> <key>AppleSecureBoot</key> <true/> <key>AppleSmcIo</key> <true/> <key>AppleUserInterfaceTheme</key> <true/> <key>DataHub</key> <true/> <key>DeviceProperties</key> <true/> <key>FirmwareVolume</key> <true/> <key>HashServices</key> <true/> <key>OSInfo</key> <true/> <key>UnicodeCollation</key> <true/> </dict> <key>Quirks</key> <dict> <key>ActivateHpetSupport</key> <false/> <key>EnableVectorAcceleration</key> <true/> <key>ExitBootServicesDelay</key> <integer>0</integer> <key>ForceOcWriteFlash</key> <false/> <key>ForgeUefiSupport</key> <false/> <key>IgnoreInvalidFlexRatio</key> <true/> <key>IgnoreTextInGraphics</key> <false/> <key>ProvideConsoleGop</key> <true/> <key>ProvideCustomSlide</key> <true/> <key>ReleaseUsbOwnership</key> <true/> <key>RequestBootVarRouting</key> <true/> <key>TscSyncTimeout</key> <integer>0</integer> <key>UnblockFsConnect</key> <true/> </dict> </dict> </dict> </plist> 

Steps to Finalize the Config

  1. Generate SMBIOS: Use tools like GenSMBIOS to generate unique values for SystemProductName, SystemSerialNumber, MLB, and SystemUUID.
  2. USB Mapping: Use a tool like USBMap to create a custom USB map for your system.
  3. Verify Drivers: Ensure all the necessary drivers (e.g., OpenRuntime.efi, AudioDxe.efi) are present in the EFI/OC/Drivers directory.
  4. Install Kexts: Place the required kexts (Lilu.kext, WhateverGreen.kext, VirtualSMC.kext, AppleALC.kext, IntelMausi.kext, NVMeFix.kext) in the EFI/OC/Kexts directory.
  5. Check Config: Use OCConfigCompare to verify your config.plist against the sample provided above.
  • This should get you a working Hackintosh with macOS Sonoma. If you encounter issues, adjustments might be needed based on your specific hardware setup.
  • Steps to Finalize the Config
    • Generate SMBIOS: Use tools like GenSMBIOS to generate unique values for SystemProductName, SystemSerialNumber, MLB, and SystemUUID.
    • USB Mapping: Use a tool like USBMap to create a custom USB map for your system.
    • Verify Drivers: Ensure all the necessary drivers (e.g., OpenRuntime.efi, AudioDxe.efi) are present in the EFI/OC/Drivers directory.
    • Install Kexts: Place the required kexts (Lilu.kext, WhateverGreen.kext, VirtualSMC.kext, AppleALC.kext, IntelMausi.kext, NVMeFix.kext) in the EFI/OC/Kexts directory.
    • Check Config: Use OCConfigCompare to verify your config.plist against the sample provided above. This should get you a working Hackintosh with macOS Sonoma. If you encounter issues, adjustments might be needed based on your specific hardware setup.

End of ChatGPT output

OCValidate Errors

  • AudioDxe.efi at UEFI->Drivers[1] must have LoadEarly set to FALSE!
  • OpenRuntime.efi at UEFI->Drivers[0] should have its LoadEarly set to FALSE unless OpenVariableRuntimeDxe.efi is in use!
  • UEFI->Input->PointerSupport is enabled, but PointerSupportMode is not ASUS!
  • UEFI->Output->ReplaceTabWithSpace is enabled on non-System TextRenderer (currently BuiltinGraphics)!

CheckUefi returns 4 errors! Completed validating /Desktop/EFI/OC/config.plist in 0 ms. Found 4 issues requiring attention.

submitted by /u/ChrisWayg
[link] [comments]