目前为止,最新版的OpenCore(V0.5.1)已经证明了自己在10.14.6至10.15 beta 11上的稳定性。考虑到即将来临的10.15正式版,我想现在写一份关于z390等比较新的主板,如何使用OpenCore去引导新系统是一个不错的时间点。

 

简介

OpenCore(OC)是一种新的引导方式,随着越来越多的kexts开始放弃Clover, 我相信提早使用OC会对你未来使用黑苹果会有很大的帮助。这是一个自然的现象,就像变色龙被Clover淘汰,而现在OC代替Clover也是大势所趋。你应该需要看一些相关的文章,来帮助你理解我的正文内容,同时也需要下载我推荐的软件:

 

 

 

0.0 BIOS设置

直接抄袭@黑果小兵了~嘻嘻嘻

禁用如下:

英文 中文
Fast Boot 快速启动
CFG Lock (MSR 0xE2 write protection) CFG 锁 (MSR 0xE2 写入保护)
VT-d VT-d
CSM 兼容性支持模块

 

启用如下:

英文 中文
VT-x VT-x
Above 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内存,为后面的内存注入做铺垫/下载地址

               *FwRuntimeServices.efi             ———- 内存寻址补丁/ 下载地址

               *EmuVariableRuntimeDxe.efi     ———- 帮助无原生Nvram的主板实现nvram模拟。Z370, x299, C422主板不需要这个文件/下载地址

               *VBoxHfs.efi                               ———- HFS格式支持/下载地址

               *UsbKbDxe.efi                            ———- 键盘组合键的使用/下载地址

               *VirtualSmc.efi                           ———- 传感器依赖/ 下载地址

 

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

 

 

2.0 Config.plist 修改

这一章会把config的各个大项目分开来,内容会写的繁琐一点,为了让小白明白各个选项的用途,当然有能力的人可以直接看我最前面的几个链接来配置config.plist。我这里强制要求你使用XCode来编辑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文件:

 

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

Item 1
      Comment  String   Thunderbolt3               
      Enable   Boolean        YES                 
      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系统

 

Comment: EC0 to EC 
Count:0 
Enabled:YES 
Find:<4543305F>
Limit:0 
Mask:<> 
OemTable:<> 
Replace:<45435F5F> 
ReplaceMask:<>
Skip:0 
TableLength:0 
TableSignature:<>

 

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

 

  • 华擎、华硕、微星主板可能会遇到RTC问题而无法进入系统,这同样需要添加hotpatch补丁来解决:
Comment: RTC fix

Count:0

Enabled:YES

Find:<A00A9353 54415301>

Limit:0

Mask:<>

OemTable:<>

Replace:<A00A910A FF0BFFFF>

ReplaceMask:<>

Skip:0

TableLength:0

TableSignature:<>

 

2.1.4  Config—-ACPI—–Quirks

此目录下有五项,选择与解释如下:

Quirks Value 解释
FadtEnableReset NO 一些旧的主板需要对FADT进行标记来激活电脑的开机和关机功能,这里我们不许要启动它(如果你遇到关机变重启,可以打开试试,我们之后也会在nvram中将这个问题修复)
NormalizeHeaders YES 清理ACPI头,一些主板的ACPI表需要打开这个修复启动。但如果补丁点亮系统,请试试NO
RebaseRegions NO 换硬件、升级BIOS等对硬件的操作会对ACPI表产生影响,一般不需要打开
ResetHwSig NO 休眠相关项,台式机不需要
ResetLogoStatus NO 顾名思义了,关了

      

 

 

2.2 Config—–Booter

此项与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才能用,不知道为啥:
PciRoot(0x0)/Pci(0x1f,0x3) 
   device-id         data        <70a10000>  //这个device id是固定的,不要问为什么是这个id
   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,但是我们需要符合一定的顺序格式填入进去,至于为什么是这么奇怪的一个顺序,我也不知道,你照抄就是了:

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

 

2.3.2.1 没核心显卡的用户

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

 

2.3.2.1 有核心显卡并用独显做主力的用户

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

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去开启它,把一些不用的删了:

 

Item 0
    BundlePath         String     Lilu.kext            //kext的名字
    Comment            String                          //你自己填一个注释,可以不填
    Enabled            Boolean      YES                //启动此补丁,反之则为关闭
    ExecutablePath     String     Contents/MacOS/Lilu  //通过右键kext显示包内容查找lilu运行文件的真正路径
    MaxKernel          String                          //此补丁支持的最大系统版本,填19为10.15,18位10.14;我们一般情况下留空
    MinKernel          String                          //此补丁支持的最小系统版本
    PlistPath          String     Contents/Info.plist  //kext的plist位置,可以右键kext显示包内容查找正确路径

............
............

Item 4
    BundlePath         String     WhateverGreen.kext          
    Comment            String                         
    Enabled            Boolean      YES               
    ExecutablePath     String     Contents/MacOS/WhateverGreen.kext  
    MaxKernel          String                          
    MinKernel          String                          
    PlistPath          String     Contents/Info.plist  

............
............
Item 7
    BundlePath         String     USBPorts.kext        
    Comment            String                         
    Enabled            Boolean      YES               
    ExecutablePath     String                         //一些没有执行文件的kext不需要填写
    MaxKernel          String                          
    MinKernel          String                          
    PlistPath          String     Contents/Info.plist  

............
............
    

 

2.4.2 Config—–Kernel—–Block

禁用一些kexts,这里好像没啥用,不用理会。

 

2.4.3 Config—–Kernel—–Emulate

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

 

2.4.4 Config—–Kernel—–Patch

这里是为一些kext打补丁用的。之前我们在使用Clover时,常会填写USB解除限制补丁,但是现在OC已经集成这个补丁了;黑屏补丁我之后也会在进阶教程里提到,所以这里已经没啥好填的了,默认即可,你也可以把里面的全删了。

 

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。

 

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

 

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

 

 

2.5 Config—-Misc

这里都是一些开机引导类的设置。

 

2.5.1 Config—–Misc—–BlessOverride

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

 

2.5.1 Config—–Misc—–Boot

ConsoleBehaviourOs: 一般是留空,如果留空开机显示效果不佳,请填ForceText。

 

ConsoleBehaviourUi: 同上。

 

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

 

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

 

PollAppleHotKeys:是否开启一些热键功能,包括Cmd+K;Cmd+S。一些键盘对这个功能支持的并不好,甚至我的原生苹果键盘都不行,反而几十块的垃圾键盘可以,我也很无奈,所以,我选的是NO。如果你开机发现键盘无法选择,也选NO,并且删除OC/Drivers下的UsbKbDxe.efi 。

 

Resolution: 开机分辨率。比如我的显示器是4K、16:9的,我就填写3840×2160。这个你根据情况填写或者不填。如果遇到开机苹果LOGO很大,你需要按你的分辨率填写。

 

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

 

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

 

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

 

2.5.2 Config—–Misc—–Debug

是否开启debug模式,这里我们暂时不需要,全部忽略过。

 

 

2.5.3 Config—–Misc—–Entries

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

 

2.5.4 Config—–Misc—–Security

AllowNvramReset: 是否在开机引导项中加入重置nvram缓存功能的选项,我们选YES。

ExposeSensitiveData: 因为要使用到nvram,这个数值我们必须填3。

HaltLevel: 按默认设置即可。

RequireSignature: 黑苹果的vault加密方式,我们不需要这个功能,选择NO

RequireVault: 是否开启黑苹果加密,不需要,选NO

ScanPolicy: 这里暂时填0。我们也许会碰到开机的时候默认进入的系统永远是WINDOWS,并无法更改,之后我们在进阶教程中讲述,如何让MAC盘排在第一个,让WIN排在后面。

2.5.4 Config—–Misc—–Tools

这里是加入一些开机时候的工具的。其实我觉得只有重置nvram的工具是有用的,但之前的设置里面我们已经开启了,这个选项就没啥用了,不用理会。

 

 

2.5 Config—-NVRAM

这是关于nvram的选项卡。

 

2.5.1 Config—–NVRAM—–Add

