抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

相关阅读:
OpenCore中文手册 OpenCore部件 Xjn大佬的博客 拓展阅读


示例配置:
CPU i5 7500
主板 ASUS Prime B250-Plus 板载声卡 alc887 板载网卡 rtl8111H
内存 FURY 8GB DDR4 2400 x4
显卡 Sapphire Radeon NITRO+ RX 570 4G
硬盘 WDC SN750
无线网卡 BCM943602CS
显示器 VX2478-4K-HD



鲁大师截图

相关下载:
macOS镜像:Big Sur Catalina Mojave High Sierra 来源于黑果小兵
写入工具Tranmac单文件破解版:点击下载
config编辑工具: (注意使用OpenCore Configurator要与OpenCore引导版本对应)
OpenCore在线编辑器 优点:Mac/Win均适用,有网络就可以编辑,选项有中文提示。 注意:要使用对应版本的OpenCore引导。
PT for Win:点击下载
PlistEdit Pro(Mac):点击下载
OpenCore Configurator(Mac):点击下载
Maciasl(Mac):点击下载
Hackintool(Mac):点击下载
三码生成GenSMBIOS(Python):点击下载 来源Github
Python3.7(Win7及以上系统):点击下载
macOS在线安装:点击下载
gibmacOS:点击下载
OpenCore引导:点击下载


正篇

下载OpenCore引导并解压,先简单了解OpenCore引导文件夹结构:  我们接下来需要用到的EFI在OpenCore-0/X64/目录下  在/EFI/OC/目录下主要有6个文件夹,一个OpenCore.efi(OC核心),缺少一个config.plist配置文件
ACPI文件夹:用来存放DSDT/SSDT
Bootstrap:OC引导项(后续手动添加OC引导项到BIOS时可以制定到该文件夹下的efi文件,也可以指定到/EFI/BOOT/下的efi文件)
Drivers文件夹:用来放置efi驱动
Kexts文件夹:用来放置kext驱动
Resources文件夹:用来放置OC图形化主题、开机声音
Tools文件夹:存放工具(常用CleanNVRAM清除NVRAM中的数据,与ResetNVRAM重置不同。)

开始配置:
将/OpenCore-0/Docs/目录下的Sample.plist文件复制,粘贴到/EFI/OC/中并将其重命名为config.plist
之后下载所需的kext驱动用于驱动电脑硬件,绝大部分都能在GitHub上下载到。
VirtualSMC.kext 仿冒SMC,必须
Lilu.kext 依赖,必须
AppleALC.kext 声卡 绝大部分用这个就行了
WhateverGreen.kext 显卡
RealtekRTL8111.kext 有线网卡 不同型号的网卡需要不同的驱动
USBInjectall.kext USB 这个不是万金油
将这些都放入到/EFI/OC/Kexts/目录下
打开在线编辑器,上传config配置文件。注意提示框中的提示,该编辑器仅适用0.6.4版本!
点击右上角的Open,选择/EFI/OC/config.plist文件上传。我们可以看到里面有一些预设,可以帮助我们减少一些操作。 点击左侧的Kernel,配置启用Kext驱动。
把我们之前放到/EFI/OC/Kexts/的驱动都添加上去,注意这里的顺序不能出错,Lilu-SMC-WEG-ALC-其他.
添加好后配置下面的Quirks,勾选XhciPortLimit去除USB限制。


点击左侧的Booter,配置下面的Quirks。
勾选AllowRelocationBlock
勾选DevirtualiseMmio
勾选ProtectSecureBoot
勾选ProtectUefiServices
取消ProvideCustomSlide
点击左侧NVRAM,选择4D1ED开头的,将右侧对应的UIScale的值从01改为02,用于开启引导第一屏时的hidpi。
选择7C43开头的,将右侧对应的boot-args(启动参数)的值修改为alcid=50(注入声卡ID)。常用引导参数-v (开启跑码除错,我不需要除错,建议你们先保留-v参数🤫)。修改prev-lang:kbd的值为7A682D48 616E743A 2D313638 3939 此项设置为语言设置, 默认为俄语,所以建议都修改。


点击左侧Platforminfo,配置机型相关参数。下载GenSMBIOS、Python (Win系统默认不自带要自己安装,安装时别忘记勾选Add Python to PATH这个选项。) 运行GenSMBIOS,输入数字3(Generate SMBIOS/生成SMBIOS)并且回车。
再输入Mac的机型回车
便得到了三码,将其对应填入。
还有一个ROM的空,可以直接把网卡的MAC地址抄过去。在win下按win键+R输入cmd回车,在命令提示符中输入命令ipconfig /all回车查看网卡MAC地址。


