opencore

OpenCore(V0.5.1)已经证明了自己在10.14.6至10.15 beta 11上的稳定性

来源

Xjn's Blog - I AM A HFSSPblog.xjn819.com图标




目前为止,最新版的OpenCore(V0.5.1)已经证明了自己在10.14.6至10.15 beta 11上的稳定性。考虑到即将来临的10.15正式版,我想现在写一份关于z390等比较新的主板,如何使用OpenCore去引导新系统是一个不错的时间点。
最近好多小伙伴问我要我的配置哈,都是买了一样的配置再问我要efi,真是厚爱了!我的efi在群文件里都有,配置如下:
我的电脑配置
简介
OpenCore(OC)是一种新的引导方式,随着越来越多的kexts开始放弃Clover, 我相信提早使用OC会对你未来使用黑苹果会有很大的帮助。这是一个自然的现象,就像变色龙被Clover淘汰,而现在OC代替Clover也是大势所趋。你应该需要看一些相关的文章,来帮助你理解我的正文内容,同时也需要下载我推荐的软件:



帖子更新内容查询:
2019-11-28:
1.增加3.8.3章节,解释睡眠记录中出现RTC ALARM而导致自动唤醒的现象。[Opencore v0.5.3]
2.计划写5700xt/Radeon VII等显卡的性能优化,虽然cpu优化都还没写好,太懒了。[Opencore v0.5.3]


2019-11-21:
1.关怀华硕用户,补充章节3.2。[Opencore v0.5.3]
2.着手开始写cpu变频相关内容。 [Opencore v0.5.3]

2019-11-20:
1.在今天的OC更新中,NVRAM与启动磁盘之间的BUG被修复,重新删了EmuVariableRuntimeDxe.efi,并且在章节3.2中加入相关教程。[Opencore v0.5.3]
2.更新SSDT-ARTC来解决RTC重置问题。因我自己的所有设备都没有碰到这个问题,很难凭空去完全解决RTC重置的问题。 [Opencore v0.5.3]

2019-11-19:
1.fwruntimeservice.efi 存在缺陷,所以把EmuVariableRuntimeDxe.efi补回来了,具体内容。[Opencore v0.5.3]
2.更新节能五项,章节3.5。[Opencore v0.5.3]

2019-11-16:
1.增加我的电脑配置及购物链接,问的人太多了。

2019-11-09:
1.修改章节2.6.1为中文,谢谢网友提醒,哈哈哈哈。[Opencore v0.5.3]
2.对config设置里,比较重要的设置改为红字提醒。[Opencore v0.5.3]

2019-11-08:
1.重点推荐Propertree作为config的编辑工具,再次提示不要使用opencore configurator!!!!下载地址:github.com/corpnewt/Pro。[Opencore v0.5.3]

2019-11-03:
1.重改EC章节,对台式机和笔记本进行区别对待。[Opencore v0.5.3]
2.增加强制睡眠相关教程,留言板说想知道一些SSDT的知识,那我在这里顺便也展示几种SSDT/Hotpatch/TgtBridge在OC下的使用说明。[Opencore v0.5.3]
3.删除章节1.0中EmuVariableRuntimeDxe.efi的相关要求。[Opencore v0.5.3]
4.修改章节2.4.4关于applertc的说明。[Opencore v0.5.3]


2019-10-31:
1.添加OC 0.5.2正式版中新增加的variable相关说明,包括PowerTimeoutKernelPanic(章节2.4.5)以及ReconnectOnResChange(章节2.7.4)。[Opencore v0.5.2]

2019-10-27:
1.在2.4.4段中补充了关于华硕主板重启后丢失BIOS设置以及需要按F1跳过安全模式的RTC设置,同时在3.8段中提供RTC的完整解决办法。[Opencore v0.5.2]
2.在3.7.1段中补充了usb电流相关设置。[Opencore v0.5.2]
3.在3.7段的仿冒EC中发现OC官方样本的BUG,重新写了一下。[Opencore v0.5.2]

2019-10-16:
1. 加入Booter/MmioWhiteList说明。[Opencore v0.5.2]



0.0 BIOS设置

直接抄袭@黑果小兵了~嘻嘻嘻
禁用如下:
英文中文Fast Boot快速启动CFG Lock (MSR 0xE2 write protection)CFG 锁 (MSR 0xE2 写入保护)VT-dVT-dCSM兼容性支持模块
启用如下:
英文中文VT-xVT-xAbove 4G decoding大于 4G 地址空间解码Hyper Threading处理器超线程Execute Disable Bit执行禁止位EHCI/XHCI Hand-off接手 EHCI/XHCI 控制OS type: other types操作系统类型: 其他

1.0 整理OPENCORE目录

  • 打开下载好的最新版OC(0.5.1),把Doc文件夹下面的SampleFull.plist改名为config.plist,并把此文件移动到EFI目录下面。
  • 打开EFI—Kexts,我们把常用的一些kexts先放进去,一般情况下你需要放如下Kexts:

*Lilu.kext ———- Acidanthera驱动全家桶的底层依赖/下载地址
*Applealc.kext ———- 声卡驱动/下载地址
*VirtualSMC.kext ——— 传感器驱动依赖 /下载地址
*SMCProcessor.kext ———- CPU核传感器/同上
*SMCSuperIO.kext ———- IO传感器/同上
*WhateverGreen.kext ———- 核显&显卡驱动/下载地址
*IntelMausi.kext ———- Intel类千兆网卡驱动/下载地址
*Usbinjectall.kext ———- USB驱动 (你也可以定制自己的USB补丁)/下载地址

  • 注意,一些机型用了1820A,1560,1830等网卡,需要自己放对应驱动;有线螃蟹卡也自己放一下驱动;笔记本类需要更多传感器的,请自行补齐VirtualSMC的那些传感器补丁;


  • 打开EFI—Drivers,我们把常用的一些.efi文件放进去,一般情况下你需要放如下补丁:

