一、基本情况
特写一篇文章记录我的台式机完美黑苹果的艰难经历,如果以后需要全新安装黑苹果时,供自己参考。
主要配置如下表:
CPU | i7 8700 |
---|---|
主板 | ASUS TUF B360 PLUS |
硬盘 | 500G WD Blue SN570 |
显卡 | 核显UHD630 + GTX1050ti(无法驱动) |
安装教程参考文档:
https://apple.sqlsec.com/
https://dortania.github.io/OpenCore-Install-Guide/
OpenCore地址:
https://github.com/acidanthera/OpenCorePkg
注意,这篇只是记录性质的文章,并不会重头到尾详细讲述安装步骤,并且不同配置的电脑所需的驱动也不同,不喜忽喷!希望你能从中获得灵感来解决你安装过程中遇到的问题。
二、准备工作
用OpenCore引导,需要根据硬件配置修改OpenCore的配置。Windows和Mac分别都有可视化的工具来编辑OpenCore的config.plist
文件。
2.1、ACPI配置
根据自己CPU架构添加所需的SSDT文件,编译后的后缀为aml。例如我的这台是8代的cpu,对应的平台是Coffee Lake
,那么根据文档,我需要添加4个SSDT文件:
2.2、DeviceProperties配置
DP配置一般是配置显卡和声卡的信息,声卡信息可以通过boot-args注入,故一般不在DP里面配置。DP里面最重要的是显卡配置。
特别是对于只有核显,且核显没有DP接口的电脑,接HDMI大概率会出现黑屏,根本无法安装的情况。这个是因为Mac将所有输出接口都假定为是DP接口,而我们要做的,是将DP映射为HDMI接口,这样才能成功点亮屏幕。
至于怎么映射,如果网上恰好能找到对应主板的配置文件,那就好办,如果找不到,没有很好的方法,只能通过索引+总线一个一个的试,哪个能点亮屏幕,就说明找到了。具体的可以参考官方文档的方式,在这里不详细展开:https://dortania.github.io/OpenCore-Post-Install/gpu-patching/intel-patching/busid.html#parsing-the-framebuffer
这是我主板插HDMI能点亮的配置,是我TM重启了10多次才试出来的。重点就是framebuffer-con1-alldata
,它的值是02020A00 00080000 C7030000
大致解释一下这个值
- 02表示索引,他需要和con1对应起来,即01-con0 ; 02-con1 ; 03-con2
- 02表示总线ID,一般这个值从01-06,试就是试这个值,从01试到06,不行就换下一个索引继续从01-06试
- 0A00表示通道,一般不需要改
- 00080000表示HDMI,默认是00040000表示DP,就是要强制改为00080000!
- 后面的一般也不用改
注意,这一串不是无中生有,也是根据平台不同,而不同的!默认的配置提供了3个端口的配置:
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x000003C7 - DP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x000003C7 - DP
[3] busId: 0x06, pipe: 8, type: 0x00000400, flags: 0x000003C7 - DP
01050900 00040000 C7030000
02040A00 00040000 C7030000
03060800 00040000 C7030000
是基于这里的改的!具体看上面的文档,不详细说了,比较复杂。[喜讯,如果你也是ASUS的B360系列主板,那么我这个配置你大概率是可以用的!
2.3、Kext配置
Kext配置的是内核扩展,很重要的东西,比如休眠不正常?可以尝试添加对应的Kext解决;比如声卡、网卡、显卡等各种各样的驱动都是这里搞!
我搞了这些,在这里就不细说每个的作用了。需要注意的是,新版的USB注入需要在Windows下面去生成映射文件,然后使用UTBMap.kext
和USBToolBox.kext
来注入。具体教程可以看:
2.4、NVRAM配置
这里最关键的是配置boot-args:
简单解释一下:
- alcid=7 是声卡注入,你需要根据你的声卡型号来注入不同的
layout id
:https://github.com/acidanthera/AppleALC/wiki/Supported-codecs - -wegnoegpu 禁用独显,如果你有不能驱动的独显,需要禁用,不然可能会导致无法休眠 或者 无法唤醒!
2.5、PlatformInfo配置
伪造一个真实存在Mac机器,尽量选择与自己CPU架构相近的机器!
2.6、OC驱动配置
添加这么一些OC驱动,其中只有OpenRuntime.efi
是必须的,其它的根据自己需要添加即可。在这里不再说明每个驱动的作用!
2.7、各个配置的怪癖配置
根据文档去对照着打钩或取消打钩就行,不再多说!
三、各种奇怪现象处理
按照上面的配置,我是成功完成了系统的引导与安装。但是安装好了之后,还有问题等我们去处理呢!
3.1、绿色很绿,蓝色变紫色
因为我们的显示器不受苹果支持,需要强制苹果将颜色以RGB格式输出。解决方式是注入EDID,你可以用Hackintool
来生成注入文件,也可以使用脚本来生成。
对于我这个显示器而言,使用前者依然不能得到正常的颜色,使用后者即可正常,故我使用patch-edid.rb
生成了我显示器的配置文件。
网上的教程基本都是叫你把这个文件放到/System/Library/Displays/Contents/Resources/
然而在比较新的系统中,你尝试各种方法,都没权限放进去,其实大可不必。
我们直接放在/Library/Displays/Contents/Resources/Overrides/
下就行!!!!!
重启颜色描述文件选sRGB IEC61966-2.1
即可!
3.2、每次启动,都需要按F1
RTC导致,需要RTCMemoryFixup.kext
这个内核扩展文件来修复,如果添加了,还是不行。那你的主板比较特殊,需要你自己手动去找到那个影响的区间,这TM又是一个反复重启实验的事情,还用到了二分查找算法的思想帮助你在最少重启次数的情况下找到那个范围。
我TM又重启了10多次,找到了ASUS B360系列主板的那个区间,现在将它添加到NVRAM配置里面即可:
进入NVRAM找到UUID为4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102的项,往里面添加:
key:rtc-blacklist value:5859 类型:DATA
拿走拿走别客气。
四、总结
我已经省略了很多细节了,折腾黑苹果时很累的一件事情,特别是解决问题的时候,真的各种奇葩问题都能遇到。
感谢:
- Apple提供Mac系统
- Github
- 国外Hackintosh社区
- Hackintosh全体贡献者
- 国光
垃圾:
- 百度