黑苹果配置工具篇之OC Auxiliary Tools
这几天突然闲着无聊了,又折腾黑苹果了,今天我继续说工具OCAT(简称),OCAT特别容易上手支持很多平台,小白也能自己配置黑苹果的OC引导,今天我就以Windos平台来讲这个工具。换了个HP的品牌机来讲。
打开OCAT长这样,分解讲一下它的各个功能。
我用数据库直接生成一个EFI文件,文件夹会在桌面上自动产生,里面包含必须的文件。
打开各个文件夹确认是否有缺少的文件
ACPI
Drivers
Kexts(好像缺少USB和网卡驱动,我们先不补,默认看看什么情况。)
其它就不看了。默认必须的都有。下面我们一步步看参数
ACPI(这里主要是用来配置SSDT的)
Add里主要是看有没有少文件和有没有启用。
Delete和Patch都没有需要的,略过。
Quirks选项
FadtenableReset:一些旧的主板需要对FADT进行标记来激活电脑的开机和关机功能,这里我们不许要启动它(如果你遇到关机变重启,可以打开试试,我们之后也会在nvram中将这个问题修复)。
NormalizeHeaders:清理ACPI头,一些主板的ACPI表需要打开这个修复启动。
ResetLogoStatus:无法在有BGRT表的系统上显示 OEM Windows 标志的硬件,需要开启。
ResetHwSig:休眠相关项,台式机不需要。
RebaseRegions:换硬件、升级BIOS等对硬件的操作会对ACPI表产生影响,一般不需要打开,若发现卡PCI Configuraion Begin,请尝试打开。
SyncTableIds:与SLIC表表标识符同步。
Booter(主要是一些内存的相关设置。)
我们直接看Quirks
此项与 OpenRuntime.efi 有关。在 aptiomemoryfix 停更后,此补丁已经更名为 Openruntime, 并将一些功能与 OC 合并、模块化。对于无法原生 nvram 的主板来说,这里的选项需要格外注意。
AllowRelocationBlock:此功能用于10.7及更早的MacOS系统。当系统需要更低位置的内存时,该功能可以重新定位那些已经被非runtimeserivce所占据的内存。不需要开启
AvoidRuntimeDefrag:大部分UEFI都会写入时间、电源管理等信息,这个所有黑苹果主板都应该选择开启。
DevirtualiseMmio:内存注入方式包括 KASLR 方式(分布式注射到各个内存地址中)以及连续性方式。在使用 KASLR 时,PCIe 加载到内存,可能会占据所有 avaliable 值而影响 OC 的内核以及内核缓存无法注入,导致启动失败,如果启动失败开启这项。
DisableSingleUser: 这里关乎主机是否能开启单用户模式,不需要开启。如果想知道什么是单用户请自行百度。
DisableVariableWrite:非原生NVRAM主板需要模拟 nvram.plist 进而写入 variable 值,因此我们要禁止此项来防止其他程序对 nvram 进行写入,这个我默认,(主板支持原生 nvram选择不开启,反之开启)我主板是H87是原生支持的,所以我选择不开启。是否支持自行百度。
DiscardHibernateMap:电脑从休眠(hibernation)中唤醒时,硬盘里的资料会恢复到内存中去,但这个时候 OC 的内核以及内核缓存等也会写入,这样可能导致冲突,这个选项是帮助我们解决这个问题的。而目前来看,除了原生 NVRAM 都无法进行休眠(注意睡眠 sleep 和休眠 hibernation 是两个概念),台式机的话就更不需要休眠功能了,这里我选择 不开启。
EnableSafeModeSlide:安全模式下是否启用连续性的内存注入方式,选择开启。
EnableWriteUnprotector: 保证 nvram 能正常写入而不受到 CR0 寄存器的写入保护影响,选择开启。
ForceExitBootServices: 这个选项是让那些非常老旧的主板也能使用内存寻址,正常情况下选择不开启。
ForceBooterSignature:将 macOS 启动器签名设置为 OpenCore 启动器,启动器签名,本质上是加载的镜像的 SHA-1 哈希值,在从休眠唤醒时,Mac EFI 使用该签名来验证启动器的真实性。该选项强制 macOS 使用 OpenCore 启动器的 SHA-1 哈希值作为启动器签名,以便让 OpenCore shim 在 Mac EFI 固件上进行休眠唤醒。默认不开启。
ProtectSecureBoot:保护安全启动,除非你开启安全启动,不然我们选择不开启。
ProtectUefiServices:解决Z390系列主板卡开机卡++++的问题,如果你的主板是Z390碰到这个问题请开启,否则选择不开启。
ProvideCustomSlide:此选项执行固件的内存映射分析并检查所有的 slide 值(1 - 255)是否可用。由于 boot.efi 生成的这个值是利用 rdrand 指令随机生成的或者伪随机指令 rdtsc 随机生成的,因此当其选择了 一个冲突的 slide 值时有可能启动失败。由于这种潜在的冲突存在,此选项强制 macOS 在可用的值中使用一个伪随机值,这也确保了 slide= 启动参数不会因为安全原因传递给操作系统。
是否需要此选项由信息 OCABC (Only N/256 slide values are usable!) 是否存在于调试日 志中决定。如果存在此信息,则需要启用此 Quriks 选项。选择开启。
ProtectMemoryRegions:保护内存区域免于不正确的读写。是否启用这一 Quirk 取决于你是否遇到了休眠、睡眠无法唤醒、启动失败或其他问题。一般来说,只有古董固件才需要启用。
SetupVirtualMap:是否建立虚拟内存并对物理内存进行映射。我们在开机时,OC 的程序需要一块连续性的内存进行存放内核等东西,而实际的物理内存一般都是分散的。因此,我们通过虚拟内存建立连续性内存供OC使用,并映射到分散的物理内存中。是否启用这个 Quirk 取决于你是否遇到了 Early Boot 故障。一般这个都选择开启。
RebuildAppleMemoryMap: 重新生成内存地图来匹配苹果系统。苹果的内核有很多缺陷,比如单张的内存地图不能超过 4K,一旦超过就可能无法开机;又比如一些硬件会直接把读写权限写进内存里,而苹果却不能给与写入权限。如果你遇到此类的问题,请尝试开启它。注意此项目与 EnableWriteUnprotector 存在冲突关系,确保开启这个的时候,另一个是关闭的。另外,此项又需要与 SyncRuntimePermissions 项搭配使用。一般情况下请选择 不开启。
SignalAppleOS:通知同一台电脑上的设备 Mac 上的硬件选择,这个选项是给白苹果用的所以不开启。
SyncRuntimePermissions: 修正硬件在注入内存时无法注入权限的问题。一般此类问题存在2018年后的主板。如果遇到 Early Boot 故障或者无法进windows,开启这个选项看看。
DP(是用来注入你的设备的,主要是显卡和声卡两部分。)同样也可以修改关于本机--系统报告--PCI 列表中的信息,装X专用。OCAT已经自动设置好了,默认就行了,1和2不需要可以删除,前面有#号代表注释掉了。
Kernel(相当于Windows的驱动)值得注意的是 OC 的 kexts 填写必须注意顺序,比如 applealc 的依赖是 lilu.kext,那么 lilu.kext 必须填在第一个,SMCProcessor.kext 依赖于 Virtualsmc.kext。那 Virtualsmc.kext 必须放在 SMCProcessor.kext 之前。
Emulate
这个是帮助 Ivy Bridge 和一些不受支持的CPU加载电源管理的,所以这块我不用管。
Quirks-这里是内核相关的快捷选项
AppleCpuPmCfgLock:四代之前的 CPU,如果未解锁 CFG(即MSR0xE2) 请选择 开启,我的是4代所以不开启。
AppleXcpmCfgLock:四代之后的CPU若未解锁 CFG(即MSR0xE2) 选择开启,我的当然要选择开启了。
AppleXcpmExtraMsrs::主要在没有原生电源管理的CPU上启用,一般是 Haswell-E, Broadwell-E, Skylake-X 这三种 CPU 需要开启。除此之外的 CPU 选择不开启
AppleXcpmForceBoost:开启时将电脑的 cpu 频率锁定为最高频率,这里默认不开启。
CustomSMBIOSGuid::戴尔笔记本专用项,默认不开。
DisableIoMapper:禁用 vt-d,默认开启。
DisableLinkeditJettison:提升 lilu 等插件在 MACOS 11 系统的表现,用来替代 keepsyms=1,默认开启。
DisableRtcChecksum:越过两条 rtc 检查 (0x58及0x59)。RTC 我们一般使用 RTCMemoryFixup.kext所以这项不开启。
ExtendBTFeatureFlags:代替 BT4LEContinuityFixup.kext 来实现 continuity,默认不开启。
custompciseriadevice:在定制的PCI串行设备上执行更改PMIO寄存器的地址,一般默认不勾选。
ForceAquantiaEthernet:如果有基于AQC-107s的10GbE网卡则勾选,主要用于12.3下驱动。
ExternalDiskIcons:AHCI控制器相关。现在主流主板对AHCI支持都很好,一般不勾选。
ForceSecureBootScheme:IMG4验证的强制x86方案。一般不勾选。
IncreasePciBarSize:将IOPCIFamily中的32位PCI带宽大小从1GB增加到4GB,一般不勾选
LapicKernelPanic:用于惠普笔记本的内核崩溃,一般不勾选。惠普笔记本一般也不要勾选。
LegacyCommpage:对10.4-10.6有效。一般不勾选。
PanicNoKextDump:显示kext出错信息,一般不勾选。
PowerTimeoutKernelPanic:当遇到睡眠不能唤醒,只有重启后才能唤醒的情况下勾选,台式机一般不勾选。
ProvideCurrentCpuInfo:向内核提供当前CPU信息。一般不勾选。
ThirdPartyDrives:类似于开启Sata固态硬盘的trim功能。有Sata固态硬盘勾选,没有则不勾选。我用的固态所以我勾了。
XhciPortLimit:解除15个端口限制,确认USB端口完美定制的可以不勾选。一般勾选。有USB定制的不勾选。这个我先勾上,后面我定制了就会去掉。
SetApfsTrimTimeout:10.14以前的版本不需要设置。主要针对SATA SSD,根据不同的主控,设置不同的延迟,其中最大数值为4294967295。或者用999来关闭trim,默认-1,这里不用动它。
最终结果图
scheme就不用看了。
Misc(这里是一些开机引导类的设置。)
HideAuxiliary:开启或隐藏引导时磁盘的一些辅助选项,勾选时,隐藏如:Recovery、Clean NVRAM、关闭ISP等。
PollAppleHotKeys:是否开一些组合热键,如command+K;command+S。如果发现开机键盘无法选择,则不勾选。并删除OC/Drivers下的UsbKbDxe.efi。
PickerAudioAssist :开启/关闭(true/false)启动时音频,比如开机时duang的声音。
ShowPicker:是否显示开机启动盘显示,就是开机的时候显示选择Windows和MAC,一般勾选。
HibernateSkipsPicker:如果从macos休眠中醒来,则不显示picker,默认不勾选
PickerAttributes:使用纯文本用户界面时背景与前景颜色选择。根据UEFI规范,用参数的选择,来调节背景与前景的颜色,默认值为0。这里是17不用管。
HibernateMode:检测休眠模式,一般选none,原生支持nvram的,并想休眠(注意不是睡眠)的,选auto。我的主板是原生支持的,但我没这需要。
LauncherOption:启动器中的选项,默认就行了。
LauncherPath:启动程序选项的启动路径。Default是默认 OpenCore.efi,其他路径如\EFI\Launcher.efi。
PickerMode:启动界面选择,如果我们填 Builtin 就是不使用任何主题;如果我们填 External 就会调用第三方主题。默认就行。
PickerVariant:用于引导管理的特定图标集的选择,一般选择Acidanthera\GoldenGate,这里默认也是没问题的。
TakeoffDelay:在选择启动盘之前与快捷键操作的延迟。一般是0,对于一些键盘驱动需要填写5000-10000(微秒)。
Timeout :倒计时,0~30的整数。这里15代表15秒进入所选择的系统。
ConsoleAttributes:设置图形界面背景与前景颜色,默认为0,如需其他颜色去看官方说明。
Debug参数
AppleDebug:勾选后 boot.efi调试日志保存到OpenCore日志中,一般不勾选。此参数仅适用于10.15.4及以上的版本。
ApplePanic:将macOS内核崩溃日志保存到OpenCore根分区。测试时勾选,一般不勾选。
DisableWatchDog:一般不用勾选,极少数主板可能需要勾选。
SysReport:用于调试版本转储系统信息。一般不勾选,只能用DEBUG版本才使用。
DisplayLevel:显示等级,填入:2147483650。默认就是。
DisplayDelay:显示延迟,填入0。
Target:目标,一般填入3。
Debug最终图
Security参数
AllowNvramReset:是否在开机引导项中加入重置 NVRAM 功能的选项,按需选择。
AllowSetDefault :选择开启后就可以在开机选择系统页面中通过 Ctrl+Enter 键设置默认启动盘,默认开启。
BlacklistAppleUpdate:勾选时,忽略试图更新苹果外围固件的启动选项(如multiupdate .efi),如果使用MacOS 11,请开启它,因为在NVRAM中设置run-efi-updater并不能阻止苹果对固件的控制升级。
EnablePassword:启用密码保护。一般不勾选。
DmgLoading:定义用于macOS恢复的磁盘映像(DMG)加载策略,Disabled —无法引导DMG镜像,默认就行了。
Vault:磁盘加密,填写Optional时,为选择磁盘不加密,一般情况下都填写Optional,填写Basic时,启用基本的系统文件加密验证,填写Secure时,启用完整全面的系统文件加密验证。。默认就行了。
SecureBootModel:苹果安全启动硬件参数,一般不启用安全模式的情况下选择默认Default
ApECID:苹果磁盘加密引导标识。将此值设置为任何非零64位整数,将允许使用个性化的Apple Secure Boot标识符。如果要使用此设置,请确保使用加密安全的随机数生成器生成一个64位随机数。使用此值集和SecureBootModel有效且未被禁用,可以实现Apple Secure Boot的安全引导或实现完整全面的系统文件加密验证。默认吧。
HaltLevel:显示级别,填入:2147483648。(0x80000000)的十进制,默认就是。
ExposeSensitiveData:敏感数据暴露位掩码(sum)到操作系统。一般默认选6。默认也行。
ScanPolicy:扫描策略,默认983299即可。建议填写3870467,也可以直接填写0解除所有限制,但是正常使用的情况下不建议用0,那样显示的项目太多,太杂,安装的时候可以用。
(ScanPolicy 参数是用来控制Oc扫描启动项的,对于苹果来说这显得多余。苹果的固件可以选择 禁用第三方安装盘 也就是 他会默认禁用U盘安装盘 需要进入Recovery 关闭保护才能正常引导,而黑果这种设计显得不那么灵活。
3080963可引导APFS和HFS分区适合nvram和模拟nvram正常的使用 系统通过更新nvram控制启动磁盘,安装,更新可自动完成,理论上应该开启所有扫描项以及所有磁盘IO类型扫描 但是某些人需求只扫描OSX或者并不想扫描到Win系统,如果设置0 则关闭所有限制)但是不建议用0。正常使用后可改。
PasswordHash:设置EnabledPassword时使用的密码哈希。一般不用填写。
PasswordSalt:设置EnabledPassword时使用的密码。一般不用填写。
其他三个选项Entries、Tools、Serial,保持畎认就可以了。
NVRAM
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 |
可添加参数
UIScale Data <02> (这里填写01为普通的UI显示模式,02为开启HIDPI的UI显示模式)
DefaultBackgroundColor Data <00000000> (默认开机背景色为黑色)
4D1FDA02-38C7-4A6A-9CC6-4BCCA8B301027 |
这个默认就可以了。
7C436110-AB2A-4BBB-A880-FE41995C9F82 |
可添加参数
ForceDisplayRotationInEFI:屏幕旋转,可选值有:0、90、180、270。
SystemAudioVolume:引导界面播放声音的大小,保持默认。
run-efi-updater:这个变量的作用是阻止 MacOS 更新 EFI 固件。设置为 NO 。
boot-args String Slide=1 darkwake=0 -v (slide=1 表示从第一组内存开始连续注入;darkwake=0 代表一键唤醒机器并偏好设置中节能选项的小憩功能。如果你要用小憩功能请填8; -v 是跑代码,在没装好稳定的黑果前我建议加上,方便定位错误,弄完后再删除 -v)
csr-active-config Data <e7030000>(关闭 SIP 保护)
nvda_drv Data <31>(对 10.13 系统之前的N卡的相关设置)
prev-lang:kbd Data <7a682d48616e733a323532>(语言设置相关,这个是中文,如果出现问题,就改成 ru:0)
Delete
这个部分的作用是删除 NVRAM 变量,保持默认就好。对于原本就有的 NVRAM 变量,不能够直接修改,需要先删除,在增加。从而达到修改的目的。
LegacySchema
可以跳过这里,这部分用于模拟 NVRAM。
PI(这个部分是设置机型信息。)
Generic通用
SpoofVendor :将 SMBIOS 中的 Vendor 字段设置为 Acidanthera 。启用这个选项。不启用这个选项,会在 SMBIOS 的 Vendor 字段中使用 Apple ,会导致一些软件问题。
MaxBIOSVersion :将 BIOS 版本设置为 9999.999.999.999.999,从而避免 MacOS 升级 BIOS。一般不启用这个选项。如果你的电脑是 Mac,则推荐启用这个选项。
AdviseFeatures :用支持的 bit 更新 FirmwareFeatures 。如果你有以下情况,则启用这个选项。
1、EFI 分区不是硬盘中的第一个分区,无法重新启动到硬盘里的 Windows 系统。
2、EFI 分区是硬盘中的第一个分区,无法重新启动到硬盘里的 Windows 系统
3、不可能在 APFS 磁盘上安装 MacOS。
4、无法安装 large BaseSystem 镜像的 MacOS,例如:macOS 12。
生成三码:
systemProductName:机型选择,按机型选择,用于生成三码,点击后面的生成就可以了。
SystemMemoryStatus :用来表示内存是否可以更换和升级,此值也控制着「关于本机」中「内存」选项卡的可见性。设置为 Auto,就足够了。这不影响实际使用,还可以通过无视来解决它。
ProcessorType :CPU 型号,保持默认就好,会自动设置。
Automatic:启用这个选项则基于 Generic 属性生成机型信息。反之,则基于 DataHub、NVRAM 和 SMBIOS 属性生成机型信息。一般是启用这个选项,这样就可以根据少量信息,生成其他信息。
CustomMemory:自定义内存配置,取代 SMBIOS 中任何现有的内存配置,只有当 UpdateSMBIOS 设置为 true时才生效。某些机型对内存安装有要求(例如:MacPro 7.1),如果不是按要求的内存配置,则会报告错误,不影响正常使用。需要修改内存配置信息或者更换其他机型就可以解决,无视也是一种解决办法。一般来说,不启用这个选项。
UpdateDataHub:更新 Data Hub 字段。根据 Automatic 的值,这些字段会从 Generic 或 DataHub 中读取。保持默认。
UseRawUuidEncoding:是否对 SMBIOS 的 UUID 使用原始编码。保持默认就好。
UpdateSMBIOS:更新 SMBIOS 字段。根据 Automatic 的值,这些字段会从 Generic 或 SMBIOS 中读取。保存默认。
UpdateNVRAM:是否更新 NVRAM 中关于机型信息的相关字段。根据 Automatic 的值,这些字段会从 Generic或 PlatformNVRAM 中读取。所有其他字段都将在 NVRAM 部分中指定。保持默认。
UpdateSMBIOSMode
更新 SMBIOS 字段的方式有:
1、TryOverwrite --- 如果新的数据大小,小于等于按页对齐的原始数据,且对解锁 legacy region 没有影响,则选择 Overwrite 方式;否则选择 Create 方式。在某些硬件上可能会有问题。
2、Create --- 在 AllocateMaxAddress 将表替换为新分配的 EfiReservedMemoryType,没有回退机制。
3、Overwrite --- 如果数据大小合适则覆盖现有的 gEfiSmbiosTableGuid 和 gEfiSmbiosTable3Guid,否则将以不明状态中止。
4、Custom --- 把第一个 SMBIOS 表(gEfiSmbios(3)TableGuid)写入 gOcCustomSmbios(3)TableGuid,以此来解决固件在 ExitBootServices 覆盖 SMBIOS 内容的问题。否则等同于 Create。需要对 AppleSmbios.kext 和 AppleACPIPlatform.kext 打补丁来读取另一个 GUID: "EB9D2D31" - "EB9D2D35" (in ASCII), 这一步由 CustomSMBIOSGuid Quirk 自动完成。
Custom 使得 SMBIOS 设置只对 MacOS 生效,避免了 Windows 激活和 OEM 设置的相关问题(例如:Windows 激活失效,软件许可失效,软件和驱动提示硬件不符合),但是 Windows 下的 Apple 软件可能会出问题,例如:BootCamp。
设置为 Custom ,如果需要使用 BootCamp,则设置为 Create 。
其它DataHub、Memory、PlatformNVRAM、SMBIOS这几个就不用看了,保持默认就行了。
UEFI(UEFI的相关设置。)
APFS:
EnableJumpstart:从一个 APFS 容器中加载 APFS 驱动。APFS 的 EFI 驱动内置在所有可以作为系统启动盘的 APFS 容器之中。APFS 是 MacOS 的硬盘格式,不加载 APFS 驱动,就无法安装系统,必须启用这个选项。
GlobalConnect:在 APFS 加载期间执行完整的设备连接。如果无法访问 APFS 分区,则启用这个选项。
HideVerbose:是否隐藏 APFS 驱动的 verbose 信息。APFS 驱动的 verbose 信息可以帮助我们 debug,在稳定使用 MacOS 之前保持打开。
JumpstartHotPlug:允许从进入 OpenCore 引导菜单后插入的可移除硬盘上的 APFS 容器中加载 APFS 驱动。简单来说就是热插拔 APFS U 盘。
MinDate:允许加载的最老 APFS 驱动的发布日期。保持默认就好。
MinVersion:允许加载的最老 APFS 驱动的版本号。保持默认就好。
ConnectDrivers:驱动程序加载后执行 UEFI 控制器连接操作。启用这个选项。
AppleInput
GraphicsInputMirroring:Apple 的 Apple Event 阻止图形应用程序中的键盘输入出现在基本控制台输入流中。启用这个选项。
CustomDelays:在使用 Apple Event 协议的 OpenCore 重新实现时,启用自定义按键的间隔时间。一般用不上,不启用这个选项。
AppleEvent:确定是使用 OpenCore 内置协议还是 OEM Apple Event 协议。设置为 Builtin。
KeyInitialDelay:按键重复的初始延迟。保持默认就好。
KeySubsequentDelay:按键重复的间隔时间。保持默认就好。
PointerPollMask:配置轮询指针的索引。保持默认就好。
PointerPollMax:配置最大指针轮询周期。保持默认就好。
PointerPollMin:配置最小指针轮询周期。保持默认就好。
PointerSpeedDiv:配置指针速度除数。保持默认就好。
PointerSpeedMul:配置指针速度乘数。保持默认就好。
PointerDwellClickTimeout:左键的超时时间。在使用 OEM Apple 实现时没有影响。
PointerDwellDoubleClickTimeout:左键双击的超时时间。在使用 OEM Apple 实现时没有影响。
PointerDwellRadius:点击的容忍半径。在使用 OEM Apple 实现时没有影响。
Audio(这部分是配置启动菜单音频,默认就行了。这个没折腾的必要。)
Drivers(这部分是加载 UEFI 驱动。)
Input
KeySupport:启用内部键盘输入转换为 AppleKeyMapAggregator 协议。一般来说,启用这个选项,如果你的键盘在不开启该选项的情况下也能正常工作,则可以不启动。如果使用了单独的驱动程序(例如:AppleUsbKbDxe)或者使用的是 Mac 电脑,则不启用这个选项。
KeySwap:启用后将交换 Command 键和 Option 键。就是交换 win 键和 alt 键,有需要就启用。
KeyFiltering:启用键盘输入的合理性检查。一般用不上,不启用。
PointerSupport:启用内部指针驱动器。保持默认就好。
KeySupportMode:将内部键盘的输入转换设置为 AppleKeyMapAggregator 协议模式。保持默认就好。
KeyForgetThreshold:两次按键之间的间隔时间。保持默认。
TimerResolution:固件始终刷新的频率(单位 100 纳秒)保持默认就好。
PointerSupportMode:设置用于内部指针驱动程序的 OEM 协议。保持默认就好。
Output
ClearScreenOnModeSwitch:有些固件在从图形模式切换到文本模式时,会留下一部分之前的图像。如果遇到,则开启这个选项。只在使用 System 渲染器时生效。
DirectGopRendering:为控制台使用内置的图形输出协议渲染器。一般不开启,除非你发现开启后代码滚动更好,更流畅。
ForceResolution:当默认情况下无法获得所需分辨率时,强制设置 Resolution 中所填写的分辨率,多用于 Intel GMA 和第一代 Intel HD Graphics (Ironlake/Arrandale)。不启用这个选项。
IgnoreTextInGraphics:选择固件同时在图形和文本两种模式下在屏幕上输出文本。一般不会这样,如果出现这样的情况,则启用这个选项。只在使用 System 渲染器时生效。
ProvideConsoleGop:确保控制台句柄上有 GOP,MacOS bootloader 要求控制台句柄上必须有 GOP 或 UGA。启用这个选项。
ReplaceTabWithSpace:有些固件不会打印 tab 符号,甚至不打印 tab 后面的所有内容。这个选项会使控制台输出空格来替代 tab。如果遇到这种情况,则启用这个选项。只在使用 System 渲染器时生效。
ReconnectGraphicsOnConnect:在驱动连接过程中重新连接所有的图形驱动。如果使用了其他的图形驱动程序(例如: BiosVideo.efi),则启用这个选项。该选项需要启用 ConnectDrivers。
ReconnectOnResChange:改变屏幕分辨率后重新连接控制台控制器。例如从 Shell 启动OpenCore。除非需要,否则不需要启用这个选项。
SanitiseClearScreen:有些固件在使用分辨率较大的显示器(例如:2K 或 4K)时,清除屏幕内容会导致屏幕分辨率重置为 1024x768 。如果遇到这种情况,则启用这个选项,并且 ConsoleMode 选项留空。只在使用 System 渲染器时生效,ConsoleMode必须留空才能正常工作。
UgaPassThrough:在 GOP 协议实例之上提供 UGA 协议实例。有些固件没有老旧的 UGA 协议,但是某些 EFI 应用程序(例如 10.4 的 EfiBoot)需要。一般不启用这个选项。
GopBurstMode:可以在老的固件上更快地运行GOP。默认就好了。
ConsoleMode:设置控制台的输出模式。直接留空就好,没啥用。
Resolution:设置控制台的屏幕分辨率。可以设置为 Max 尝试使用最大的可用屏幕分辨率。也可以直接设置分辨率,例如:1920x1080 。
TextRenderer:选择通过标准控制台输出的渲染器。
GopPassThrough:在 UGA 协议实例的基础上提供 GOP 协议实例。一般用于不支持 GOP 协议或者版本低的情况下。保持默认就好。该选项需要启用 ProvideConsoleGop。
UIScale:用户界面的缩放系数。设置为 0 会根据当前分辨率自动选择缩放比例。
ProtocolOverrides(这个不需要调整,默认就可以了。)
Quirkes
EnableVectorAcceleration:启用 SHA-512 和 SHA-384 哈希算法的 AVX 矢量加速。在CPU支持 avx512 或者 avx 的情况下,开启 avx 加速。可能在某些笔记本电脑的固件上出问题,例如:联想。
DisableSecurityPolicy:禁用平台安全策略。一般不要启用它。
ActivateHpetSupport :激活 HPET 支持。如果 BIOS 里没有 HPET 设置,这个选项可以尝试强制启用。
EnableVmx:启用英特尔虚拟机扩展。一般用在 Mac 上,开启 VMX。尽量在 BIOS 里开启。
ForceOcWriteFlash:启用所有 OpenCore 管理的 NVRAM 系统变量向闪存的写入。如果出现其他系统启动失败,则启用这个选项。
ForgeUefiSupport:在 EFI 1.x 固件上提供部分 UEFI 2.x 支持。一般用于老版 Mac,保持默认。
IgnoreInvalidFlexRatio:某些固件可能在 MSR_FLEX_RATIO(0x194)MSR 寄存器中包含无效的值,导致英特尔平台上的 MacOS 启动失败。如果没有解锁 CFG,则启用这个选项。
ReloadOptionRoms:在可用时,查询 PCI 设备并重新加载其可选 ROM。和 ForgeUefiSupport 配合使用,一般用于老版 Mac 对较新显卡的支持。
ReleaseUsbOwnership:尝试从固件驱动程序中分离 USB 控制器所有权。某些固件没有正确地分离 USB 控制器所有权,导致操作系统可能会在启动时冻结。如果遇到这种情况,则启用这个选项。
RequestBootVarRouting:请求将所有带有 Boot 前缀的变从 EFI_GLOBAL_VARIABLE_GUID重定向到 OC_VENDOR_VARIABLE_GUID。建议开启这个选项,可以提高启动安全性,保证OpenCore 的引导优先级。如果要使用 启动磁盘 功能,这个选项是必须的。
UnblockFsConnect:某些固件通过「按驱动程序」模式下来阻止引导项加载,导致文件系统协议无法安装。如果在启动界面没有看得启动项,则启用这个选项。
ResizeUsePciRbIo:新增的选项,解决某些UEFI固件上损坏的PciIo,保持默认就可以了。
ExitBootServicesDelay:在 EXIT_BOOT_SERVICES 事件后添加延迟,单位为毫秒。如果遇到提示 Still waiting for root device,则设置 3-5 秒的时间。
ResizeGpuBars:配置 GPU PCI BAR 的大小。这个是设置除了 MacOS 之外的系统的 BAR 大小。建议设置为 -1 禁用这个选项。设置接近显卡的显存大小。具体规律如下:
0 – 1 MB
1 – 2 MB
2 – 4 MB
3 – 8 MB
4 – 16 MB
5 – 32 MB
6 – 64 MB
7 – 128 MB
8 – 256 MB
9 – 512 MB
10 – 1 GB
11 – 2 GB
12 – 4 GB
13 – 8 GB
14 – 6 GB
15 – 32 GB
16 – 64 Gb
17 – 128 GB
18 – 256 GB
19 – 512 GB
TscSyncTimeout:尝试用指定的 Timeout 执行 TSC 同步。不建议使用这个,建议使用内核驱动替代(例如:VoodooTSCSync、TSCAdjustReset 、CpuTscSync)。
ReservedMemory这个是设置保留内存,一般用不上,默认就行了。