*ApfsDriverLoader.efi ———- APFS格式支持/下载地址
*MemoryAllocation.efi ———- 帮助z390系列空出第一个512MB内存,为后面的内存注入做铺垫,若要使用hibernation功能请不要使用它/下载地址
*FwRuntimeServices.efi ———- 内存寻址补丁/ 下载地址
*EmuVariableRuntimeDxe.efi ———- 帮助无原生Nvram的主板实现nvram模拟。Z370, x299, C422主板不需要这个文件/下载地址已经不需要了
*VBoxHfs.efi ———- HFS格式支持/下载地址//在测试过程中我发现hfsplus.efi的效果更好。
*UsbKbDxe.efi ———- 键盘组合键的使用,有一些键盘不能放这个,比如苹果键盘/下载地址
*VirtualSmc.efi ———- 传感器依赖/ 下载地址

下载完成后,我们的整个EFI文件夹如下图所示:




2.0 Config.plist 修改

这一章会把config的各个大项目分开来,内容会写的繁琐一点,为了让小白明白各个选项的用途,当然有能力的人可以直接看我最前面的几个链接来配置config.plist。我这里强制要求你使用XCode 10或者Propertree来编辑Config.plist,其他的任何软件我都不建议使用,包括Plistedit pro。

2.1 Config—-ACPI
ACPI包括了四个部分:Add, Block, Patch, Quirks。这里我们先把root下面的两条#WARNING – 1和#WARNING – 2删除,这两条没有实际意义。

2.1.1 Config—-ACPI—–Add
这部分主要填写我们使用的SSDT以及DSDT文件,如果没有请把0-8的ssdt全部删除。如果你有修改的SSDT或者DSDT文件,请先将文件放入EFI/OC/ACPI下。
因为我使用雷电卡,我需要添加两条关于雷电卡的ssdt文件:

  1. Item 0
  2. Comment String Thunderbolt3-DTGP //填一个你自己能辨别的名字,方便知道是啥
  3. Enable Boolean YES //表示加载此SSDT,反之NO则为不加载
  4. Path String SSDT-DTGP.aml //为你ssdt放在EFI/OC/ACPI下的文件名,必须一致
  5. Item 1
  6. Comment String Thunderbolt3
  7. Enable Boolean YES
  8. Path String SSDT-TB3.aml



2.1.2 Config—-ACPI—–Block
这个目录下是禁用一些SSDT/DSDT,似乎没什么用,我把下面的item全都删了。

2.1.3 Config—-ACPI—–Patch
这里我们需要填写一下热补丁。

  • 在10.15中,一些资料指出我们需要把EC控制器(EC0)改名为EC来确保能进入10.15系统


  1. Comment: EC0 to EC
  2. Count:0
  3. Enabled:YES
  4. Find:<4543305F>
  5. Limit:0
  6. Mask:<>
  7. OemTable:<>
  8. Replace:<45435F5F>
  9. ReplaceMask:<>
  10. Skip:0
  11. TableLength:0
  12. TableSignature:<>



需要注意的是,一些主板的EC控制器名字可能会叫H_EC等,请自行提取DSDT并搜索PNP0C09,来获取EC控制器的名字,这些内容会在第三章中写出。

  • 华擎、华硕、微星主板可能会遇到RTC问题而无法进入系统,这同样需要添加hotpatch补丁来解决:
  1. Comment: RTC fix
  2. Count:0
  3. Enabled:YES
  4. Find:<A00A9353 54415301>
  5. Limit:0
  6. Mask:<>
  7. OemTable:<>
  8. Replace:<A00A910A FF0BFFFF>
  9. ReplaceMask:<>
  10. Skip:0
  11. TableLength:0
  12. TableSignature:<>



2.1.4 Config—-ACPI—–Quirks
此目录下有五项,选择与解释如下:
QuirksValue解释FadtEnableResetNO一些旧的主板需要对FADT进行标记来激活电脑的开机和关机功能,这里我们不许要启动它(如果你遇到关机变重启,可以打开试试,我们之后也会在nvram中将这个问题修复)NormalizeHeadersYES清理ACPI头,一些主板的ACPI表需要打开这个修复启动。但如果补丁点亮系统,请试试NORebaseRegionsNO换硬件、升级BIOS等对硬件的操作会对ACPI表产生影响,一般不需要打开ResetHwSigNO休眠相关项,台式机不需要ResetLogoStatusNO顾名思义了,关了
2.2 Config—–Booter
内存相关选项设置。
2.2.1 Config—Boot—MmioWhitelist
默认的第一项是为Haswell芯片提供的内存寻址修复,如果此类芯片碰到内存相关问题,请开启它(enable选择yes)。
默认第二项是开机卡PCI Configuration这里。ACPI、PCI device同时释放到内存时发生0x1000内存地址被占用而卡在PCI Configration.如果碰到此类问题,请开启它。
2.2.2 Config—Boot—Quirks
此项与Fwruntimeservice.efi有关。在aptiomemoryfix停更后,此补丁已经更名为Fwruntimeservice, 并将一些功能与OC合并、模块化。对于z390等无法原生nvram的主板来说,这里的选项需要格外注意。当然我也会把像z370、x299、c422这样支持原生nvram的选择方法一并写进去。

  • AvoidRuntimeDefrag:大部分UEFI都会写入时间、电源管理等信息,这个所有黑苹果主板都应该选择YES。


  • DevirtualiseMmio:内存注入方式包括KASLR方式(分布式注射到各个内存地址中)以及连续性方式。在使用KASLR时,PCIE加载到内存,可能会占据所有所有avaliable值而导致OC的内核以及内核缓存无法注入,导致启动失败。使用KASLR方式很容易出错,我们更适合使用连续性的内存注入方式,并在boot args中添加slide=1(这个之后会写)。因为我们之后会添加这个slide=1去使用连续性的内存注入方式,所以这个选项我们选择NO。(不知道你能不能理解,意思是所有的主板都选NO! 我暂时还没发现能用KASLR的台式机,哈哈哈哈)。


  • DisableSingleUser:这里关乎主机是否能开启单用户模式。什么是单用户模式,请看此文章。如果你觉得有用就开启它,我选择NO,我不需要。


  • DisableVariableWrite:非原生NVRAM主板需要模拟nvram.plist进而写入variable值,因此我们要禁止此项来防止其他程序对nvram进行写入,我们这里选YES。需要注意一点,如果你的主板支持原生nvram(z370/x299/c422),请选择NO!


  • DiscardHibernateMap:当电脑从休眠(hibernation)中唤醒时,硬盘里的资料会恢复到内存中去,但这个时候OC的内核以及内核缓存等也会写入,这样可能导致冲突,这个选项是帮助我们解决这个问题的。而目前来看,除了z370/x299/c422都无法进行休眠(注意睡眠sleep和休眠hibernation是两个概念),台式机的话就更不需要休眠功能了,这里我选择NO。这里我们也不讨论如何休眠。


  • EnableSafeModeSlide:安全模式下是否启用连续性的内存注入方式。这个不是那么重要,你不会每天进安全模式的。像z390这样本来也不用分布式注入内存方式的(KASLR),我就选择YES,与正常情况下保持一致。


  • EnableWriteUnprotector:保证nvram能正常写入而不受到UEFI内的一些服务的影响,无论什么主板都要选择YES。


  • ForceExitBootServices:这个选项是让那些非常老旧的主板也能使用内存寻址,正常情况下选NO。


  • ProtectCsmRegion:官方对此项目的解释与AvoidRuntimeDefrag类似,除非你明白这是什么,不然选择NO,其实我也不明白。


  • ProvideCustomSlide:是否使用slide值。其实我自己也没有机会使用KASLR这种内存注入方式,所以我一直都是选择连续性注入内存并配合slide,所以我选择YES。如果你对KASLR有一定的认知并会运用,请注意这个值。


  • SetupVirtualMap:是否建立虚拟内存并对物理内存进行映射。我们在开机时,OC的程序需要一块连续性的内存进行存放内核等东西,而实际的物理内存一般都是分散的。因此,我们通过虚拟内存建立连续性内存供OC使用,并映射到分散的物理内存中。这里我们选择YES。


  • ShrinkMemoryMap:苹果的内核对内存的规范性有具体的要求。目前来看新的主板的规范性都是符合苹果的要求的,我们并不需要启动它,选择NO。如果你出现内存问题而无法开机,请打开此项测试。