4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14

                 UIScale                  Data            <02>      //这里填写01为普通的UI显示模式,02为开启HIDPI的UI显示模式,我选择02

7C436110-AB2A-4BBB-A880-FE41995C9F82
                 boot-args                String        Slide=1 darkwake=0 -v //slide=1表示从第一组内存开始连续注入;darkwake=0代表一键唤醒机器并偏好设置中节能选项的小憩功能。如果你要用小憩功能请填8; -v是跑代码,在没装好稳定的黑果前我建议加上,方便定位错误,弄完后再删除-v
                 bootercfg                String       log=0 debug=0 level=0  //这条自己添加进去,是关闭开机时的代码的。
                 csr-active-config        Data          <e7030000>            //关闭SIP保护
                 nvda_drv                 Data          <31>                  //对10.13系统之前的N卡的相关设置,我们不做讨论。
                 prev-lang:kbd            Data          <72752d52 553a3235 32>  //国际键盘相关设置,这里我们按默认就行。

 

 

2.5.2 Config—–NVRAM—–Block

禁用一些nvram变量,我们这里按默认设置不必理会。

 

2.5.3 Config—–NVRAM—–LegacyEnable

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

 

2.5.4 Config—–NVRAM—–LegacySchema

这里是nvram的变量设置,大部分默认已经填好,我们只需添加两个变量即可。

打开7C436110-AB2A-4BBB-A880-FE41995C9F82这一栏,添加两个item如下:

item 11             String       efi-boot-device
item 12             String       efi-boot-device-data

 

 

2.6 Config—-PlatformInfo

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

 

2.6.1 Config—–PlatformInfo—–Automatic

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

2.6.2 Config—–PlatformInfo—–DataHub

这里面太烦了,直接整个把datahub删了,因为我们之前已经开启了自动填写功能,删了没关系。

 

2.6.3 Config—–PlatformInfo—–Generic&PlatformNVRAM&SMBIOS

这里我们可以运用一下Clover的Clover Configurator帮我们生成一下相关的数据:

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

 

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

 

  • 我们整理一下刚才获得的信息并依次填入,有点繁琐。我们秉着知道的填,不知道的宁可留空的原则:

 

2.6.4 Config—–PlatformInfo—–剩余部分

UpdateDataHub:选择YES

 

UpdateNVRAM:选择YES

 

UpdateSMBIOS:选择YES

 

UpdateSMBIOSMode:选择Create

 

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

 

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

 

2.7 Config—-UEFI

这里我们需要填写UEFI相关的设置。

 

2.7.1 Config—–UEFI—-ConnectDrivers

是否加载补丁,我们选择YES

 

2.7.2 Config—–UEFI—-Drivers

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

Drivers
     item0          String       ApfsDriverLoader.efi
     ........................    MemoryAllocation.efi
     ........................    FwRuntimeServices.efi
     ........................    EmuVariableRuntimeDxe.efi
     ........................    VBoxHfs.efi
     ........................    UsbKbDxe.efi

 

2.7.3 Config—–UEFI—-Input

此选项是原生apple开机热键的选项,需要配合我们之前设置的PollAppleHotKeys=yes以及UsbKbDxe.efi补丁一起用。下面的设置完全按照默认情况就行了。因为我的键盘是苹果原生键盘,不支持这个功能,所以我直接PollAppleHotKeys里填了NO,这里也不会生效的。

有一点需要说,如果你是华硕的z87或者z97,你需要打开PointerSupport这个选项。

 

2.7.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.7.4 Config—–UEFI—-Quirks

AvoidHighAlloc: 回避高位内存寻址,我们已经用了slide了,这里选No吧。

 

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

 

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

 

IgnoreInvalidFlexRatio:看不懂选no。

 

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

 

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

 

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

 

ReplaceTabWithSpace:看不懂,选no。

 

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

 

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

 

2.8 小节

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

 

 

 

3.0 OpenCore 完善

3.1 模拟NVRAM

对OC而言,NVRAM是非常核心的一环,不管是原生还是模拟的。如果你是原生nvram的主板(z270/z370/x299/c422),请不必理会这章节。这张的主要内容为生成模拟的NVRAM.plist。

 

  • 首先打开我们之前下载好的opencore,进入目录下的Utilities/LogoutHook,并将LogoutHook放入一个安全的位置。这里我推荐将他放到文档目录下。

 

  • 右键finder,前往目录,填/Users, 再点进入以你名字命名的文件夹,既能看到Documents(文档)目录了,把我们的LogoutHook放在里面。

 

  • 打开Terminal (终端),输入一下命令:
sudo defaults write com.apple.loginwindow LogoutHook /Users/你的用户名/Doucuments/LogoutHook/LogoutHook.command
比如:
sudo defaults write com.apple.loginwindow LogoutHook /Users/xjn/Doucuments/LogoutHook/LogoutHook.command

 

  • 终端会提示要求你输入密码(密码打进去不会显示)

 

  • 重启后,你会在/EFI/下看到nvram.plist,代表已经成功模拟了。

 

  • 值得一提,nvram.plist在开机的加载需要之前我们要求放入的EmuVariableRuntimeDxe.efi来读取,请确保此补丁存在。

 

3.2 建立自己的开机选择系统目录

这个教程主要针对的是非原生nvram主板的用户,如果你是原生nvram的用户,直接在偏好设置—启动磁盘中选定你希望设置为默认启动的磁盘即可,不必往下看浪费时间!

非原生nvram用户必须完成我之前要求生成的nvram.plist。

这章我分成两部分,第一部分是让OC只扫描我们的MAC盘,第二部分是在开机选项中将win等其他系统排在mac后面。

 

3.2.1 第一部分

我们首先要对Config里的scanpolicy这个值进行修改,默认的是0,代表着扫描所有硬盘,而我们现在只让它扫我们的苹果系统硬盘。

感谢@xlivans提供的OC扫描策略:

## OC-引导扫描策略

设置位置:`Misc\Security\ScanPolicy`

