
关注上方蓝字关注黑果小白
让小白为你排忧解难
1
驱动准备
清理旧驱动
显卡驱动准备工作,请清理以前的驱动→获取 IGPU 的设备路径→填入 ig-platform-id→填入 device-id
关于HD4600集显驱动,举个例子:驱动完 HD4600 也就这点东西。仿冒设备id及核显型号就可以了!
-
-
缩写解释
-
缩写
解释
FB
Framebuffer(缓冲帧)
WEG
Lilu.kext 和 WhateverGreen.kext
-
软件界面
出现这种界面,则是使用 Xcode 打开的 Plist 文件,若你觉得 Xcode 太大不想安装,也可以选择 PlistEdit Pro
下载相关
名称 | |
Clover Configurator | |
PlistEdit Pro | |
WhateverGreen | |
Lilu | |
gfxutil |
这些东西在文章末尾有提供下载
Clover 目录
所有的 clover 目录都是指 /EFI/EFI/CLOVER
DATA 数据填入
由于 Clover 的特性,所有的 DATA 类型数据都必须两两一组倒序填入,例如:0x0A160000 转换之后就是 0000160A,如下图:
为什么要使用 Lilu + WhateverGreen
随着 macOS Mojave 的发行,之前的通过 Clover ▸ KextsToPatch 通过修补帧缓冲的方法已经失效了,尤其是 SkyLake 及以后架构。您现在必须使用 Lilu + WhateverGreen+FB Patcher 的方式来驱动您的显卡。
WhateverGreen 将取代 Lilu 的所有其他视频补丁插件,它目前已经合并了 WhateverGreen,IntelGraphicsFixup,NvidiaGraphicsFixup,Shiki 和 CoreDisplayFixup
启用核显的通常步骤
修正有关设备的 ACPI 名称(核显自身名为 IGPU,英特尔 ® 管理引擎(英文缩写: IMEI)名为 IMEI)。
如若必要,将 核显 / IMEI 的 设备 ID 仿冒为合适的型号。
指定正确的缓冲帧。(英文: Framebuffer,下文简称缓冲帧为 FB)(即 AAPL,ig-platform-id(适用于 Ivy Bridge 或更新微架构)或 AAPL,snb-platform-id(仅适用于 Sandy Bridge 微架构)) 一组正确的 FB 应当正确地包含了可用的输出端口以及该核显的其他属性。
某些与核显相关的其他设备中已包含相关属性。
其中,第 1 步和第 4 步由 WhateverGreen 自动完成。其可运行在 macOS 10.8 及更高版本,这大大简化了正确启用核显的步骤。
准备工作
在 BIOS 中设置核显所需的内存量(即 预分配 DVMT,英文: DVMT Pre-Allocated)为 32 MB, 64 MB, 96 MB 等,与使用的 FB 值相关。如要使用最大值(英文: DVMT Total),请设为 MAX。
三.BIOS 设置
移除以下驱动(如果曾经使用)
AzulPatcher4600
AppleBacklightFixup
CoreDisplayFixup
FakePCIID_Intel_HD_Graphics
FakePCIID_Intel_HDMI_Audio
FakePCIID.kext(不使用其他基于 FakePCIID 的插件时)
IntelGraphicsFixup
IntelGraphicsDVMTFixup
NvidiaGraphicsFixup
Shiki
这些驱动文件通常位于 Clover 的 kexts/Other 文件夹中
关闭所有 Clover 中的显卡注入
config.plist ▸ Graphics ▸ Inject ▸ ATI = NO
config.plist ▸ Graphics ▸ Inject ▸ Intel = NO
config.plist ▸ Graphics ▸ Inject ▸ NVidia = NO
config.plist ▸ Graphics ▸ ig-platform-id = 清空
config.plist ▸ Devices ▸ FakeID ▸ IntelGFX = 清空
下载相关
如果你还不确定还可以打开 plist 文件查看是否显示为 NO
禁用 Clover 中 Apci 的以下 DSDT 补丁
config.plist ▸ Devices ▸ Arbitrary
config.plist ▸ Devices ▸ Properties
config.plist ▸ Devices ▸ AddProperties
AddHDMI
FixDisplay
FixIntelGfx
AddIMEI
FixHDA
关闭 DSDT 补丁
关闭 DSDT 补丁
关闭 Clover 中 Devices 的 UseIntelHDMI
关闭 UseIntelHDMI
删除引导参数:-disablegfxfirmware
删除引导参数
删除以下位置所有的和 IGPU、HDMI 相关条目(一般来说清空就行了):
config.plist ▸ Devices ▸ Arbitrary
config.plist ▸ Devices ▸ Properties
config.plist ▸ Devices ▸ AddProperties
删除 IGPU
删除或禁用以下 ACPI 重命名补丁: GFX0 to IGPU, PEGP to GFX0, HECI to IMEI, MEI to IMEI, HDAS to HDEF, B0D3 to HDAU
禁用 Acpi 补丁
若以上都做完了,恭喜你完成了清理工作,可以来进行驱动工作了!
2
重头戏
核显驱动
-
添加 Lilu + WhateverGreen 驱动
下载 Lilu 和 WhateverGreen驱动,选择 release 版本,解压并将.kext 文件置于 Clover 的 kexts/Other 文件夹中
若你想要查看调试输出信息,请选择两者的的 debug 版本
获取 IGPU 的设备路径
下载并使用 gfxutil工具,将 gfxutil 文件解压至桌面,打开终端输入如下代码:
cd Desktop
./gfxutil -f IGPU
DevicePath = PciRoot(0x0)/Pci(0x2,0x0)
其中 DevicePath 后面显示的 PciRoot(0x0)/Pci(0x2,0x0) 就是 IGPU 的设备路径
ig-platform-id(核心步骤)
我们需要制定正确的 Framebuffer,一组正确的正确的 FB 应当正确地包含了可用的输出端口以及该核显的其他属性,所以我们需要注入属性。
打开 config.plist,并在 Device 中的 Properties 添加以下内容:
AAPL,ig-platform-id 或 AAPL,snb-platform-id(仅适用于 Sandy Bridge 微架构)
设备 IGPU 的 device-id(需要仿冒时)
设备 IMEI 的 device-id(需要仿冒时)
部分补丁设定(必要时)
注意逗号区分中英文!!!
上述属性应使用十六进制代码表示,并且需要 两两一组 倒序 输入,
如 0x0A260006 应该用 0600260A 表示
很多人问倒序怎么倒的,这里画个图解释一下
0x 指 16 进制,在这咱可以不管,提取出后面的 0A260006,
两两一组 0A 26 00 06 过程如下图所示,最终得到 0600260A
下面分别提供了适用于不同微架构的常用 IGPU 和 IMEI 属性模版。
Xcode
如果某个属性不是必需的,请完全删除掉;如果某个 PciRoot 位置不存在,也请彻底删除!
选择一个适合的 FB。首先试试推荐值,如果失败,则逐个尝试其他值。在寻找合适的 FB 时,可以临时通过启动参数设置,此时 Properties 部分中的 FB 设置将被忽略。如: igfxframe=0x0166000B
启动参数设置 igfxframe
注意!此处格式与 Properties 部分的格式不同,这里应正序 输入并保留 0x 前缀,如上例所示。
如未指定 FB,将会使用默认值;
如未设定 FB 并且存在独立显卡,将使用一组空 FB。
HD 2000/3000(Sandy Bridge 微架构,下文简称 SNB)
支持 macOS 10.7 至 10.13.6,本文适用于 10.8 到 10.13.6。在旧版本系统上请使用传统驱动方式。从 macOS 10.14 起,HD 2000/3000 已经不再支持。
此方法无法开启 Metal。
SNB 微架构可用的 FB 列表:(点击此处以展开)
推荐的 FB 配置:
0x00030010(桌面版,缺省值)
0x00010000(移动版,缺省值)
通常 SNB 平台无需指定 FB,与 board-id 相对应的一组 FB 将会被自动使用。不过,在使用不基于 SNB 平台的 SMBios 时,则需指定 FB。(如使用 HD 3000 + 基于 Ivy Bridge 平台的 MacBookPro9,1 时,则需指定 FB)
注意!为 SNB 平台指定 FB 时,属性名应为 AAPL,snb-platform-id,这与其他平台不同。
对于桌面版,需设定(仿冒)device-id 为 26010000。
在基于 7 系列芯片组 的主板上使用基于 SNB 微架构的处理器时(如在 Z77 芯片组上使用基于 SNB 微架构的 i7-2600 时),需设定(仿冒)IMEI 的 device-ID 为 3A1C0000。
HD 2500/4000(Ivy Bridge 微架构,下文简称 Ivy)
支持 macOS 10.8 或更新版本。
Capri (Ivy) 可用的 FB 列表:(点击此处以展开)
推荐的 FB 设置:
0x0166000A(桌面版,缺省值)
0x01620005(桌面版)
0x01660003(移动版,缺省值)
0x01660009(移动版)
0x01660004(移动版)
在基于 6 系列芯片组 的主板上使用基于 Ivy 微架构的处理器时(如在 Z68 芯片组上使用基于 Ivy 微架构的 i7-3770 时),需设定(仿冒)IMEI 的 device-ID 为 3A1E0000。
Intel HD Graphics 4200-5200(Haswell 微架构)
支持 macOS 10.9 或更新版本。
Azul (Haswell) 可用的 FB 列表:(点击此处以展开)
推荐的 FB 设置:
0x0D220003(桌面版,缺省值)
0x0A160000(移动版,缺省值)
0x0A260005(移动版,推荐)
0x0A260006(移动版,推荐)
对于 桌面版 HD 4400 以及所有移动版核显,需设定(仿冒)IGPU 的 device-id 为 12040000。
HD 5300-6300(Broadwell 微架构,下文简称 BDW)
支持 macOS 10.10.2 或更新版本。
BDW 平台可用的 FB 列表:(点击此处以展开)
推荐的 FB 设置:
0x16220007(桌面版,缺省值)
0x16260006(移动版,缺省值)。
HD 510-580(Skylake 微架构,下文简称 SKL)
支持 macOS 10.11.4 或更新版本。
SKL 平台可用的 FB 列表:(点击此处以展开)
推荐的 FB 设置:
0x19120000(桌面版,缺省值)
0x19160000(移动版,缺省值)
HD 610-650(Kaby Lake 微架构,下文简称 KBL)
支持 macOS 10.12.6 或更新版本。
KBL 平台可用的 FB 列表:(点击此处以展开)
推荐的 FB 设置:
0x59160000(桌面版,缺省值)
0x59120000(桌面版,推荐)
0x591B0000(移动版,缺省值)
对于 UHD 620 (Kaby Lake Refresh需设定(仿冒)IGPU 的 device-id 为 16590000
UHD 630(Coffee Lake 微架构,下文简称 CFL)
支持 macOS 10.14 或更新版本。
CFL 平台可用的 FB 列表:(点击此处以展开)
推荐的 FB 设置:
0x3EA50000(桌面版,缺省值)
0x3E9B0007(桌面版,推荐)
0x3EA50009(移动版,缺省值)
注意:使用第九代 Coffee Lake R 处理器时,需设定(仿冒)IGPU 的 device-id 为 923E0000。(如下所示)
从 macOS Mojave 10.14.4 起,无需再设定此参数!
使用 WEG 自定义 FB 和端口补丁
一般来说 WhateverGreen 会自动完成大部分工作,不需要任何额外的 Framebuffer 补丁。
当出现以下情况可能需要使用额外的 Framebuffer 补丁:
在 BIOS 中无法设置超过 32M 的 DVMT(framebuffer-stolenmem /framebuffer-fbmem)
为 4K 屏设定更大的 VRAM(-unifiedmem)
禁用独显 (disable-external-gpu)
启用支持 4k 的像素时钟补丁(enable-hdmi20)
禁用连接器以启用睡眠(framebuffer-pipecount /framebuffer-portcount/framebuffer-conX-type = -1)
更改连接器类型以匹配您的系统端口(framebuffer-conX-type)
等等
WEG 支持的自定义补丁列表
语义补丁:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | framebuffer-patch-enable (启用语义补丁的总开关) framebuffer-framebufferid (要修改的 FB,一般保持默认即可) framebuffer-mobile framebuffer-pipecount framebuffer-portcount framebuffer-memorycount framebuffer-stolenmem(给BIOS中DVMT增加内存大小): framebuffer-fbmem framebuffer-unifiedmem (核显显存大小,调大一点可能能解决花屏) framebuffer-cursormem (Haswell 专用补丁) framebuffer-flags framebuffer-camellia (集成显示控制器,仅与白苹果相关) framebuffer-conX-enable (启用端口为 X 的修改) framebuffer-conX-index framebuffer-conX-busid framebuffer-conX-pipe framebuffer-conX-type framebuffer-conX-flags framebuffer-conX-alldata (完全替换端口信息) framebuffer-conX-YYYYYYYY-alldata (在当前 FB 与 YYYYYY 匹配时完全替换端口信息) X 是端口索引。 |
二进制补丁:
1 2 3 4 5 6 | framebuffer-patchN-enable (启用第 N 项补丁) framebuffer-patchN-framebufferid (要修改的 FB,一般保持默认即可) framebuffer-patchN-find framebuffer-patchN-replace framebuffer-patchN-count (要搜索的补丁号迭代数,默认为 1) N 为补丁索引号: 0, 1, 2, ... 9 |
部分补丁解释:
再次重申,所有 DATA 数据类型需要将数据两两一组倒过来填入,例如:0x16260006 转换之后就是这样 06002616 填入
当设置内存大小时,你可能想知道 DATA 是怎么计算出来的。用 framebuffer-fbmem 参数举例,当需要设置为 48M 之后它应填入的值是:00000003,这个也是转换后的值,所以原来的值应当是 03000000,这是一个 16 进制的数字,转换成 10 进制是 50331648。我们知道 1M=1024KB,1KB = 1024B,所以,我们把转换成十进制之后的数字 50331648 除以 1024 然后再除以 1024,得出的结果就是 48 了,所以这串数字代表的就是 48M。
点击这里前往进制转换网页
AAPL,ig-platform-id(设备平台 id,直接影响显卡是否能成功驱动): 举例一些常用笔记本的核显 id(均为 DATA 数据类型)
HD4600~HD5200:0x0A260000 或 0x0A2E0008
HD5300~HD6000:0x16260006
HD630:0x3E9B0000
device-id(设备 id,可能是能让黑苹果正确显示设备信息,直接使用无需倒序):
HD4600~HD5200:12040000
HD5300~HD6000:16160000
HD630:3e9b0000
具体的 AAPL,ig-platform-id 和 device-id 的使用设置查看前文
framebuffer-patch-enable(是否启用 framebuffer 补丁,当然启用啊,不启用的话这篇文章还有什么用处):
DATA 数据:01000000-> 1(启用) 00000000 -> 0(不启用)
NUMBER 数据:0(不启用) 1(启用)
framebuffer-stolenmem(给 BIOS 中 DVMT 添加一点内存大小,会影响高分屏,这个值必须大于 32M,也不应该过高):
一般 1080P 屏幕的话,设置为 48M 就够用了:00003001
当你的笔记本电脑屏幕是 2k,你可以设置为 64M:00000004
4K 屏的话,要设置为 128M:00000008
如果你的 BIOS 中可以设置 DVMT 的话并且你设置成为 128M 之后,可以不需要设置这个属性,或者这个属性设置小一点:00003001 保险起见,高分屏直接设置成 128M 比较稳,并且保证在 BIOS 能设置 DVMT 的情况下设置在 64M 或以下 (PS:这一部分可能有误,但是最后一句保险起见,高分屏直接设置成 128M 比较稳是试验过的)
framebuffer-unifiedmem(核显显存大小,调大一点可能能解决花屏):
2048M:00000080
3072M:000000C0
framebuffer-cursormem(翻译成中文就是光标内存,会影响高分屏,比如高分屏花屏可能就是这个值不够大):
一般屏幕设置成 9M 大小就好:00009000
高分屏的话最好直接设置成 48M:00000003
framebuffer-fbmem(framebuffer 内存大小,会影响高分屏):
一般屏幕设置成 9M 大小就好:00009000
高分屏的话最好直接设置成 48M:00000003
framebuffer-conN-enable(N 为数字,显卡第 N 个输出接口是否启用,1 为启用,0 为不启用):
DATA 数据:01000000 -> 1(启用) 00000000 -> 0(不启用)
NUMBER 数据:0(不启用) 1(启用)
framebuffer-conN-type(N 为数字,显卡第 N 个输出接口的类型):
HDMI 输出:00080000
DP 输出:0004000
framebuffer-conN-index(个人理解,显卡第 N 个输出接口的优先级,或者说是设置第 N 个输出口的位置): 这个按个人需要设置,如果需要屏蔽这个输出口,可以设置成 FFFFFFFF,也就是最大的数字,让它足够靠后,这样就达到了屏蔽效果!
HDMI 高分屏 60 fps 方案
为核显添加 enable-hdmi20 属性,或使用 -cdfon 启动参数代替,否则将会黑屏。
所需工具下载
公众号回复 Intel核显 即可
好了,Intel核显驱动教程就到这里了!咱们明天再见吧
——The End——

文章有用点这里