2.3 Config—–DeviceProperties
此项是用来注入你的设备的,主要是显卡和声卡两部分。同样你也可以定制一些设备到你的关于本机–系统报告–PCI列表中,尽管没有多大的意义。

2.3.1 声卡
这里首先我们需要找自己声卡的地址,打开hackintool,到PCI列表中寻找IOReg IOname那栏,一般声卡的设备名称叫做HDEF或者HDAS:


这里我们找到的声卡PCI路径为PciRoot(0x0)/Pci(0x1f,0x3)。我们把预先填写在那里的PciRoot(0x0)/Pci(0x1b,0x0)项替换成我们真正的声卡路径。后面一段我们看到预先填写的声卡ID为<01000000>,这里我们需要把它换成自己系统的ID。

  • 打开先前要求下载的Hackintool,到声卡选项部分,我们可以看到自己的声卡编号,我的是ALC1220。



  • 打开黑果小兵关于声卡的博客,并搜索我们的声卡型号:ALC1220,我们发现我们的声卡型号对应1, 2, 3, 5, 7, 11, 13, 15, 16, 27, 28, 29, 34的layout ID。我们需要一个个测试过去,选定自己能用的。这里我们选择7这个ID进行测试,将7转化成16进制格式为07,后面为了满足格式要求添加6个0,则为07000000,将这个值替换刚才预先填的01000000中;如果我们测试ID为27,27的16进制为1b,补上6个0则为1b000000。


  • 一些奇怪的声卡可能需要注入device ID才能用,不知道为啥:
  1. PciRoot(0x0)/Pci(0x1f,0x3)
  2. device-id data <70a10000> //这个device id是固定的,不要问为什么是这个id
  3. layout-id data <0b000000> //这个Layout id我瞎写的,你按实际情况写




  • 如果你测试的ID都无效,请确保你的操作过程正确、并测试用万能声卡补丁来替换AppleALC这个补丁。如果都不行,你可能需要自行编译声卡补丁


2.3.2 核心显卡
打开PciRoot(0x0)/Pci(0x2,0x0)这项,此项为驱动核心显卡。驱动核心显卡我们要分情况讨论:1.只有核心显卡的DP显示器用户 (HDMI我会在进阶设置中写);2.没有核心显卡的用户;3.有核心显卡并用独显做主力的用户。注意,这里我们只讨论8代和9代CPU的机器,其他CPU机型的请在论坛或者黑果小兵博客中搜索相关代码。

2.3.2.1 只有核心显卡的DP显示器用户
8代和9代的核显ID为:3E9b0007,device ID为3e9b0000,但是我们需要符合一定的顺序格式填入进去,至于为什么是这么奇怪的一个顺序,我也不知道,你照抄就是了:

  1. AAPL,ig-platform-id data <07009b3e>
  2. device-id data <9b3e0000>
  3. enable-hdmi20 data <01000000> //如果你的hdmi不是2.0的(主板说明书会写),不需要填写这行。
  4. framebuffer-unifiedmem data <00000080> //核显显存相关



2.3.2.2 没核心显卡的用户
cpu带f的cpu (e.g. 9100f 9900kf), Xeon等不带核心显卡的用户不需要管这项,直接把AAPL,ig-platform-id选项卡删了。

2.3.2.3 有核心显卡并用独显做主力的用户
这种情况我们一般把核心显卡作为加速用,而显示则用独立显卡。这样,我们填一个作为加速用的核显ID即可了:

  1. AAPL,ig-platform-id data <0300983e>




2.3.3 Block
这里是禁用一些设备的,我们按默认就行了,不需要任何修改。


2.4 Config—–Kernel
这里是内核相关选项。