点击左侧UEFI,将OpenCanopy.efi前的#去除,启用图形化驱动。
点击APFS,勾选JumpstartHotPlug
点击左侧Misc Boot,将PickerMode改为External以启用OC图形化界面。
将HibernateMode睡眠模式改为Auto自动。
将PickerAttributes改为0。
点击Security,将ExposeSensitiveData改为2。
将Vault改为Optional。(重要)
将ScanPolicy改为0。(0为自动)
将BootProtect改为BootProtect。(将OC引导项锁定在BIOS的第一项)
将DmgLoading改为Any。
将SecureBootModel改为Disabled。
勾选AllowNvramReset
勾选AllowSetDefault
点击Debug,将Target改为0。


配置完成,点击右上角的Save,用下载到的config.plist去替换掉原/EFI/OC/下的config.plist文件。
之后需要补全一下,下载OcBinaryData。点击跳转
下载完成后,将Resources文件夹替换进去,再将Drivers文件夹中的HfsPlus.efi文件复制到/EFI/OC/Drivers/中。 缺少HfsPlus.efi这个hfs文件系统驱动会导致OC识别不到mac的启动盘。
至此,可以将EFI尝试用去引导macOS了。


后续完善

1,定制USB接口。使用Hackintool工具,用U盘拔插的方式将所有接口插过一遍,注意USB3的接口需要再用USB2的设备再拔插一次。删除多余未绿的接口, 给USB接口正确的定义(USB2.0 3.0 内建),将蓝牙所占用的接口内建,选择internal,再导出USBPorts.kext。  导出的文件很多,只用USBPorts.kext就可以了。
修改USBPorts.kext提升USB接口电流,给苹果设备12W快充。在USBPorts.kext上右键,显示包内容,点进Contents文件夹内,用PlistEdit Pro打开 这个Info.plist文件,修改电流相关。 ```kUSBSleepPortCurrentLimit3000kUSBSleepPowerSupply5100kUSBWakePortCurrentLimit3000kUSBWakePowerSupply5100 ```
之后保存好,再将USBPorts.kext放入到/EFI/OC/Kexts/下。删除USBInjectAll.kext,并配置config相关参数。
2,发现睡眠过程中有自动唤醒的问题,查看睡眠日志发现有RTC(Alarm)的问题,编辑config,点击Kernel Patch, 勾选第一个Disable RTC wake scheduling补丁。
查看唤醒日志命令: ``` log show 1d | grep -i "Wake reason" ```
3,制作SSDT-PLUG SSDT-PMCR补丁。参考OC部件
下载OC-little和Maciasl
将这两个补丁保存为aml格式,放入/EFI/OC/ACPI/文件夹内,并且配置config ACPI中相关参数。


注意与OC部件中的说明不同:在SSDT-PMCR中还需要自己加入PPMC,不加可能导致无法正常睡眠。
具体如下: ``` /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20200925 (64-bit version) * Copyright (c) 2000 - 2020 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of iASLGqDus3.aml, Fri Jan 29 00:17:25 2021 * * Original Table Header: * Signature "SSDT" * Length 0x0000008F (143) * Revision 0x02 * Checksum 0x4B * OEM ID "APPLE" * OEM Table ID "APmc" * OEM Revision 0x00000000 (0) * Compiler ID "INTL" * Compiler Version 0x20200925 (538970405) */ DefinitionBlock ("", "SSDT", 2, "APPLE", "APmc", 0x00000000) { External (_SB_.PCI0, DeviceObj)
If (_OSI ("Darwin"))
{
    Scope (_SB.PCI0)
    {
        Device (PPMC)
        {
            Name (_ADR, 0x001F0002)  // _ADR: Address
        }

        Device (PMCR)
        {
            Name (_HID, EisaId ("APP9876"))  // _HID: Hardware ID
            Name (_STA, 0x0B)  // _STA: Status
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                Memory32Fixed (ReadWrite,
                    0xFE000000,         // Address Base
                    0x00010000,         // Address Length
                    )
            })
        }
    }
}

}

<hr/>
<p>至此我的OC完善结束,日常使用中未发现其他问题。
<br>附件<mark><b><q><a href="https://goopher.lanzous.com/ixxkelc9bmf">我的EFI版本0.6.6</a></q></b></mark> 
注意使用我的EFI时请先替换掉原有的三码。
</p>

评论