以下分部分慢慢翻译原文,您需要哪部分的翻译请直接留言。我有邮箱通知,一天内帮你翻译。
另外还有官方没收录的问题:OC 卡 UEFI 启动图/ 卡 connectting Drivers
Then I made the High Sierra mod and the screen works again! But only with full brightness and regardless of which Mac OS is installed (El Capitan, Sierra or High Sierra). Again I shorten the pins from R89111, put away High Sierra mod, SMC reset, NVRAM delete, boot from USB stick with the 60 sec./enter tip, nothing helps. I have the same model and I was able to disable the GPU and run on El-capitan, and after updating run sierra and 10.12.6 update. But my question is how you keep the temp below the 60 because despite disabling to discreet card I still reading 75 degree on daily processes and no gpu artifacts.
本文解决关于 OC、macOS 的启动问题,以及 macOS 系统问题。 如果您不清楚您的问题在 macOS 启动过程中的确切位置,请阅读 macOS Boot Process 以清晰地了解更多。
笔记本用户想把已有的 Clover install 转换成 OpenCore 方案,请见 Clover to OpenCore conversion ,虽然该方案还没有完全完成。
如果在这里找不到您的问题,请看 the official OpenCore documentation: Configuration.pdf
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 (opens new window)).
Job interview questions and sample answers list, tips, guide and advice. Helps you prepare job interviews and practice interview skills and techniques. 以下分部分慢慢翻译原文,您需要哪部分的翻译请直接留言。我有邮箱通知,一天内帮你翻译。 另外还有官方没收录的问题:OC 卡 UEFI 启动图/ 卡 connectting Drivers 常见故障解决/.
no vault provided!
关闭您的 Vaulting,位置在 config.plist 里的 Misc -> Security -> Vault
,详细设置如下:
Optional
如果您已经运行了 sign.command
,那么 OC 会被插入256字节的 RSA-2048签名,所以你需要恢复 OpenCore.efi 文件。 原版 OpenCore.efi 可以在这里下载: OpenCorePkg
Note: Vault 和 FileVault 是两个不同的东西, 详见 Security and FileVault
OC: Invalid Vault mode
这可能是拼写错误, OpenCore 中的选项是区分大小写的。请检查拼写, Optional 才是对的,其位于 Misc -> Security -> Vault
Couple problems:
Booter Issues:
DevirtualiseMmio
may be taking precious areas in memory that are needed for other uses, you may need to disable this quirk or whitelist the bad regions: Using DevirtualiseMmioSetupVirtualMap
may be needed depending on the firmware, generally this quirk should be avoided but most Gigabyte users and older hardware(Broadwell and older) will need this quirk to boot.SetupVirtualMap
enabled, especially on Asus and AsRock boards.RebuildAppleMemoryMap
may not be a fan of your firmware, use of this quirk is dependant on having EnableWriteUnprotector
disabled and SyncRuntimePermissions
enabled with the addition of having a Memory Attribute Table
in your firmware. If your firmware doesn't have MATs, disable both RebuildAppleMemoryMap
and SyncRuntimePermissions
then enable EnableWriteUnprotector
.To verify whether your board has MATs, check the logs for something like this:
Kernel Issues:
MatchOS
while OpenCore has MinKernel
and Maxkernel
)AppleXcpmCfgLock
and AppleCpuPmCfgLock
, this disables PKG_CST_CNFIG_CONTROL
within the XNU and AppleIntelCPUPowerManagement respectively. Not recommended long term solution as this can cause instability.AppleXcpmExtraMsrs
may be required, this is generally meant for Pentiums, HEDT and other odd systems not natively supported in macOS. Do not use on AMDUEFI Issues:
ProvideConsoleGop
is likely missing as this is needed for transitioning to the next screen, this was originally part of AptioMemoryFix but is now within OpenCore as this quirk. Can be found under UEFI -> OutputIgnoreInvalidFlexRatio
missing, this is needed for Broadwell and older. Not for AMD and Skylake or newer[EB|#LOG:EXITBS:START]
全称应该是 EfiBoot|#LOG:ExitBootServices:START
,由于 OC 贴近底层,所以日志被尽量简化了。
实际上,这和 EndRandomSeed
是完全相同的错误,所以以下解决方案也适用 EndRandomSeed
(日志显示不太一样,是因为 10.15.4 及更高版本更改了调试协议):
有几个问题
Booter 问题:
DevirtualiseMmio
可能占用了其他用途所需的宝贵内存区域,你可能需要禁用这个 quirk,或者把被占用的区域列入白名单保护:Using DevirtualiseMmio 译者注:打开 DevirtualiseMmio,并把 MmioWhitelist 里的两个 Address 地址都启用,就是加入白名单。SetupVirtualMap
是否需要开启取决于固件,一般来说应该避免使用这个 quirk,但大多数技嘉用户以及旧硬件(Broadwell 及更旧的平台) 需要这个 quirk 才能启动。SetupVirtualMap
后会出现问题,尤其是在华硕和 AsRock 主板上。RebuildAppleMemoryMap
它可能不喜欢你的固件。是否使用这个 quirk 取决于您是否禁用了 EnableWriteUnprotector
和是否在固件里有 Memory Attribute Table
的情况下开启了 SyncRuntimePermissions
。如果你的固件没有 MATs,请禁用 RebuildAppleMemoryMap
和 SyncRuntimePermissions
, 开启 EnableWriteUnprotector
。译得不好,放原文: * RebuildAppleMemoryMap
may not be a fan of your firmware, use of this quirk is dependant on having EnableWriteUnprotector
disabled and SyncRuntimePermissions
enabled with the addition of having a Memory Attribute Table
in your firmware. If your firmware doesn't have MATs, disable both RebuildAppleMemoryMap
and SyncRuntimePermissions
then enable EnableWriteUnprotector
.
验证你的主板有没有 MATs,检查日志是否有如下
1 为有,0 为没有,没有日志的请使用 Debug 版本且把日志级别调高
Kernel 问题:
MatchOS
而 OpenCore 用的是 MinKernel
和 Maxkernel
)AppleXcpmCfgLock
和 AppleCpuPmCfgLock
, 这个开关会分别禁用 XNU 和 AppleIntelCPUPowerManagement 中的 PKG_CST_CNFIG_CONTROL
。不建议用于作为长期方案,因其会引发不稳定情况.AppleXcpmExtraMsrs
可能需要, 通常用于奔腾、 HEDT 以及其他macOS不支持的古怪系统。 不适用于 AMDUEFI 问题:
ProvideConsoleGop
您可能忘记了这个选项,该选项是过渡到下一屏所必须的,这原本是 AptioMemoryFix 的一部分但现在内置在 OpenCore 里的这个 quirk 了。 选项位于 UEFI -> OutputIgnoreInvalidFlexRatio
在 Broadwell 及更旧平台上要 开启。 不适用于 AMD 和 英特尔 Skylake 及更高平台Main things to check:
0
to show all drivesUEFI -> APFS
to see APFS based drives:-1
-1
This is due to missing ConsoleGOP, enable it under your config:
UEFI -> Output -> ProvideConsoleGop
Another possibility is that the problem occurres due to RebuildAppleMemoryMap
being enabled, disable it under your config:
Booter -> Quirks -> RebuildAppleMemoryMap
If this doesn't help, grab the debug versions of OpenCore.efi
and BOOTx64.efi
and replace them in your EFI. This will show much more info on where your hack is actually getting stuck.
OC: OcAppleGenericInput... - Success
So this isn't actually an error, instead OpenCore isn't showing you all the debug info. This is right before/while the kernel is being loaded so things we need to check for:
AppleCpuPmCfgLock
and AppleCpuPmCfgLock
enabled under Kernel -> QuirksMinKernel
and MaxKernel
while Clover has MatchOS
)If this doesn't help, grab the debug versions of OpenCore.efi
and BOOTx64.efi
and replace them in your EFI. This will show much more info on where your hack is actually getting stuck.
OCB: OcScanForBootEntries failure - Not Found
This is due to OpenCore being unable to find any drives with the current ScanPolicy, setting to 0
will allow all boot options to be shown
Misc -> Security -> ScanPolicy -> 0
OCB: failed to match a default boot option
Same fix as OCB: OcScanForBootEntries failure - Not Found
, OpenCore is unable to find any drives with the current ScanPolicy, setting to 0
will allow all boot options to be shown
Misc -> Security -> ScanPolicy -> 0
OCABC: Memory pool allocation failure - Not Found
This is due to either incorrect BIOS settings and/or incorrect Booter values. Make sure config.plist -> Booter -> Quirks is correct and verify your BIOS settings:
OCS: No schema for DSDT, KernelAndKextPatch, RtVariable, SMBIOS, SystemParameters...
This is due to either using a Clover config with OpenCore or using a configurator such as Mackie's Clover and OpenCore configurator. You'll need to start over and make a new config or figure out all the garbage you need to remove from your config. This is why we don't support configurators, they are known for these issues
OC: Driver XXX.efi at 0 cannot be found
Verify that your EFI/OC/Drivers matches up with your config.plist -> UEFI -> Drivers
Note that the entries are case-sensitive.
Buffer Too Small
Plist only kext has CFBundleExecutable key
Missing or incorrect Executable path
A value is set as real
when it's not supposed to be, generally being that Xcode converted HaltLevel
by accident:
To fix, swap real
for integer
:
AppleXcpmCfgLock
and AppleCpuPmCfgLock
, this disables PKG_CST_CNFIG_CONTROL
within the XNU and AppleIntelCPUPowerManagement respectively. Not recommended long term solution as this can cause instability.PollAppleHotKeys
and enable KeySupport
, then remove OpenUsbKbDxe from your config.plist -> UEFI -> DriversKeySupport
, then add OpenUsbKbDxe to your config.plist -> UEFI -> DriversPollAppleHotKeys
and enable KeySupport
, then remove OpenUsbKbDxe from your config.plist -> UEFI -> DriversKeySupport
, then add OpenUsbKbDxe to your config.plist -> UEFI -> DriversThis version of Mac OS X is not supported: Reason Mac...
This error happens when SMBIOS is one no longer supported by that version of macOS, make sure values are set in PlatformInfo->Generic
with Automatic
enabled. Reminder of supported SMBIOS in macOS 10.15 Catalina:
And reminder, the following SMBIOS require newer versions of macOS:
Couldn't allocate runtime area
errorsSee Fixing KASLR slide values
So with OpenCore, there's some extra security checks added around ACPI files, specifically that table length header must equal to the file size. This is actually the fault of iASL when you compiled the file. Example of how to find it:
The Length
and checksum
value is what we care about, so if our SSDT is actually 347 bytes then we want to change Length
to 0x0000015B (347)
(the 015B
is in HEX)
Best way to actually fix this is to grab a newer copy of iASL or Acidanthera's copy of MaciASL and remaking the SSDT
Outdated OpenRuntime.efi, make sure BOOTx64.efi, OpenCore.efi and OpenRuntime are all from the same exact build. Anything mismatched will break booting
RTC...
, PCI Configuration Begins
, Previous Shutdown...
, HPET
, HID: Legacy...
Well this general area is where a lot of PCI devices are first setup and configured, and is where most booting issues will happen. Other names include:
apfs_module_start...
,Waiting for Root device
,Waiting on...IOResources...
,previous shutdown cause...
The main places to check:
Missing EC patch:
IRQ conflict:
PCI allocation issue:
npci=0x2000
to boot args.NVMe or SATA issue:
NVRAM Failing:
RTC Missing:
Example of what a disabled RTC with no way to enable looks like(note that there is no value to re-enable it like STAS
):
Generally seen as a USB error, couple ways to fix:
If you're hitting the 15 port limit, you can temporarily get around this with XhciPortLimit
but for long term use, we recommend making a USBmap. CorpNewt also has a guide for this: USBmap Guide
Another issue can be that certain firmware won't pass USB ownership to macOS, to fix this we can enable UEFI -> Quriks -> ReleaseUsbOwnership
in your config.plist
For 15h and 16h AMD CPUs, you may need to add the following:
If XLNCUSBFix still doesn't work, then try the following:
Another possible issue is missing USB ports in your DSDT, macOS isn't great at finding hardware and needs things explicitly defined to it for many things. This means if a USB port is not defined, macOS won't be able to find it. To fix this we use USBInjectAll to fix booting, note that this only works on Intel USB Chipsets and should only be required on Broadwell and older systems(with some newer AsRock boards also needing it)
For AMD users with missing ports in DSDT, you're gonna have to try all the ports in your system and pray, generally 3.1 AsMedia ports work without issue.
On rare occasions(mainly laptops), the SATA controller isn't officially supported by macOS. To resolve this, we'll want to do a few things:
Note that you will only experience this issue after installing macOS onto the drive, booting the macOS installer will not error out due to SATA issues.
Default sample config is in Russian because slavs rule the Hackintosh world, check your prev-lang:kbd
value under NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82
. Set to 656e2d55533a30
for American: en-US:0 and a full list can be found in AppleKeyboardLayouts.txt. For those using with a simple text editor(ie. UEFI Shell, Notepad++, etc), 656e2d55533a30
will become ZW4tVVM6MA
You may also need to reset NVRAM in the boot picker as well
Still didn't work? Well time for the big guns. We'll force remove that exact property and let OpenCore rebuild it:
NVRAM -> Block -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> Item 0
then set it Type String
and Value prev-lang:kbd
If you've download macOS before October 2019, you likely have an expired macOS Installer certificate, there's 2 ways to fix this:
For the latter:
IOConsoleUsers: gIOScreenLock...
/gIOLockState (3...
This is right before the GPU is properly initialized, verify the following:
00009B3E
instead-igfxmlr
boot argument. This can also manifest as a 'Divide by Zero' error.igfxonln=1
in 10.15.4 and newer
Enable CSM in your UEFI settings. This may appear as 'Boot legacy ROMs' or other legacy setting.
IOConsoleUsers: gIOScreenLock...
on Naviagdpmod=pikera
to boot argsagdpmod=ignore
For MSI Navi users, you'll need to apply the patch mentioned here: Installer not working with 5700XT #901
Specifically, add the following entry under Kernel -> Patch
:
apfs_module_start...
Commonly due to systems running AWAC clocks, pleas see the Getting started with ACPI section
Cannot perform kext summary
Generally seen as an issue surrounding the prelinked kernel, specifically that macOS is having a hard time interpreting the ones we injected. Verify that your kexts are in the correct order(master then plugins, Lilu always being first) and that kexts with executables have them and plist only kexts don't.
AppleIntelMCEReporter
With macOS Catalina, dual socket support is broken, and a fun fact about AMD firmware is that some boards will actually report multiple socketed CPUs. To fix this, add AppleMCEReporterDisabler to both EFI/OC/Kexts and config.plist -> Kernel -> Add
AppleIntelCPUPowerManagement
This is likely due to faulty or outright missing NullCPUPowerManagement, the one hosted on AMD OSX's Vanilla Guide is corrupted. Go yell at Shannee to fix it. To fix the issue, remove NullCPUPowerManagement from Kernel -> Add
and EFI/OC/Kexts
then enable DummyPowerManagement
under Kernel -> Quirks
This is likely due to faulty or outright missing NullCPUPowerManagement, the one hosted on AMD OSX's Vanilla Guide is corrupted. Go yell at Shannee to fix it. To fix the issue, remove NullCPUPowerManagement from Kernel -> Add
and EFI/OC/Kexts
then enable DummyPowerManagement
under Kernel -> Quirks
Follow directions here after UPDATE 2: Fix Data and Privacy reboot
This is a common example of screwed up TSC, for most system add CpuTscSync
For Skylake-X, many firmwares including Asus and EVGA won't write to all cores. So we'll need to reset the TSC on cold boot and wake with TSCAdjustReset. Compiled version can be found here: TSCAdjustReset.kext. Note that you must open up the kext(ShowPackageContents in finder, Contents -> Info.plist
) and change the Info.plist -> IOKitPersonalities -> IOPropertyMatch -> IOCPUNumber
to the number of CPU threads you have starting from 0
(i9 7980xe 18 core would be 35
as it has 36 threads total)
The most common way to see the TSC issue:
Case 1 | Case 2 |
---|
Make sure that VoodooInput is listed before VoodooPS2 and VoodooI2C kexts in your config.plist.
Check the order that your kexts load - make they match what is shown under Gathering Files:
Make sure you have SSDT-GPIO in EFI/OC/ACPI and in your config.plist under ACPI -> Add in your config.plist. If you are still having issues, reference the Getting Started With ACPI GPIO page.
Invalid frame pointer
So this is due to some issue around the Booter -> Quirks
you set, main things to check for:
DevirtualiseMmio
SetupVirtualMap
RebuildAppleMemoryMap
kextd stall[0]: AppleACPICPU
This is due to either a missing SMC emulator or broken one, make sure of the following:
This error is due to a small EFI, by default Windows will create a 100MB EFI whereas macOS will expect 200MB. To get around this you have 2 way to go:
Default | Show All Devices(Cmd+2) |
---|
This is either 1(or more) of 5 issues:
Built-in
, couple ways to fix:ethernet
, GBE1, ). Then via DeviceProperties in your config.plist, apply the property of built-in
with the value of 01
and type Data
. Hackintool can also grab the PciRoot path if you're having issues with gfxutil. Recommended methodIf these fixes do not work, see the Fixing iServices page for more in-depth guide.
Refer to Fixing Audio with AppleALC section
Issue with AppleRTC, quite a simple fix:
Note: If you still have issues, you'll need to use RTCMemoryFixup and exclude ranges. See here for more info
The following boot-arg should handle 99% of cases(pair this with RTCMemoryFixup):
If this works, slowly shorten the excluded area until you find the part macOS is getting fussy on
Verify the following:
See Fixing DRM page
Add MacProMemoryNotificationDisabler kext to EFI/OC/Kexts and Kernel -> Add
. Note that this kext has an odd quirk here it requires WhateverGreen to function correctly.
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':
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:
log show --last 1d | grep 'Wake reason'
verify itShould result in something like this:
```text`
Sleep transition timed out after 180 seconds while calling power state change callbacks. Suspected bundle: com.apple.iokit.IOUSBHostFamily.
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:
igfxonln=1
to boot-argsacpidump.efi
Call upon OpenCore shell:
Could not locate or download iasl!
This is usually due to an outdated version of Python, try either updating Python or add iasl to the scripts folder for SSDTTime:
Python is not installed or not found on PATH
Easy fix, download and install the latest python:
Make sure Add Python to PATH
UIScale
to 02
for HiDPIConsoleMode
to Max will sometimes fail, leaving it empty can helpSo couple things:
For iStat, you'll have to wait for an update. For AMD users, you can use either:
Note for AMD with FakeSMC:
So with OpenCore, we have to note that legacy Windows installs are not supported, only UEFI. Most installs now are UEFI based but those made by BootCamp Assistant are legacy based, so you'll have to find other means to make an installer(Google's your friend). This also means MasterBootRecord/Hybrid partitions are also broken so you'll need to format the drive you want to install onto with DiskUtility. See the Multiboot Guide on best practices
Now to get onto troubleshooting:
Misc -> Security -> ScanPolicy
is set to 0
to show all drivesMisc -> Boot -> Hideself
is enabled when Windows bootloader is located on the same driveThis 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 -> AdviseWindows -> True
This is due to alignment issues, make sure SyncRuntimePermissions
is enabled on firmwares supporting MATs. Check your logs whether your firmware supports Memory Attribute Tables(generally seen on 2018 firmwares and newer)
Common Windows error code:
0xc000000d
OCB: StartImage failed - Already started
This is due to OpenCore getting confused when trying to boot Windows and accidentally thinking it's booting OpenCore. This can be avoided by either move Windows to it's own drive or adding a custom drive path under BlessOverride. See Configuration.pdf for more details.
If you try to decompile your DSDT and get an error similar to this:
This happens when one ACPI table requires the rest for proper referencing, it does not accept the creation of DSDTs as we're only using it for creating a select few SSDTs. For those who are worried, you can run the following:
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
SIP or proper 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).
You can choose different values to enable or disable certain flags of SIP. Some useful tools to help you with these are CsrDecode and csrstat. Common values are as follows (bytes are pre-hex swapped for you):
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 -> Block -> 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:
macOS Catalina
sudo mount -uw /
in terminal)macOS Big Sur
Full credit and command links provided by ASentientBot and @mac_editor: