# Broadwell 笔记本电脑
支持 | 版本 |
---|---|
支持的 OpenCore 版本 | 0.6.4 |
初始 macOS 支持版本 | OS X 10.10, Yosemite |
# 起点
虽然制作一个 config.plist 文件似乎很难,但其实并不是。它只是需要一些时间,但是此指南将会告诉你如何配置所有项目,不会让你陷入孤立无援的地步。这也意味着,如果你遇到问题,再浏览一遍你的配置以确保它们全部正确。使用 OpenCore 时较为重要的几点:
- 所有属性都必须被定义,OpenCore 不会自动填上默认值,所以不要删除任何属性,除非明确地告知了需要删除。如果本指南没有阐述某个属性,保留它的默认值。
- Sample.plist 不能直接使用,你必须将它配置得适合你的电脑。
- 不要使用针对性的配置器(configurator),它们只会几乎不会考虑到 OpenCore 的配置,甚至有些配置器——例如 Mackie 的——会添加 Clover 的属性然后使 plist 出错!
尽管如此,还是简短地提示一下我们需要的工具:
- ProperTree
- 通用的 plist 编辑器
- GenSMBIOS
- 用于生成 SMBIOS 数据
- 示例/config.plist
- 查看之前的部分以了解如何获得:config.plist Setup
而且,请在放置好 OpenCore 之前不止一遍地阅读此指南,以确保你已经无误地配置了 OpenCore。记住,指南中的图片并非一直都是最新的,所以请阅读它们下面的文本,如果遇到没有提及的属性,保留它们的默认值即可。
# ACPI
# Add
信息
这是你为你的系统添加 SSDT 的地方,它们对于引导 macOS 非常重要,而且很多用于定位 USB、屏蔽不支持的显卡 等等。对于我们的的系统来说,它们甚至是引导时不可或缺的项目。可以在这里找到制作和使用它们的指南:Getting started with ACPI
我们需要添加一些 SSDT 来得到一些 Clover 提供的功能:
需要的 SSDT | 说明 |
---|---|
SSDT-PLUG | 允许使用 Haswell 或更高版本的 CPU 的原生电源管理。查看 Getting Started With ACPI Guide 以了解更多。 |
SSDT-EC | 修复嵌入式控制器,查看 Getting Started With ACPI Guide 以了解更多。 |
SSDT-GPIO | 创建根端,让 VoodooI2C 可以连接,如果 VoodooI2C 运行出现问题可以尝试使用 SSDT-XOSI 来代替。注意,英特尔 NUC 不需要此 SSDT。 |
SSDT-PNLF | 修复亮度控制,查看 Getting Started With ACPI Guide 以了解更多。注意,英特尔 NUC 不需要此 SSDT。 |
注意,你不应该在这里添加你生成的 DSDT.aml
,因为他已经在你的硬件里了。所以它如果已经存在,删除你的 config.plist
中对应的条目和位于 EFI/OC/ACPI 目录下的 DSDT.aml
。
想了解更深层的内容,例如转存 DSDT、怎样编译 SSDT 并使其符合标准,请查看 Getting started with ACPI 页面。 符合标准的 SSDT 的后缀名为 .aml (有些情况下隐藏)而且应当放在 EFI/OC/ACPI
目录下,必须 在你的 ACPI -> Add
中被说明。
# Delete
这个部分会在加载的时候排除一些 ACPI 表,对于我们来说可以忽略。
# Patch
信息
这个部分允许我们通过 OpenCore 以动态的方式修改 ACPI 的一部分(例如 DSDT、SSDT 等等)对于我们来说,我们需要以下这些:
- OSI 重命名
- 当使用 SSDT- XOSI 时需要这个项目,因为我们需要重定向所有 OSI 请求到这个 SSDT,如果你使用 SSDT-GPIO,则不需要
Comment | String | Change _OSI to XOSI |
---|---|---|
Enabled | Boolean | YES |
Count | Number | 0 |
Limit | Number | 0 |
Find | Data | 5f4f5349 |
Replace | Data | 584f5349 |
# Quirks
与 ACPI 有联系的设置,所有内容保持默认,因为我们没有用到这些设置项。
# Booter
这个部分提供与 boot.efi 相关的 OpenRuntime 补丁设置项,用于代替 AptioMemoryFix.efi。
# MmioWhitelist
这个部分允许一些本来不被允许的空间直接通过 macOS,与 DevirtualiseMmio
搭配时很有用。
# Quirks
信息
关于 boot.efi 的补丁和修补硬件的设置,对于我们来说,保持默认值即可。
更多深层的信息
- AvoidRuntimeDefrag: YES
- 修复 UEFI 运行时服务,例如日期、时间、NVRAM(非易失性随机访问存储器)、电源控制等等。
- EnableWriteUnprotector: YES
- 需要用于从 CR0 寄存器移除写入保护。
- SetupVirtualMap: YES
- 修复 SetVirtualAddresses 请求至虚拟地址,技嘉主板需要此项目以解决较早出现的内核错误。
# DeviceProperties
# Add
从一张表设置设备属性。
PciRoot(0x0)/Pci(0x2,0x0)
这个部分通过 WhateberGreen 的 Framebuffer Patching Guide(框架缓冲存储器补丁指南)进行配置,用于设置重要的核芯显卡属性。
当你在设置核芯显卡时,下面的表格应该可以帮助你找到正确的值来设置。这是对于部分值的解释:
- AAPL,ig-platform-id
- 这个属性用于内部设置核芯显卡
- 类型
- 说明这个属性是否向笔记本电脑推荐(即拥有内置显示器的)或向英特尔 NUC 推荐(即独立的可接线的“盒子”)
一般情况下,请在设置你的核芯显卡属性时跟随这些步骤。如果有不一样的地方,跟随表格下方的配置注解:
- 在初始配置你的 config.plist 时,只设置 AAPL,ig-platform-id——通常已经足够了。
- 如果你在启动(macOS)后没有得到图形加速(7MB 内存和半透明的程序坞背景),那么你可能需要尝试不同的
AAPL,ig-platform-id
值,添加预留图形内存布丁,甚至是添加一个device-id
属性。
AAPL,ig-platform-id | 类型 | 注释 |
---|---|---|
06002616 | Laptop | Broadwell 笔记本电脑的推荐值 |
02001616 | NUC | Broadwell NUC 的推荐值 |
# 配置注解
- 对于 HD5600 你需要添加
device-id
并伪装为16260000
:
Key | Type | Value |
---|---|---|
device-id | data | 26160000 |
- 在有些情况下,你无法在你的 UEFI 固件中设置动态显存技术中的预留部分为 96MB 或更高,那么你可能会遇到内核错误。通常它们将预留部分设置为 32MB,在那种情况下,这些值需要添加到你的核芯显卡属性
Key | Type | Value |
---|---|---|
framebuffer-patch-enable | Data | 01000000 |
framebuffer-stolenmem | Data | 00003001 |
framebuffer-fbmem | Data | 00009000 |
PciRoot(0x0)/Pci(0x1b,0x0)
layout-id
- 为应用 AppleALC 音频注入,你需要对“你的主板上用的是哪个音频解码器”和“选择与其匹配的 AppleALC 的布局”进行你自己的研究。AppleALC Supported Codecs.
- 你可以直接删除这项属性,因为我们现在暂时用不到它。
对于我们来说,我们会使用启动参数 alcid=xxx
来替代以达到同样目标。 alcid
会覆盖所有其他存在的布局 ID。关于此项目的更多信息收录于 OpenCore 安装后指南
# Delete
从表中删除设备属性,对于我们来说可以忽略。
# Kernel
# Add
这里是具体说明哪个内核扩展将会被加载、以怎样的顺序加载及每个内核扩展所支持的架构的地方。一般情况下我们推荐保持由 ProperTree 完成的内容。然而 32 位 CPU 请看下面:
更多深层的信息
你需要始终记得的主要事情是:
- 加载顺序
- 记住,所有的插件要在它的依赖之后加载。
- 这也表明一些像 Lilu 一样的内核扩展必须 在 VirtualSMC、AppleALC、WhateverGreen 等等之前加载。
一个简短的提示,ProperTree 的用户可以执行 Cmd/Ctrl + Shift + R 以按照正确的顺序添加他们的所有内核扩展,而不用手动填写每个内核扩展。
- Arch
- 此内核扩展所支持的架构
- 当前支持的值有
Any
、i386
(32 位)和x86_64
(64 位)
- BundlePath
- 内核扩展的名称
- 例如:
Lilu.kext
- Enabled
- 已经自己解释了,要么启用,要么禁用内核扩展
- ExecutablePath
- 隐藏在内核扩展中的实际的可执行文件的路径,你可以通过右键单击并选择
Show Package Contents
(显示包内容
)来查看你的内核扩展的可执行文件路径。一般情况下,它们都是Contents/MacOS/Kext
,但有些也会在Plugin
有内核扩展。注意,只有 plist 的内核扩展不需要填写此项。 - 例如:
Contents/MacOS/Lilu
- 隐藏在内核扩展中的实际的可执行文件的路径,你可以通过右键单击并选择
- MinKernel
- 你的内核扩展被注入的最低内核版本,查看下方的表格以获得更多可选的值
- 例如:
12.00.00
for OS X 10.8
- MaxKernel
- 你的内核扩展被注入的最高内核版本,查看下方的表格以获得更多可选的值
- 例如:
11.99.99
for OS X 10.7
- PlistPath
- 隐藏在内核扩展中的
info.plist
的路径 - 例如:
Contents/Info.plist
- 隐藏在内核扩展中的
内核支持表格
macOS/OS X 版本 | MinKernel | MaxKernel |
---|---|---|
10.4 | 8.0.0 | 8.99.99 |
10.5 | 9.0.0 | 9.99.99 |
10.6 | 10.0.0 | 10.99.99 |
10.7 | 11.0.0 | 11.99.99 |
10.8 | 12.0.0 | 12.99.99 |
10.9 | 13.0.0 | 13.99.99 |
10.10 | 14.0.0 | 14.99.99 |
10.11 | 15.0.0 | 15.99.99 |
10.12 | 16.0.0 | 16.99.99 |
10.13 | 17.0.0 | 17.99.99 |
10.14 | 18.0.0 | 18.99.99 |
10.15 | 19.0.0 | 19.99.99 |
11 | 20.0.0 | 20.99.99 |
# Emulate
需要用于伪装不支持的 CPU,例如奔腾和赛扬
- CpuidMask:留空
- CpuidData:留空
# Force
用于从系统卷中加载内核扩展,仅适用于缓存中没有某些内核扩展的旧操作系统(例如 OS X 10.6 中的 IONetworkingFamily)。
对于我们来说可以忽略。
# Block
在加载的时候排除一些内核扩展。与我们无关。
# Patch
同时为内核和内核扩展应用补丁。
# Quirks
信息
设置与内核有关,对于我们来说打开以下的设置项即可:
Quirk | Enabled | 注释 |
---|---|---|
AppleCpuPmCfgLock | NO | 如果要运行 10.10 或更低版本,或者无法在 BIOS 里关闭 CFG-Lock ,则需要打开 |
AppleXcpmCfgLock | YES | 如果 CFG-Lock 已经在 BIOS 中关闭,则不需要打开 |
DisableIOMapper | YES | 如果 VT-D 已经在 BIOS 中关闭,则不需要打开 |
LapicKernelPanic | NO | 惠普设备需要这个设置项 |
PanicNoKextDump | YES | |
PowerTimeoutKernelPanic | YES | |
XhciPortLimit | YES |
更多深层的信息
- AppleCpuPmCfgLock: NO
- 只在 CFG-Lock 无法在 BIOS 中关闭时需要
- 只能在 Ivy Bridge 或更旧的 CPU 上使用
- 注意:Broadwell 或更旧的 CPU 当运行 10.10 或更旧的操作系统时需要此项
- AppleXcpmCfgLock: YES
- 只在 CFG-Lock 无法在 BIOS 中关闭时需要
- 只能在 Haswell 或更旧的 CPU 上使用
- 注意:Ivy Bridge-E 也包括在内,因为它支持 XCPM
- CustomSMBIOSGuid: NO
- 在 UpdateSMBIOSMode 设置为
Custom
时使用 GUID 补丁。通常戴尔的笔记本电脑会需要 - 在 UpdateSMBIOSMode 设置为 Custom 模式时打开此项也可以让 SMBIOS 不要注入为非 Apple 操作系统,然而我们不认可这种方式,因为它会破坏 Bootcamp 的兼容性。在你自己承担风险时使用
- 在 UpdateSMBIOSMode 设置为
- DisableIoMapper: YES
- 如果在 BIOS 中无法关闭 VT-D 或其他的操作系统需要它,则使用此项绕过 VT-D,更好地代替了
dart=0
,因为 SIP(系统完整性保护)可以在 macOS 10.15 Catalina 中保持开启。
- 如果在 BIOS 中无法关闭 VT-D 或其他的操作系统需要它,则使用此项绕过 VT-D,更好地代替了
- DisableLinkeditJettison: YES
- 允许 Lilu 和其他内核扩展在不使用
keepsyms=1
时获得更可靠的性能
- 允许 Lilu 和其他内核扩展在不使用
- DisableRtcChecksum: NO
- 在写入最初校验和(0x58-0x59)时阻止 AppleRTC,进行 BIOS 重置或在重启/关机后自动进入安全模式的用户需要此项。
- ExtendBTFeatureFlags NO
- 对于在非 Apple 或非奋威网卡上出现持续性问题有帮助
- LapicKernelPanic: NO
- 使 AP 核心被 LAPIC(本地高级可编程中断控制器)中断时不发生内核错误,一般用于惠普的设备。Clover 中与其有相同效果的是
Kernel LAPIC
- 使 AP 核心被 LAPIC(本地高级可编程中断控制器)中断时不发生内核错误,一般用于惠普的设备。Clover 中与其有相同效果的是
- LegacyCommpage: NO
- 为 64 位处理器解决在 macOS 中对 SSSE3 的依赖,主要用于 64 位奔腾 4 CPU(例如:Prescott)
- PanicNoKextDump: YES
- 允许在内核错误来临时读取内核错误日志
- PowerTimeoutKernelPanic: YES
- 帮助修复 Catalina 中电源改变后由 Apple 驱动程序引起的内核错误,尤其是数字音频。
- XhciPortLimit: YES
- 这其实是 15 个接口限制的补丁,不要依赖于它,因为不能保证它是修复 USB 的解决方案。请在可能的时候 定位 USB。
原因就是 UsbInjectAll 在 macOS 中内建的工具没有适当的电流调节。用一个只有 plist 的内核扩展来描述你的接口更为简洁,并且不会浪费运行时的内存等等。
# Scheme
设置与传统启动(Legacy booting)有关(例如 10.4-10.6),大多数情况下你可以跳过,然而对于一些使用传统启动的操作系统,你可以查看下方:
更多深层的信息
FuzzyMatch: True
- 用于忽略内核在缓存时的校验和,以代替选择最新的可用缓存。可以帮助在很多运行 10.6 的设备上提高引导性能。
KernelArch: x86_64
- 设置内核的架构类型,你可以在
Auto
,i386
(32 位)和x86_64
(64 位)中选择。 - 如果你要引导需要 32 位内核的旧操作系统(例如 10.4 和 10.5),我们推荐将其设置为
Auto
并让 macOS 基于你的 SMBIOS 进行抉择。查看下面的表格以获得所有支持的值:- 10.4-10.5 —
x86_64
、i386
或i386-user32
i386-user32
指向 32 位用户控件,所以 32 位 CPU 必须使用这个值(或是缺少 SSSE3 的 CPU)x86_64
将会仍然包含一个 32 位的内核空间,然而将会在 10.4/10.5 中确保用户空间是 64 位的
- 10.6 —
i386
、i386-user32
或x86_64
- 10.7 —
i386
或x86_64
- 10.8 or newer —
x86_64
- 10.4-10.5 —
- 设置内核的架构类型,你可以在
KernelCache: Auto
- 设置内核缓存类型,主要对调试有用,所以我们推荐设置为
Auto
以获得最好的支持
- 设置内核缓存类型,主要对调试有用,所以我们推荐设置为
# Misc
# Boot
引导屏幕的设置(保持所有设置项默认)。
# Debug
信息
对调试 OpenCore 引导问题很有帮助(我们将会改变除了 DisplayDelay
的所有设置项):
设置项 | 启用 |
---|---|
AppleDebug | YES |
ApplePanic | YES |
DisableWatchDog | YES |
Target | 67 |
更多深层的信息
- AppleDebug: YES
- 打开 boot.efi 日志记录,在调试时很有用。注意,只支持 10.15.4 和更高的版本
- ApplePanic: YES
- 尝试写入内核错误日志到磁盘
- DisableWatchDog: YES
- 关闭 UEFI 侦察,可以对解决早期引导问题有所帮助
- DisplayLevel:
2147483650
- 显示更多的调试信息,需要 OpenCore 的 Debug(调试)版本
- SerialInit: NO
- 在设置用 OpenCore 进行序列号输出的时候需要此项
- SysReport: NO
- 在调试时(例如导出 ACPI 表)时有用
- 注意,此项只适用于 Debug(调试)版本的 OpenCore
- Target:
67
- 显示更多的调试信息,需要 OpenCore 的 Debug(调试)版本
这些值都是基于从 OpenCore debugging 中计算出来的结果
# Security
信息
“安全”已经自己解释了有什么作用,但是也不能跳过。我们需要改变以下项目:
设置项 | 启用 | 注释 |
---|---|---|
AllowNvramReset | YES | |
AllowSetDefault | YES | |
BlacklistAppleUpdate | YES | |
ScanPolicy | 0 | |
SecureBootModel | Default | 此属性区分大小写,如果你不需要安全启动,设置为 Disabled (例如你需要 Nvidia 的 Web Driver 时) |
Vault | Optional | 不能忽略掉此属性,如果你没有把它设置为 Optional,你会后悔的,注意,这是一个区分大小写的属性。 |
更多深层的信息
- AllowNvramReset: YES
- 同时允许 NVRAM 在引导菜单中和按下
Cmd+Opt+P+R
时重置
- 同时允许 NVRAM 在引导菜单中和按下
- AllowSetDefault: YES
- 允许使用
CTRL+Enter
和CTRL+Index
在引导菜单中设置默认启动项
- 允许使用
- ApECID: 0
- 用于获得自己的安全启动识别码,目前这个偏好设置不可靠,因为在 macOS 安装器中它还存在漏洞,所以我们强烈建议你保持默认值。
- AuthRestart: NO
- 打开文件保险箱 2(FileVault 2)的重启认证,则重启时不再需要密码。需要考虑其带来的安全风险以启用
- BlacklistAppleUpdate: YES
- 用于阻止固件更新,用于附加等级的保护,因为 macOS Big Sur 不再使用
run-efi-updater
变量
- 用于阻止固件更新,用于附加等级的保护,因为 macOS Big Sur 不再使用
- BootProtect: Bootstrap
- 允许使用 EFI/OC/Bootstrap 中的 Bootstrap.efi 来替代 BOOTx64.efi,在想要同时使用 rEFInd 或者避免 BOOTx64.efi 被 Windows 覆盖的情况下很有用。合理使用这项偏好设置的更多信息请查看使用 Bootstrap.efi
- DmgLoading: Signed
- 保证只有已签名的 DMG 被加载
- ExposeSensitiveData:
6
- 显示更多的调试信息,需要 OpenCore 的 Debug(调试)版本
- Vault:
Optional
- 我们基本不会使用文件保险箱,所以我们可以忽略,而且如果此项设置为 Secure,你将无法启动
- 不能忽略掉此属性,如果你没有把它设置为
Optional
,你会后悔的,注意,这是一个区分大小写的属性
- ScanPolicy:
0
0
允许你看到所有可以启动的分区,请参阅安全 部分以获得更多信息。如果此项设置为默认,则无法从 USB 分区启动
- SecureBootModel: Default
- 在 macOS 中启用 Apple 的安全启动功能,请参阅安全 部分以获得更多信息
- 注意:在已经安装的系统上升级 OpenCore 可能会导致早起的启动失败。请查看此处以解决这个问题:Stuck on OCB: LoadImage failed - Security Violation
# Tools
用于运行 OpenCore 调试工具(例如 Shell)。ProperTree 的快照功能将为你添加此项。
# Entries
用于说明无法被 OpenCore 自动识别的非正常启动路径。
此部分不会在此处被说明,请参阅 Configuration.pdf 中的 8.6 以获得更多信息
# NVRAM
# Add
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
用于设置 OpenCore 的 UI 缩放,默认值即可工作。查看更多深层的信息部分以获得更多信息
更多深层的信息
引导器的设置路径,主要用于设置 UI 缩放
UIScale:
01
:基本分辨率02
:高分辨率(HiDPI)(通常在使文件保险箱正常运行于较小的屏幕上时需要)
DefaultBackgroundColor:boot.efi 使用的背景色
00000000
: 西拉黑(Syrah Black)BFBFBF00
: 浅灰
4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102
OpenCore 的 NVRAM GUID,主要和 RTCMemoryFixup 的用户有关
更多深层的信息
- rtc-blacklist: <>
- 配合 RTCMemoryFixup 使用,查看此处以了解更多信息:修复 RTC 写入问题
- 大部分用户可以忽略这一部分
7C436110-AB2A-4BBB-A880-FE41995C9F82
系统完整性保护(SIP)的位掩码(bitmask)
- 用途通用的启动参数(boot-args):
启动参数 | 说明 |
---|---|
-v | 此选项打开啰嗦(verbose)模式,可以滚动以显示所有后台的文本信息,因为在启动时,这些代替了 Apple 标志和进度条。它对很多黑苹果用户是非常宝贵的,因为它为你提供了所有关于启动进度的内部视图,可以帮助你辨认问题,例如有问题的内核扩展等等。 |
debug=0x100 | 此选项关闭 macOS 的引导侦察,可以帮助在发生内核错误时组织重启。那样,你就可以有希望地收集一些有用的信息,然后跟随这些痕迹解决问题。 |
keepsyms=1 | 这是一个常常和 debug=0x100 一起使用的参数,告诉操作系统在遇到内核错误时,同时输出符号。那些符号可以给出一些有用的深层信息,以追查错误的根源。 |
alcid=1 | 用于为 AppleALC 设置布局 ID,查看 supported codecs 以查出哪个布局适用于你的系统详情。更多的信息包含在了 OpenCore 安装后指南 |
- 适用于 GPU 的启动参数:
启动参数 | 说明 |
---|---|
-wegnoegpu | 用于屏蔽所有除了英特尔核芯显卡外的 GPU,对于想要运行独立显卡不支持的高版本 macOS 时很有用。 |
csr-active-config:
00000000
- 对系统完整性保护(SIP)的设置。通常建议在恢复分区中使用
csrutil
更改此项。 - csr-active-config 默认设置为
00000000
,即打开系统完整性保护。你可以选择一个不同的值,但是我们推荐为了最佳的安全性而保持启用。更多信息可以在我们的故障排除页面查看:关闭系统完整性保护
- 对系统完整性保护(SIP)的设置。通常建议在恢复分区中使用
run-efi-updater:
No
此项用于阻止因 Apple 的固件升级包安装而打断启动;此项非常重要,因为这些固件升级(对 Mac 有用)不会正常运行。
prev-lang:kbd: <>
- 当使用非拉丁键盘时需要,格式为
lang-COUNTRY:keyboard
,尽管你可以具体说明,但依然推荐留空(示例配置中的默认值为俄语):
译者注:如果你较为习惯使用中文,请设置
prev-lang:kbd
的值为zh-Hans:0
或zh-Hans:252
。- 美式英语:
en-US:0
(HEX(16 进制)为656e2d55533a30
) - 完整列表可以在此处查看:AppleKeyboardLayouts.txt
译者注:中文对应的值无法在此列表中找到。
- 建议:
prev-lang:kbd
可以被转换为 String(字符串)类型,所以你可以直接用en-US:0
替代,不需要转为 HEX(16 进制)
- 当使用非拉丁键盘时需要,格式为
Key | Type | Value |
---|---|---|
prev-lang:kbd | String | en-US:0 |
# Delete
强行重写 NVRAM 变量,注意,Add
不会覆盖 NVRAM 中已存在的值,所以像 boot-args
之类的值将会被留下。
LegacyEnable: NO
- 允许 NVRAM 存储为 nvram.plist,没有自带 NVRAM 的操作系统需要此项
LegacyOverwrite: NO
- 允许从 nvram.plist 覆盖固件变量,仅没有自带 NVRAM 的操作系统需要此项
LegacySchema
- 用于分配 NVRAM 变量,和设置为 YES 的 LegacyEnable 一起使用
WriteFlash: YES
- 启用向闪存写入所有添加的变量。
# PlatformInfo
信息
对于设置 SMBIOS 信息,我们将会使用 CorpNewt 的 GenSMBIOS 应用程序。
对于此 Broadwell CPU 示例,我们将会选择 MacBookPro12,1 SMBIOS。典型的解决方案是这些:
SMBIOS | CPU 类型 | GPU 类型 | 屏幕尺寸 |
---|---|---|---|
MacBook8,1 | 双核 7瓦(低端) | 核芯显卡:HD 5300 | 12" |
MacBookAir7,1 | 双核 15w | 核芯显卡:HD 6000 | 11" |
MacBookAir7,2 | 双核 15w | 核芯显卡:HD 6000 | 13" |
MacBookPro12,1 | 双核 28w(高端) | 核芯显卡:Iris 6100 | 13" |
MacBookPro11,2 | 四核 45w | 核芯显卡:Iris Pro 5200 | 15" |
MacBookPro11,3 | 四核 45w | 核芯显卡:Iris Pro 5200 + 独立显卡:GT750M | 15" |
MacBookPro11,4 | 四核 45w | 核芯显卡:Iris Pro 5200 | 15" |
MacBookPro11,5 | 四核 45w | 核芯显卡:Iris Pro 5200 + 独立显卡:R9 M370X | 15" |
iMac16,1 | NUC 系统 | HD 6000/Iris Pro 6200 | N/A |
运行 GenSMBIOS,选择 1 以下载 Mac 序列号(MacSerial),选择 3 以挑选合适的 SMBIOS。我们将会得到像下面这样的输出:
#######################################################
# MacBookPro12,1 SMBIOS Info #
#######################################################
Type: MacBookPro12,1
Serial: C02M9SYJFY10
Board Serial: C02408101J9G2Y7A8
SmUUID: 7B227BEC-660D-405F-8E60-411B3E4EF055
Type
部分需要拷贝到 Generic -> SystemProductName 部分。
Serial
部分需要拷贝到 Generic -> SystemSerialNumber 部分。
Board Serial
部分需要拷贝到 Generic -> MLB 部分。
SmUUID
部分需要拷贝到 Generic -> SystemUUID 部分。
我们需要把 Generic -> ROM 设置为一个 Apple ROM 值(从一台真实的 Mac 导出),或你的网卡 MAC 地址,或者任何随机的 MAC 地址(需要是 6 段随机字节,在此指南中我们将使用 11223300 0000
。在安装完成后你可以跟随 修复 Apple 服务(iServices) 页面来知道如何找到你的真实 MAC 地址)
记住,你需要的是一个无效的序列号,或者有效但是没有在使用中的序列号,你需要得到返回的信息是:“无效的序列号("Invalid Serial") 或者 “购买日期未验证”("Purchase Date not Validated")
Apple 查看保障状态页面(Apple Check Coverage page)
Automatic: YES
- 生成基于 Generic 部分的 PlatformInfo 以代替 DataHub、NVRAM 和 SMBIOS 部分。
# Generic
更多深层的信息
AdviseWindows: NO
- 用于 EFI 分区不是 Windows 所在硬盘的首个分区时
SystemMemoryStatus: Auto
- 设置内存是否被包含在了 SMBIOS 信息中, 仅作为装点使用,所以我们推荐设置为
Auto
- 设置内存是否被包含在了 SMBIOS 信息中, 仅作为装点使用,所以我们推荐设置为
ProcessorType:
0
- 设置为
0
以自动检测类型,但是如果你想覆盖此值也可以。查看 AppleSmBios.h 以获得更多可选的值
- 设置为
SpoofVendor: YES
- 为 Acidanthera 交换供应商字段,在很多情况下使用 Apple 作为供应商并不安全
UpdateDataHub: YES
- 更新数据收集器(Data Hub)字段
UpdateNVRAM: YES
- 更新 NVRAM 字段
UpdateSMBIOS: YES
- 更新 SMBIOS 字段
UpdateSMBIOSMode: Create
- 以较新的已分配的 EfiReservedMemoryType 替换表,在戴尔笔记本电脑上使用
Custom
需要CustomSMBIOSGuid
偏好设置 - 设置为
Custom
且加入启用的CustomSMBIOSGuid
属性也可以阻止 SMBIOS 注入为非 Apple 操作系统,然而我们不认可这种方式,因为它会破坏 Bootcamp 的兼容性。在你自己承担风险时使用
- 以较新的已分配的 EfiReservedMemoryType 替换表,在戴尔笔记本电脑上使用
# UEFI
ConnectDrivers: YES
- 强制使用 .efi 驱动,设置为 NO 将会自动连接添加的 UEFI 驱动。这样可以略微加快引导速度,但是并非所有的驱动都会自行将其连接。例如一些文件系统驱动可能不会加载。
# Drivers
添加你的 .efi 驱动到这里。
现在应当只有这些驱动:
- HfsPlus.efi
- OpenRuntime.efi
# APFS
设置关于 APFS 驱动,保留所有默认值。
# Audio
与 AudioDxe 的设置有关,对于我们来说可以忽略(保留默认值)。这些设置与 macOS 中的音频支持无关。
- 更多关于使用 AudioDxe 和 Audio 部分的信息,请看 OpenCore 安装后指南页面:添加图形界面(GUI)和 启动声音
# Input
有关于 boot.efi 中用于文件保险箱和热键的键盘放行支持,保留所有默认值,因为我们不需要用到这些设置项。查看这里以获得更多信息:安全与文件保险箱
# Output
有关于 OpenCore 的可视化输出,保留所有默认值,因为我们不需要用到这些设置项。
# ProtocolOverrides
主要有关于虚拟机、传统 Mac 和文件保险箱用户。查看这里以获得更多信息: Security and FileVault
# Quirks
信息
有关于 UEFI 源的设置项,对于我们,需要改变以下设置:
设置项 | 启用 | 注释 |
---|---|---|
IgnoreInvalidFlexRatio | YES | |
ReleaseUsbOwnership | YES | |
UnblockFsConnect | NO | 主要用于惠普主板 |
更多深层的信息
IgnoreInvalidFlexRatio: YES
- 当 MSR_FLEX_RATIO (0x194) 在 BIOS 中不能被关闭时用于修复,所有基于早期 Skylake 的系统都需要此项
ReleaseUsbOwnership: YES
- 从固件驱动释放 USB 控制器,在当你的固件不支持 EHCI/XHCI 转换时需要。很多的笔记本电脑都使用劣质固件,所以我们最好启用此项l
RequestBootVarRouting: YES
- 将 AptioMemoryFix 从
EFI_GLOBAL_VARIABLE_GUID
重定向到OC_VENDOR_VARIABLE_GUID
。在固件尝试删除引导项目时需要,并且推荐为了修正更新安装过程、启动磁盘等等,而在所有系统上使用。
- 将 AptioMemoryFix 从
UnblockFsConnect: NO
- 一些固件封锁了被控制为使用驱动打开的分区,导致文件系统协议无法安装。主要与惠普系统没有列出驱动器相关
# ReservedMemory
用于从操作系统中去除某些内存区域以供使用。主要有关于 Sandy Bridge 核芯显卡和内存有缺陷的系统。使用此设置项的相关内容未包含在此指南中
# 清理
现在你可以准备保存并将其放置到你的 EFI 中的 EFI/OC 目录了。
如果出现引导问题,请确保先阅读故障排除部分,然后如果你还有无法解决的问题,我们有许多资源为你提供:
Sanity check:
感谢 Ramus 的努力,我们也有很好的工具帮助你检查可能缺失了一些部分的配置文件:
- Sanity Checker
- Sanity Checker(优化中国大陆访问速度)
注意,此工具并非由 Dortania 创建或与 Dortania 有关联,此网站的任何问题应当发送到这里:Sanity Checker Repo
# 配置提示
惠普用户:
- Kernel -> Quirks -> LapicKernelPanic -> True
- 否则你会因为 LAPIC(本地高级可编程中断控制器)而遇到内核错误
- UEFI -> Quirks -> UnblockFsConnect -> True
# 英特尔 BIOS 设置
- 注意:这些选项中的大多数可能不会包含在你的固件中,我们推荐尽可能匹配最接近的选项,但是如果很多这些选项在你的 BIOS 中不可用,也不要太担心
# Disable
- Fast Boot(快速启动)
- Secure Boot(安全启动)
- Serial/COM Port(串口)
- Parallel Port(并行端口)
- VT-d(英特尔支持直接 I/O 访问的虚拟化技术)(如果你设置
DisableIoMapper
为 YES,则可以打开) - CSM(兼容性支持模块)
- Thunderbolt(雷雳接口)(仅对于初始安装,因为雷雳接口如果不正确设置,会导致错误)
- Intel SGX(英特尔软件保护扩展)
- Intel Platform Trust(英特尔平台信任技术)
- CFG Lock(MSR 0xE2 写入保护)(此项必须关闭,如果你找不到此选项,则打开在 Kernel -> Quirks 下的
AppleXcpmCfgLock
。你的 Hacintosh 不能在 CFG-Lock 打开的时候启动)- 对于 10.10 和更旧的操作系统,你最好将 AppleCpuPmCfgLock 打开
# Enable
- VT-x(英特尔虚拟化技术)
- Above 4G decoding(芯片组 64 位兼容性硬件物理寻址)
- Hyper-Threading(超线程技术)
- Execute Disable Bit(禁用执行位操作)
- EHCI/XHCI Hand-off(EHCI/XHCI 转换)
- OS type: Windows 8.1/10 UEFI Mode(操作系统类型:Windows 8.1/10 UEFI 模式)
- DVMT Pre-Allocated(动态分配共享显存技术预留部分)(iGPU Memory)(核芯显卡显存):64MB
- SATA Mode(SATA 模式):AHCI