2.4.1 Config—–Kernel—–Add
这里我们需要填写kexts的相关资料。值得注意的是OC的kexts填写必须注意顺序,比如applealc的依赖是lilu,那么lilu必须填在第一个;SMCProcessor.kext依赖于Virtualsmc.kext。那virtualsmc必须放在SMCProcessor.kext之前。
这里默认情况下很多我们需要的补丁已经被加载里面了,但是enabled那块我们要手动改成yes去开启它,把一些不用的删了:

  1. Item 0
  2. BundlePath String Lilu.kext //kext的名字
  3. Comment String //你自己填一个注释,可以不填
  4. Enabled Boolean YES //启动此补丁,反之则为关闭
  5. ExecutablePath String Contents/MacOS/Lilu //通过右键kext显示包内容查找lilu运行文件的真正路径
  6. MaxKernel String //此补丁支持的最大系统版本,填19为10.15,18位10.14;我们一般情况下留空
  7. MinKernel String //此补丁支持的最小系统版本
  8. PlistPath String Contents/Info.plist //kext的plist位置,可以右键kext显示包内容查找正确路径
  9. ............
  10. ............
  11. Item 4
  12. BundlePath String WhateverGreen.kext
  13. Comment String
  14. Enabled Boolean YES
  15. ExecutablePath String Contents/MacOS/WhateverGreen.kext
  16. MaxKernel String
  17. MinKernel String
  18. PlistPath String Contents/Info.plist
  19. ............
  20. ............
  21. Item 7
  22. BundlePath String USBPorts.kext
  23. Comment String
  24. Enabled Boolean YES
  25. ExecutablePath String //一些没有执行文件的kext不需要填写
  26. MaxKernel String
  27. MinKernel String
  28. PlistPath String Contents/Info.plist
  29. ............
  30. ............



2.4.2 Config—–Kernel—–Block
禁用一些kexts,这里好像没啥用,不用理会。

2.4.3 Config—–Kernel—–Emulate
此选项帮助Ivy Bridge 和一些不受支持的CPU加载电源管理的,我们这里不做此方面讨论(我没这么老的CPU)。所有选项按默认即可。

2.4.4 Config—–Kernel—–Patch
这里是为一些kext打补丁用的。
我们可以看到样本里面有四个补丁,都是关闭着的,其中有两个是关于APPLE RTC的,这对于华硕主板来说相对比较重要,这里我们需要对appleRTC相关的两个补丁一一测试,打开—–Enabled—YES其中一个,即可。如果不行,关闭一个打开另一个。这样能解决华硕主板重启丢失BIOS设置以及需要按F1跳过安全模式,当然RTC仍然需要进一步的设置,我会在进阶教程中详细写一下这一块。

2.4.5 Config—–Kernel—–Quirks
这里是内核相关的快捷选项,比较重要。
AppleCpuPmCfgLock:请确保你的BIOS中已经关闭了CFG锁。如何解CFG锁我在这篇文章中有详细教程。如果你不会解这个锁,你就选择YES,解锁的情况下选择NO。注意,CFG的解锁对之后的进阶教程相关度极高,有能力还是解一下吧!

AppleXcpmCfgLock: 同上!

AppleXcpmExtraMsrs: 主要在没有原生电源管理的CPU上启用,一般是Haswell-E, Broadwell-E, Skylake-X这三种CPU需要填写YES。除此之外的CPU选择NO。

CustomSMBIOSGuid: 戴尔笔记本专用项,我们选择NO。

DisableIoMapper: 禁用vt-d,我们在BIOS里已经禁用vt-d了,这里我们选择NO就行了。

ExternalDiskIcons: AHCI控制器相关,现在的主板都对AHCI支持的很好,一般选择NO。

LapicKernelPanic: 适用于HP笔记本的内核奔溃选项,我们选择NO。

PanicNoKextDump: 防止kext出错打报告而让我们看不到真正的panic原因,这个随便选,我选择NO。

PowerTimeoutKernelPanic: 当你遇到睡眠不能唤醒,只有重启后才能睡眠唤醒,请试试选择YES。

ThirdPartyTrim: 开启Sata类SSD的trim功能,我没有sata类的ssd,我选择NO。自行根据情况选择。

XhciPortLimit: 解除15个端口限制,我选择YES。


2.5 Config—-Misc
这里都是一些开机引导类的设置。

2.5.1 Config—–Misc—–BlessOverride
这个选项是帮助我们寻找一些不寻常的EFI位置的,除非你有这种情况,不然我们不需要填写任何东西。

2.5.2 Config—–Misc—–Boot
ConsoleBehaviourOs: 一般是留空,如果留空开机显示效果不佳,请填ForceText。

ConsoleBehaviourUi: 同上。

HibernateMode: 检测休眠模式。我们的机器一般都不支持休眠,选none。如果你的主板支持原生nvram、并想测试休眠,可以考虑填auto。

HideSelf: 隐藏自身的EFI引导盘选项,选YES。

PollAppleHotKeys:是否开启一些热键功能,包括Cmd+K;Cmd+S。我选的是yes。如果你开机发现键盘无法选择,也选NO,并且删除OC/Drivers下的UsbKbDxe.efi 。

Resolution: 开机分辨率。比如我的显示器是4K、16:9的,我就填写3840×2160。这个你根据情况填写或者不填。如果遇到开机苹果LOGO很大,你需要按你的分辨率填写。另外,我发现了一件很神奇的事情:技嘉的主板LOGO大小跟开机的大雕图的尺寸相关,我把大雕图换成了4K,开机的苹果LOGO也变成4K了。。。。神奇

ShowPicker: 是否显示开机启动盘选项,比如MAC,WINDOWS那些。我们选择YES。

Timeout: 倒计时进入指定硬盘,这里我们按需求填写,我填写5,代表5秒钟进入指定硬盘。

UsePicker: 是否使用OC的开机启动盘选项,我们选YES。之后可能会有新的第三方主题支持的话,我们需要选NO。

2.5.3 Config—–Misc—–Debug
是否开启debug模式,这里我们暂时不需要,全部忽略过。


2.5.4 Config—–Misc—–Entries
这里是帮助我们添加一些你希望的引导路径,这个会在之后的进阶教程中讲,这里暂时略过不填写。

