驱动英特尔核显,让黑苹果流畅运行「OpenCore专门篇」

概述

最后修改:2021/8/26,本文仅介绍 OpenCore 的操作方法,Clover 请移步旧文「驱动英特尔核显,让黑苹果流畅运行

随着各种数字币价格持续走高(本文发布时),很多 黑苹果er 经不住矿老板开的高价诱惑卖掉了手里的独立显卡,核显就成为了唯一的显示设备;也有新手想入坑黑苹果,原来搭配的却是 NVIDIA 无法驱动的型号,只能使用核显;对笔记本用户来说,绝大部分型号只能使用核显,无法驱动独显;根据苹果机型的工作原理,核显在 iMac 机型中对随航/硬件解码等功能起了直接甚至决定性的影响。

因此,黑苹果驱动核显对使用体验的提升起到举足轻重的作用。本文接下来会以问题排查的思路,逐步加码讲解驱动核显遇到的问题和解决方法。

文中标注了「注意」的部分都是坑,注意认真看。

 

情况确认

白苹果中在默认情况下,各机型核显的配置和工作情况如下:

  • 核显是唯一的显示输出
    • 常见于在没有独显的 Mac Mini,MacBook Air,13寸 MacBook Pro 和 iMac
  • 核显仅用于驱动内置显示器,而独显处理外部显示器
    • 常见于 15寸/16寸 MacBook Pro
  • 核显仅用于内部计算,而独显处理所有显示输出
    • 常见于包含独显的 iMac
  • 官方没有核显的机型
    • iMacPro 和 Mac Pro

苹果在 macOS 内置的核显驱动中限定了支持的核显型号和具体配置情况。这样的设计决定了很多情况,包括支持的显示器的数量,允许的显示器类型,这些显示器的位置,所需的最小 VRAM 等,因此当你的硬件配置和白苹果的越接近,问题越少,体验越好。苹果究竟用过哪些硬件,参考 SMBIOS ID 机型选择。和免驱独立显卡不同,缓冲帧补丁(Framebuffer Patching)一般情况下不会自动给你打上,即便你的硬件和白苹果一模一样。

由于 EFI 配置文件不具备普适性,所以黑苹果系统安装完成后,很多情况下会出现核显无法识别,或没有显存。虽然现在已有 WhateverGreen 这样的“显卡驱动”(实际上是针对显卡的补丁集)可以方便的打缓冲帧补丁,但是很多人不是很明白具体如何操作。如果你的关于本机显示下面的情况,那么你的核显没有正常驱动。

具体就是“图形卡”部分显示 核显型号 + 7MB,或者直接显示 Display + 7MB,并且在 Hackintool 中 CPU 架构一项显示三个问号 ??? 。这种情况是 100% 没有驱动核显的。

正常驱动的核显,应该是下面这样的:

「注意」

  • 笔者至今没见过 奔腾/赛扬/锐龙 的核显正确驱动的案例,如果你是这类情况建议更换处理器;
  • 酷睿处理器名字中带“F”后缀的型号没有核显,没有核显,没有核显,例如 9400F/9900KF/10400F,这是物理上就不带核显这个东西,不必继续往下看了。

核显基本驱动流程如下:

确定核显型号 → 寻找缓冲帧信息 → 在 config 中注入对应信息 → 重启验证

 

前期准备

确认了有问题,下一步就是要解决,需要准备一些必要的文件和 OpenCore 配置工具。

已有371906次阅读

我们需要修改 OC 配置文件,指的是修改 /EFI/OC/ 目录下的 config.plist 文件,这是 OpenCore 的核心配置文件。考虑到目前已经有各式各类的工具可配置 OpenCore,这里提供多种工具和方法,选择其中之一即可:

  • OpenCore Configurator:简称 OCC,和开发 Clover 配置工具的是同一个团队,优点是拥有逻辑清晰的图形界面,操作比较直观;缺点是只有 macOS 版本,并且偶尔会出现污染配置文件的情况,使用前注意备份;
  • OCAuxiliaryTools:OpenCore 配置工具中的后起之秀,优点是拥有跨平台客户端,支持 Windows、macOS 和 Linux,拥有图形界面,操作比较直观;缺点是功能排版上稍显凌乱,和 OCC 一样偶尔会出现污染配置文件的情况,使用前注意备份;
  • ProperTree:使用 Python 编写的跨平台 Plist 编辑工具,优点是可跨平台,支持 Windows、macOS 和 Linux(Python),通常情况下不会污染配置文件;缺点是虽然拥有图形界面,但却是一个树状的编辑器,和前两者不是同一个概念,因此操作上没有前二者方便;
  • Visual Studio Code:严格来说这是一个代码编辑器,同类型的还有 Sublime Text,UltraEdit 等,其优点是自由度较高,不会污染配置文件;缺点是没有代码基础知识没法使用,较高的自由度也带来了犯更多错的可能;

