一、前言
最近一段时间可谓是DIY玩家的噩梦,各种硬件疯涨,特别是在虚拟货币的加持下显卡都上天了.本来还想去淘一张rx580没想到这三朝元老都涨价到了1800左右.
迫于无奈(穷),在加上最近有点时间可以折腾一下.就想着折腾一下黑苹果.看了看家里的电子垃圾,心里暗想,还是让他们发光发热一下吧(😭).
本教程大多数都是从 opencore install guide 官网上摘抄过来的,如果有啥问题那就是我理解的问题的.
二、配置
cpu | I5-4450 |
主板 | Asus-b85-pro-g |
内存 | 海盗船DDR3 8G * 2 |
硬盘 | 铠侠RC10 |
网卡 | bcm943602cs |
显卡 | HD4600 |
由于没有独显只能拿核显顶一下,纯粹办公还是能顶得住的.
三、安装
3.1 硬件选择
现在安装黑苹果基本都是基于 opencore 进行安装.所以第一步就需要在 opencore install guid 的指南网站上去查看硬件配置是否兼容.
如果觉得英文看得难受也可以参考黑果小兵的博客,显卡和网卡尽量选择免驱的,减少折腾的时间(一般情况下固态是不会有兼容性问题的,除了:三星 970 EVO,这些限制都能在 opencore 的网站上找到)
这片文章撰写时,opencore的版本为0.7.2
3.2 准备工作
硬件选择好了之后,建议先安装windows系统,在windows上面做准备工作.也要准备一个大于16G的U盘用于引导和安装黑苹果.
辅助软件下载:
软件 | 说明 |
---|---|
python3 | 作为辅助软件的基础运行环境 |
ProperTree | 一个plist编辑器,opencore官方推荐工具 |
SSDTTime | 用于导出SSDT信息和生成通用的SSDT-EC、SSDT-PLUG、SSDT-HPET布丁,在ACPI章节会需要 |
GenSMBIOS | 生成随机的smbios信息 |
Hackintool | 在macos安装好之后可以使用该工具进行打补丁或者做usb定制 |
OpenCore Configurator | 一个图形化配置工具,在macos安装好之后可以使用该工具进行配置 |
IORegistryExplorer2.0 | 在macos安装好之后使用该工具查看各个硬件是否驱动 |
AIDA64 | 用于在windows平台上获取硬件信息 |
3.3 获取硬件信息
获取CPU型号:
获取显卡型号:
获取芯片组信息:
获取声卡信息:
获取网卡信息:
opencore 指南里面还获取了 SMBUS、USB、I2C、Keyboard, Trackpad、 Touchscreen Connection Type这些信息,我个人认为,用台式机的话是用不着以上信息的,当然设备不能太老.
3.4 创建MacOS启动盘
创建启动盘需要准备一个U盘和rufus、OpenCorePkg工具.OpenCorePkg需要提前解压好.下载OpenCorePkg建议下载debug版本,输出的信息更多,方便前期调试.
3.4.1 下载MacOS
进入到Utilities/macrecovery/,复制目录路径
打开命令行工具,切换目录到macrecovery
运行命令
# Lion(10.7):
python macrecovery.py -b Mac-2E6FAB96566FE58C -m 00000000000F25Y00 download
python macrecovery.py -b Mac-C3EC7CD22292981F -m 00000000000F0HM00 download
# Mountain Lion(10.8):
python macrecovery.py -b Mac-7DF2A3B5E5D671ED -m 00000000000F65100 download
# Mavericks(10.9):
python macrecovery.py -b Mac-F60DEB81FF30ACF6 -m 00000000000FNN100 download
# Yosemite(10.10):
python macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000GDVW00 download
# El Capitan(10.11):
python macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000GQRX00 download
# Sierra(10.12):
python macrecovery.py -b Mac-77F17D7DA9285301 -m 00000000000J0DX00 download
# High Sierra(10.13)
python macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000J80300 download
python macrecovery.py -b Mac-BE088AF8C5EB4FA2 -m 00000000000J80300 download
# Mojave(10.14)
python macrecovery.py -b Mac-7BA5B2DFE22DDD8C -m 00000000000KXPG00 download
# Catalina(10.15)
python macrecovery.py -b Mac-00BE6ED71E35EB86 -m 00000000000000000 download
# Latest version
# ie. Big Sur(11)
python macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000 download
注意: Mojave 往后的版本会有15个usb端口的限制,需要定制usb端口.建议安装 Mojave,在 Mojave 上定制USB端口后再进行升级到最新版本.
下载完成后会产生以下2个文件
3.4.2 制作引导盘
运行Rufus
- 选择 boot selection 为 non bootable
- 选择 file system 为 large FAT32
- 点击 start
- Rufus 运行结束后,打开U盘,创建目录名为:
com.apple.recovery.boot
,然后把之前下载好的文件复制到U盘中去.
-
打开之前下载的OpenCorePkg,选择对应的模板,一般来讲是用x64的模板
-
复制x64文件夹中的EFI到U盘的根目录
3.4.3 精简模板
安装黑苹果的准则之一就是东西越少越好,这样方便排查错误.在opencore模板里面带了很多不必要的东西,需要删除掉.
openCore的目录结构如下:
在BOOT
目录里面只有一个efi文件,一般情况下不会去动它.调整的比较多的目录是OC
这个目录.
目录 | 文件名 | 说明 |
---|---|---|
OC/Drivers | OpenRuntime.efi | 必要 |
OC/Tools | OpenShell.efi | 非必要,推荐使用方便调试 |
BOOT | BOOTx64.efi | 必要 |
OC | OpenCore.efi | 必要 |
3.4.4 完善模板
以下的文件,按照自己硬件情况添加,这里我只记录我自己的添加的文件.详情请参考 openCore install guide
kexts
目录 | 文件 | 说明 |
---|---|---|
OC/Drivers | HfsPlus.efi | 必要,文件系统 |
OC/Kexts | VirtualSMC.kext | 必要,模拟mac |
OC/Kexts | SMCProcessor.kext | 非必要,监控处理器温度 |
OC/Kexts | SMCSuperIO.kext | 非必要.监控风扇速度 |
OC/Kexts | Lilu.kext | 必要,底层运行环境 |
OC/Kexts | WhateverGreen.kext | 显卡驱动 |
OC/Kexts | AppleALC.kext | 声卡驱动 |
OC/Kexts | IntelMausi.kext | 网卡驱动,这个需要根据硬件情况 |
OC/Kexts | USBInjectAll.kext | usb驱动 |
由于使用的是免驱的网卡和核显,就不需要额外的驱动了.
SSDTs:
ssdt补丁需要根据自己的平台来选择对应的补丁.例如我这边是 4代 i5 Haswell 平台,就需要2个补丁,分别是:SSDT-PLUG、SSDT-EC.
以上2个补丁都可以通过SSDTTime这个工具生成.
SSDT-PLUG:
- 运行 SSDTTime
- 执行 dump SSDT
- 执行 PluginType
SSDT-EC:
- 执行 SSDTTime
- 执行 dump SSDT
- 执行 Fake EC
以上2步执行完毕后会在 result 目录中生产 aml 文件,复制 SSDT-PLUG.aml 和 SSDT-EC.aml 到u盘的 ACPI 目录中.
config.plist
添加完文件之后,目录结构大概是这样:
回到 OpenCorePkg 目录中,进入到 Docs 目录,复制 Sample.plist
文件到 U盘 EFI/OC/
目录中,并重命名为config.plist
.
运行 ProperTree
,用Ctrl + O打开U盘的 config.plist
文件.再用Ctrl + Shift + R快捷键刷新config.plist
.
后面的过程就是根据自己的平台来调整配置.这个配置会调整很多次,不存在一次性调整好的(除非运气好).调整的内容太多了,不打算在这里写了.
四、HD4600 HDMI音频的坑
自己调整很久的,hdmi音频一直没有弄出来,再一次爬贴过程中发现把缓存帧中flags,也就是把Flag_10取消勾选,声音取消勾选,声音就出来了.
五、总结
黑苹果这块涉及的东西太多了,光是打缓冲帧就可以水一章,反正是些来给自己看的,等哪天心情好的时候再来完善完善.