2.5.5 Config—–Misc—–Security
AllowNvramReset: 是否在开机引导项中加入重置nvram缓存功能的选项,我们选YES。
ExposeSensitiveData: 因为要使用到nvram,这个数值我们必须填3。
HaltLevel: 按默认设置即可。
RequireSignature: 黑苹果的vault加密方式,我们不需要这个功能,选择NO
RequireVault: 是否开启黑苹果加密,不需要,选NO
ScanPolicy: 这里暂时填0。我们也许会碰到开机的时候默认进入的系统永远是WINDOWS,并无法更改,之后我们在进阶教程中讲述,如何让MAC盘排在第一个,让WIN排在后面。
2.5.6 Config—–Misc—–Tools
这里是加入一些开机时候的工具的。其实我觉得只有重置nvram的工具是有用的,但之前的设置里面我们已经开启了,这个选项就没啥用了,不用理会。


2.6 Config—-NVRAM
这是关于nvram的选项卡。

2.6.1 Config—–NVRAM—–Add

  1. 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
  2. UIScale Data <02> //这里填写01为普通的UI显示模式,02为开启HIDPI的UI显示模式,我选择02
  3. 7C436110-AB2A-4BBB-A880-FE41995C9F82
  4. boot-args String Slide=1 darkwake=0 -v //slide=1表示从第一组内存开始连续注入;darkwake=0代表一键唤醒机器并偏好设置中节能选项的小憩功能。如果你要用小憩功能请填8; -v是跑代码,在没装好稳定的黑果前我建议加上,方便定位错误,弄完后再删除-v
  5. bootercfg String log=0 debug=0 level=0 //这条自己添加进去,是关闭开机时的代码的。
  6. csr-active-config Data <e7030000> //关闭SIP保护
  7. nvda_drv Data <31> //对10.13系统之前的N卡的相关设置,我们不做讨论。
  8. prev-lang:kbd Data <7a68 2d48 616e 733a 3235 32> //语言设置相关,记得改成这个,这个是中文




2.6.2 Config—–NVRAM—–Block
禁用一些nvram变量,我们这里按默认设置不必理会。

2.6.3 Config—–NVRAM—–LegacyEnable
如果你的主板不支持原生NVRAM,请一定要选择YES! 如果你的主板是z370/x299/c422/z270等支持原生nvram的,填no。

2.6.4 Config—–NVRAM—–LegacySchema
这里是nvram的变量设置,大部分默认已经填好,我们只需添加两个变量即可。
打开7C436110-AB2A-4BBB-A880-FE41995C9F82这一栏,添加两个item如下:

  1. item 11 String efi-boot-device
  2. item 12 String efi-boot-device-data




2.7 Config—-PlatformInfo
这里我们填合适的机型。对于最近一代的主板来说,一般的原则,只有核显的机器我们选Macmini8,1;只有独显的机器我们选择iMac Pro 1,1;有核显和独显的我们选择iMac 19,1。

因为这部分内容太过复杂,其实很多内容都不必要填写,我们直接删除Datahub,PlatfromNVRAM,SMBIOS这三项,无需填写。

2.7.1 Config—–PlatformInfo—–Automatic
这里意思是是否自动填写系统信息。因为后面的很多选项都好繁琐,我们只要认真填几个选项就行了,这里我选YES,不重要的信息让它自动填。

2.7.2 Config—–PlatformInfo—–Generic
这里是我们需要填写的三码部分。获得三码,我们可以运用一下Clover的Clover Configurator帮我们生成一下相关的数据:

  • 打开Clover configurator,并到SMBIOS选项卡中,选择合适的机型,这里我们以iMac19,1 为例:



  • 我们换到Rt variables里,点击ROM下的生成,获得一个ROM编号,这样我们就获得了所有需要的信息了。



  • 我们整理一下刚才获得的信息并依次填入Generic下面即可。


  • 值得注意的是,SystemUUID这一项最好留空,让OC自动生成,它会影响你的WINDOWS激活状态。


2.7.4 Config—–PlatformInfo—–剩余部分
UpdateDataHub:选择YES

UpdateNVRAM:选择YES

UpdateSMBIOS:选择YES

UpdateSMBIOSMode:选择Create

UEFI:UEFI相关的补丁以及设置项。

ConnectDrivers:是否加载所有UEFI补丁,这里我们选YES

2.8 Config—-UEFI
这里我们需要填写UEFI相关的设置。

2.8.1 Config—–UEFI—-ConnectDrivers
是否加载补丁,我们选择YES

2.8.2 Config—–UEFI—-Drivers
把我们之前放在OC/EFI/Drivers下面的驱动一一填上,这里我们也注意一下填入的顺序:

  1. Drivers
  2. item0 String ApfsDriverLoader.efi
  3. ........................ MemoryAllocation.efi
  4. ........................ FwRuntimeServices.efi
  5. ........................ VBoxHfs.efi
  6. ........................ UsbKbDxe.efi



2.8.3 Config—–UEFI—-Input
此选项是原生apple开机热键的选项,需要配合我们之前设置的PollAppleHotKeys=yes以及UsbKbDxe.efi补丁一起用。下面的设置完全按照默认情况就行了。因为我的键盘是苹果原生键盘,不支持这个功能,所以我直接PollAppleHotKeys里填了NO,这里也不会生效的。
有一点需要说,如果你是华硕的z87或者z97,你需要打开PointerSupport这个选项。

2.8.4 Config—–UEFI—-Protocols
AppleBootPolicy: 虚拟机的mac需要用的,我们选择NO。

AppleEvent: 虚拟机并具有vault的mac需要用的,我们选择NO。

AppleImageConversion: 重建apple图标,选择NO。

AppleKeyMap: 重建苹果功能键,选择NO。

AppleUserInterfaceTheme: 似乎是支持主题了?没看懂,选择NO。

ConsoleControl: 主机控制界面,我们选择YES。

DataHub:重建datahub,这里我们选NO。

DeviceProperties: 虚拟机需要,我们选NO。

FirmwareVolume: VAULT相关项,我们选NO。

HashServices: VAULT相关项,我们选NO。

UnicodeCollation: 旧的主板需要,我们选NO。


