黑苹果安装笔记
记录黑苹果安装的过程,证明自己来过;
Apple 可能永远也不会再使用 Intel 的 CPU 了,所以 10 代 U 应该是最后一代完美黑苹果了, 11 代及以上 U 的核显驱动及大小核调度问题也可能永远无法完美解决了;
这几天又看到一个消息,说 Windows11 和 Intel 11+ 的 U 不再支持 SGX 功能了,也就是 Windows 平台播放超高清蓝光电影光盘的功能,部分 Windows 用户估计要头疼了,但这对黑苹果却是件好事儿,不过 11+ 的 U 也然并卵;
准备工作
- 满足黑苹果硬件限制的电脑;
- 1 个大于等于(>=)16G 的 U 盘,Catalina.10.15.7.19H15 的大小为 8.27G ,而 Monterey.12.1.21C52 的大小为 12.17G,至于 BigSur 就不考虑了,应该是专为 M1 芯片优化的,何必用 Intel 的芯片去自取其辱呢?🐶(手动狗头);
- 时间、耐心、细心、善用搜索引擎以及不耻下问;
- 时间、耐心、细心、善用搜索引擎以及不耻下问;
- 时间、耐心、细心、善用搜索引擎以及不耻下问;
机型配置
| 硬件 | 型号 | 备注 | 
|---|---|---|
| 机箱 | 机械大师 C34 | 真的很小 | 
| 主板 | MSI Z490 GAMING CARBON WIFI | ATX | 
| BIOS | 1.A0 | 2021-09-30 | 
| CPU | Intel i9-10850K | 个人感觉比 10900K 香 | 
| 内存 | 英睿达铂胜 D4 3600 16Gx4 | 准备转投 PVE 或 UNRAID | 
| 磁盘 | 铠侠 RD10 1T | |
| 声卡 | Realtek ALC1220P | VEN_10EC & DEV_1168 | 
| 有线网卡 | Realtek RTL8125B | VEN_10EC & DEV_8125 | 
| 无线网卡 | Intel AX201 | BIOS 禁用 | 
| 无线网卡 | BCM94360Z3 | |
| 蓝牙 | 同上 👆 | |
| 显卡 | 昂达 RX560 典藏版,说白了就是国内特供版 560D | 亮机卡,但原生驱动 | 
| 显示器 | 三星 C24F390 | HDMI | 
USB 定制
USB 定制原因请阅读 Why should you USB map
USB 定制的方法
USB 定制工具:
- USBToolBox:Windows & macOS;
- Hackintool:macOS;
Windows 下定制
在 Windows 下只能使用 USBToolBox 定制,Hackintool 是 macOS 专有软件,无法使用;
USBToolBox 定制分为两种情况:
- 使用 Apple 原生类,会根据机型(SIMBIOS ID)生成专用👇的 USBMap.kext;
- 使用 USBToolBox 自有类,会生成通用👇的 UTBMap.kext,需要配合 USBToolBox.kext 一起使用;
解释一下上面 👆 的专用和通用(个人理解):
- 专用:使用的是 Apple 原生类, 在内核更新和机器升级的过程中,有些原生类只能用于特定机型,所以,定制时:需要指定你使用的 - SIMBIOS ID也就是机型,使用时:当前机器的- SIMBIOS ID必须和定制时使用的- SIMBIOS ID一致,才可以使用;
- 通用:使用的是 USBToolBox 自有类,在使用时会转换为当前机型可用的原生类,只要和你使用的主板(USB 端口)相同,就可以使用你定制的 UTBMap.kext, - SIMBIOS ID也就是机型可以不一致;
- 好绕,总结一下,其他人若想使用你定制的 USBMap.kext,情况如下: - 专用:主板相同,SIMBIOS ID相同;
- 通用:主板相同;
 
