四叶草引导Clover所有版本集结贴

 Clover是一个操作系统启动加载器(boot loader) ,能够同时运行于支持EFI方式启动的新式电脑和不支持它的老式电脑上。一些操作系统可以支持以EFI方式启动,比如OS X, Windows 7 64-bit, Linux ;也有不支持的,比如Windows XP ,它只能通过传统的BISO方式来启动,也就是通过启动扇区来启动。

软件简介

Clover的任务

1.设置SMBISO (DMI)信息来模拟-台真实的Apple电脑-这对于运行OS X系统是必需的。序列号是伪造的,但是有

效的。

2. ACPI表-包含在电脑的固件中-通常没有被正确的编写而且可能包含bugs ,这大多是因为制造商的懒惰: APIC表

中包含错误的CPU核心数量,没有NMI数据, FACP表中没有重置寄存器(reset register) ,错误的电源配置, SSDT表中没有EIST数据,甚至没有DSDT表。Clover试图去修正这些问题。

3.接着OS X会从boot loader获取用来描述附加的设备如显卡、网卡或声卡的数据,这些数据就是所谓的EFI字符串(E

FI Strings)。Clover产生这些数据。

4.基于BISO的电脑在启动初期, USB运行于旧的模式(legacy mode) ,当控制权传递给操作系统时,会产生问题。CI

over负责改变USB的运行模式。

5. OS X使用- -块特殊的称为NVRAM的内存来进行信息交换,它被包含在运行时服务(RuntimeServices)中(在启动

的初期不存在, not present in a legacy loader )。Clover提供这种信息交换,使Firewire功能正常,“启动磁盘"设置面板也可正常使用。附加的NVRAM也用于注册iCloud和iMessage服务。6. ConsoleControl协议是必要的并且DUET中没有.

7.通过DataHub协议为EFI/Platform填充某些必要的信息,这些信息DUET中没有,而UEFI中也不一定会有。而且会

设置非常重要的FSB频率值(FSBFrequency value) ,因为这个值有时是错的或者根本就没有。

8. CPU在工作前必须被正确地初始化,但是主板为了兼容大量的不同的CPU ,内部表中不包含任何正确的CPU数据。

Clover会对安装的CPU做一个完全的检测,修正这些表中的CPU信息。其中的一一个效果就是CPU加速模式(turbomode)能够工作。

9.还有一个小问题: DUET和EDK2源码是为了兼容不同的硬件而编写的,但不同的硬件依赖于不同的常量。这意味着

每个编译对应一个特定的平台。Clover提供 了自动平台检测。

EFI

EFI ( The Extensible Firmware Interface ,可扩展固件接口)是位于操作系统和硬件固件之间的一个软件接口。相对于BISO那最多64kb的可用空间和运行于1 6位处理器模式, EFI大小可以达到4MB ,运行于32位或64位模式,并且理论上是平台无关的。但实际上想要达到全平台兼容是不可能的。

EFI不仅存在于操作系统的启动过程中,它还会创建操作系统可访问的表和服务(tables and services) ,操作系统的运行依赖于EFI正确的提供功能。从内建的UEFI来启动OS X是不可能的,用原始的DUET来启动OS X也不可能。CloverEFI和CloverGU1做了大量的工作来修正内部表,让运行OS X成为可能。