2.8.5 Config—–UEFI—-Quirks
AvoidHighAlloc: 回避高位内存寻址,我们已经用了slide了,这里选No吧。

ClearScreenOnModeSwitch: 好像是新的选项,暂时不知道干嘛的,选No吧。

ExitBootServicesDelay:旧主板需要给予主板退出时间(单位为微秒),较新的主板直接填0。旧的主板比如Z87pro,填3000000-5000000

IgnoreInvalidFlexRatio:如果你没有在bios中解锁CFG,一定要选YES。

IgnoreTextInGraphics: 一些固件会同时输出文字和视频信息导致花屏,如果出现这种情况试试选NO,我这里选YES。

ProvideConsoleGop:在选择系统画面前,你可能看到一些你config配置错误的信息,你可以根据这信息调整自己的配置,也可以选择YES忽略,我选择YES。

ReconnectOnResChange: 如果你遇到开机直到登录界面之前一直是黑屏,请试试选择YES。

ReleaseUsbOwnership:大部分的主板都有自动释放USB所有权的功能,我们选NO。如果你开机键盘鼠标卡死了,或者USB失灵,试试选Yes。

ReplaceTabWithSpace:看不懂,选no。

RequestBootVarRouting: 如果你要使用”启动磁盘” 选项,你需要选择YES,这里选择YES。

SanitiseClearScreen: 清理屏幕分辨率,选择YES。

2.9 小节
到这里,我们应该可以通过OC正确引导MAC OS了,但是还有很多问题需要去修补,包括模拟nvram,寻找EC控制器并做一个,原生的电源管理等。我会在下一个章节写这些东西。


3.0 OpenCore 完善

4.0 OpenCore 进阶




Z390各种问题解决方案(持续更新)

2019年9月2日 BY XJN·5条评论

我们的QQ群838739020非常活跃,让我可以看到很多奇奇怪怪的问题,在大家的探讨下找到解决方案。考虑到QQ群的聊天记录杂乱无章,我把一些精华的东西记录在这里。如果你碰到奇奇怪怪的问题,可以在此贴下留言,或者加QQ群。
2019-10月


2019-09月archived

300系列主板正确使用AptioMemoryFix.efi的姿势(重写版)

2019年6月13日 BY XJN·25条评论

在OsxAptioFix2Drv-free2000的作者自爆出此插件最终会导致设备永久损坏后,对于z390用户来说,换上最新AptioMemoryFix(AMF)已经变成了一件必要的事情,而我之前写的AMF实在有点杂乱无章,让很多人摸不着头脑。我的博客里面的文章也一直希望是给小白用户看的,希望每个人都能看懂,基于我的初衷,我现在重新写一次300系列主板使用AMF的教程。如果你是z390的用户,并且实在需要帮助,也可以来我的qq群里:838739020。
关于OsxAptioFix2Drv-free2000作者对这个插件的影响陈述如下:






提一下这类补丁的作用就是修复内存,我这里quote下@athlonreg版主的解释:
New set of memory fix drivers.
OsxAptioFixDrv and OsxAptioFix2Drv reverted to rev before 4368 so without NVRAM support. Let them stay here for history. And sometimes OsxAptioFixDrv is only working version for high warped memory map.
OsxAptioFix2Drv is a reduced version without relocation blocks and may not works on some hardware or with older OS version. But this version supported Hibernation while first one no.
OsxAptioFix3Drv is a OsxAptioFix2Drv rev 4369 renamed to be different. This version supported NVRAM. More runtime fixes in 4379. This version can be improved by clover crew in future.
AptioMemoryFix included in the package is third-party memory fix driver used as is. It is probably better then OsxAptioFix*. Choose it for a first attempt.
OsxLowMemFixDrv is also memory fix driver, not improved since rev608.
SIC! These 5 drivers should not be used simultaneously! Choose one of them!
Slice的解释,五选一,AptioMemoryFix优先考虑

事实上,我们的300系列是无法使用最优的AptioMemoryFix的,就算能用,也不能完全发挥它的作用在@黑果小兵的博客中他指出:
300系列主板请于drivers64UEFI目录中移除AptioMemoryFix-64.efi添加OsxAptioFix2Drv-free2000.efi该驱动位于/EFI/CLOVER/drivers-off目录下 或者 Slide值获取及计算

当然我需要指出的是,并不是所有的300系列主板都要弄得很麻烦才能用上,一些直接可以使用,但是并没有完全用好它。根据作者的github,正确的使用它需要符合以下条件:

  • KernelPm 取消勾选
  • boot argument中添加自行计算出的slide值(参考方法二中黑果小兵的教程,如果不加slide值不卡加号,就别添加任何slide值)
  • BIOS中解锁CFG
  • BIOS中CSM disabled
  • BIOS中EHCI/XHCI Hand-off enabled
  • BIOS中Above 4G Decoding enabled
  • BIOS中VT-d disabled


在我们开始一系列操作之前,我们必须确保你做了如下的步骤!这是必须一定要做的!

  • 在你的config.plist里勾选kernelPM以及AppleIntelCPUPM



  • 一些主板包括华擎、华硕可以直接在BIOS中开启关闭cfg,若你能在主板中直接选择cfg lock,请确保此时的cfg lock是enable的。
  • 删了原先在Clover/drivers64UEFI/下面的OsxAptioFixDrv-64.efi/OsxAptioFix2Drv-free2000/OsxAptioFix2Drv-64.efi 等内存修复补丁,并替换上AptioMemoryFix-64.efi (注意备份!)
  • 下面的操作过程必须按我的写作顺序来!



计算slide数值



解锁BIOS中的CFG功能

关闭kernelPM以及AppleIntelCPUPM

最后你需要重启电脑,我们可以通过hackintool来查询cfg是否解锁:
1.点击工具
2.点击下面的intel图标,输入你的管理密码,稍等一会,便会输出内容
3.在内容中你可以看到cfg lock这个选项,我们看到已经是not locked了!



小彩蛋1
小彩蛋2
你所需要的文件:
CFG

Z390主板从WINDOWS重启到MAC后不断重启的解决方案

2019年5月15日 BY XJN·2条评论

