1. Clover 介绍
什么是 Clover(三叶草)呢?显然它不是指的草地里用来喂牛的草啦。Clover 是一个软件,是一个新型的启动器,它能够让普通的 PC 上用上 Mac OS X 系统。
苹果公司(Apple)限制 Mac OS X 系统只能在 Apple 设备上使用,并且苹果不保证 Mac OS X 在其它设备上能够正常工作。所以,用户需要承担一定的风险。当然,为了避免其它的法律纠纷,你不应该用作商业用途。装上了 Mac OS X 的非苹果电脑,就叫做黑苹果(Hackintosh)。
2. 名字的由来
启动器的名字 Clover 由一位创建者 kabyl 命名。他发现了四叶草和 Mac 键盘上 Commmand 键的相似之处,由此起了 Clover 这个名字。
维基百科:四叶草是三叶草的稀有变种。根据西方传统,发现者四叶草意味的是好运,尤其是偶然发现的,更是祥瑞之兆。另外,第一片叶子代表信仰,第二片叶子代表希望,第三片叶子代表爱情,第四片叶子代表运气。
3. Clover 用途
Clover 是一个操作系统引导加载程序,能够同时运行于支持 EFI 方式启动的新式电脑和不支持它的老式电脑上。一些操作系统可以支持以 EFI 方式启动,比如 OS X,Windows 7/8/10 64-bit,Linux;也有不支持的,比如 Windows XP,它只能通过传统的 BIOS 方式来启动,也就是通过启动扇区来启动。
EFI 不仅存在于操作系统的启动过程中,它还会创建操作系统可访问的表和服务,操作系统的运行依赖于 EFI 正确的提供功能。从内建的 UEFI 来启动 OS X 是不可能的,用原始的 DUET 来启动 OS X 也不可能。CloverEFI 和 CloverGUI 做了大量的工作来修正内部表,让运行 OS X 成为可能。
译注:DUET(Developer’s UEFI Emulation),开发者的 UEFI 模拟。
4. Clover 的两种启动方式
- 启动方式 A:基于 BIOS 的电脑(老式主板),即 BIOS->MBR->PBR->boot->CLOVERX64.efi->OSLoader。
- 启动方式 B:基于 UEFI 的电脑(新式主板),即 UEFI->CLOVERX64.efi->OSLoader。
5. Clover 兼 EFI 的目录结构
6. Clover 驱动程序详解
BIOS 启动过程中(启动方式 A)要用到 drivers32
或 drivers64
目录,UEFI 启动过程中(启动方式 B)则使用 drivers64UEFI
目录。它们的内容会根据配置和 BIOS 版本而有所不同。
必须要提的一点是这些驱动程序只在 bootloader 运行时有效,不会影响最终启动的操作系统。
至于到底要使用哪些驱动程序由用户来决定。
7. Drivers64UEFI 目录必备的驱动程序
驱动程序 | 详解 |
---|---|
Text | Text |
ApfsDriverLoader-64.efi | 苹果新推出的 apfs 文件系统,macOS 10.13/10.14 必备。 |
FSInject.efi | 控制文件系统注入 kext 到系统的可能性。详细解释请参照 WithKexts。 |
HFSPlus.efi | HFS+ 文件系统驱动程序。这个驱动对于通过启动方式B来启动 Mac OS X 是必须的。启动方式 A 中用到的启动程序(CloverEFI)已经包含了这个驱动。 |
AptioMemoryFix-64.efi | 修复 AMI Aptio EFI 内存映射。如果没有就不能启动 OS X。 |
OsxFatBinaryDrv-64.efi | 允许加载 FAT 模块,例如 boot.efi 。 |
CsmVideoDxe.efi | 比 UEFI 里提供更多分辨率的显卡驱动(可选)。 |
8. Clover BootLoader 详解
本节会详细介绍 Clover 各项功能的用法。
8.1 Clover 主界面
使用 Clover 开机引导后,默认的系统界面如下:
本例中:
- 蓝色图标为 Windows 10 的引导。
- 绿色图标为 Ubuntu Linux 的引导。
- 橙色图标为 macOS High Sierra 的引导。
- 红色图标为 macOS Sierra的引导。
当你想引导到不同的操作系统,只需要移动键盘上的左右键到各自的图标后回车即可。
8.2 帮助菜单 F1
按 F1 键会呼出 Clover 的帮助信息:
- ESC - 退出子菜单,恢复到主菜单。
- F1 - 帮助。
- F2 - 保存
preboot.log
到EFI/CLOVER/misc/
目录下,以便于您排错。 - F3 - 显示被隐藏的入口。
比如你在config.plist
中隐藏了Recovery HD
:
当你想进入恢复模式的时候,可以不需要修改config.plist
而直接按 F3 显示出那些被你隐藏的引导项。如下图:
- F4 - 提取 DSDT 保存到
EFI/CLOVER/ACPI/origin/
。
此选项会经常用到。比如你的机器出现问题,需要别人帮助你解决问题,人家会跟你要 DSDT ,这个时候你只需要在 Clover 引导界面按下快捷键 F4 即可提取。 - F5 - 提取修正过的 DSDT 保存到
EFI/CLOVER/ACPI/origin/
。 - F6 - 提取显卡 ROM VideoBios 保存到
EFI/CLOVER/misc/
。 - F10 - 截屏,截取当前界面,保存到
EFI/CLOVER/misc/
。 - F11 - 重置 NVRAM,r4299 版本新增。
- 空格 - 选定菜单项的详细信息。
- 数字 - 1-9 菜单项的快捷键。
- A - 关于 Clover。
- O - Clover 选项。
此选项是 Clover 的核心,所有的选项都在这个菜单里,当你无法引导进入 macOS 系统使用 Clover Configurator 进行选项调整时,可以通过该选项进行修改进入系统。稍后我们会详细介绍。
- R - 软复位。
- U - 退出。
9. 如何开启命令模式
开机进入 Clover 引导界面:
在要引导的分区卷标上按 空格
即可进入:
勾选以下选项:
选择「Boot macOS with selected options」启动即可。
10. Clover 选项
文章上面已经提到了 Clover 的选项是它的核心,那么现在就让我们走进 Clover 选项设置。
-
Boot Args
- 引导参数传递,比如前面教大家的使用
-v
打开啰嗦模式,就是通过它传递的;再比如你使用了不兼容版本的 Lilu 和 AppleALC 而导致无法进入系统时,可以在这上面手动添加上:-liluoff
或者-alcoff
跳过相关的驱动而进入系统。
- 引导参数传递,比如前面教大家的使用
-
Configs
配置文件选择。当你有不止一个config.plist
配置文件时,可以通过该选项选择不同的配置文件进入系统。操作过程:
- 光标移动到
Configs
:
- 回车后进入子菜单:
- 通过光标上下移动选择其它的配置文件,回车后按
ESC
键退到主菜单。
- 光标移动到
-
GUI tuning
Clover 主题切换,当你有不止一套主题的时候,可以通过该选项切换主题。操作过程:
- 光标移动到「GUI tuning」:
- 回车后进入子菜单:
- 光标移动到「Themes」,回车后进入子菜单:
- 通过光标上下移动选择其它的主题,回车后按
ESC
键退到主菜单,Clover 主界面已经刷新为选择的新主题。
- 光标移动到「GUI tuning」:
-
ACPI patching
电源补丁:进不去电脑的,需要drop tables
的,禁用/调用DSDT.aml
,禁用hotpatch
,无关关机的,无法重启的;总之跟电源相关的都在这里边。操作过程:
-
光标移动到「ACPI patching」:
-
回车后进入子菜单:
-
Debug DSDT
- 打开 DSDT 调试模式。
-
DSDT name
- 默认文件名为:
DSDT.aml
。
- 默认文件名为:
-
Tables dropping
- 光标移动到「Tables dropping」回车进入:
- 通过移动光标按空格勾选各选项,按
ESC
退出该子菜单:
- 该表格等同于使用 Clover Configurator 打开
config.plist
后,在「ACPI」选项的左下角Drop Tables
:
- 光标移动到「Tables dropping」回车进入:
-
Drop OEM _DSM
丢弃 _DSM。- 光标移动到「Drop OEM _DSM」回车进入:
- 通过移动光标按空格勾选各选项:
- 按
ESC
退出该子菜单。
- 光标移动到「Drop OEM _DSM」回车进入:
-
DSDT fix mask
DSDT修复遮盖。详细说明如下:
-
Add DTGP - 修改 DSDT 添加方法所必须依赖的函数。必不可缺。
-
Fix shutdown - 关机修复,主要是添加
_PTS
函数,判断寄存器arg0
值是否为 5 ,华硕主板建议勾选。 -
Fix HPET - 修复 HPET,添加 IRQ(0,8,11) 加载原生电源管理,10.9 不需要。
-
Fake LPC - 仿冒 LPC,一般 Clover 会自动注入合适的芯片参数到 dsdt 中,来达到加载
AppleLPC.kext
的目的。对于 Intel and NForce 芯片,建议勾选。特别是芯片组比较老的如:ICH7,ICH9。 -
Fix IPIC - 从 decice IPIC 移除中断语句 (IRQ(2)),有助于电源按钮的工作,对于笔记本而言,更希望增加这个中断功能。
-
Add SBUS - 增加 SMBusControlle 到设备树中,可修复因缺失 SBUS 控制而在系统 log 中出现的警告,建议勾选。
-
Fix display - 增加 GFX0 和 HDMI 音频设置 HADU。如果设置了 FAKEID 也会增加到这边,建议勾选。
-
Fix sound - 修正 AZAL to HDEF or HDAU,增加 layout -id 和 pinconfig,MaximumBootBeepVolume 属性。
-
Fix LAN - 注入网卡属性,帮助网卡内建。建议启用。
-
Fix USB - 注入 USB 属性,帮助内建 USB。
-
Add MCHC - 这个功能是在 dsdt 中添加一装置具体是 DveiceID=0X0044,匹配 Intel Clarkdale 平台。有些芯片需要这个装置来解决 PCI 的电源管理问题,一般不启用。
-
Fix SATA - 内建磁盘,用 ICH6 的 ID 匹配,解决橙色磁盘问题,一般启用。
-
Fix IDE - 修复在 10.6 时五国出现的 AppleIntelPIIXATA 错误。 一般不启用。
-
Fix FIREWIRE - 在火线控制装置中增加 fwhub 属性。一般不启用。
-
Fix Airport - 为支持 Airport 的无线网卡注入属性,以开启 Airport 功能,无此设备的不启用。
-
Fix _WAK - 修复睡眠唤醒错误。
-
Add PNLF - 加入背光亮度修复。
-
fix Headers - 修复 MACH Reboot 错误。
-
光标移动到「DSDT fix mask」回车进入:
-
通过移动光标按空格勾选各选项:
-
按
ESC
退出该子菜单。
-
-
Custom DSDT patches
自定义的 DSDT 补丁。- 光标移动到「Custom DSDT patches」回车进入:
- 通过移动光标按空格勾选各选项:
- 按 ESC 退出该子菜单。
- 光标移动到「Custom DSDT patches」回车进入:
-
11. Kext Inject Management
管理你的驱动程序。通过 Clover 加载的驱动程序位于 EFI/CLOVER/kexts/Other
,也有可能位于 EFI/CLOVER/kexts/10.13
或者 EFI/CLOVER/kexts/10.12
目录中。它至少包括以下驱动程序:
驱动程序 | 详细信息 | 备注 |
---|---|---|
FakeSMC.kext | 安装 Hackintosh 的核心程序,没有它就没法在你的电脑上面运行 macOS。 | 必备 |
Lilu.kext | 内核扩展程序,离开它,下面的几个程序都无法正常运行。 | 必备 |
AppleALC.kext | 动态对系统注入必要的文件/打补丁以驱动声卡(依赖于 Lilu)。 | 可选 |
IntelGraphicsFixup.kext | 修补 Intel 核显综合问题(开机花屏,Haswell/Skylake 因 PAVP 导致的死机等)(依赖于 Lilu)。 | 可选 |
IntelGraphicsDVMTFixup.kext | 修正 Broadwell/Skylake 平台核显因 DVMT 不足而导致的死机(依赖于 Lilu)。 | 可选 |
NvidiaGraphicsFixup.kext | 修正 N 卡(可能也适用于 I 卡)使用某些 SMBios 如 MacPro6,1 等引发黑屏的问题(依赖于 Lilu)。 | 可选 |
WhateverGreen.kext | 修补 AMD 独显综合问题 (单卡启动黑屏,唤醒黑屏等等)(依赖于 Lilu)。 | 可选 |
AirportBrcmFixup | 修补 Broadcom Wi-Fi 综合问题。 | 可选 |
FakePCIID.kext | 仿冒 PCI 设备核心驱动,部分驱动依赖于它。 | 可选 |
ACPIBatteryManager.kext | 笔记本电池管理驱动。 | 可选 |
RealtekRTL8xxx.kext | Realtek 8xxx 网卡驱动程序。 | 可选 |
VoodooPS2Controller.kext | Voodoo键盘/鼠标驱动程序。 | 可选 |
当你面对这么一堆驱动的时候,如何让它们有条不紊地正常工作呢?万一出现问题的时候又如何让这些驱动在 Clover 引导的时候禁用它们呢?这个时候 Kext Inject Management 就派上用场了。新版的 Clover Bootloader 已经将 Kext Inject Management 放到了 macOS 系统分区的图标下面了。
操作方法:
- 开机进入 Clover 引导界面,要引导的分区卷标上按「空格」即可进入:
- 光标移动到「Kext Inject Management」回车进入:
- 选择当前系统加载的驱动程序目录:
- 勾选禁用的驱动程序:
- 按
ESC
退出该子菜单。
12.后记
Clover Bootloader 的使用暂时先写到这里,还有更多的用法等着我们去发掘。