黑苹果OpenCore引导总结 |
您所在的位置:网站首页 › oc声卡注入 › 黑苹果OpenCore引导总结 |
前言
众多黑苹果驱动的作者已经停止对Clover的兼容支持,改向Opencore的兼容。所以也许在未来的某一天,Clover就越来越难用了。提前了解了解OpenCore,还是很有必要的。但是OpenCore毕竟没有Clover成熟,同样也没有很好用的可视化编辑器(OpenCore Configurator会导致config出错,慎用),fix的选项也没有,对hotpatch的要求就高了。经过一周的摸索,总结一些OC的坑,帮助以后的朋友少走一些弯路。
雷 神 G170P 笔 记 本,蓝 天(CLEVO)P170SMA模 具 CPU:Core i7-4710MQ 2.50GHz 主 板:CLEVO P17SM-A 硬 盘:威刚SSD 256GB 内 存:16 GB ( 威 刚 DDR3L 1600MHz ) 显 卡:Nvidia GTX970M(DSDT屏蔽) Intel HD4600 有 线 网 卡:瑞 昱 RTL8168/8111/8112 无 线 网 卡:博通BCM94352HMB(原 装intel网 卡,无 解) 声 卡:Realtek ALC892 目录一.准备工作 二.调试Config.plist 三.调试驱动 四.OpenCore更新 一、准备工作准备工作分为以下几步: ①.在Clover引导下,正常运行macOS系统 ②.BIOS设置 ③.下载最新的OpenCore ④.安装Xcode或使用ProperTree ⑤.efi基础驱动 ⑥.U盘或硬盘建立引导分区 ⑦.确认电脑是否支持原生NVRAM ① 至少要先用Clover安装系统,并能够正常进入macOS系统,这样能测试OC能方便很多。如果零基础从OC直接安装系统,难度比较大。对于已经配置好Clover的,则需要精简EFI,把不必要的驱动,dsdt和ssdt删除。防止OC使用过程中不兼容导致的问题。 ② BIOS设置 禁用 | Fast Boot | | 快速启动 | | CFG Lock | | CFG锁 | | VT-d | | Hyper Threading | | CSM | | 兼容性支持模块 | 启用 | VT-x | | VT-x | | Above 4G decoding | | 大于4G地址空间解码 | | Hyper Threading | | 超线程| | Execute Disable Bit | | 执行禁止位 | | EHCI/XHCI Hand-off | | 接手EHCI/XHCI控制 | |OS type:Windows 8.1/10| |操作系统类型Windows8.1/10| ③ 下载最新的OpenCore OpenCore-Releases:https://github.com/williambj1/OpenCore-Factory/releases 官方发布页下载的文件包里的Docs文件夹内的samplefull.plist改名为config.plist作为基础配置自己的OC。 ④ 对于OC中Config.plist,Xcode是最好的选择。其次是ProperTree。 Plist Editor Pro会破坏结构,不能转换Base64. OpenCore Configurator目前更新速度落后于OpenCore,因此会导致Config的损坏 ⑤ efi基础驱动 ApfsDriverLoader.efi 或 Apfs.efi 识别APFS分区 FwRuntimeServices.efi 用来替换AptioMemoryFix.efi UsbKbDxe.efi OC内置驱动不工作,可以提供Apple热键和FileVault的支持。卡OC引导界面,可以删除 VirtualSMC.efi 配合VirtualSMC.kext使用,不能和FakeSMC.kext同时使用。 VBoxHfs.efi 或 HFSPlus.efi 识别HFS分区,对于不能进入Recovery,需要使用HFSPlus.efi EmuVariableRuntimeDxe.efi 模拟NVRAM,对于没有原生NVRAM,需要此驱动(该驱动已和最新的FwRuntimeServices.efi合并,建议使用最新驱动)将需要的驱动,放置在EFI——OC——Drivers中,同时在Config.plist——UEFI——Drivers添加efi驱动名 ⑥ 使用硬盘工具新建一个esp(Fat16)新分区,空间不低于200MB来存放。U盘或硬盘分区都可以。我是在Windows中使用DiskGenius分的区。 ⑦确认电脑是否支持原生NVRAM 打开终端输入:sudo nvram TestVar=HelloWorld然后输入密码 重启系统后输入:sudo nvram -p | grep 'TestVar' 如果显示:TestVar HelloWorld 说明原生支持NVRAM 二、调试Config.plistOC的Config.plist与Clover的Config.plist结构有很大的不同,因此不能通用。整体结构以及说明参考黑果小兵:精解OpenCore和XJN`S BLOG:使用OpenCore引导黑苹果,以下主要说明容易出现的问题。OC中的config.plist是由Docs文件夹内的samplefull.plist改名而来。 ①Misc—security—requiresignature—NO 防止出现报错:OC:configuration signed vault but no public key provided ②misc—security—requirevault—NO 防止出现报错:OC:configuration requires vault but no vault procided ③可以删除 #WARNING - 1 和 #WARNING - 2等 ④Booter—Quirks—DisableVariableWrite—NO 禁止NVRAM写入,没有原生macOS支持NVRAM需要开启 ⑤DeviceProperties—Add可以加入设备硬件地址以及补丁 可以使用Hackintool应用补丁生成设备硬件代码驱动硬件 例如:核显驱动、核显缓冲帧、EDID注入,声卡LayoutID注入、读卡器等等 注意:这里使用的代码与Clover的Config.plist中的Devices—Properties的代码通用 ⑥OC上所有的kext、.efi驱动、.aml补丁都需要填入config.plist,并且都有加载顺序,有依赖的驱动要放在所依赖的驱动之后。 注意:Kernel—Add 按加载顺序加入kext名称 ACPI—Add 按加载顺序加入.aml名称 UEFI—Drivers 按加载顺序加入.efi驱动名称 ⑦Kernel—Quirks—XhciPortLimit: YES USB的15个端口限制补丁,建议定制USB后关闭该选项 ⑧Misc—Boot—ShowPicker: YES 显示OpenCore的UI,可选引导项。 ⑨NVRAM—LegacyEnable: NO 允许将 NVRAM 存储在 nvram.plist 中, 没有原生 NVRAM 的设备必须开启 ⑩NVRAM—7C436110-AB2A-4BBB-A880-FE41995C9F82—csr-active-config: bytes = 0xe7030000 - SIP 完全关闭 ⑪设置默认语言为中文,在NVRAM—7C436110-AB2A-4BBB-A880-FE41995C9F82—prev-lang:kbd中填入(需要NVRAM支持,不支持原生NVRAM或者没弄好模拟NVRAM不生效) ⑫Misc—Security—AllowNvramReset:YES 在OC引导界面显示 Reset NVRAM选项 注意:如果用Clover启动过系统后,再用OpenCore启动系统,需要执行Reset NVRAM来清除NVRAM。清除NVRAM,会清除BIOS自定义引导项名称。 ⑬Misc—Security—ScanPolicy:0 在OC引导界面显示所有可用硬盘 定义: (01)0x00000001 — 限定为文件系统,由以下允许扫描文件系统子项开启 (02)0x00000002 — 限定为设备类型,由以下允许扫描设备类型子项开启 允许扫描文件系统子项: (03)0x00000100 — 允许扫描APFS文件系统 (04)0x00000200 — 允许扫描HFS文件系统 (05)0x00000400 — 允许扫描EFI系统分区文件系统 允许扫描设备类型子项: (06)0x00010000 — 允许扫描SATA设备 (07)0x00020000 — 允许扫描SAS和Mac NVMe设备 (08)0x00040000 — 允许扫描SCSI设备 (09)0x00080000 — 允许扫描NVMe设备 (10)0x00100000 — 允许扫描CD / DVD设备 (11)0x00200000 — 允许扫描USB设备 (12)0x00400000 — 允许扫描FireWire设备 (13)0x00800000 — 允许扫描读卡器设备 扫描策略数值=(01)+(02)+1个或数个允许扫描文件系统子项+1个或数个允许扫描设备类型子项 例如:希望扫描对象是APFS文件系统的USB设备,扫描策略数值=(01)+(02)+(03)+(11),经16进制加法计算得出,扫描策略数值=0x200103。 注意,使用时需将16进制转换为10进制。示例最终扫描策略数值=2097411 ⑭ACPI—Patch放入dsdt、ssdt补丁 Kernel—Patch放入kext补丁 ⑮PlatformInfo中直接删除Datahub,PlatfromNVRAM,SMBIOS这三项,无需填写。 ⑯IgnoreInvalidFlexRatio: YES (在 BIOS 中无法禁用 MSR_FLEX_RATIO(0x194) ,或OpenCore卡引导项时开启) 注意:部分OpenCore卡引导项,是由于UsbKbDxe.efi与键盘不兼容导致的,删除UsbKbDxe.efi即可 三、调试驱动以我自身的驱动来说明 ①建议使用VirtualSMC.kext,因为需要与Drivers中的VirtualSMC.efi配合 ②建议定制USB驱动,如自定义的USBInjectAll.kext、USBPorts.Kext、或加载SSDT-UIAC ③建议定制声卡驱动,虽然万能声卡驱动也支持OC ④VoodooPS2Controller.kext与ApplePS2SmartTouchPad.kext中存在插件kext,在Config.plist中Kernel—Add分别加入 ⑤.kext中没有驱动,只有info.plist的,Kernel—Add加入info.plist的path,不必加入kext的path。 ⑥建议核显驱动使用Hackintool应用补丁生成核显代码、相关补丁以及EDID的注入,防止添加过多kext影响兼容性,同时定义CPU接口,方便加载HDMI视频音频 写这篇文章时我的系统版本是10.15.1,OC是0.5.2。之后更新为10.15.3和0.5.5。 更新OpenCore版本需要注意以下四点: ①做好原有EFI的备份,config.plist—NVRAM—Add—7C4361......—boot-args中添加-v,更新时出错,可以及时发现问题 ②下载最新OpenCore,替换原有EFI中的Bootx64.efi和OpenCore.efi ③最新OpenCore—Drivers找到需要的驱动,对原有EFI中的Drivers驱动进行替换 注:在0.5.5后Divers最新驱动已经合并到最新的OpenCore中 ④查看最新OpenCore—Docs—SampleFull.plist中是否有更新,如有更新可以查看作者的说明进行修改,没有则直接使用之前的config.plist 为方便大家学习交流,附上我OpenCore的EFI OCEFI:https://pan.baidu.com/s/1om3IBf0Bg2A1a8ogJnUpOQ 提取码:k8gu 持续更新中 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |