Issues revolving around macOS once properly installed.
[[toc]]
Refer to Fixing iServices section
Refer to Fixing Audio with AppleALC section
Refer to Fixing RTC/CMOS Resets section
You can try to use SSDT-Enable_DynamicEWMode.dsl. First, you have to open Device Manager, and head to the following:
Device Manager -> Mice and other pointing devices -> Double click on your trackpad -> Properties -> Details > BIOS device name
Then grab SSDT-Enable_DynamicEWMode.dsl By default, this uses PCI0.LPCB.PS2K for the pathing. you'll want to rename accordingly.
External (_SB_.PCI0.LPCB.PS2K, DeviceObj) <- Rename this
Name(_SB.PCI0.LPCB.PS2K.RMCF, Package() <- Rename this
Then compile with MaciASL, copy to your OC/ACPI folder, and add it to your config, and you should be good to go.
- Note: Although this will work for most cases, the trackpad may be laggy and you may not be able to use the physical buttons (more details). If you can live without the trackpad, this may be better:
Find the ACPI path of your mouse (see above), then grab SSDT-DisableTrackpadProbe.dsl. By default, this uses PCI0.LPCB.PS2K so you have to change that to your ACPI path if necessary:
External (_SB_.PCI0.LPCB.PS2K, DeviceObj) <- Rename this
Name(_SB.PCI0.LPCB.PS2K.RMCF, Package() <- Rename this
For those with issues surrounding key presses not releasing(ie. pressing infinitely), you'll want to enable VoodooPS2's Dell profile.
First of all, you need to find the path to your ACPI keyboard object in the Device Manager:
Device Manager -> Keyboards -> Double click on your keyboard -> Properties -> Details > BIOS device name
After this, grab SSDT-KEY-DELL-WN09.dsl and change the ACPI path to the one found above as needed:
External (_SB_.PCI0.LPCB.PS2K, DeviceObj) <- Rename this
Method(_SB.PCI0.LPCB.PS2K._DSM, 4) <- Rename this
Verify the following:
- GPU is UEFI capable(GTX 7XX/2013+)
- CSM is off in the BIOS
- Forcing PCIe 3.0 link speed
Refer to Fixing DRM section
Follow guide listed here:
For those who simply want to disable the notification(not the error itself) is more than enough. For these users, we recommend installing RestrictEvents
Easy fix, buy Intel
So with AMD, whenever Apple calls CPU specific functions the app will either not work or outright crash. Here are some apps and their "fixes":
- Adobe Products don't always work
- Some fixes can be found here: Adobe Fixes
- Do note these fixes just disables functionality, they're not really fixes
- Virtual Machine running off of AppleHV's framework will not work(ie: Parallels 15, VMware)
- VirtualBox works fine as it doesn't use AppleHV
- VMware 10 and older can work as well
- Parallels 13.1.0 and older are known to work as well
- Docker broken
- Docker toolbox is the only solution as it's based off of VirtualBox, many features are unavailable with this version
- IDA Pro won't install
- There's an Intel specific check in the installer, app itself is likely fine
- 15/16h CPU web pages crashing
- Follow directions here after UPDATE 5: Fix web pages
This is generally seen on AMD who use the chipset's USB controller, specifically for the Ryzen series and newer. The main way to tell if you're having issues with this is checking logs after either sleeping or waking:
- In terminal:
log show --last 1d | grep -i "Wake reason"
Should result in something like this:
Sleep transition timed out after 180 seconds while calling power state change callbacks. Suspected bundle: com.apple.iokit.IOUSBHostFamily.
You can double check which controller is XHC0 via IOReg and checking the Vendor ID(1022 for AMD chipset). The fix for this sleep issue is either:
- Avoid the chipset USB all together(ideally set
_STA = 0x0
to disable the controller outright with an SSDT) - Correct the USBX power properties to what the controller expects
Errors such as:
$ sudo AssetCacheManagerUtil activate
AssetCacheManagerUtil[] Failed to activate content caching: Error Domain=ACSMErrorDomain Code=5 "virtual machine"...
arise due to VMM
flag being exposed by sysctl.
Apply VmAssetCacheEnable kernel patch to disguise the flag and allow normal operation.
In macOS 10.15.4, there were some changes made to AGPM that can cause wake issues on Coffee Lake systems. Specifically displays hooked up to the iGPU would fail to wake. To resolve this:
- Add
igfxonln=1
to boot-args - Make sure you're using WhateverGreen v1.3.8 or newer
In macOS 11.3, there were some changes made to backlight controlling mechanisms that defaults the backlight to be controlled by the dGPU on Dual GPU laptops with MUX enabled. Optimus only laptops, however, are not affected, since you need to disable the dGPU anyways. Specifically, this problem only causes issues if you have a Dual GPU laptop with the internal screen from an iGPU output and external screens from dGPU outputs (Hybrid Mode
on some Mobile Workstations). To resolve this, you may disable either the iGPU or the dGPU, or do the following:
-
Verify SSDT-PNLF is installed(ie. EFI/OC/ACPI as well as config.plist -> ACPI -> Add)
-
Add below to
PciRoot(0x0)/Pci(0x2,0x0)
:
@0,backlight-control | Data | 01000000
applbkl | Data | 01000000
AAPL,backlight-control | Data | 01000000
AAPL00,backlight-control | Data | 01000000
- Add below to your dGPU PCI address:
@0,backlight-control | Data | 00000000
applbkl | Data | 00000000
AAPL,backlight-control | Data | 00000000
So couple things:
- iStat Menus doesn't yet support MacPro7,1 readouts
- VirtualSMC's bundled sensors do not support AMD
For iStat, you'll have to wait for an update. For AMD users, you can use either:
- SMCAMDProcessor
- Still in early beta but great work has been done, note it's been mainly tested on Ryzen
- FakeSMC3_with_plugins
Note for AMD with FakeSMC:
- FileVault support requires more work with FakeSMC
- Make sure no other SMC kexts are present, specifically those from VirtualSMC
This is commonly caused by irregular partition setup of the Windows drive, specifically that the EFI is not the first partition. To fix this, we need to enable this quirk:
PlatformInfo -> Generic -> AdviseFeatures -> True
If you're having issues with Startup Disk correctly applying your new boot entry, this is most likely caused by a missing DevicePathsSupported
in your I/O Registry. To resolve this, ensure you are using PlatformInfo -> Automatic -> True
Example of missing DevicePathsSupported
:
An odd quirk some people may notice is that from wake, macOS will have the incorrect time for a bit before self-correcting with network time check. The root cause of this issue is most likely due to your RTC not ticking, and can be resolved with a new CMOS battery(note that Z270 and newer are quite picky with voltage so choose carefully).
To verify whether your RTC is working correctly:
- Download VirtualSMC v1.1.5+ and run the smcread tool:
/path/to/smcread -s | grep CLKT
This should provide you with a hexadecimal value, and once converted it should equal time elapsed from Midnight relative to Cupertino.
So for this example, we'll grab our value(00010D13
) then convert it to decimal and finally divide it by 3600. This should result in the approximate time elapsed(in seconds) since midnight relative to Cupertino
- 00010D13 (Convert to HEX)-> 68883 (Divided by 3600 so we get hours)-> 19.13h(so 19:07:48)
Next you'll want to put your hack to sleep for a bit and wake it, then check the CLKT value once more to see whether it deviated more or if it has a set difference. If you find it didn't actually tick much of at all from the elapsed time, you'll need to look into buying a new battery(with proper voltage)
Oddly enough, macOS has locked down digital audio from having control. To bring back some functionality, the app MonitorControl has done great work on improving support in macOS
This is due to macOS using Universal Time while Windows relies on Greenwich time, so you'll need to force one OS to a different way of measuring time. We highly recommend modifying Windows instead as it's far less destructive and painful:
SIP or more properly known as System Integrity Protection, is a security technology that attempts to prevent any malicious software and the end user from damaging the OS. First introduced with OS X El Capitan, SIP has grown over time to control more and more things in macOS, including limiting edits to restricted file locations and 3rd party kext loading with kextload
(OpenCore is unaffected as kexts are injected at boot). To resolve this, Apple has provided numerous configuration options in the NVRAM variable csr-active-config
which can either be set in the macOS recovery environment or with OpenCore's NVRAM section(The latter will be discussed below).
- WARNING: Disabling SIP can break OS functionality such as software updates in macOS 11, Big Sur and newer. Please be careful to only disable specific SIP values instead of disabling SIP outright to avoid these issues.
- Enabling
CSR_ALLOW_UNAUTHENTICATED_ROOT
andCSR_ALLOW_APPLE_INTERNAL
are common options that can break OS updates for users
- Enabling
You can choose different values to enable or disable certain flags of SIP. Some useful tools to help you with these are BitmaskDecode and csrstat. Common values are as follows (bytes are pre-hex swapped for you, and note that they go under NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config):
00000000
- SIP completely enabled (0x0).03000000
- Disable kext signing (0x1) and filesystem protections (0x2).FF030000
- Disable all flags in macOS High Sierra (0x3ff).FF070000
- Disable all flags in macOS Mojave and in macOS Catalina (0x7ff) as Apple introduced a value for executable policy.FF0F0000
- Disable all flags in macOS Big Sur (0xfff) which has another new flag for authenticated root.
Note: Disabling SIP with OpenCore is quite a bit different compared to Clover, specifically that NVRAM variables will not be overwritten unless explicitly told so under the Delete
section. So if you've already set SIP once either via OpenCore or in macOS, you must override the variable:
NVRAM -> Delete -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config
With macOS Catalina and newer, Apple split the OS and user data into 2 volumes where the system volume is read-only by default. To make these drives writable we'll need to do a few things:
- Note: Users of
SecureBootModel
may end up in a RecoveryOS boot loop if the system partition has been modified. To resolve this, Reset NVRAM and setSecureBootModel
toDisabled
macOS Catalina
- Disable SIP
- Mount drive as writable (Run
sudo mount -uw /
in terminal)
macOS Big Sur
- Disable SIP
- Mount drive as writable (See below link for command)
- Note: Due to how OS updates work in macOS Big Sur and newer, changing the system volume can in fact break OS updates. Please edit with caution
Commands based off of Apple's KDK documents:
# First, create a mount point for your drive
mkdir ~/livemount
# Next, find your System volume
diskutil list
# From the below list, we can see our System volume is disk5s5
/dev/disk5 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +255.7 GB disk5
Physical Store disk4s2
1: APFS Volume Big Sur HD - Data 122.5 GB disk5s1
2: APFS Volume Preboot 309.4 MB disk5s2
3: APFS Volume Recovery 887.8 MB disk5s3
4: APFS Volume VM 1.1 MB disk5s4
5: APFS Volume Big Sur HD 16.2 GB disk5s5
6: APFS Snapshot com.apple.os.update-... 16.2 GB disk5s5s
# Mount the drive(ie. disk5s5)
sudo mount -o nobrowse -t apfs /dev/disk5s5 ~/livemount
# Now you can freely make any edits to the System volume
# If you edited either the S*/L*/Kernel, S*/L*/Extensions or L*/Extensions,
# you will need to rebuild the kernel cache
sudo kmutil install --volume-root ~/livemount --update-all
# Finally, once done editing the system volume we'll want to create a new snapshot
sudo bless --folder ~/livemount/System/Library/CoreServices --bootefi --create-snapshot
With macOS Big Sur, the system volume is now snapshotted allowing you to roll back in case of issues with system updates breaking due to a broken seal. Thanks to new snapshots being created with every OS update, we've got quite a bit to roll back too.
To roll back, you'll first need to reboot into Recovery partition then select "Restore From Time Machine Backup":
For those with Apple Watch Unlock issues, verify the following:
- You have a supported Apple Wireless card with Bluetooth Low Energy(4.0+)
- Your watch and Mac are signed in with the same account
- iServices working correctly(ie. iMessage)
- There's an option to Unlock with Apple Watch under Security and Privacy setting in System Preferences
If the above are met, and you still have unlock issues we recommend running through the below guide:
For machines with HDMI 2.0 capable ports with resolution issues, verify the following:
- 4k output works correctly in Windows
- Monitor is set explicitly to HDMI 2.0
- If using an HDMI to DisplayPort converter, ensure the monitor is set to DisplayPort 1.2 or higher
- Ensure enough iGPU memory has been allocated
- For Broadwell and newer, 64MB is expected to be allocated
- Machines relying on WhateverGreen's
framebuffer-stolenmem
property should know this can cause 4k output issues. Please ensure you can set the iGPU's memory to 64MB allowing you to remove these properties
- Laptops and many desktop users may need this boot-arg:
-cdfon
For all other troubleshooting, please reference WhateverGreen's Intel docs