一般情况下 EFI 文件夹位于 ESP 分区,需要使用工具或方法才能打开。对于不明白如何挂载 EFI 的,参考其他文章挂载 EFI 分区部分,这里不再赘述。

 

BIOS 设置

要驱动核显,我们还需要对 BIOS 设置进行一些更改,一般情况下笔记本默认激活核显,但可能需要调整 DVMT。大部分台式机都需要改改设置。因各个品牌 BIOS 设置不尽相同,这里不做详细说明,请自己在 BIOS 里查找以下项目:

  • iGPU → Enabled
    • 部分主板此项可能名为 GFX 或 Integrated Graphics 等,实在找不到请百度或上官网查一下用户手册;
    • 部分主板在开启本项保存退出 BIOS 重启再进入 BIOS 后,才会显示下面选项;
  • Multiple Monitor → Enabled
    • 此项主要开启核显多屏幕连接功能,但在部分机型上,没独显仅用核显时需要开启此项才能正常驱动核显;
  • Primary Display IGFX/IGD/PEG/PCIE → Auto
    • 如果同时存在独显和核显,使用 Auto,如果仅用核显选择 IGFX/IGD,仅用独显选择 PCIE/PEG
  • DVMT Total Memory Size → MAX
  • DVMT Pre-Allocated → 64M/96M/128M/256M
    • 以上 DVMT 两项在大部分机型的 BIOS 里只存在其中一个;
    • DVMT 不需要太高,但建议不要低于 64M,「注意」如果 BIOS 没有此项请注意看下文(完善型驱动部分)说明

 

捷径型驱动方法

Hackintool 堪称黑苹果界的瑞士军刀,它可以帮助你轻松生成缓冲帧补丁。对于新手和“我不想了解那么多”的人来说,直接使用这个软件生成缓冲帧补丁即可。

首先下载并运行 Hackintool,然后勾选顶部菜单栏中的:

  • 缓冲帧 → macOS 10.14(根据你实际情况选择,10.15 及以上同样勾选 10.14 )
  • 应用补丁 → 应用当前补丁

可以在第一个页面下方选择 CPU 架构和对应的 平台 ID,不要选错。

  • CPU 架构怎么选?小白请看举例:i9-9900KF,i9 代表的是分级,第一个 9 代表是第九代酷睿,也就是 Coffee Lake 家族,900 指的是性能等级,后缀 K 代表不锁倍频,F 代表没有核显(你的 CPU 如果带 F 后缀可以不用继续往下看了,你的 CPU 没有核显)英特尔 CPU 详细信息查询官网 Ark 数据库
  • 关于平台 ID:对于桌面端处理器有独显的情况,应选择“无端口”(Headless)的缓冲帧;如果是没有独显,单独使用核显,选择桌面端有端口的缓冲帧;笔记本机型由于独显基本无法驱动,因此首选笔记本默认推荐的缓冲帧,如有问题再尝试其他。这个部分可参考本文最末尾 Framebuffer 参考信息

接下来使用 Hackintool 生成需要的补丁,切换到 应用补丁 选项卡,勾选设备属性,图形卡:

切换至 高级 选项卡,根据自身需求决定选项,看图操作:

生成补丁后,需要点击菜单 → 文件 → 导出 → 引导工具 config.plist

可以直接选择你的 /EFI/OC/config.plist 文件,直接覆盖。Hackintool 会自动备份你原有的 config 文件(建议是手动备份),把补丁内容合并到新的 config 中。

如果此方法未能解决你的问题,建议继续往下看,详细了解 WhateverGreen.kext 对核显打补丁的方法和原理。

 

基本型驱动

如果你处理器是比较新的第八到第十代酷睿(桌面),那么恭喜你,它们内置的 UHD630 是目前最容易驱动的核显型号。在没有独显的情况下,只需要提供一个 AAPL,ig-platform-id 即可,参数解释:

  • AAPL,ig-platform-id,平台设备 ID,DATA 格式,填写时需要按十六进制倒序,例如 UHD630 的其中一个 ID 是 0x3E9B0007,则需要填入 07009B3E
    • 如何倒序?0x 代表的是十六进制,没有实际意义略过。剩下的值两两一组分隔开:3E 9B 00 07,然后按从右到左的顺序重新排列,得到 07 00 9B 3E
    • 「注意」如果是第三代酷睿核显,这个参数要改成 AAPL,snb-platform-id
    • 其它型号的核显的缓冲帧补丁可参阅本文 Framebuffer 参考信息 部分

