概述
Clover 版本:Clover v5.1 r5143(含 ISO 版、PKG 版、单文件版,全文件 V2 版以及 config 验证工具)
版本发布时间:2021年12月26日
「注意」
- 从 r5120 版开始,Clover 移植了 OpenCore 的 OcQuirks.efi 以及 OpenRuntime.efi 用以替换原有的内存修复程序(AptioMemoryFix.efi),所以 r5120 以下版本不能通过简单替换文件升级;因上面的原因,Clover 文件树新增了 OcQuirks 选项,需要 Clover Configurator 5.16.0.0 及以上版本方能适配;
- Clover 自 r5122 开始正式集成了 OpenCore 内核,版本号 0.6.3,经实测可以正常安装和升级 macOS 11.0 Big Sur;
- Clover 自 r5137 版开始已支持 macOS 12 Monterey ;
- Clover 自 r5140 版升级了集成的 OpenCore 内核,新版本号 0.7.3,实测可以正常安装 macOS 12.0.1 Monterey;
- Clover 自 r5142 版升级了集成的 OpenCore 内核,新版本号 0.7.5;
Clover
Clover(也叫四叶草)是操作系统引导加载程序,用于已经装有(U)EFI固件的计算机和装有旧版BIOS固件的计算机。操作系统(OS)可能支持(U)EFI(macOS,Windows 7、8或10,Linux)或者不支持(U)EFI(Windows XP)。传统legacy引导通常用于最后一个操作系统引导,即Windows XP。
(U)EFI不仅在操作系统引导期间存在,而且还会创建可供操作系统访问的表和服务,并且操作系统的可操作性取决于(U)EFI的正确功能。macOS是无法从普通主板内置的UEFI引导的,也无法使用原始DUET固件仿真来启动macOS。CloverEFI固件仿真和CloverGUI负责处理大量任务,以更正内部表并提供运行macOS的可能性。
(U)EFI
统一可扩展固件接口(Unified Extensible Firmware Interface)或(U)EFI是操作系统和平台固件之间的软件接口。与占用64kb空间并使用16位处理器模式的传统BIOS固件相比,(U)EFI是32位或64位的,允许使用全部内存,并且理论上将其自身定位为与平台无关的。但是现实中不可能与所有平台完全兼容。
macOS
Mac OS是一套运行于苹果Macintosh系列电脑上的基于Unix内核的图形化操作系统,由苹果自行开发。Mac OS是首个在商用领域成功的图形用户界面操作系统。2011年7月20日Mac OS X已经正式被苹果改名为OS X。2016年,OS X改名为macOS,与iOS,tvOS,watchOS相照应。截止本文,最新版本为macOS 11.0 Big Sur,于2020年6月发布。
Clover所解决的macOS引导问题
- 普通PC是无法安装macOS系统的,但是通过使用Clover EFI BootLoader可以做到这一点。
- Clover向SMBIOS(DMI)填充模拟真实Apple Macintosh的数据——这是运行macOS的基本要求。序列号是伪造的,但有效。
- PC ROM中包含的ACPI表通常未正确编写,并且可能包含错误,主要是由于制造商比较懒:APIC表中的CPU核心计数不正确,NMI数据丢失,表FACP中的复位寄存器丢失,电源配置文件错误,SSDT表中缺少EIST数据,以及乱七八糟的DSDT表,Clover试图解决这些问题。
- OS X更进一步尝试通过EFI字符串从引导加载程序获取描述其他设备(如视频,以太网或声卡)的数据。Clover能生成此类数据。
- 基于BIOS的计算机在初始引导过程中将以旧模式使用USB,这在将控制权传递给OS时成为问题。Clover将更改USB模式。
- macOS使用称为NVRAM的特殊内存进行信息交换,该内存包含在RuntimeServices中(旧式加载器中不提供)。Clover提供了这种信息交换,从而启用了正确的Firewire功能并使用了Startup Disk首选项面板。此外,NVRAM还用于注册iCloud和iMessage服务。
- ConsoleControl协议是必需的,并且在DUET中不存在。
- 有必要通过DataHub协议在EFI / Platform中填充某些数据,该协议在DUET中不存在,在UEFI中并不总是存在。此外,设置了非常重要的FSBFrequency值,该值有时是错误的或完全没有。
- 在工作之前必须正确初始化CPU,但是由于主板通常可以匹配大量不同型号的CPU,因此内部表中不包含任何正确的CPU数据。Clover对已安装的CPU进行全面检测,更正表和CPU本身,使得CPU可以正确开启睿频模式。
- DUET和EDK2源代码是通用编写的,以匹配不同的硬件,但是硬件依赖性本身取决于常量。这意味着针对一个特定平台的编译过程。Clover的目标是普及并提供自动平台检测。
评论(0)