OpenCore Bootloader(截止目前被大多数人使用)
首先我们可以从OpenCore找到引导的源码和已发布内编译完成的压缩包
OpenCore 0.6.3 Release 最新
OpenCore下载完成后有三个文件夹分别是 Docs,EFI,Utilities,下面会分别介绍。
Docs 里面含有OpenCore的更新日志,以及示例的配置文件(也是我们需要用到的),以及示例的SSDT补丁等
EFI OpenCore引导的主结构,也是重中之重
Utilities 一些附加的脚本
我们将Docs里的Sample.plist改名为config.plist,并放在EFI/OC下,这就是EFI的完整结。
OC文件夹
ACPI OpenCore存放ACPI补丁的目录,将ACPI补丁放置在里面,并在配置文件中选择加载(如SSDT-EC.aml SSDT-USBX.aml)
BootStrap OpenCore BootStrap 启动方式的目录(如在配置文件中设置BootStrap启动则需要)
Drivers OpenCore启动时加载的驱动文件,将驱动放置在里面,并在配置文件中选择加载(如HFSPlus.efi OpenRuntime.efi) 放置必需驱动:OpenRuntime HFSPlus(加载HFS文件系统时需要,常见于系统安装盘)
Kexts OpenCore引导系统时加载的系统驱动,将驱动放置在里面,并在配置文件中选择加载(如VirtualSMC.kext Lilu.kext) 放置必需驱动:Lilu、VirtualSMC或FakeSMC
Resources OpenCore资源目录,可放置主题/音频等资源,并选择加载(需要AudioDxe.efi OpenCanopy.efi)
Tools OpenCore引导的可选小工具,如 ResetNVRAM.efi CFGLock.efi
OpenCore.efi OpenCore引导程序
config.plist OpenCore配置文件
配置 OpenCore 可使用的配置工具: Xcode(不做赘述) (这里采用 OpenCore Configurator 进行配置讲解) 我们用OCC打开config.plist ACPI 我们可以看到,ACPI配置加载SSDT补丁的地方,已经为我们预留好了一些补丁的加载位置,我们只需要选择对应补丁的启用框打勾,并把文件放在ACPI目录下即可 简略说明: SSDT-PLUG:CPU加载X86原生电源管理所需的SSDT补丁,基本都需要,英特尔二三代不需要 SSDT-EC:处理EC用 SSDT-USBX:加载USBX供电用 SSDT-EC-USBX:上面两个的集合 SSDT-PNLF:背光修补 SSDT-AWAC:如果300系及以上的主板BIOS中未含有切换AWAC/Legacy RTC时钟计时的选项,则需要使用该补丁,禁用AWAC,仿冒RTC(华硕一般都有,如果没有,使用这个可能还需要RTC Fix补丁,OCC中在ACPI下补丁处即可找到对应补丁) SSDT-RTC0:和上面一起 SSDT-PMC:300系加载AppleEFINVRAM用,原生NVRAM SSDT-SBUS:修复400系SBUS总线管理用,B360用了会无法睡眠 SSDT-DNVMe:屏蔽NVMe设备(如硬盘、网卡) SSDT-ULAC:USB Port定制 (AMD Ryzen只需要一个SSDT-EC-USBX)
ACPI下删除栏不用管(X系列可能需要Drop一些OEM表)
补丁栏自行选用需要的 Fix RTC _STA bug:修复华硕/技嘉/华擎等机型的RTC问题 GPRW改名:修复唤醒问题(阻断USB唤醒) (笔记本可能需要EC改名和_OSI改名) 电池改名:匹配BAT0内容 下面5个Quick基本不用管
Booter MmioWhitelist 处如果Haswell机型遇到PCI问题,可尝试开启,其他机型不用管
AvoidRuntimeDefag:修复主板环境和服务(必须开启) DevirtualiseMmio:对于内存分配有帮助(Z390、10代机型如果遇到问题尝试开启) DisableSingleUser:关闭单用户模式 DisableVariableWrite:没有原生NVRAM的可以通过这个模拟NVRAM(nvram.plist) DiscardHibernateMap:休眠相关 EnableSafeModeSlide:在安全模式下使用Slide(一般开启) EnableWriteUnprotector:开放对UEFI服务的写入权限(一般开启) ForceExitBootServices:老主板无法使用内存寻址的时候可尝试开启 ProtectMemoryRegions:老主板用,这里忽略 ProvideCustomSlide:使用随机的不重复的Slide值(一般开启,当OpenCore Debug显示You can disable ProvideCustomSlide可将其关闭) SetupVirtualMap:将虚拟内存调用修复为虚拟地址(一般开启,10代台式机型(Comet Lake)部分主板需关闭该选项) ProtectSecureBoot:防止安全启动(Secure Boot)被写入 ProtectUefiServices:防止UEFI服务(UEFI Sevices)被覆盖(一般和DevirtualiseMmio一起开启,Z390需要开启,10代(CometLake)可单独开启) SignalAppleOS:白果用的,修复IGPU问题 RebuildAppleMemoryMap:重构macOS兼容的内存映射,和EnableWriteUnprotector二选一,遇到问题尝试开启 SyncRuntimePermissions:对齐MAT表权限(Windows Linux引导遇到问题可尝试开启,确认是否支持MAT) ProvideMaxSlide:默认即可
DeviceProperties 配置PCI设备的参数,例如注入IGPU的Framebuffer数据、注入音频的设备ID和Layout ID PciRoot(0x0)/Pci(0x1f,0x3) 一般为内置声卡,可添加layout-id PciRoot(0x0)/Pci(0x2,0x0) 一般为内置显卡(核显-IGPU),可在这里注入Framebuffer
Kernel 这里可以对内核作一些修改,包括注入驱动,对内核进行修补替换等 添加处可添加我们想加载的驱动(需放在EFI/OC/Kexts)
仿冒CPU处可仿冒对应的CPU(macOS Big Sur Beta 6 开始支持 Comet Lake,仅为留档,无需理睬) Cpuid1Data:EB060800 00000000 00000000 00000000 Cpuid1Mask:FFFFFFFF 00000000 00000000 00000000 (来自Bugprogrammer) DummyPowerManagement:和NullCPUPowerManagement类似,无原生电源管理的机型需使用(Ryzen必须开启)
强制加载 特殊情况可能需要强制加载一些驱动(如SecureBoot值为Default,需强制加载itlwm系驱动) 补丁
华硕主板遇到重启卡F1 SafeMode问题可尝试以下补丁(推荐使用RTCMemoryFix框定区域修复) Ryzen可在这里打对应的Ryzen专用内核补丁 AppleCpuPmCfgLock:如果CFG Lock状态为开启,必须开启 AppleXcpmCfgLock:和上面一起勾选 AppleXcpmExtraMsrs:无原生电源管理的CPU需开启 AppleXcpmForceBoost:强制让CPU一直满载,部分至强CPU可用 CustomSMBIOSGuid:Dell笔记本使用,普通机型不建议使用(Dell笔记本遇到序列号显示问题尝试开启) DisableIoMapper:禁止VT-D(如在BIOS内开启了VT-D,则勾选) ExtendBTFeatureFlags:替代BT4LEContinuityFixup驱动 DisableRtcChecksum:禁止RTC的校验和写入 ExternalDiskIcons:如果遇到硬盘反转(内置--->外置,外置--->内置)尝试开启 ForceSecureBootScheme:macOS启动在虚拟机时尝试开启 IncreasePciBarSize:如果BIOS中没有Above 4G Decoding(4G以上解码)的选项可尝试开启,将PCI带宽大小扩充至4GB LapicKernelPanic:HP笔记本遇到LAPIC中断问题尝试开启(一般开启) LegacyCommpage:老旧主板使用SSSE3需开启 PanicNoKextDump:显示驱动崩溃信息(调试用) PowerTimeoutKernelPanic:遇到睡眠崩溃或重启的问题可尝试开启解决 ThirdPartyDrives:开启第三方SATA的TRIM功能,会导致开机变慢 XhciPortLimit:将USB端口15个的限制解除,定制USB后如果超过15个USB端口则保持开启 DisableLinkeditJettison:修复兼容性,解决Big Sur下启动卡PCI的问题,如果在升级B6以上版本的时候遇到卡PCI的问题,勾选此项
Misc Boot Picker Mode: Built In为默认的显示模式 External为外置资源的显示模式(可加载Resources主题) Apple为白果用
Timeout: 到倒计时结束时进入默认指定到系统 0为不开启 1-Max为开启
ShowPicker:显示引导菜单 HideAuxiliary:隐藏辅助工具(Reset NVRAM、Recovery等,开启后可通过引导菜单内按空格键显示辅助工具) Hibernate Mode:Ryzen建议设为None,其他原生NVRAM机型可设为Auto
Debug 调试用
Security Scan Policy: 调整系统扫描规则 0为全部显示
Vault: 如果不使用文件加密选Optional
BootProtect: None为使用默认的引导启动方式 BootStrap选项设置EFI\OC\Bootstrap\Bootstrap.efi的启动优先级最高,即开机自动接管启动OpenCore
DmgLoading 保持默认即可
AllowNVRAMReset:引导界面开启内置的NVRAM重置工具 AllowSetDefault:允许使用Ctrl+Enter选择默认的启动项 SecureBootModel:选择Disabled即可(使用Nvidia Web Driver、itlwm需设为Default,或强制加载)
BlessOverride 可在此设置单EFI多系统启动的引导(.efi)指定 \EFI\Microsoft\Boot\bootmgfw.efi即为引导单EFI下的Windows
Entries 自定义引导项
NVRAM 修改NVRAM内的数据 (主要修改7C436110-AB2A-4BBB-A880-FE41995C9F82的内容) SystemAudioVolume:修改系统声音大小(0-100) boot-args:启动参数(我们最常用的就是-v alcid=x -wegnoegpu,具体根据自己需求设置) csr-active-config: SIP参数 00000000 开启SIP E7030000 关闭SIP(10.15.x及以下) 77000000 关闭SIP(Big Sur 11.0) prev-lang:kbd: 设置默认语言 默认为俄语 72753a3139343536 俄语 656e2d55533a30 英语 7A682D48616E733A323532 中文(zh-Hans:252) nvda_drv: 开启10.13.x Web Driver nvda_drv 字符数值为1时即开启
LegacyEnable:非原生NVRAM(模拟NVRAM)需开启 LegacyOverwrite:重写变量 WriteFlash:允许把变量写入闪存
SMBIOS 这里不细讲,选自己适合的就行了
AdviseWindows:双系统遇到问题可尝试开启 SpoofVendor:仿冒主板品牌商为Acidanthera ProcessType:仿冒CPU,默认设为0即可(AMD Ryzen或ES处理器可将其设为Model定义的值以显示具体核心数)
按照以下图片设置(如Dell机型需将UpdateSMBIOSMode设为Custom)
UEFI APFS EnableJumpstart:开启内置的APFS驱动,如果Driver中无ApfsDriverLoader.efi则必须开启 HideVerbose:隐藏APFS驱动的日志 JumpstartHotPlug:支持含有APFS分区的USB设备的热插拔 GlobalConnect:默认即可
UEFI 驱动 将我们想加载的驱动的名字写在里面如
并勾选连接驱动程序(Connect Driver)
IgnoreInvalidFlexRatio:如果MSR 0x194区域被锁定则开启(Skylake之前的机型如果未解锁CFG开启此项) ReleaseUsbOwnership:USB控制器相关,笔记本一般开启 RequestBootVarRouting:如果想在macOS下启动磁盘内切换默认系统引导,则开启 UnblockFsConnect:HP机型遇到启动项加载问题则开启 DeduplicateBootOrder:如果启动方式选择BootStrap,需开启 TscSyncTimeout:TSC相关,一般不使用,推荐使用VoodooTSCSync等驱动代替
至此,config.plist配置结束
开启-Enabled 关闭-Disabled XHCI Hand Off:开启 Above 4G Recoding:开启 CSM:关闭 Secure Boot:清除默认密钥 启动方式:Windows 8/10 UEFI VT-D:关闭 Fast Boot:关闭 DVMT:128MB-256MB(如核显设为加速用,可以设为最小值) CFG Lock:关闭 ACPI Alarm:Legacy RTC (以上为华硕BIOS设置,其他主板可能有相关调整)
|