我们使用 OpenCore Configurator(OCC)打开 config 文件,切换到 DeviceProperties,加入 AAPL,ig-platform-id 信息,见图:

「注意」绝大部分情况下,核显的 Pci 位置就是 PciRoot(0x0)/Pci(0x2,0x0) 。如果你的不是,可通过 gfxutil 来确认。把 gfxutil 工具解压到桌面,然后运行终端(按下 Command + 空格,搜索“终端”)

把 gfxutil 拖入终端,输入以下代码:

/Users/你的用户名/Desktop/gfxutil -f IGPU

复制你得到的信息(红线部分):

红线所标示的就是核显的 Pci 位置,复制到 OCC 中,然后照上面的 OCC 图示添加 APPL,ig-platform-id 信息即可。

第二个需要说明的是 APPL,ig-platform-id 的值,07009B3E 适用于第八代到第十代所有内置的 UHD630 核显,但在某些机器里,07009B3E 可能会造成黑屏,这种情况可以试试 00009B3E 。「注意」这两个 id 要求机型 ID 不低于 iMac19,1,因为从 iMac19,1 和同代机型开始苹果才配备了第八代酷睿,所以这点应该很容易理解。苹果究竟用过哪些硬件,参考 SMBIOS ID 机型选择

以上两个 id 针对只有核显的情形,「注意」如果有独显的情况使用 iMac 机型,希望核显参与硬解码不参与画面输出的,使用下面几个 id:

  • 0300913E、0300983E:适用于第八代-第九代酷睿核显
  • 0300C49B:适用于第十代酷睿,i3 10100-10300
  • 0300C89B:适用于第十代酷睿,i5 10400-10600
  • 0300C59B:适用于第十代酷睿,i7 10700 及以上

对于其他核显型号,可参考本文最下方的 Framebuffer 列表「注意」截止本文发布,第十一代酷睿的 Xe 核显 UHD730/750 还无法被驱动。

 

完善型驱动

如果基本驱动方法无法满足你的需求,又或者默认的 1536MB 显存不够你使,或有卡死/卡顿/无限循环重启等问题,除了尝试更换不同的缓冲帧 ID 外,就是需要对注入的信息做进一步的扩展,这里介绍以下几个由 WhateverGreen(WEG)提供的功能。「注意」绝大部分情况下,有独显核显仅参与计算的情形不需要下面这些参数。

已有371906次阅读

到这一步,应该解决了绝大部分核显驱动相关的问题。最后是几个小提示:

  • 使用 HDMI 接口每次开机/重启都需要重新插拔才能显示的,添加启动参数 igfxonln=1
  • 添加启动参数 -wegnoegpu 也可以禁用独显(针对笔记本机型)
  • device-id 用于仿冒设备 id 从而驱动原本不支持的设备,例如 HD4400 仿冒 HD4600。macOS 的 IOKit 通过检测设备 id 来决定哪些设备可以连接到哪个驱动文件,这些存放驱动的 kext 本身能支持的设备是很多的,但是苹果的 iGPU 驱动里包含的设备 id 是有限的,因此指定 device-id 即可让 IOKit 加载对应的文件驱动设备。因此可以这么做的前提就是存放驱动的 kext 本身能够支持设备,所以给 RTX3090 指定 RX6900XT 的设备 id 是没有用的。仿冒设备 id 原理和方法可以参考「仿冒设备 id 以驱动显卡
  • Ice Lake 需要添加启动参数 -igfxcdc(或 enable-cdclk-frequency-fix 属性)以及 -igfxdvmt(或 enable-dvmt-calc-fix 属性)启动参数避免硬件和设置的问题导致的内核崩溃;
  • WhateverGreen 于 1.4.6 版弃用了 igfxcflbklt=1(和 enable-cfl-backlight-fix 设备属性),这是用于修复屏幕亮度的。如果你的 WEG 升级到 1.4.6 及以上后开机屏幕很暗,使用新的参数 -igfxblr(和 enable-backlight-registers-fix 设备属性)

 

进阶型驱动

上一步其实已经完成了绝大部分驱动核显的内容,如果还有问题,那十之八九和外接屏幕/多屏幕有关。

HDMI 外接屏幕

通常情况下笔记本通过 HDMI 接口外接屏幕可能会遇到无输出或者错位,甚至一插就死机的情况。这是由于苹果强制了显示类型,但这些强制的值和我们的 PC 硬件不匹配。要解决这个问题,需要修改苹果 iGPU 的连接器类型,以匹配我们实际的硬件。情况基本上就是这么个情况,接下来以 UHD630 通过 HDMI 连接为例(紫屏/红屏),来看详细步骤怎么做。