因白苹果并没有使用过我们的Z390芯片组,使用Z390芯片组的黑苹果会出现各种电源相关的问题,比如:1)关机变成重启,2)从WIN重启到MAC后不停自动重启。那我们这篇文章主要解决这两个问题。

Config.plist设置:
这里我们要把关于原生电源的设置都确认一次。在ACPI栏目里,关于LPC的设置全部不勾选,Plugintype不勾选。



在KERNEL and KEXT PATCHES栏目里,不要勾选关于PM(power management)的选项,但是不知道为什么,如果我不勾选KernelPm,我的MAC会无限重启,所以不得不勾选。




补丁设置:
1)确保在EFI/CLOVER/drivers64UEFI/ 目录下有EmuVariableUefi-64.efi这个文件,这个补丁是帮助我们模拟NVRAM的,你也可以点我下载(已过时)

2)下载最新的CLOVER安装包,你也可以点我下载(已过时)。打开安装,点继续,直到看到“自定”这个选项,我们主要勾选红框内的两项,别的默认就行。



安装完成后,重启1-2次,你会看到EFI目录下多了两个文件,这就是我们模拟出来的NVRAM文件。





BIOS设置:
开机进入BIOS设置,转到POWER这里,我们开启platform power management, 但是必须关闭PCH的电源管理;如果你使用核显,PEG的也要关掉。
OK,这样就设置完了,再试试WIN重启到MAC吧。


Gigabyte Z390 Elite, with RX580&Thunderbolt3 Card Bilingual Guide

2019年5月14日 BY XJN·0评论

最近组装了一台Z390,花了几天时间,已经完美黑苹果了,记录一下其中的过程。当然,我不会把整个EFI分享出来,只会提供重要的文件,我希望这篇文章是一篇教学帖,而不是分享帖,嘻嘻嘻。
如果你需要更多帮助,加QQ群:838739020
I recently bought a hackintosh with Gigabyte Z390 motherboard, and now it is perfect. I am glad to share the process of hackintoshing, but of course will not share the EFI, I hope this article cloud be a lecture of hackintosh for you, rather than merely sharing the outcome. This article provides Mandarin and English versions, also some important kexts, tools and ssdts are attached.

Outcomes/成果展示
Downloads/下载


Appreciation/感谢
感谢以下四位作者对我的启发/ Many thanks to these hackintoshers’ helps:
CaseySJ
LeleTuratti
RehabMan
kgp
Configurations/配置

  • Motherboard/主板: Gigabyte Z390 Elite
  • External Hard Drive/硬盘: Samsung 970 Pro M.2 NVMe SSD
  • CPU: I7-9700K
  • Graphic Card/显卡: Sapphire RX580 8G D5 OC
  • Wireless Card/网卡: BCM943602CS 3-Antenna
  • RAM/内存: ADATA 16G DDR4 3000MHz X2 (OC to 3200MHz)
  • Tower Case/机箱: SKTC Q5
  • Others/其他: Gigabyte GC-Titan Ridge Thunderbolt 3 Card / Qnap QNA-T310G1T Thunderbolt 3 to 10GbE Adapter
  • Monitor/显示器: LG Ultrafine 4K & KOIOS 2418U (Daisy Chain Supported/菊花链支持)


Functions/功能

  • Sleep&Wake/睡眠唤醒: OK/正常,蓝牙键鼠唤醒需要按电源键
  • Bluetooth/蓝牙: OK/免驱,正常
  • WIFI: OK/免驱,正常
  • wired Internet有线网卡: OK/正常
  • Audio声卡:OK/ 正常
  • CPU Frequency/变频: OK/正常
  • Thunderbolt Card/雷电卡: OK, hotplugin supported/正常,可热拔插
  • Graphic card/显卡: OK, H264 & HEVC Supported/硬解正常
  • Hand Off: OK/正常


English Version


中文版

Asrock deskmini 310-com hackintosh 10.14-10.15 EFI

2019年5月13日 BY XJN·62条评论

之前博客被毁了,哎 搬瓦工太垃圾了,这里补上我的EFI。
My Blog was destroyed……


此EFI支持如下功能/ This EFI supports:

  • 双屏输出 Dual monitors output through both HDMI&DP
  • 3.5mm耳机音响杂音消除 3.5mm audio crackle elimination
  • 全版本BIOS支持 All Bios versions support
  • 商店、淘宝等视频冻屏消除 App Store video freezing fixed


配置/Configurations

  • Motherboard/主板: ASROCK 310-com
  • External Hard Drive/硬盘: Asgard AN 512 M.2 NVMe SSD
  • CPU: I5-8400
  • Wireless Card/网卡: dw1830
  • RAM/内存: ADATA 16G DDR4 2400MHz X2
  • Functions/功能
  • Sleep&Wake/睡眠唤醒: OK/正常
  • Bluetooth/蓝牙: OK/免驱,正常
  • WIFI: OK/免驱,正常
  • wired Internet有线网卡: OK/正常
  • Audio声卡:OK/ 正常
  • CPU Frequency/变频: OK/正常
  • Hand Off: OK/正常



BIOS设置/BIOS settings

  1. Load UEFI Defaults
  2. Advanced
  • Onboard HD Audio: Enabled
  • USB Configuration, XHCI Hand-off, Enabled (关键)
  • Super IO Configuration, Serial Port, Disabled(必须)


  1. Security Secure Boot, Disabled(by default)
  2. CSM disable
  3. CFG Lock: Disabled (关键,在cpu的c-state/status设置里)


超级小白教程/A VERY IDIOT GUIDE
如果你实在实在实在不知道怎么弄EFI的话,你可以下载我打包好的整套MOJAVE 10.14.4镜像,这个镜像包含了V3.0的EFI,也就是说,你通过etcher或者Transmac等软件把镜像写到U盘后,重启通过U盘引导就能直接安装了!连EFI你都不用改!我推荐使用Etcher,因为它支持在MAC, Linux和WINDOWS下写盘。
要注意的是,第一次U盘引导进去,你要选择install mojave,然后抹盘,安装,第二次重启后,你需要选择你的安装硬盘进入,期间可能会重启1-3次,就行了。