– **定义:**

  (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`

几种扫描策略

  `F0103` —官方推荐值:(01)+(02)+(03)+(06)+(07)+(08)+(09)

  

    最终`扫描策略数值` = `983299`

  

  `0`—允许扫描所有已知文件系统+允许扫描所有已知设备类型。

  

  `2F0303` —官方推荐值+允许扫描HFS文件系统+允许扫描USB设备

  

    最终`扫描策略数值` = `3080963`

                        

我们这里让OC只扫描MAC盘。根据说明,(1)+(2)是必须选的;因为我的MAC是APFS,所以系统子项类我选(3);我的MAC是安装在NVME上的,所以我在设备类型上选择(09),如果你是安装在sata盘上的,你应该选(6)。

这样我们的公式就是:

(1)+(2)+(3)+(9)= 0x00000001+0x00000002+0x00000100+0x00080000

 

拿起苹果自带的计算器,按住coomand+3切换到编程型计算器,并转换到16进制模式:

 

输入:

1+2+100+80000=80103

得到数值后,我们再按一下转换10进制的按键,得出524547这个数值。

我们把524547填到scanpolicy中,重启,你就会看到第一个选项就是你的MAC盘了。但如果你还安装了WINDOWS什么的,选项中却没有了,别急,我们现在要把WIN的引导添加到mac的后面去。注:似乎oc还不能引导ubuntu,请用Bios快捷键进入,未证实。

 

3.2.2 第二部分

现在我们要在开机画面中,将其他的一些系统排在mac后面。此项能需要你下载debug版本的Opencore,请在文章开始部分提到的Opencore程序下载界面进行下载,并备份好你目前的EFI

 

首先我们需要把下载好的Opencore-Debug版本里的efi/boot/BOOTx64.efi 以及efi/OC/OpenCore.efi两个文件替换到你正在使用中的EFI里去。用XCODE修改你正在使用的EFI/OC/Config.plist,将misc—-debug—-disablewatchdog改成YES,misc—-debug—-target改成65,将scanpolicy的值改回1。

 

接着,我们需要寻找你其他系统的UUID,我们打开终端,输入:

diskutil list

 

我们找到你需要的盘的盘名,比如我的windows在disk0这个位置,而引导WIN的EFI文件夹的盘位是disk0s1。注意,这里我们不讨论Gpt格式的WIN引导位置该在哪里,如果你实在不清楚,可以把disk0s1以及dsik0s2都记录下来。

 

接着输入:

diskutil info disk0s1

在输出内容里,我们需要的是Disk / Partition UUID,我的是FF555974-AB3F-40B7-8530-AE6462E197CE,把它记下来。

 

现在我们通过oc的开机选项直接重启到windows,我们打开diskgenius,并且到我们mac的EFI盘符下,我们看到有一个日志报告opencore-xxxxx-xxxxx生成,为了好记,我们右键把它改名叫111.txt。

重启回到mac,加载efi分区,打开刚才的111.txt,我们搜索刚才记录下来的FF555974-AB3F-40B7-8530-AE6462E197CE,我们搜到如下内容,而标注的即是WINDOWS的引导路径:

 

把之前我们备份好的EFI,全部替换回去。把disablewatchdog,target,scanpolicy都改回原来的。这样我们的EFI又回到正式版本了,而不是DEBUG版本了。

打开config,我们把win的引导路径添加到misc—-entries,并在此下面添加一个item,输入如图内容:

 

保存即可,重启后,你会看到windows10放在了mac的下面。

tips: 你可以在config—-misc—boot—showpicker选择no,就不会看到选择界面了,而当你需要时,只需要在开机时候按住option或者esc就可以唤出选择界面了,非常白果的体验哦。

3.3 提取DSDT

提取DSDT是我们之后完善系统的必需品,没有他我们无法找到相关的硬件位置,我们可以通过Clover直接提取,这里我们需要一个空的U盘。我的教程是非常偏向小白的,所以这里提取我也会用到windows,以及Diskgenius这个软件,做最简单的示范。

 

  • 插入U盘,我们打开diskgenius,选中我们的U盘,并选择顶部菜单栏的快速分区:

 

  • 严格按照我的图示选择,不要创建esp msr分区,并且分区格式为fat32。

 

  • 格式化完成后,放入我从黑果小兵镜像包提取出来的EFI放进去。这是一个clover引导,但并不能引导你的系统,只能提取DSDT。

 

  • 插上U盘,重启,通过U盘引导,看到Clover界面,我们按F4,这样原始的DSDT文件就收集好了。

 

  • 重新通过OC引导进入系统,我们打开U盘,EFI/Clover/ACPI/Orgin下,有我们的原始ACPI内容,我们只需要DSDT.aml这个就行了,保存到安全的地方。

 

 

3.4 加载原生电源管理

在提取dsdt后,我们可以得到相关里硬件名字及目录,这样我们就可以加载原生电源管理。这里非常感谢宪武大大在ssdt这块的付出成果!我们先下载一下宪武大大的OC-SSDT包

以下的内容,你需要文章开始阶段提供下载的MaciASL以及刚才提取的DSDT.aml

 

  • 用MaciASL打开DSDT.aml

 

3.5 加载节能五项

3.6 Mac OS 10.15下解锁S/L/E目录

3.7 仿冒EC控制器

3.8 加载节能五项

3.9 FCPX加速

3.10 睡眠即醒的相关问题

3.11 仿冒EC控制器

3.12 中高端类消费级CPU的变频优化

 

 

 

 

 

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

2019-10月

10.15后我会把精力放在opencore上,之后会写一个比较详细的opencore配置教程。

 

Q1:如何选择自己的SMBIOS机型?

A: 8代9代cpu主要是选iMac 19,1 或者iMac Pro 1,1这两个机型。有核显选19,1,无核显选择1,1。z系列主板尽可能买带核显的cpu,x299, c422,c621那些没办法选1,1。对于z系列来说,有核显是相当重要的,这关乎你后面的核显变频,cpu变频等,相差不了多少钱,但体验会相差非常大!白果没核显能高效是因为有t2芯片,黑果没t2芯片需要核显来支撑。

 

Q2:各种原因导致的睡了即醒。

A: 这个问题其实已经在9月回答过了,我也一直困扰在这里,希望能做出更好的ssdt补丁,可惜在请教过权威之后,并没有找到更好的办法,我把一个比较精简的补丁放上:

  • 放入这个ssdt: SSDT-GPRW.aml
  • hotpatch中加入如下更名:

 

Comment:GPRW to XPRW 
Find:47505257 02 
Replace:58505257 02

 

 

 

 

 

2019-09月archived

 

Q1:为什么我的系统只能用usb2.0?

A:自行制作USB补丁,或者加入usb limit patch+usbinjectall,10.14.6下的补丁为:

Comment: USB port limit patch #1 10.14.x modify by DalianSky(credit ydeng)

Name: com.apple.iokit.IOUSBHostFamily

Find: 83FB0F0F

Replace: 83FB3F0F

MatchOS: 10.14.6

 

Comment: USB Port limit patch #2 10.14.x modify by penghubingzhou

Name: com.apple.driver.usb.AppleUSBXHCI

Find: 4183FF0F

Replace: 4183FF3F

MatchOS: 10.14.6

 

[/cc]

 

 

Q2:Aptiomemoryfix通过帖子仍然卡+号。

A: 根据群里的讨论以及我自己的研究,不同品牌的主板在加载内存的方式上有一些区别。技嘉等主板在加载内存时会将不同高度的内存注入到pcie设备中,而不是连续性地用完一组内存。当你的设备过多时,你会发现计算出来的slide值一个也没有用,因为每个分段的内存都已经被设备占用了。现在比较好的解决办法是通过补丁来确保内存的第一个512兆内存留给系统内核,缓存等。。这个补丁仍然在测试中,请把它与aptiomemoryfix放在一起,并且测试增加slide=1或者不填。

 

A2:根据群友反馈,技嘉主板在bios中设置核显dvmt为32M,解锁cfg,关闭kernelpm,slide=1即可使用aptiomemoryfix了,不需要这个补丁。

MemoryAllocation.efi

 

 

Q3:雷电卡是否一定需要5pin雷电接口?

A:技嘉的titan ridge 不需要,请短接5pin口的第三针和第五针。

 

Q4:雷电卡始终无法识别。

A: 确定你的卡插在了PCH位置,BIOS按照设置,并且需要在UEFI启动的WIN下驱动雷电卡,或者开机之前就插一个USB 3.0的type-c的U盘。

 

Q5:雷电卡导致系统无法进入睡眠。

A:制作USB补丁,把两个雷电口设置为internal(内建)。若仍然无法进入睡眠,比较好的方式是添加如下ACPI补丁阻断USB(唤醒只能按开机键,当然电脑如果有除了XHC以外的USB控制器,可以把键鼠插在另一个控制器上,比如我就把鼠标键盘插在了LG ULTRAFINE 4K的几个USB C口上),此补丁由群友 沙加 制作:

睡眠秒醒补丁

 

 

Q6:现在而言,休眠(hibernation)可以实现吗?

A:不能。

 

Q7:睡眠变重启,关机变重启。

A:请参照博客中另一篇关于此问题的文章,核心是打上nvram.plist,在EFI的根目录出现。

 

Q8:使用FCPX预览卡。

A:根据我们群里的讨论,可以通过核显变频、独显加速、去掉whatevergreen的方式,让FCPX更高效地工作,步骤如下:

  • BIOS开启核显
  • 打开config.plist, 去掉所有跟显卡相关的boot arguments,比如我的boot arguments只留下了如图2个
  • 在config.plist中加入核显的相关补丁,8代9代可以用我的代码,如图:
  • config.plist—-Graphics—–勾选inject ATI
  • config.plist—-Kernel and Kext patches—-kext to patch中加入如下代码:
Name:AppleGraphicsDevicePolicy 
Find:626F6172 642D6964 
Replace:626F6172 642D6978

 

  • config.plist—-ACPI 加入如下两条:
  • 删除whatevergreen

注意,开机会有紫条。

Q9:关于核显变频。

A:如Q8,至于如何拉高HWP,让核显暴力工作,以后补上

 

Q10:在Mojave系统下能用的EFI却无法升级Catalina。

A: 请在config.plist的ACPI中添加EC补丁:

Comment:Rename EC0 to EC 
Find:4543305F 
Replace:45435F5F

 

 

Q11:关于万兆网卡82599系列芯片组(t520,t540 etc.,)在Mac下的驱动。

A: https://forums.macrumors.com/threads/modify-retail-intel-10gbe-nics-to-use-small-tree-macos-drivers.1968456/

 

Q12:Mac与Win时间不同步,蓝牙设备连接Mac后无法连接Win。

A:打开hackintool, 工具,点击如下两个图标,生成的文件请在windows下注册即可。

 

 

Q13:我该买什么样的m.2硬盘?

A:          旗舰: Samsung 970pro

              中端: 西数SN750;Samsung 970 EVO Plus(需要更新固件);Samsung SM961

              低端:阿斯加特Asgards全系列,海康威视C2000

              特别提醒:别买intel的硬盘,别买pm981

 

Q14:睡眠唤醒后一些APP(e.g.chrome)无响应。

A: ACPI中改名HECI成IMEI。

 

Q15:我的电脑无法完全显示主板风扇转速、GPU温度、GPU风扇转速。

A:需要下载bitbar,注意,不要下载distro版本;确保已经安装xcode。

具体步骤如下:

  • 把bitbar放入applications中,
  • 把我写好的sh文件放到一个安全的位置,比如documents/script,sh文件下载
  • 打开terminal(终端),为sh文件添加权限:

    chmod +x /Users/xjn/Documents/script/GPU_Status+fan_speed.2s.sh

  • 在终端中安装iStats(注意大小写!):

    sudo gem install iStats

  • 将bitbar的sh目录指定到documents/script
  • 在软件中refresh all一下

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

关于OsxAptioFix2Drv-free2000作者对这个插件的影响陈述如下:

I unleashed a plague upon you guys and I am sorry for OsxAptioFix2Drv-free2000. from hackintosh

 

 

 

 

提一下这类补丁的作用就是修复内存,我这里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数值

准备工作后,开机我们会卡+号,如果可以顺利进入,那恭喜你不需要计算slide值了,直接跳过这步。卡加号的话代表你需要计算slide,方法由黑果小兵提供,原贴:https://blog.daliansky.net/Slide-value-acquisition-and-calculation.html

 

下图为黑果小兵给出的截图

 

如果你在开机进入clover界面中无法看到UEFI Shell的选下,你需要执行:

  • 首先确保你的EFI/Clover/下面有tools这个文件夹,以及文件夹中有uefi shell的工具,如果没有,请安装一遍最新的CLOVER即可!
  • config.plist中,在gui选项栏中打开tools:

 

  • 执行上两步还是没有的话,换一个黑果小兵提供的主题文件。

 

还有值得一提的是:

  • 如果你输入memmap显示内容太多而分辨率低导致你看不到主体内容,请输入memmap -b 对内容进行分页,就可以看到主体内容了。
  • 在外国的一些slide教程中,并没有要求Start列的值比10000000大,所以我把这个条件去掉了,在计算过程中,我得出了2组符合条件的slide值,其中一个是slide=1,slide=1是一个比较通用的数值。

 

 

 

解锁BIOS中的CFG功能

解锁bios并不一定需要我下面那么复杂的方法!如果你的主板是华硕华擎的,你可以直接在bios中看到CFG Lock这个选项,选择disable即可。CFG Lock disable的意思说是说cfg的锁关闭,也以为这cfg功能开启。一些主板如果只显示cfg,那应该选择开启,你要理解其中的双重否定,我们的最终目的是开启cfg功能!

 

如果你的bios没有cfg的相关选项,你需要跟着我写的方法来,此过程中你需要一个空U盘!

首先你需要在你的config.plist中添加你刚才计算出来的slide值,我的是slide=1 (图片是用的以前的,给大家看一下添加位置而已)。

 

在MAC的桌面上新建一个叫CFG的文件夹,并将以下三个文件放入此目录

  • ifrextract
  • UEFITool
  • 正在使用的BIOS文件。这个可以从官网下载,比如我是技嘉的z390-elite,正在使用的是F7这个版本的BIOS, 可以从此处下载到,并解压,得到Z390AE.F7这个文件

至此,在桌面创建的CFG文件夹中应该有如图三个文件:

 

打开terminal(终端)输入以下命令

cd ~/Desktop/CFG

./UEFITool.app/Contents/MacOS/UEFITool ~/Desktop/CFG/Z390AE.F7

 

其中Z390AE.F7你需要替换成你的BIOS的文件名。

 

输入命令后我们可以看到如下界面,并在此见面中按Command+F,搜索Text”CFG Lock“

 

我们可以在最下面的输出栏中看到搜索到的结果,双击它就能得到指定的目录中,右键extract body,并保存文件名为PE32Section.efi到我们桌面上的CFG文件夹。

 

回到terminal, 我们再键入如下指令,将PE32Section.efi转换为txt文件:

cd ~/Desktop/CFG

./ifrextract PE32Section.efi PE32Section.txt

 

 

 

 

 

用文本编辑器打开CFG文件夹下的PE32Section.txt文件,如果你打不开,我推荐你使用sublime text这个编辑软件来打开它。

我们Command+F搜索”CFG Lock“

 

我们找到如下数值:

One Of: CFG Lock, VarStoreInfo (VarOffset/VarName): 0x5C1, VarStore: 0x1

 

 

其中CFG Lock的Varname是0x5C1,对应的设置0x1。我们理解0x1是等于”锁定”,而解锁应该是”0x0″,所以接下来我们需要把CFG解锁。

 

将U盘插入MAC,用磁盘工具将U盘格式化为fat32格式,命名为EFIBOOT:

 

下载modGRUBShell.efi, 并重命名为bootx64.efi

在U盘内创建一个EFI文件夹,并再在此文件夹下创建文件夹BOOT,并将bootx64.efi放入BOOT下:

 

重启电脑,我们通过UEFI启动此U盘进入GRUB shell

 

在GRUB shell中输入

setup_var_3 0x5C1

其中0x5C1(你必须注意大小写!)是我们之前从PE32Section.txt得到的Varname,输入后,我们可以看到你当前主板的CFG是关闭的,值为0x1。图片中因为我已经改好了,所以是0x00

我们再输入

setup_var_3 0x5C1 0x00

这样,我们就可以把CFG解锁了。

注:一些主板可能不适setup_var_3命令,请使用setup_var

setup_var 0x5C1

setup_var 0x5C1 0x00

 

回到MAC中,我们把EFI/Clover/drivers64UEFI下关于内存修复的补丁全删了,包括OsxAptioFixDrv-64.efi/OsxAptioFix2Drv-free2000/OsxAptioFix2Drv-64.efi

再把AptioMemoryFix-64.efi放入。

 

关闭kernelPM以及AppleIntelCPUPM

我们之前在准备过程中,勾选了这两个选项,现在我们需要关闭它:

 

 

最后你需要重启电脑,我们可以通过hackintool来查询cfg是否解锁:

1.点击工具

2.点击下面的intel图标,输入你的管理密码,稍等一会,便会输出内容

3.在内容中你可以看到cfg lock这个选项,我们看到已经是not locked了!

 

小彩蛋1

我们知道Z390本身是不支持原生电源管理的,但我们既然发动了CFG,那当然要用上full HWP咯!试试看吧!

 

这里我使用了@黑果小兵提供的开启HWP的方案。

打开terminal(终端),输入一下命令:

cd /tmp && curl -s https://raw.githubusercontent.com/Piker-Alpha/freqVectorsEdit.sh/master/freqVectorsEdit.sh > /tmp/freqVectorsEdit.sh && chmod +x freqVectorsEdit.sh && /tmp/freqVectorsEdit.sh && sudo rm -rf /tmp/freqVectorsEdit.sh && sudo rm -rf /tmp/Mac-*.bin

 

 

回车,输入密码,我们能看到大约50多种机型,其中带HWP字样的是默认开启HWP的,我们选择的原则有两条:

  • 自己是台式机就选择台式机机型
  • 能选新的带HWP的机型就尽可能选新的机型

在一堆机型中,我看到一个机型:

[ 51 ] Mac-AA95B1DDAB278B95.plist (Unknown Model @ 4100 HWP/4300 HWP/4600 HWP/5000 HWP)

因为这个代码很久没更新了,一些新的机型是它就写 Unknown Model。没关系我们用百度搜一下代码就知道是啥机型了。

百度搜索:

Mac-AA95B1DDAB278B95

可以看到是最新款、使用9代CPU的iMac19,1,刚好!

通过Clover configurator 打开config.plist,转到SMBIOS,我们把机型选择成19.1:

 

到ACPI,我们打开plugintype(原生电源管理选项):

 

保存重启,我们再使用hackintool的工具箱查看,我们看到hwp已经是开启的了(1=开启)

 

 

完工!

小彩蛋2

在使用了AMF后,你也许会碰到睡眠唤醒的问题,这其中也有可能是USB造成的,同样也会因为我们的z390不支持nvram而不能进入休眠模式(Hibernation),我们需要执行以下命令来让系统只进入睡眠(sleep)而不进入休眠:

 

打开hackintool—电源—看看下面两个选项是否全绿,如果没绿,自己点击以下修复键:

 

你所需要的文件:

CFG

因白苹果并没有使用过我们的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吧。

 

最近组装了一台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/成果展示

Qnap QNA-T310G1T Thunderbolt 3 to 10GbE Adapter热拔插/hot-pluginng

 

UltraFine 4K 显示器通过雷电USB CONTROLLER原生控制音频、亮度/ controlling audio and brightness of UltraFine 4K via the thunderbolt USB controller.

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

E1.Before Installation

Honestly I don’t want to duplicate others’ works since CaseySJ already provided a very comprehensive guide for Z390. However, the guy’s works are based on Mac, which means you need a Mac to config everything before installation. Hence I provide you a guide for windows users to make configurations before installation; if you only have a windows on hands, this is a suitable guide for you.

If you have read CaseySJ’s article, at this stage you should write the Mojave image to a 8GB USB flash disk through UniBeast under Mac OS environment. As you may not have a Mac on hands that restrict you to run UniBeast, I therefore attach the semi-finalised Mojave Image for you. This image integrates  drivers64UEFI, KEXTS, and a semi-finalised config.plist that allow you to install Mojave.

Download the image of Mojave and Etcher; plugin your USB flash disk, and open Etcher, the software will automatically detect your flash disk, select the image and flash it to the disk.

 

Now you have to config your BIOS settings for the installation.Boot your rug and quickly press DEL or F2 to enter the BIOS. settings are listed below: 

  • M.I.T

            ———-Advance Memory Profile: Profile 1

  • BIOS

            ———-Windows 8/10 Features → Other OS

            ———-CSM Support → Disabled

            ———-Secure Boot → Disabled

  • Peripherals

            ———-Intel Platform Trust Technology (PTT) → Disabled

            ———-Thunderbolt(TM) Configuration(need to be configured if you have a thunderbolt card)

                    ————-TBT Vt-d Base Security → Disabled

                    ————-Thunderbolt Boot Support → Disabled

                    ————-Security Level → No Security

                    ————-Discrete Thunderbolt Configuration

                                     ———Thunderbolt USB Support → Enabled

                                     ———GPIO3 Force Pwr → Enabled

            ———-USB Configuration

                    ————-Legacy USB Support → Enabled

                    ————-XHCI Hand-off → Enabled

            ———-Network Stack Configuration

                    ————-Network Stack → Disabled

  • Chipset

            ———-Vt-d → Disabled

            ———-Internal Graphics → Enabled

            ———-Audio Controller → Enabled

            ———-Above 4G Decoding → Enabled

  • Power

            ———-ErP → Disabled

            ———-RC6 (Render Standby) → Enabled

 

After BIOS settings, boot your machine through the USB flash drive, install Mojave, and you may encounter 2-3 times restarts, which is normal.

Enter the Mojave system and mount the USB flash disk & your system disk’s EFI via Hackintool.

 

you should: move the EFI folder under USB disk to the system’s EFI folder. You could see these folders under system’s EFI (APPLE folder is generated by the system itself). Now the USB flash disk is of no use, and we could drive essential hardwares.

 

 

E2. Hardware

I hope you could read CaseySJ‘s article to understand those sections in the config.plist. there is a little innovation that I active the graphic card’s H264 & HEVC through AGPMInjector, which have no need to inject other codes, if you are curious about it, read me

E2.1 Audio

1st: go to https://github.com/acidanthera/AppleALC/releases, download the latest applealc.kext, and move it to efi/clover/kexts/other/

2nd: find your audio card model and layout ID from https://github.com/acidanthera/AppleALC/tree/master/Resources. for example, mine is ALC1220, the layout id could be 1,11,15,13,16….

3rd: try the layout ID in the red box until your audio works properly, and don’t forget to tick the ResetHDA. 

 

E2.2 Thunderbolt Card

I’ve read a lot from Tonymac about the thunderbolt card, unfortunately there is no one to provide a systematic guide for fixing the thunderbolt card’s hot-pluging issue. This section majorly adopts LeleTuratti and kgp‘s experiments for fixing it (this means the thunderbolt card is working properly without any patches, but hot-pluging function should be fixed through SSDT).

 

The first step is to install a windows 10, and boot it through UEFI, install the Thunderbolt card’s drive downloaded from the vender’s official website. This step is essential, because the card cannot be recognised without windows 10, after the installation, you could see the card is recognisable in BIOS:

 

You could download a trial windows from:

ed2k://|file|en_windows_10_multiple_editions_version_1511_updated_feb_2016_x64_dvd_8379634.iso|4414115840|E0459993F4B64B6690C0D3309E47AD32|/

Write the iso to your USB disk via etcher, after activating the thunderbolt card, the windows is of no use.

 

As soon as the thunderbolt card is recognised  in BIOS, we could enter the MAC OS to fix hot-plugining through SSDT. You should prepare these tools and files to generate your own thunderbolt card SSDT:

IORegistryExplorer

RehabMan-MaciASL-2018-0507.zip

iasl.zip 

thunderbolt-v2

X-code, available at app store

 

Extract MaciASL, iasl and thunderbolt-v2, and move MaciASL and IORegistryExplorer to Applications; move iasl, thunderbolt.aml and SSDT-DTPG.aml to Desktop. Finally make sure you’ve agree the term&conditions of X-code.

placing the files and tools in the right place, when shall run the following codes through Terminal.

cd ~/Desktop 
sudo cp iasl /usr/bin 
mkdir ~/Projects 
cd ~/Projects 
git clone https://github.com/RehabMan/Intel-iasl.git iasl.git 
cd iasl.git 
make 
sudo make install 
sudo cp /usr/bin/iasl /Applications/MaciASL.app/Contents/MacOS/iasl62

 

 

 

after inputing these codes, we need to covert thunderbolt.aml to thunderbolt.dsl, allowing us to edit it:

iasl -da -dl ~/Desktop/thunderbolt.aml

 

Now you need to open thunderbolt.dsl through MaciASL, and note the texts that I highlighted in the pic.

Open IORegistryExplorer, text “thunder” in the right front corner, you could see your thunderbolt card’s actual location. For instance, mine is at PCI0—-RP21—PXSX:

then, as an example, i modify the texts in thunderbolt.dsl according to the location that I found through IORegistryExplorer:

 

Save the file and name it as thunderbolt.aml, note the file format MUST BE  ACPI Machine Language Binary. move the edited thunderbolt.aml, and SSDT-DTPG.aml to EFI/Clover/ACPI/Patched. restart the machine and the thunderbolt card’s hot-pluging function should work perfectly.

PS: other motherboards might be not suitable from my thunderbolt.aml, you could find various thunderbolt.aml from LeleTuratti and kgp’s github. some are suitable for Z370, and some for x299, just have a try. Again, thanks for their contributions.

 

E2.3 BCM943602CS and USB ports patches

The method to make BCM943602CS internal in order to ensure its sleep and wake-up function has been shared in various way. HOWEVER, I FOUND THAT THERE IS NO SIMPLE WAY, THE VIDEOS ON YOUTUBE ABOUT USB PATCH ARE SO COMPLEX AND OUT OF TIME! I HAVE TO MAKE A SIMPLE GUIDE FOR YOU, I THOUGH I COULD SAVE SOME TIME INITIALLY…..

 

before patching the usb ports, you should modify your config.plist via clover configurator, add the three usb port patches like the screenshot:

NOTE, THE PATCH IS UPDATED IN 10.15BETA1, JUST SEARCH THE NEW PATCH.

1st: open hackintool and turn to USB section, you could see all your usb ports:

 

you could see three different types of ports:

  • HSxx: this is usb 2.0 port
  • SSxx: this is usb 3 port
  • SSPxx: this is thunderbolt port

Since USB 3 has a downward compatibility to usb 2, therefore, a USB 3 port could be usb 2.0 but also usb 3. For instance, HS08 and SS08 port is a group inputed through a same port, with a blue or red outlook normally; HS10, for me is a USB2.0 port, because it connected with 9 pin cable on the motherboard, and most USB 2.0 often coloured with black outlook.

 

2nd: you should use a usb 2.0 device (e.g usb2 flash disk, mouse, keyboard…etc.) to connect every usb port one by one, and you will find the ports that has been connected turned green. this means the HS ports are existed.

Then you should use a usb 3.0 device (e.g usb 3 flash disk etc.) to connect every usb port one by one ,and you find those existed SS ports turned green. if you have the thunderbolt card, you also need to plug something like type-c usb flash disk in the ports.

 

3rd: del those ports that not turned green through clicking “➖”.

define the connector correctly.

Example 1: HS03 is a group member of SS03, hence, it should be USB 3, then defining bot HS03 and SS03 as USB 3. 

Example 2: HS13 is single-handedly existed without SS13, this port should be defined as USB 2.

Example 3: some ports are consistently connected with devices such as bluetooth, USB receivers, USB keyboards and mice, these ports should be defined as internal.

NOTE, BCM943602CS SHOULD BE CONNECTED DIRECTLY ON THE XHC CONTROLLER! AS LONG AS YOU CAN SEE THE “BLUETOOTH USB HOST CONTROLLER” FROM HACKINTOOL (AS SHOWN IN THE SCREENSHOT), IT MEANS YOUR CARD IS CONNECTED CORRECTLY.  I GAVE UP THE USB 3.0 PORTS IN THE FRONT OF THE CASE IN ORDER TO MAKE SURE THE CARD IS ABLE TO CONNECT TO XHC CONTROLLER CORRECTLY, AND I BOUGHT THIS CABLE TO CONVER 2.0 TO 3.0:

https://www.ebay.co.uk/itm/20Pin-19Pin-USB-3-0-Female-To-9-Pin-USB-2-0-Male-Motherboard-Cable-Adapter-Cord/254259663988?hash=item3b330e9474:g:o4oAAOSwj5Fc~l0J&frcectupt=true

IF YOU DONT DO THIS, YOUR MAC CANNOT SLEEP

 

4th: click the export button, you can see some *.aml and a usbports.kext on the desk. just move all the generated aml to EFI/Clover/ACPI/Patched. Usbports.kext is of no use, just del it.

 

OK, the guide is over, hope you could learn a lot from it. thanks

 

 

中文版

C1.安装前的准备

这里主要讲解的是BIOS以及Config.plist的修改。

我们先对BIOS进行设置,我的BIOS是F7版本,请确保版本正确,官网BIOS地址点此直达

  • M.I.T
  • ———-Advance Memory Profile:Profile 1
  • BIOS

            ———-Windows 8/10 Features → Other OS

            ———-CSM Support → Disabled

            ———-Secure Boot → Disabled

  • Peripherals

            ———-Intel Platform Trust Technology (PTT) → Disabled

            ———-Thunderbolt(TM) Configuration(如果你有雷电卡的话,需要设置)

                    ————-TBT Vt-d Base Security → Disabled

                    ————-Thunderbolt Boot Support → Disabled

                    ————-Security Level → No Security

                    ————-Discrete Thunderbolt Configuration

                                     ———Thunderbolt USB Support → Enabled

                                     ———GPIO3 Force Pwr → Enabled

            ———-USB Configuration

                    ————-Legacy USB Support → Enabled

                    ————-XHCI Hand-off → Enabled

            ———-Network Stack Configuration

                    ————-Network Stack → Disabled

  • Chipset

            ———-Vt-d → Disabled

            ———-Internal Graphics → Enabled

            ———-Audio Controller → Enabled

            ———-Above 4G Decoding → Enabled

  • Power

            ———-ErP → Disabled

            ———-RC6 (Render Standby) → Enabled

 

保存你的BIOS哦!因为后面可能要适当调整你的设备接口位置,主板会自动重置BIOS,最好将配置保存在fat32格式的U盘里,或者这个设置可以挪到最后,以免浪费时间,嘻嘻嘻。

C1.1 Config.plist修改

Config.plist文件位于EFI/Clover/下,你可以通过Clover Configurator进行修改。

首先我们到ACPI—Patches这个栏目中,我们添加这五项内容。

  • XHCI两项是帮助激活Intel的XHC控制器的;
  • EHC两项是帮助激活USB口的,当然之后还需要更多的修改来完全激活它;

 

  • 最后,如果你的硬盘是通过SATA连接电脑的,你需要添加下面这项来激活。

 

之后,我们跳到fix这一栏目,勾选和填入以下内容。

 

  • FixHeaders是帮助我们避免panic的,当然在Drop table里的MATS也是这个功能,提供第二层保护。
  • FixHPET 防止电源管理引起的panic的,这主要在老主板里会发生,Z390芯片组特别一点,还是勾上吧。
  • FixIPIC 帮助电源键工作的,可以勾上试试。
  • FixRTC 防止RTC时钟重置。
  • FixTMR 配合老设备的,可以不勾选,勾了先试试,不重要。
  • Plugin Type是启用原生电源管理的,但因白苹果目前为止并没有使用过Z390芯片组,原生电源管理不一定能用,建议是在做完所有工作后,再去勾选这个选项,避免不必要的问题。如果你的芯片组是白苹果常用的,大胆勾选。

我们现在转到Boot列表,并填入以下内容:

  • dart=0  是解决如果你在BIOS开启了VT-d而导致无法进入系统的,我们之前在BIOS里已经关闭了VT-d,这里添加只是为了双重保险。

 

  • slide=0 是帮助系统解决内存定位的问题,这里必须填入。

 

  • 两条关于shiki的代码不用再加了,确保你的系统为10.14.5,不用再加

 

  • darkwake=0 这是帮助我们使用MAC在睡眠时候的键鼠一键唤醒功能的,当然蓝牙键鼠我测试还是不行,需要按电源键唤醒,这我可能会在之后的更新中解决。

 

  • -v 我建议各位在没安装好黑苹果前,都添加-v,帮助我们定位错误,安装完成后再去除。

现在我们转到Devices栏目里,勾选红框中的内容,帮助我们开启USB,Audio—Inject选NO。

 

我们到Kernel and Kext Patches里,勾选红框中内容,并且在kext to patch中填入图示内容。

  • AppleRTC,顾名思义,用苹果的RTC
  • AppleIntelCPUPM,跟电源管理相关,我勾选后无限重启,不能勾。
  • kernelPM,电源管理相关,我是勾了 (这两个跟电源有关,小心设置,芯片组不支持就别勾了!勾上去试试,不行取消!我测试后发现我只能勾选KernelPM)
  • USB port limit patch 1-4是解除15个USB限制的。
  • 最后一个是帮我们开启SSD的TRIM支持。

 

转到Rt variables,填入红框中的内容,随机生成ROM,在MLB中填入你之后生成的Board serial number。其中Booterconfig& CsrActiveConfig是关闭SIP保护的。

 

转到SMBIOS里,选择右下角的选择键,勾选iMac18,3后,自行生成新的序列号和UUID,如果需要洗白/伪洗白黑苹果,自行搜索相关教程。 在10.14.5系统中,我推荐大家选择iMacPro1,1

最后,在system Paramenters中,随机生成UUID,在inject kexts中填写yes,并勾选inject system ID。

至此,我们基本改完了Config.plist。

 

 

C1.2 Drivers64UEFI补丁

在这里我放入了下列补丁,你需要把这些补丁放入EFI/Clover/driver64UEFI/ 我已经打包在文章最后了,我会一一解释:

  • ApfsDriverLoader-64.efi: 如果你的硬盘是apfs格式的,需要这个补丁来驱动。
  • EmuVariableUefi-64.efi: 这个是帮助模拟NVRAM的,因为我们的Z390芯片组白苹果并没有用到,需要这个补丁来帮我们模拟,如果你的芯片组是白苹果使用过的,你不需要这个补丁。
  • FSInject-64.efi: 是帮助我们加载第三方驱动的,(这个已经不需要了,自行删除)
  • HFSPlus.efi: 如果你的EFI硬盘是HFS格式的,需要这个补丁,但我们一般都是fat32的,所以这个补丁不是必须的
  • OsxAptioFix2Drv-free2000.efi:是引导启动的,对z390来说必须用这个。一些其他的主板可能需要的是OsxAptioFixDrv.efi或者OsxAptioFix2Drv-64.efi,视情况而定!

 

 

C1.3 Kexts补丁

我们需要将一些kexts放入EFI/Clover/Kexts/other 里,帮助我们驱动硬件,我也在文章最后提供了这些kexts。

  • AppleALC.kext 帮助我们驱动声卡
  • FakeSMC.kext &FakeSMC_*.kext 是HWmonitor的传感插件
  • IntelMausiEthernet.kext  驱动Z390上的intel有线网卡,如果你是螃蟹卡之类的,需要下载其他的网卡驱动
  • Lilu.kext  使用下面两个补丁的依赖
  • Usbinjectall.kext 开启usb的
  • whatevergreen.kext 驱动显卡的
  •  

至此,我们已经做完了准备工作,这样的一个EFI可以帮助你开机运行苹果系统。

C2. 驱动篇

在做准备工作的时候,其实我们已经把大部分硬件都驱动了,现在需要微调来帮助这些硬件更好的工作。

 

 

C2.1 声卡

Z390的声卡是ALC1220的,我们需要使用Clover Configurator打开Config.plist来驱动它。我们转到Devices—properties里,填入红框内的内容。

 

  • PciRoot(0x0)/Pci(0x1f,0x3):这个是你声卡的PCI路径,这个不同的主板可能不同,需要自行寻找,我会在之后更新寻找方法

 

  • AAPL,slot-name:以及model: 这两个是到时候你会在“关于本机”——“系统报告”—-“PCI”中显示的名字,你可以随便改

 

  • device_type: 是告诉系统驱动的这个设备是啥,必须按我这个填写

 

  • layout-id: 这里要注意一下,咱们ALC1220的layoutID是16,16的16进制是10,那我们填写的ID就是10000000;比如ID是28,你的16进制就是1C,这里就要填写:1C000000,以此类推。不同声卡型号、layoutID都不同,甚至没有,我们需要自己去寻找甚至编译,此教程不会写这个

 

 

C2.2 显卡

显卡的驱动有两种方式,一种是核显和独显一起用,一种是只用独显。我提供两种驱动方式供你选择,这两种方式谁好谁坏,视你的需求而定。当然如果你只有核显,我们这里不做讨论,请搜索相关教程。

 

C2.2.1 只驱动独显

  • 请确保你的系统已经设置为iMac pro 1,1:

 

 

 

  • 打开config.plist,确保勾选如下两个选项:

  • 重启即可

 

C2.2.2 核显独显一起驱动

  • 确保你的机型是iMac19,1:

 

  • 确保此选项卡下的所有选项为空:

 

  • 确保在此选项卡中点击方框,并填写箭头指示内容:

 

 

  • 重启即可

 

C2.3 无线网卡BCM943602CS驱动

此网卡在没有进行设置的时候是无法睡眠的,并且唤醒后会掉速。这里你需要执行两个设置。

  • 在系统偏好设置—–节能中,取消勾选“唤醒以供网络访问”,来解决唤醒后掉速的问题。
  • 打USB驱动补丁,将网卡连接的USB端口改成内建,这里我不加以说明了,但是要注意的是,这张网卡的USB线必须接入XHC的总线中,而不是独立的USB2控线中才能睡眠。怎么判断这根USB在哪个总线下?观察途中,蓝牙USB主机控制器是单独列在USB3.1的总线下,还是在USB2.0HUB中。我为此放弃了主机前端的3.0插口,改成2.0了,把蓝牙的USB线通过9针转19针插头,插入USB3.1的控线中。

 

 

 

C2.4 重中之重,雷电卡的驱动!

好吧!!我收到很多信息关于雷电卡的!是我没仔细写!这次重新改,认真写!求原谅!

我想每一篇教程都应该有自己的亮点,我的就是这个了,此雷电驱动解决了雷电卡的热拔插问题。翻阅了很多外国资料,其实并没有一个帖子系统讲解雷电卡的驱动,很多都是论坛里零零碎碎的资料,我自己也在TONYMAC上翻了近3000多页的帖子总结出来的。我的雷电卡是技嘉的Titan ridge用来匹配我的Z390。因为每一块主板对雷电卡的配适性不同,大家购买时需要注意再注意(似乎技嘉和华硕可以互通,不确定)!我之前买了一块华擎的怎么也认不出,还好卖家还是让我退货了。 在插入雷电卡后,你会发现BIOS并没有认出这张titan雷电卡,难道是产品问题吗?不是的,这张雷电卡必须安装WINDOWS,并用UEFI启动WINDOWS 10(必须),再在WINDOWS 10下下载技嘉官网的雷电卡驱动。


WINDOWS 10下,Titan ridge的驱动地址是:https://www.gigabyte.com/Motherboard/GC-TITAN-RIDGE-rev-10#support-dl

别的品牌的驱动请去各个品牌官网里搜索!一定会有的!


驱动完成后,可以在设备管理器里看到雷电卡!

好啦,重启进入BIOS界面,你会发现雷电卡亮了!(当然这只是我的技嘉雷电卡需要在WIN下驱动,别的品牌的卡我并没有测试过,请自行关注BIOS)。



开开心心进入MAC系统,我们开始想办法来让雷电卡支持热启动!

下载我在文章最后提供的Thunderbolt.aml文件。这份文件可以配适iMacPro1,1以及iMac18,3,我推荐将你的系统改为iMacPro1,1。如果你的主板是X99或者X299,你可以去KGP的github中下载它的SSDT-X299-TB3HP.aml/SSDT-X99-TB3HP.aml文件。他的github地址https://github.com/KGP

 

首先我们需要把aml文件转换成可编译的dsl文件,并且下载相关的应用程序:

 

 

  • 在App Store中下载Xcode并打开,同意使用条款。

 

  • 下载我文章最后的关于雷电3的AML文件,或者你的主板是X99/X299,去KGP的github下载他提供的雷电3的AML文件。

 

  • 现在假设你的iasl.zip、thunderbolt.aml文件已经放在download目录,MaciASL文件已经移到applications中,我们需要通过terminal(终端)执行以下命令:
cd ~/Downloads 
unzip iasl.zip 
sudo cp iasl /usr/bin 
mkdir ~/Projects 
cd ~/Projects 
git clone https://github.com/RehabMan/Intel-iasl.git iasl.git 
cd iasl.git 
make 
sudo make install 
sudo cp /usr/bin/iasl /Applications/MaciASL.app/Contents/MacOS/iasl62

 

这里我们已经编译好了,现在需要下载的aml转换成可编译模式,我们再输入以下代码:

iasl -da -dl ~/Downloads/Thunderbolt.aml

 

 

2019-05-27注:因为我购买了新款LG ULTRAFINE 4K,我发现之前的thunderbolt.aml并不能很好的驱动雷电的USB控制器,我提供了新的thunderbolt-v2.dsl,在帖子最下面下载,改法还是一样的。此包中同样包括一个“SSDT-DTPG.aml”, 这个已经改好了,不需要任何更改。

这时相同目录下会产生一个同名的DSL文件,我们需要修改这个文件来驱动雷电卡。

打开thunderbolt.dsl,同样的,记录如下数值

打开IORegistryExplorer,搜索thunder,我们找到了雷电卡的位置,在PCI0—-RP21—PXSX这个位置,并且产商和设备ID分别是8086和15eb。

然后把PCI0—-RP21—PXSX替换刚才thunderbolt.dsl红框中的内容:

我们点击程序的右上角files—save as–thunderbolt.aml,file format 一定要选ACPI Machine Language Binary,并将文件保存到EFI/Clover/ACPI/Patched中,同时把我提供的SSDT-DTPG.aml一起放进此目录。

 

C2.5 开启节能五项

我们知道白苹果的“系统偏好设置—节能”中有五个选项,目前为止,在没有勾选Clover Configurator–ACPI–plugin type之前,我们是只有两项的。之前的操作我们已经做好了模拟NVRAM的准备,现在是开启它了。

用Clover Configurator打开EFI/CLOVER下的Config.plist,在ACPI页面勾选PluginType并保存、退出。

 

第二步,我们右键访达(Finder),前往文件夹,前往/system/library/extensions,找到AppleLPC.kext,用PlistEdit Pro打开它,并选择info.plist打开;同时,我们再用PlistEdit Pro打开EFI/Clover/kexts/Other下面的FakeSMC.kext。我们复制AppleLPC.kext–info.plist–IOKitPersonalities—-AppleLPC,并黏贴到FakeSMC.kext—info—IOKitPersonalities下面,如下视频。

 

接着我们打开IORegistryExplorer,搜索LPC,找到它的IOName为pci8086,a305,记下它:

下再回到刚才的Fakesmc的info里面,替换AppleLPC-IOnameMatch下任意一个的值为刚才找到的值,保存、重启,我们的节能五项都打开了。

 

C2.6 USB补丁

其实现在打USB口的补丁已经很简单了,网上的教程有点跟不上节奏,我这边做一个简略版本的说明。

首先,确保你的EFI/CLOVER/texts/other/下面有最新版的Usbinjectall.kext, 并把相关的USB补丁删除,比如USBPORTS.kext. 第二,确保EFI/CLOVER/ACPI/patched下面没有SSDT-EC.aml、SSDT-UIAC.aml这两个文件,如果有请删除。最后,通过Clover configurator 打开EFI/CLOVER/config.plist,添加相关的usb port limit patch, 系统如果为14.4-14.5,就添加如图所选的三个补丁;如果是15的系统,可以参照黑果小兵的补丁,点我

 

做完以上准备,我们开始打usb补丁了:

第一步:打开 hackintool这个软件,并转到USB这栏,我们可以看到自己电脑所有的USB口:

 

你可能可以看到三种不同的接口:

  • HSxx: 是2.0的USB口
  • SSxx: 是USB 3 口
  • SSPxx: 如果你有雷电卡的话,你可以看到这种雷电类型接口

我说明一下规则:因为USB3口是向下兼容的,也就是说,一个物理的USB3接口既可以是电脑里的USB 2又可以是USB3。这里打个比方,我的HS08和SS08口是一组接口对应一个8号的物理接口,这种口一般是蓝色或者红色的,这个08口就是同时支持3.0也是2.0;另一个比方,HS10对我而言就只是一个2.0的口,因为没有对应的SS10存在,这种物理接口一般是黑色或者白色的。

 

第二步:你需要使用一个USB2.0的设置(2.0的U盘,鼠标键盘等等都行)去插一遍所有的物理接口,因为不管是3.0或者2.0的物理接口,都能支持2.0的设备。插完后,我们看到hackintool这里有些变绿的,有些还是黑的。那些绿色的口是真实存在的。

接着请拿一个USB3.0的设备(U盘之类的)去连接你电脑上外形蓝色或者红色的口(那种是USB3.0的口),你会看到你连接过的口在hackintool上,SS变绿色。如果你有雷电口,记得插一次雷电口;如果你有typec 就插一下typec,如果你想指定某个口放一个USB拓展器,请将拓展器连着拓展器上的设备连接那个口!

 

第三步:删除那些没有变成绿色的口(点“➖”)

然后我们要定义所有的口的类型:请点击hackintool中connector那一栏选择类型。

例子1:HS03和SS03都是绿色,这两个对应的物理接口肯定是USB3,那就定义HS03和SS03位USB3。

例子2:HS13 只是单独存在,并没有相应的SS13,那这个口就是USB 2,定义它为USB2。

例子3:如果一些物理接口你是长期插着一些固定设备的,比如说蓝牙、USB接收器,鼠标键盘等,请务必把这个口改成internal。

例子4:如果有雷电或者typec的口,请自行定义他们为TYPEC/SW。

 

第四步:点击导出,你会再桌面上看到N个*.aml文件以及一个usbports.kext。现在有两种方式打这个补丁:

条件1:如果你的SS+HS+SSP绿色的接口总数大于或等于15个,请将n个AML文件放到EFI/Clover/ACPI/Patched下,usbports.kext这个文件不用管,删了;并且删除EFI/CLOVER/kexts/other下的usbinjectall.kext。

条件2:如果你的SS+HS+SSP绿色的接口总数小于15个,请将usbports.kext这个文件放到EFI/CLOVER/kexts/other下,并且删除同目录的usbinjectall.kext。同时生成的N个aml文件不用管,删了。

 

如果你正确跟着我的步骤,USB补丁已经打好了,重启生效。

 

至此,所有的驱动都搞好了,希望你能从这里学到很多,如有疑问请留言!谢谢各位看官!

 

之前博客被毁了,哎 搬瓦工太垃圾了,这里补上我的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(必须)
  3. Security Secure Boot, Disabled(by default)
  4. CSM disable

 

超级小白教程/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/镜像下载地址:

https://mega.nz/#!iHBQ1QAY!YGd8E_bMj5mJYGDIs5FsHkI0_sUzJ8aPPkTFeAtMUrw

 

链接:https://pan.baidu.com/s/1fFiWuzqGs-nNR_jbP-GYhQ 密码:cyf5

 

MD5: 7d6e0ba75e80b5fe3e72b4a49e451756

SHA1: 8a2fa1d41a617200a5b7f4a038f14da6f99f3894

SHA256: 894cd340f29b3368630cd6b76bd044afbac9b9b15d617f3569cfc3a7d0d73db2

CRC32: 09bd7e88

 

疑问解答/Q&A

Q1:为什么我用了这个EFI后,仍然卡在苹果界面?

A1:请确保你的BIOS设置正确,我建议BIOS保持在3.1;请确保你的硬盘不是那些PM981、浦科特等不能被驱动或者需要打补丁的硬盘。这里建议使用asgard、sn750硬盘。

 

Q2:为什么无法双屏、为什么双屏需要热拔插?为什么闪屏?

A2:请确保你的线缆具有足够带宽,质量过硬。

 

Q3:我安装了傻瓜版镜像,如何不用U盘引导?

A3:在安装好进入系统后,请下载下面的EFI文件,然后用hackintool挂载你系统盘目录下的EFI(如图,mount再open),把下载好的EFI文件内的BOOT CLOVER两个文件夹复制到系统盘的EFI/EFI/目录下(同目录下应该也有一个系统自动生成的APPLE文件夹)。

 

Q4:为什么蓝牙不能用?

A4:请下载下面的EFI,并阅读包内的说明!

 

Q5:为什么下载的镜像不能写盘?

A5:下载后请核对MD5等数值!

 

 

 

EFI下载/EFI Downloads

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