OpenCore Hackintosh configuration example for the Dell OptiPlex 7060 Small Form Factor with an Intel® Core™ i7-8700.
This OptiPlex doesn't dream in Excel spreadsheets anymore.
This is the version of OpenCore used, including bundled files. The included config.plist targets this version.
This is the version of macOS that this OpenCore configuration currently targets. Other versions of macOS that are compatible with it are listed below.
- macOS Sequoia
- macOS Sonoma
- iGPU (Intel UHD Graphics 630)
- dGPU (AMD Radeon RX 550)
- NVMe drive
- SATA drive
- USB 3.1 (XHCI)
- Ethernet
- Wi-Fi
- Bluetooth
- Sound
- Hyperthreading
- AirDrop
- iMessage
- FaceTime
- Unlock with Apple Watch
- QE/CI graphics acceleration
- Metal support
- Temperature sensors
- Sleep / Wake
- Virtualisation
- Memory bank configuration
- Boot chime
Important
This machine does NOT yet have a Wi-Fi / Bluetooth card. I plan on adding this in the future.
- Sleep / Wake Unfortunately, sleep is broken on this system at the moment. The system itself can go into and out of the sleep state, but the monitor never wakes up. My other OptiPlex hacc does this too. I'll investigate this!
External Audio and HDMI Output 🎉 FIXED!
Tip
This was fixed by using a combo of DeviceProperties entries from this excellent repo!
The specs of the main system that the OpenCore configuration targets.
| Motherboard | Dell |
|---|---|
| CPU | Intel® Core™ i7-8700 |
| Chipset | OptiPlex 7060 SFF |
| Generation | Coffee Lake |
| Memory | 16 GB DDR4 |
| Storage | 256 GB NVMe SSD |
| GPU | Intel UHD Graphics 630 AMD Radeon RX 550 |
| NIC | Intel I219-LM |
| Intel Core i7-8700 | Linux | macOS |
|---|---|---|
| Single Core | 1,667 | 1,484 |
| Muti Core | 6,472 | 6,115 |
| GPU | Linux Vulkan |
macOS Metal |
|---|---|---|
| AMD Radeon RX 550 |
15,274 | 17,512 |
| Intel UHD 630 Graphics |
5,659 | 6,348 |
SSDTs used:
- SSDT-AWAC
- SSDT-EC-USBX-DESKTOP
- SSDT-HPET *
- SSDT-PLUG
- SSDT-PMC
Important
SSDT-HPET was compiled by me specifically for this machine model. Along with several ACPI patches, this is used to fix onboard audio, including internal speakers. Without it, macOS will show as having no built-in audio devices.
The following tables display the added PCI devices and their child keys.
AMD Radeon RX 550
| Key | Type | Value |
|---|---|---|
| device-id | Data | FF67 |
| model | String | AMD Radeon RX 550 |
Expand this if you want to copy and paste the entries above as .plist data!
You can paste this data straight into plist editors like ProperTree.
<key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>device-id</key>
<data>/2c=</data>
<key>model</key>
<string>AMD Radeon RX 550</string>
</dict>Important
The Dell OEM variant of the RX 550 uses the Lexa core. This does NOT officially have support in macOS... or does it? Simply masking it as the Baffin core version works perfectly! Just make sure to add the mask, as seen here.
Internal Speakers
| Key | Type | Value |
|---|---|---|
| AAPL,slot-name | String | Internal |
| device_type | String | Audio device |
| layout-id | Data | 0B000000 |
Expand this if you want to copy and paste the entries above as .plist data!
You can paste this data straight into plist editors like ProperTree.
<key>PciRoot(0x0)/Pci(0x1F,0x3)</key>
<dict>
<key>AAPL,slot-name</key>
<string>Internal</string>
<key>device_type</key>
<string>Audio device</string>
<key>layout-id</key>
<data>CwAAAA==</data>
</dict>Intel UHD Graphics 630
| Key | Type | Value |
|---|---|---|
| AAPL,ig-platform-id | Data | 07009B3E |
| device-id | Data | 9B3E0000 |
| framebuffer-patch-enable | Data | 01000000 |
| framebuffer-stolenmem | Data | 00003001 |
| enable-metal | Data | 01000000 |
Expand this if you want to copy and paste the entries above as .plist data!
You can paste this data straight into plist editors like ProperTree.
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>BwCbPg==</data>
<key>device-id</key>
<data>mz4AAA==</data>
<key>enable-metal</key>
<data>AQAAAA==</data>
<key>framebuffer-patch-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-stolenmem</key>
<data>AAAwAQ==</data>
</dict>Note
A new framebuffer, 07009B3E, is being used as it is better fitted for desktops.
The following shows the kernel configuration.
Kexts used:
- Lilu
- WhateverGreen
- AppleALC
- IntelMausi
- RestrictEvents
- RTCMemoryFixup
- SMCProcessor
- SMCSuperIO
- SMCDellSensors
- VirtualSMC
- OptiPlex7060_SFF_USBMap *
USBMapDummy
Important
The OptiPlex7060_SFF_USBMap.kext is the USB map created manually by me on my own system. It may or may not work for other 7060 SFF machines. If it doesn't work, please disable it.
Tip
In case you need it for your own mapping, USBMapDummy.kext has been left included but disabled, so you can enable it if you need it.
None
SecureBootModel 》 x86legacy
Vault 》 Optional
Contents stored in NVRAM.
| Key | Type | Value |
|---|---|---|
| DefaultBackgroundColor | Data | 00000000 |
| Key | Type | Value |
|---|---|---|
| rtc-blacklist | Data |
| Key | Type | Value |
|---|---|---|
| ForceDisplayRotationInEFI | Number | 0 |
| SystemAudioVolume | Data | 46 |
| boot-args | String | keepsyms=1 debug=0x100 alcid=11 -cdfon -igfxmpc -igfxcdc igfxrpsc=1 revpatch=sbvmm |
| csr-active-config | Data | 00000000 |
| prev-lang-diags:kbd | Data | 656E2D47 42 |
| prev-lang:kbd | Data | 656E2D47 423A32 |
| StartupMute | Data | 00 |
Expand this if you want to copy and paste the entries above as .plist data!
You can paste this data straight into plist editors like ProperTree.
<key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
<dict>
<key>DefaultBackgroundColor</key>
<data>AAAAAA==</data>
</dict>
<key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
<dict>
<key>rtc-blacklist</key>
<data></data>
</dict>
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
<dict>
<key>SystemAudioVolume</key>
<data>Rg==</data>
<key>boot-args</key>
<string>keepsyms=1 debug=0x100 alcid=11 -cdfon -igfxmpc -igfxcdc igfxrpsc=1 revpatch=sbvmm</string>
<key>prev-lang-diags:kbd</key>
<data>ZW4tR0I=</data>
<key>prev-lang:kbd</key>
<data>ZW4tR0I6Mg==</data>
<key>csr-active-config</key>
<data>AAAAAA==</data>
<key>run-efi-updater</key>
<string>No</string>
</dict>This model of iMac has a direct hit on the CPU model used on this machine (i7-8700). As a result, it's the most appropriate SMBIOS. However, it may have to be changed soon if Apple drops support (or we pray to OCLP).
Drivers in use:
- HFSPlus
- OpenRuntime
- OpenCanopy
- AudioDxe *
Note
AudioDxe is loaded so that OpenCore can make a boot chime on startup!
This is just a collection of my post-install tweaks I apply after installing macOS. They're not really related to OpenCore or the overall functionality of the configuration.
Okay, so I'm a bit of a macOS boomer. Having used macOS since long before Mojave's dark mode, I'm accustomed to the regular light appearance of the windows - but I always enabled the "Dark menu bar and dock" option as I loved the look. While I still like dark mode (and use it on iOS), the hybrid light/dark mode on macOS is still my favourite!
The following commands restore that functionality:
Window Server
defaults write -g NSRequiresAquaSystemAppearance -bool YesNotification Centre
defaults write com.apple.notificationcenterui NSRequiresAquaSystemAppearance -bool NoControl Centre
defaults write com.apple.controlcenterui NSRequiresAquaSystemAppearance -bool NoAbout This Mac + System Profiler
defaults write com.apple.SystemProfiler.AboutExtension NSRequiresAquaSystemAppearance -bool No
defaults write com.apple.SystemProfiler.AboutExtension NSRequiresAquaSystemAppearance -bool NoShow Hidden Files
Show Hidden Files
Does what it says on the tin. Shows all files, including hidden ones, in the Finder.
defaults write com.apple.Finder AppleShowAllFiles YES
killall FinderUnhides the hidden sECrET GPU tab in macOS' Activity Monitor, helpful for seeing which apps are running on what GPU!
defaults write com.apple.ActivityMonitor ShowGPUTab -bool trueMakes AirDrop scan Ethernet too!
defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1
killall FinderSome macOS eye candy.
curl -OL https://raw.githubusercontent.com/Coopydood/OpenCore-Z490E-CometLake/main/EXTRAS/HyperTerm.terminalImport through Terminal's preferences.
This repo is simply a dump of my current and up-to-date OpenCore stuff that I use on my machine.
Feel free to use it as an example and modify it however you'd like, but please don't expect it to "just work" - because it probably won't.
If you've found a way to make the configuration better, or have solved issues outlined in the Problems section, please share your changes on GitHub for us all to use! Thank you!