- 专用:主板相同,
- 两种方式到底有什么区别呢? - 通用定制可能会更方便且省时省力,但从 USBToolBox 自有类转换到 Apple 原生类并共享 USB 设备后,应该会有性能损失吧; - 举个例子 🌰:有两块相同的主板,第一块主板使用的 - SIMBIOS ID为- Macmini8,1,第二块主板使用的- SIMBIOS ID为- MacBookPro16,1,如果是通用定制,则定制一次,两块主板都可以使用,而专用定制需要分别定制才可以使用;
macOS 下定制
在 macOS 下可以使用 USBToolBox 或 Hackintool 来定制 USB;
- 使用 USBToolBox 定制 
 macOS 下定制的过程和 Windows 下一致,但无法识别端口的绑定关系,需要分别定制 USB3.0 和 USB2.0,所以需要 USB3.0 和 USB2.0 的 U 盘各一个;- 小技巧:键鼠的无线接收器一般是 2.0,使用它即可; 
- 使用 Hackintool 定制 
 这里就不具体展开了,网上大佬写的教程很多也很详细;
 但定制过程很麻烦也很痛苦,且系统版本不能高于 11.3(否则,解除 USB 端口数量限制的 XhciPortLimit 选项无效),所以还是推荐使用 USBToolBox 在 Windows 下定制;
 定制完成后,需要使用生成的 SSDT-EC-USBX.aml 和 USBPort.kext;- 是的,你没看错,定制后会生成专用的 SSDT-EC-USBX.aml 和 USBPort.kext; 
USB 定制的流程
USB 定制的方法很多,以下是在 Windows 下使用 USBToolBox 定制的流程;
- 下载USBToolBox,解压至任意位置,然后运行其中的 - Windows.exe,由于 USBToolBox 是 Python 打包的单文件应用,如报毒请无视;
 USBToolBox 推荐的系统为 WIN10+,其他说明请通读 README,当前环境为 WIN10 LTSC 2019,并且会使用 Apple 原生类;