已有371906次阅读

到这一步,应该能解决绝大部分核显外接多屏幕的问题。

 

修正 BusID

如果上面这一切你都做完,外接显示器一插就内核崩溃,那么恭喜你,即将进入最麻烦的领域。这类情况一般以第七代移动端酷睿的核显 HD6xx 最为常见,原因是苹果对输出的 BusID 进行了硬编码,而这个体系与你的硬件不匹配,要解决这个问题,我们要手动修正这些 BusID 以匹配我们的硬件。

已有371906次阅读

如果你认真做到了这里,那么绝大部分核显驱动问题你已经都能够解决。还剩让人头秃的最后一类情况。

 

HDMI 黑屏且没有其它接口

如果无法使用 HDMI 接口进入 macOS,完全黑屏,且手里没有其它接口线缆或显示器没有其它接口,可在 Windows 下使用 OCAuxiliaryTools 或其它编辑器对 config 进行修改。对缓冲帧补丁的修改流程也很简单,就是逐个测试可能性,直到找到可以正确输出画面的设置。

已有371906次阅读

如图所示,只需花点时间按上面所说的操作逻辑,逐个测试即可找到正确的输出设置。

 

Framebuffer 参考信息

「注意」桌面端处理器有独显的情况,应选择“无端口”(Headless)的 Framebuffer;如果是没有独显,使用核显输出画面,选择桌面端有端口的 Framebuffer;笔记本机型由于独显基本无法驱动,因此首选笔记本默认推荐的 Framebuffer,如有问题再尝试其他。

  • Ice Lake 需要添加启动参数 -igfxcdc(或 enable-cdclk-frequency-fix 属性)以及 -igfxdvmt(或 enable-dvmt-calc-fix 属性)启动参数避免硬件和设置的问题导致的内核崩溃;
  • WhateverGreen 于 1.4.6 版弃用了 igfxcflbklt=1(和 enable-cfl-backlight-fix 设备属性),这是用于修复屏幕亮度的。如果你的 WEG 升级到 1.4.6 及以上后开机屏幕很暗,使用新的参数 -igfxblr(和 enable-backlight-registers-fix 设备属性)。

 

 

0. 本站所有资源解压密码均为 heipg.cn
1. 本站资源收集于网络,仅做学习和交流使用,请于下载后24小时内删除。如果你喜欢我们推荐的软件,请购买正版支持作者。
2. 如有无法下载的链接,联系:admin#heipg.cn,或到QQ群进行反馈,我们将及时进行处理。
3. 本站发布的内容若侵犯到您的权益,请联系站长删除,联系方式:admin#heipg.cn,我们将第一时间配合处理!

黑苹果星球 » 驱动英特尔核显,让黑苹果流畅运行「OpenCore专门篇」

39 评论

  1. 教程写得很详细

  2. Monterey 开机,苹果进度条完了之后,黑屏,然后显示器再也无法唤醒,是怎么回事

    1. 重新做下驱动引导,应该是驱动的问题

  3. 显卡是gt335m最高可以使用什么系统

    1. 实在太过古老

  4. 忘记说了MAC OS 是 最新的MONTERY.

    1. 是的,有独显的情况不应该使用07009B3E。试一下加入 device-id | C59B0000 | DATA

  5. 求帮助!!!
    我的B460 MORTAR +I5 10400 +蓝宝石RX5500XT 8G, 使用 IMAC 20,1机型,显示器插 RX5500XT DP接口上。 使用0300C59B 、0300C89B 均无法驱动核显,试了很多个,最后使用 07009B3E 可以驱动,但启动速慢,按理说 我有独显,应该不能用 07009B3E。
    之前 没买RX5500XT 仅用核显时,使用 07009B3E 完美驱动,启动速度正常。

  6. 我这边用的i5 7400的U,使用核显hd630,想要主板使用dp和hdmi多输出,请问需要怎么设置?

    1. 先进bios把multiple monitor或者类似的选项打开
      然后设置缓冲帧就好了

  7. b560m+10500,rx560免驱了,想用核显加速,用了0300C89B缓冲帧,hevc显示加速,h264却没有,这个咋回事,求教大神

    1. 试一试给独显加上AAPL,slot-name

      1. 试了一下,还是没法驱动

        1. 核显去掉那个属性

  8. 500系主板好像驱动不了核显,我b560m-itx+10400没成功,去国外论坛发现大家也有这个问题,只能买了块蓝宝石RX560矿卡了

    1. xe架构核显目前应该是无法完美驱动的

  9. 看补了。。。

  10. 我的comentlake,dp加hdmi就是闪

发表回复