If you really really do not know how to put EFI in a correct location, I provide you a MOJAVE 10.14.4 image with EFI combined, which means, you could write the image to your USB flash disk through etcher, transmac or other softwares, then plugin your USB flash disk, restart the rig, boot through the USB, install the MAC directly. You don’t even need to know how to place the EFI! I recommend you Etcher, because it supports Windows, Linux and Mac environment.
Be aware, booting through USB, you should ease your target hard drive, and install mojave to that hard drive, system will restart automatically at the first stage, then you need to select the target hard drive at the second stage, and system may automatically restart 1-3times, which is normal.





Image download/镜像下载地址:

————————————10.15.1下载地址如下——————————————————
请准备大于10GB的U盘!
链接:pan.baidu.com/s/1vzh03n 密码:4w60

MD5: 4f830a52d1924dabc77e49526319171b
SHA1: f51b60c52f2390a464d7bea2555c355980012d63
SHA256: af659e3a06d6388ef17256d22169dfee1a44c8c56bd804ad6d6aef036031179e
CRC32: f3902045


疑问解答/Q&A


EFI下载/EFI Downloads

31-Oct-2019 OpenCore V3.0
所有补丁及内核已经更新到oc 0.5.2正式版,config中同步加入相应variable。
Deskmini-310-Opencore-V3.0
Deskmini-310-Opencore-V3.0-强制睡眠特别版

25-Oct-2019 OpenCore V2.2
通过禁用AWAC来实现BIOS 3.1以上版本的卡RTC问题。重命名是我非常不建议的一种方式,会破坏ACPI表结构,并且这样的重命名可能会带来睡眠问题/win无法登陆等,所以这次直接禁用AWAC来实现了。
APPLEALC已经可以通过DP/HDMI播放声音并且睡眠唤醒后不会重启了,牺牲了节能五项,还是等待APPLEALC的更新吧。
至于我为什么一定要推崇iMac 19.1这个机型,是因为这个机型不需要T2芯片,并且我自己使用的也是这个机型,比较了解这个机型的一些设置。另一方面,这个机型的变频很有潜力,我非常喜欢。

Deskmini-310-Opencore-V2.2

24-Oct-2019 OpenCore V2.1.1
小纠正
Deskmini-310-Opencore-V2.1.1

22-Oct-2019 OpenCore V2.1
修复因applealc引起的睡眠变重启。修复virtualsmc release版本引起的卡代码。
Deskmini-310-Opencore-V2.1


21-Oct 2019 OpenCore V2.0 大版本
OC版本升级,支持mmiowhitelist。
CPU整体优化,机型更改为iMac19.1,USB重新定制,节能五项PPMC加载,USB供电优化。
请自行更改三码!自行安装logouthook!自行安装第三方网卡驱动!
Deskmini-310-Opencore-V2.0

14-Oct 2019 Opencore v1.2
更新说明包。
Deskmini-310-Opencore-V1.2
Deskmini-310-Opencore-V1.2-1820A感谢群友@大勇
12-Oct 2019 Opencore v1.1
OC版本升级。加入nvram补丁包。
Deskmini-310-Opencore-V1.1


11-Oct-2019 OpenCore v1.0
修复声卡问题,修复睡眠问题,修复EC控制器问题,修复BIOS RTC问题,支援10.15正式版。
Deskmini-310-Opencore-V1




———–我以后不会对Clover进行支持———————
19-Aug-2019 v3.4
支援10.15beta5, 修复10.15下的声音问题(测试)
support 10.15 beta5, fix sound issue under 10.15(test)
3.4

09-Aug-2019 V3.3
清理代码,适配CLOVER新的文件夹格式。

3.3


22nd July 2019 V3.2
清理一些不需要的kext, 更新kexts和clover版本。更新支持9代cpu,更新支持14.6-10.15beta4。
cleanup&update clover version and kexts; support 9th cpu, support 14.6-10.15beta4.

3.2



7th June 2019: V3.1
支援14.5以及15beta1,但不建议升级测试系统。双屏请确保线材带宽充足,如果是戴尔显示器,请用戴尔作为hdmi屏幕。14.5抹盘安装可能会碰到2-3次显示器丢失信号,请拔插显示器。

Support 14.5 & 15beta, but not suggest to upgrade to beta OS. dual-monitors plz ensure your cables are of good quality; If you have a dell monitor, pls set it as a hdmi screen. You may encounter 2-3 times signal losses from your monitor during installing 14.5/15beta OS, pls hot plug out-in your screen.
Download


21st May 2019: V3.0
重要提示!暂不支持10.14.5!!!!我已经卖掉了我的310COM,所以无法再对10.14.5做及时的更新,很多都是需要靠群友帮忙一起弄,尤其是10.14.5对显卡有很大的改动的情况下。我还会去更新,但不会那么及时了,谢谢大家!

IMPORTANT NOTE! CURRENTLY NOT SUPPORT 10.14.5!! Since I’ve sold my 310-com, I may no longer be able to update the EFI in time. Currently I update the EFI through my chat group’s members’ contributions. Especially under a huge change of 10.14.5’s graphic card drive, I really cannot fix it in time, but I will continue to update. Thanks everyone!

Download


17th May 2019: v2.9
对不起之前打包错了!这次发新的!Sorry I made a huge mistake that I packaged wrong files, this one is fixed.
替换完成后,记得打ALCPlugFix的3.5mm音频补丁哦!点install.command就行。 please run “install.command” in the ALCPlugFix to patch 3.5mm devices’ output issue, after replacing EFI.

10.14.5开始,苹果对显卡进行了改进,如果你有双屏的需求,请不要升级10.14.5,并且尽可能使用DP,哪怕是dp转HDMI也好。
Apple has made some improvements for graphic cards in 10.14.5, this made dual output invalid. If you need dual monitors, stay away from 10.14.5, and using the DP connector.
Download

14th-May-2019 v.2.7:
支援10.14.5; 支援全版本BIOS
Support 10.14.5; support all BIOS versions

Download

V2.6
修复双屏
download

发布于 2019-12-01

文章被以下专栏收录