- 运行程序后是一个 CMD 应用: ![是一个 CMD 应用]() 
- 然后输入 C 并回车,修改设置(输入不区分大小写,C 或 c 皆可,下同): ![修改设置选项]() - 分别输入 T 回车,N 回车,启用友好类型提示和使用 Apple 原生类; 
- 输入 B 返回主菜单,然后输入 D 并回车,开始识别 USB: ![开始识别 USB]() - USBToolBox 可以识别出所有的 USB 控制器以及每个控制器下的所有 USB 端口; 
- 接着,用准备好的 U 盘把机箱上所有的 USB 端口都插一遍,包括前置面板和 TYPE-C,每次拔插不要太快,可以等 U 盘识别后,手动安全弹出 U 盘; - TYPE-C 设备最好正反都插一次,看端口是否有变化,如果有变化,则后面会涉及到需要修改端口的类型; ![所有的 USB 端口都插一遍]() - 全部拔插一遍后,会发现实际上使用的 USB 接口没几个:绿色表示当前正在使用的接口,蓝色表示曾经有设备接入,而白色则表示从来没使用过的接口; 
- 输入 B 并回车,返回主菜单: ![Saved Dat]() - 此时的 - Saved Data会由- 红色的 None变为- 绿色的 Loaded,表示 USBToolBox 已经存储了当前的 USB 接口数据;- 坐和放宽,数据存储在本地的- usb.json文件中,有时候软件可能会闪退(之前遇到两次),不过已经无伤大雅了,再打开就是了,如果没有到达这一步就闪退了,那么重头开始,再来一遍;
- 在主菜单按下 S 进入接口选择和生成 kext 界面: ![接口选择和生成]() - 此处可以看到控制器 1 下有 17 个 USB 端口,超出了 macOS 单个控制器下接口不得超过 15 个的限制; - 所以,这里需要取舍剔除 2 个端口以符合要求:通常,USB3.0 由于需要兼容 2.0,所以会绑定 2.0 端口,这样,一个 USB3.0 实际会占用 2 个端口的名额(图中 Companion to x 就表示 3.0 和 2.0 端口之间互相绑定,由 USBToolBox 自动识别,macOS 下定制无法识别绑定关系),所以,可以剔除某些 3.0 端口的 2.0 支持来达到要求,还有就是 TYPE-C 接口的设备通常都是 USB3.0,也可以剔除 TYPE-C 对 2.0 的支持; - 举例说明每行端口各个选项的含义: - [#]表示端口被使用 - 序号 - 端口号 - 端口类型 - 端口名称 - 绑定关系 - [#] - 1 - Port 1 - USB2.0 - USB 3 Type A (guessed) - Companion to 17 - 以端口 1 为例,表示端口 1 被使用,类型是 USB2.0,与 17 号端口互相绑定; 
- 接下来就是端口的取舍了,以 - port 3和- port 4为例:- 操作之前先看说明: ![操作之前先看说明]() - 输入 - 3,4并回车,端口 3 和 4 前面的选择(#)就会被取消:![端口 3 和 4]() - 这里不能减少端口的数量,因为选择 3,4 的同时 19 和 20 端口也会被取消,所以多出来的端口需要修改生成的 USBMap.kext; 
- 然后就是修改端口类型了,通常,mac 的蓝牙都是内建的,所以这里将会修改蓝牙占用的 USB 的类型: - 首先输入 T 并回车显示类型说明: ![显示类型说明]() - 然后输入 - T:11:255将蓝牙占用的 USB 改为内建:![蓝牙占用的 USB 改为内建]() - 其他修改请参考类型说明,然后根据自己的需要进行修改,可以同时修改多个端口为同一个类型,如: - T:1,2,3,4:0;
- 至此,USB 定制已经接近尾声了,没有需要修改或调整的内容,输入 K 并回车,编译 USBMap.kext: ![提示]() - 生成 kext 时,可能会提示某个控制器下有没有启用的端口,是需要忽略还是禁用,请根据自己的需要选择; - 这里是 NVIDIA 显卡的控制器,没有什么用,直接 D 禁用; - 然后会提示因为使用了 Apple 原生类,所以需要输入定制的机型(SMBIOS ID),本次将使用 - iMac20,1,所以输入并回车:- 注意 ⚠️:iMac20,2 is a custom SMBIOS meant only for Apple’s custom i9-10910 CPU, so unless you have an i9-10900K we recommend using iMac20,1 
 更多 SMBIOS 注意事项,请阅读 Choosing the right SMBIOS![iMac20,1]() - 然后就会生成并保存 USBMap.kext,USB 定制就结束了; - 这里还可以输入 B 并回车返回接口选择界面,然后生成不同机型的 USBMap.kext; - 如果使用的不是 Apple 原生类,而是 USBToolBox 类,会生成 UTBMap.kext,需要配合 USBToolBox.kext 一起使用; 
- 修改 - [USB|UTB]Map.kext剔除无用端口- 接着上一步,按下 B 返回接口选择界面,然后用编辑器(这里使用 Notepad3)打开生成的 USBMap.kext,CTRL+F 搜索 - AppleUSBHostController(也就是 USB 控制器):![AppleUSBHostController]() - 可以看到一共有两个匹配字符串,因为定制的时候使用了两个控制器,(机器一共有三个控制器,最后定制时把 NVIDIA 显卡自带的控制器禁用了)下面的 - ports字典中的- HSxx和- SSxx就是每个 USB 端口;- 至于怎么区分控制器,很简单,根据字典下面的端口数量,这里很明显,由于第一个控制器下只有两个端口,所以需要修改的控制器是第二个: ![需要修改的控制器是第二个]() - 第二个控制器下,HS 表示 USB2.0 端口,共 11 个,SS 表示 3.0 端口,共 6 个,合计 17 个端口,和定制时信息一致; - 这里的端口顺序和端口选择界面的顺序是一致的,只不过编号中只包含了被使用(被 # 号选中)的端口,要删除哪个端口,数数就知道了: ![端口顺序和端口选择界面的顺序是一致的]() - 如果还是不放心,展开字典的每个端口,对比端口类型: ![对比端口类型]() - 这里以最后一个 USB2.0 端口(Prot 13)为例: - 上面有两个 2.0 端口,分别是 - Port 10 USB3 Type A和- Port 11 Internal,对应的 USB Types 分别是- 3和- 255;
 下面有两个 3.0 端口,分别是- Port 17 USB3 Type A和- Port 18 USB3 Type A,对应的 USB Types 都是- 3;- 这里需要剔除的端口是 3 和 4,对应 USBMap.kext 文件中的 HS03 和 HS04,删除文件中对应的数据,包括 key 和 dict: ![删除文件中对应的数据]() - key 和 dict 是一组键值对,需要匹配删除,而且 key 和 dict 都是双闭合标签,需要成对删除; - 修改后的端口数据如下: ![修改后的端口数据如下]() - HS(2.0)和 SS(3.0)端口共计 15 个,达到了 macOS 的要求,修改完成; 
- 最后就是验证 USB 定制的成果了,需要在安装好 macOS 后用 Hackintool 验证,定制先告一段落; 
制作 USB 安装盘
可以使用黑果小兵前辈的懒人镜像,使用balenaEtcher写入 U 盘即可;
这里使用的官方原版镜像,方法来自 OC 官方教程Creating the USB;
因为 macOS 用着顺手且有白苹果(MacBook Pro 2015),所以以下内容皆基于 macOS,使用 Windows 的小伙伴请参考官方文档;
下载 macOS
| 1 | mkdir -p ~/macOS-installer && cd ~/macOS-installer && curl https://raw.githubusercontent.com/munki/macadmin-scripts/main/installinstallmacos.py > installinstallmacos.py && sudo python installinstallmacos.py | 
这是官方文档给出的示例命令,用于获取 macOS 镜像,可以直接复制执行,也可以根据自己的需要修改;
| 1 | mkdir -p ~/Downloads/Hackintosh/macOS-installer # 创建文件夹 | 
执行脚本后会远程拉取镜像列表,选择自己需要的镜像并回车后,就会开始下载:

这里选择的是 8,也就是 Monterey.12.1.21C52,之前安装过 Catalina,所以就不需要下载了;

镜像很大,下载需要很长时间,下载完成后会提示镜像的位置;
提示:只有在获取脚本时才需要科学上网,下载镜像时不需要科学上网,所以命令分开执行比较好,土豪随意;
制作 U 盘
- 双击下载的镜像文件,如 - Install_macOS_12.1-21C52.dmg,然后将- 安装 macos Monterey.app拖入应用程序文件夹即可;![拖入应用程序文件夹]() - 如果启动台中出现 - 安装 macos Monterey应用程序的图标,表示安装成功;![启动台]() - 淡定,不要运行 - 安装 macos Monterey,这一步只是为了确认是否安装成功;
- 接着使用磁盘工具抹掉 U 盘,格式选择 - Mac OS 扩展式,名称随意;![抹掉 U 盘]() 
- 然后打开终端执行命令将 - 安装 macos Monterey程序写入 U 盘;- 1 
 2
 3
 4
 5- Monterey 
 sudo /Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
 Catalina
 sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume- 命令末尾的 - MyVolume请替换为抹除磁盘时的命名,然后回车,等待写入完成;- 到这一步就制作好 USB 安装盘了,如果是白苹果,就可以拿着 U 盘去恢复系统了,但黑苹果还缺少最重要的 EFI 文件; 
EFI 配置
挂载 EFI 分区
| 1 | sudo diskutil list | 
首先查看当前系统中的磁盘:

可以看到disk6s1就是 U 盘的 EFI 分区,且此时,文件管理器中只显示当前挂载的磁盘:

然后执行下面命令,挂载 EFI 分区:
| 1 | sudo diskutil mount disk6s1 | 
命令执行后,再回到访达中,此时侧边栏就会显示已经挂载的 EFI 分区,它就是接下来要操作的文件夹:

此时的 EFI 分区啥也没有,一片空白;
收集必备文件
安装过程中可能会出现各种各样的问题,所以推荐所有文件使用 DEBUG 版本,没有问题后再使用 RELEASE 版本替换即可;
OpenCore
在OpenCorePkg中下载最新版本的 OC,然后解压:

文件夹说明:
- Docs:存放 OC 最新的配置文件、版本说明、ACPI 示例文件以及 Sample.list 配置文件模板;
- IA32:存放 32 位机器使用的 EFI 引导文件;
- Utilities:OC 官方集成的小工具都放在这里;
- X64: 存放 64 位机器使用的 EFI 引导文件;
这里,将X64文件夹下的EFI文件夹拷贝到刚刚挂载的 EFI 分区中,此时的 EFI 分区应该是这样的:

然后根据官方文档的说明,剔除无用内容后,目录结构如下:

有争议的是OpenHfsPlus.efi,网上大佬都说保留OpenHfsPlus.efi,不要使用HfsPlus.efi,而且HfsPlus.efi不维护了,但我查看官方仓库,发现上次更新日期是 2021.11.02,也就是上次 OC 发布的时候,这里暂时跟随官方文档说明,剔除OpenHfsPlus.efi;
Drivers
- HfsPlus.efi,必需;
- OpenRuntime.efi,必需,已包含在 OC 中;
Kexts
- VirtualSMC,必需;
- Lilu,必需;
- SMCProcessor.kext:CPU 温度,可选,包含在- VirtualSMC包中;
- SMCSuperIO.kext:风扇转速,可选,包含在- VirtualSMC包中;
- WhateverGreen,必需;
- AppleALC,音频;
- LucyRTL8125Ethernet,有线网络;
- AirportBrcmFixup,博通网卡;
- BrcmPatchRAM3,博通网卡上的蓝牙;
- BrcmFirmwareData.kext:包含在- BrcmPatchRAM包中,- BrcmPatchRAM3的依赖组件;
- BlueToolFixup.kext:包含在- BrcmPatchRAM包中,Monterey 及以上蓝牙需要,替换- BrcmBluetoothInjector.kext;
- BrcmBluetoothInjector.kext- BrcmPatchRAM包中,BigSur 需要,Monterey 不可用;
- USBMap.kext:将修改好的 USB 定制文件放入 Kexts 文件夹;
ACPI
根据 SSDTs的说明,获取对应的预构建文件即可;
如果想要更稳定的使用,或是有洁癖,可以根据Getting started with ACPI文档的说明,提取并构建属于自己的 SSDTs;
这里是十代桌面 U,所以需要的文件如下:
- SSDT-PLUG:电源管理; 
- SSDT-EC-USBX:USB 修复; 
- SSDT-AWAC:系统时钟; 
- SSDT-RHUB:400 系列主板 USB 修复; - 由于文档中 MSI 主板的情况未知,所以暂时先不添加,安装后再根据实际情况决定是否需要; 
文件收集完毕
至此,所有所需的文件就已经收集完毕了,这时候的文件目录看起来如下:

config.plist 配置
当前 config.plist 的配置遵循Desktop Comet Lake的配置说明;
配置所需工具:
- ProperTree:plist 编辑器;
- GenSMBIOS:用来生成三码;
- 从 - OC/Docs下复制- Sample.plist文件到- EFI/OC目录下,并改名为- config.plist:![Sample.plist]() 
- 运行 ProperTree,按下 Cmd + O 打开 - EFI/OC/config.plist文件,最后- Cmd + Shift + R将目录指向- EFI/OC/执行清洁载入:- 这样做会删除 config.plist 中所有的内容,然后根据收集的文件重写; 
配置 ACPI
首先是编辑 ACPI
这里没有什么需要编辑的,只需要确认config.plist文件中载入的文件与收集的文件一致即可,其他保持默认;

配置 Booter
| Quirk | Enabled | 
|---|---|
| DevirtualiseMmio | YES | 
| EnableWriteUnprotector | NO | 
| ProtectUefiServices | YES | 
| RebuildAppleMemoryMap | YES | 
| SetupVirtualMap | NO | 
| SyncRuntimePermissions | YES | 
设置如下:

配置 DeviceProperties
这里可以添加 PCI 设备,但这些都可以往后稍一稍,首先保证声卡和核显正常驱动,其他设备可以等安装完成后使用OpenCore Configurator 自动识别添加,比自己添加省时省力;
- 首先是声卡,根据设备声卡的型号,在AppleALC Supported Codecs中找到合适的 - layout-id,然后写入 config.plist 中:![AppleALC Supported Codecs]() ![写入 config.plist 中]() - 需要注意的是写入时的数据格式,如果数据格式是 - Number则直接填入 layout-id 即可,如上图 👆;- 但如果数据格式是 - Data,则需要将 layout-id 转换为 16 进制数字,然后以- 小端序方式写入;
- 接着是核显: ![核显]() 
 这里添加的很简单,只需要让 macOS 识别核显即可;- Key - Type - Value - AAPL,ig-platform-id - Data - 07009B3E - framebuffer-patch-enable - Data - 01000000 - framebuffer-stolenmem - Data - 00003001 - 文档中 UHD630 的配置是这样的,下面两个选项用于修复显卡内存被盗问题,这里使用的主板 BIOS 可以设置,所以不用设置这两个选项; 
配置 Kernel
文档说明保留 ProperTree 载入的 kext 顺序,且 ProperTree 调整顺序比较麻烦,所以 kext 加载顺序暂不调整,安装完后使用 OCC 进行调整;
设置AirPortBrcm4360_Injector.kext的MinKernel为19.9.9,阻止在 Monterey 上加载,详细说明请阅读Known issues;

| Quirk | Enabled | Comment | 
|---|---|---|
| AppleXcpmCfgLock | YES | 如果 BIOS 可以关闭 CFG 锁则可以不用设置此选项 | 
| DisableIoMapper | YES | 如果 BIOS 可以禁用 VT-D 则可以不用设置此选项 | 
| LapicKernelPanic | NO | 惠普机器需要开启此选项 | 
| PanicNoKextDump | YES | |
| PowerTimeoutKernelPanic | YES | |
| XhciPortLimit | NO | 解除 USB 端口最大数量限制,macOS 系统版本大于 11.3 则需要关闭此选项 | 
设置如下:

配置 Misc
- Debug 下的选项有助于在出问题时调试,设置如下: - Quirk - Enabled - AppleDebug - YES - ApplePanic - YES - DisableWatchDog - YES - Target - 67 ![Debug]() 
- Security - Quirk - Enabled - Comment - AllowNvramReset - YES - AllowSetDefault - YES - BlacklistAppleUpdate - YES - ScanPolicy - 0 - SecureBootModel - Default - Vault - Optional - 必填项,数据类型 String,Optional 首字母大写 ![Security]() 
配置 NVRAM

主要是开启啰嗦模式(跑代码模式),防止固件更新等;
据说将prev-lang:kdb设置为en-US:0不容易出错,应该是玄学问题,且先设置上吧,缺点就是安装界面是英文,默认的数据类型是Data,需要 16 进制小端序写入数据,如果要填en-US:0,请将数据类型更改为String;
配置 PlatformInfo
- 运行 GenSMBIOS,首先输入 1 并回车,更新 MacSerial: ![更新 MacSMacSerial]() 
- 然后输入 3 并回车,表示需要生成 SMBIOS 信息: ![输入 3 并回车]() 
- 接着输入机型并回车,就会生成三码: ![生成三码]() - 不要着急,打开Apple Check Coverage page输入生成的 - Serial验证序列号可用性:![Apple Check Coverage page]() - 如果提示无法验证等类似信息,则表示序列号可用; ![序列号有效]() - 如果提示序列号有效等信息,则绝对不可用,请重新生成; - 然后将三码(五码)写入 config.plist: - 对应关系如下: - SMBIOS - Generic - Type - SystemProductName - Serial - SystemSerialNumber - Board Serial - MLB - SmUUID - SystemUUID - Apple ROM - ROM ![五码]() - 生成的 Apple ROM 没有任何作用,如果要在机器上使用 iMessage 请阅读iServices; 
配置 UEFI
APFS Versions的Min Version和Min Date设置为 -1;
| Quirk | Enabled | Comment | 
|---|---|---|
| UnblockFsConnect | NO | Needed mainly by HP motherboards | 

BIOS 设置

- [启用] Above 4G decoding;
- [禁用] Re-Size BAR Support

- [禁用] Onboard CNVi Module Control,自带的 CNVi 协议的 AX201 网卡;
- SATA 模式:AHCI;

- 设置第一显卡为 PEG 的前提是有可用的独立显卡;
- 集显共享内存:64MB;
- [启用] 集成显卡多显示器;

- [禁用] Thunderbolt Support;

- [启用] XHCI Hand-off;

- [禁用] 超级 IO/串口;

- [启用] USB 唤醒;

- BIOS Model:UEFI;

- [禁用] 所有的快速启动;

- [禁用] 安全启动;

- [禁用] VT-D;
- [禁用] CFG 锁定;
- [禁用] SGX;
安装
- 还是 AMD 显卡香,不用配置直接点亮(需要原生支持的型号,有些型号需要仿冒);
- 安装过程基本一帆风顺,刚开始时遇到禁止符号和花屏,是因为忘记将修改的 USBMap.kext 文件放入 Kexts 文件夹了,在 Windows 上改完后放在 U 盘忘记替换了;
安装后的工作
按照OpenCore Post-Install的说明,逐步检查,看系统中是否有相同或类似的问题并修复,既然文档中提到了,那么这些问题肯定是常见的,就不要抱有侥幸心理了;
无 U 盘启动
也就是将 U 盘上的 EFI 文件复制到磁盘 EFI 分区;
打开终端,输入下面命令查看当前挂载的磁盘:
| 1 | diskutil list | 

可以看到,系统磁盘 EFI 分区为disk0s1,U 盘 EFI 分区为disk2s1,然后挂载这两个 EFI 分区:
| 1 | sudo diskutil mount disk0s1 | 
挂载好后,访达侧边栏会显示当前挂载的磁盘:

如何区分到底是谁的 EFI 分区呢?
- 现在系统磁盘的 EFI 分区是空的,所以有内容的就是 U 盘的 EFI 分区;
- 仔细观察,系统磁盘和外置磁盘的图标是不一样的,所以图标相同的是同一磁盘;
然后拷贝 U 盘的 EFI 文件夹到系统磁盘的 EFI 分区(注意:是整个文件夹);
这样,就可以不用 U 盘启动了;
修复音频
打开系统偏好设置,发现声音中没有出现预期的声音输出,只有一个显示器音频输出:

首先检查Lilu/AppleALC/AppleHDA是否正常加载:
| 1 | kextstat | grep -E "AppleHDA|AppleALC|Lilu" | 

结果显示 AppleHDA 没有正常加载,要么是 PciRoot 地址不对,要么是 layout-id 不对;
下载gfxutil然后输入下面命令,检查 PciRoot:
| 1 | path/to/gfxutil -f HDEF | 
path/to/gfxutil替换为下载好的 gfxutil 的实际地址;

然后打开系统磁盘 EFI 分区下的config.plist,这里使用CotEditor打开,按下 Cmd+F 搜索 PciRoot:

很明显,由于指定的设备不对,所以即使有驱动也没什么用,So,改了它;

改好后(记得保存)重新启动,反正现在也不用 U 盘了;

重启后,声音设备出现,测试后正常,修复完毕;
USB 唤醒
启用 BIOS 的USB从 S3/S4/S5 唤醒,同时会自动的禁用USB Standby Power at S4/S5;

其他

GPU 硬件加速正常;

USB 测试正常;
关于本机:


其他内容未改动,包括但不限于:
- 系统报告中的 PCI 设备,未添加;
- 系统报告中的内存信息,未定制;
- Wi-Fi,蓝牙,随航正常;
- 开关机,睡眠,唤醒正常(测试时间较短,仅供参考);
- OC 主题未定制;
- 啰嗦模式未关闭,当前所有文件为 DEBUG 版本;
