译注: DUET(Developer's UEFI Emulation) ,开发者的UEFI模拟

软件安装功能介绍


Clover文件结构
安装后,Clover由BOOT与CLOVER两个文件夹组成。
BOOT文件夹存放启动所需的BOOTX64.efi/BOOTIA32.efi文件。
CLOVER则有以下几个文件夹组成:

ACPI
存放DSDT.aml/SSDT.aml
CLOVERIA32.efi
使用传统模式加载32位clover的启动文件
CLOVERX64.efi
使用传统模式加载64位clover的启动文件
config.plist
clover配置文件,相当于变色龙(Chameleon)的org.chameleon.boot.plist
doc
clover的帮助文档
drivers32
使用传统模式加载32位clover.efi所需的驱动
drivers32UEFI
使用传统模式加载32位clover.efi在模拟uefi环境下所需的驱动
drivers64
使用传统模式加载64位clover.efi所需的驱动
drivers64UFI
使用传统模式加载64位clover.efi在模拟uefi环境下所需的驱动
kexts
使用kexts注入时,kext的存放位置
misc
使用clover环境下的截图,提取dsdt.aml/ssdt.aml的存放位置
OEM
根据文件夹下的SystemProductName的不同,加载不同的config.conf&kexts&显卡ROM
refit-default.conf
默认的refit.conf
refit.conf
clover的界面设置文件
ROM
显卡rom存放位置
themes
clover主题存放位置
tools
EFI Shell存放位置

config.plist详解
config.plist由八大部分组成:

ACPI
-C3Latency  应为0x03E9,如果是支持Turbo的CPU,则是0x00FA
-DoubleFirstState  开启lvy变频(?)
-DropAPIC  未知
-DropBGRT  使用clover的logo代替开机时的苹果logo
-DropDMAR  修复在10.8.2后出现AppleACPIPlatform出错
-DropECDT   未知
-DropHPET  未知(强制加载AppleHPET?)
-DropMCFG  未知
-DropOemSSDT  使用自定的ssdt
-DsdtName  设定需要加载的dsdt的名字
-EnableC2  启用CPU的C2 报告(?)
-EnableC4  启用CPU的C4 报告(?)
-EnableC6  启用CPU的C6 报告(?)
-EnableISS  修复在控制台中出现ACPI_SMC_PlatformPlugin的错误
-FixDsdtMask  自动修复dsdt,注:开启后不可放入dsdt,否则五国。(或者设为0x0000来关闭)
-GenerateCStates  修复开机时ACPI_SMC_PlatformPlugin错误
-GeneratelvyStates  lvy变频(?)
-GeneratePSates  修复开机时出现ACPI_SMC_PlatformPlugin错误
-MaxMultiplier  设置最大变频数(?)
-MinMultiplier  设置最小变频数(?)
-PLimitDict  限制CPU频率,可设为0,1,2。0为关闭此功能
-PatchAPIC  未知
-PluginType  未知
-ResetAddress  应为0x64
-ResetValue  应为0xFE
-UnderVoltStep  限制CPU功率,只针对core2,对i系列CPU无效。可设为0,1,2。0为关闭此功能。
-smartUPS  若启用,则在系统概述的”电源“项中\"UPS已安装“显示为”是“。只起修饰作用!
CPU
-BusSpeedkHz  设置主频。eg.133MHz -> 133330    100MHz -> 99790kHz
-CpuFrequencyMHz  设置CPU频率  eg.3.3GHz -> 3300
-ProcessorType  设置CPU类型,数值可百度。eg.core i3 ->0x0901
-QPI  设置CPU的QPI,数值可百度。eg.i3 2120->5000
-Turbo  启用CPU的Turbo功能
Craphics
-DualLink  启用duallink功能,0为关闭                       -GraphicsInjector  启用显卡自动识别功能
-InjectEDID  注入自定的EDID
-LoadVBios  加载自定的显卡ROM
-NVCAP  设置显卡的NVCAP值
-PatchVBios  启用对开机扁平苹果logo的修复
-VRAM  设置显卡的显存 eg.512MB->512
-display-cfg  设置显卡的display-cfg数值
KernelAndPatches
-AppleRTC  启用修复AppleRTC.kext重置bios功能
-AsusAICPUPM  启用修复AICPM无法加载的问题
-Debug  启用debug
-KernelCpu  启用修复内核不支持的CPU的功能 eg.Atom, Pentium 4
PCI
-HDAInjection  启用对dsdt的声卡信息注入
-InjectClockID  启用修复usb无法从睡眠中唤醒的功能
-LpcTune  貌似已被slice弃用
-PCIRootUID  应为0
-StringInjector  启用efi-string的注入
-USBFixOwnership  启用修复uefi下USB所有者的功能
-USBInjection  启用USB修复功能
RtVariables
-LogEveryBoot  启用每次启动的纪录(?)
-LogLineCount  未知
-MountEFI  开机加载efi分区(?)
SMBISO
-BiosReleaseDate  bios发布日期
-BiosVendor  bios提供商
-BiosVersion
-Board-ID
-BoardManufacturer  主板提供商
-BoardSerialNumber  设置处理器托架的序列号
-ChassisManufacturer  机箱提供商
-Family
-Manufacturer  整机制造商
-Mobile  若为移动平台,请设为yes
-ProductName
-SerialNumber
-SmUUID  格式应为00000000-0000-1000-8000-xxxxxxxxxxxx  “xxxxxxxxxxxx”为你的网卡MAC值
-Version  应为1.0
SystemParameters
-CustomUUID  设置自定的UUID
-DefaultBootVolume  设置默认开机的宗卷名称
-InjectSystemID  启用clover的自动注入UUID功能 注:开启此功能可能导致每次开机的UUID千变万化
-boot-args  若引导ML,则需填入slid=0 可选选项:-v  -x  npci=0x2000  darkwake=0
-prev-lang:kbd  设置clover的界面语言

下载地址

Clover_v2.4k_r4972

  Clover 26-26.png  下载地址: https://pan.baidu.com/s/1ITtIvGwa26Jxo17q0P1IUQ
  提取件码:esxf

Clover_v2.4k_r4961

26-26.png  Clover 26-26.png  下载地址:https://pan.baidu.com/s/1OOZRA7Apfe5e0pD0lwF3fQ
26-26.png  提取件码:2ipx