使用WhateverGreen对英特尔® 核芯显卡Framebuffer进行修补

36次阅读
没有评论

目录

  • 准备工作
    • 删​​除
    • 关闭 Clover 中的所有图形注入
    • 禁用 Clover 对 DSDT 的修复
    • 禁用 UseIntelHDMI 
    • 删除引导参数
    • 从以下位置删除所有 IGPU 和 HDMI 条目
    • 从以下位置删除任何与 IGPU 和 HDMI 相关的 SSDT 和 DSDT
    • 重命名 GFX0 – > IGPU
  • 编译 Lilu + WhateverGreen
    • 编译有问题?
  • 获取 IGPU 的设备路径
  • ig-platform-id
    • 我应该为我的系统使用什么 ig-platform-id?
    • 例子
  • 仿冒因特尔 CPU 代数
  • 以下是一些推荐的帧缓冲框架
    • 第 2 代:Sandy Bridge(英特尔高清显卡 2000/3000)
    • 第 3 代:Ivy Bridge(英特尔高清显卡 2500/4000)
    • 第 4 代:Haswell(英特尔高清显卡 4200-5200)
    • 第 5 代:Broadwell(英特尔)高清显卡 5300-6300)
    • 第 6 代:Skylake(英特尔高清显卡 510-580)
    • 第 7 代:Kaby Lake(英特尔高清显卡 610-650)
    • 第 8 代:Coffee Lake(Intel UHD Graphics 630)
  • 给缓冲帧打补丁
    • 您可能需要额外缓冲帧补丁的一些原因
    • 帧缓冲区修补类型
      • 1。任意(推荐)
      • 2. 所有数据
      • 3. 查找 / 替换
  • 一些示例补丁
    • 以下是 All Data 方法的示例
    • 以下是查找 / 替换方法的示例
  • 帧缓冲转储
  • 调试输出

使用 Clover 中的 KextsToPatch  在 Mojave  的二进制修补帧缓冲区中进行 帧缓冲修补 不再是Mojave for Skylake 及以上版本的可行方法。现在你需要使用Lilu + WhateverGreen

不只是对于 Mojave
这种帧缓冲修补方法不仅是 Mojave 所必需的,我们还推荐它用于所有以前和未来的 macOS 版本。

Coffee Lake 用户
请注意,新的 WhateverGreen 不适用于仿冒 Kaby Lake 平台 ID。你需要有 macOS 10.14 Beta 4(18A336e)或更新版或 macOS High Sierra 10.13.6(17G2112))。后者是一种特殊版本,仅适用于 MacBookPro15,1 或 MacBookPro15,2 主板 ID。您可以通过运行 installinstallmacos.py 来创建 macOS High Sierra 10.13.6(17G2112)安装程序。(更新:vit9696 增加了仿冒 Kaby Lake 平台 ID 的能力)Lilu + WhateverGreen WhateverGreen 将取代 Lilu 的所有其他视频补丁插件(它目前已经合并了 WhateverGreen,IntelGraphicsFixup,NvidiaGraphicsFixup,Shiki 和 CoreDisplayFixup)。其他人可能会遵循(例如 AppleALC,HibernationFixup 和 IntelGraphicsDVMTFixup)。这旨在成为视频的一体化解决方案。

准备工作

删​​除以下驱动

  •  – FakePCIID_Intel_HD_Graphics
  • – IntelGraphicsFixup
  • – NvidiaGraphicsFixup
  • – CoreDisplayFixup
  • – Shiki

关闭 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 =

使用 WhateverGreen 对英特尔® 核芯显卡 Framebuffer 进行修补

禁用 Clover 对 DSDT 的修复

  • – AddHDMI
  • – FixDisplay
  • – FixIntelGfx
  • – AddIMEI

禁用 UseIntelHDMI 

使用 WhateverGreen 对英特尔® 核芯显卡 Framebuffer 进行修补

删除引导参数

  • -disablegfxfirmware 

从以下位置删除所有 IGPU 和 HDMI 条目

  • – config.plist/Devices/Arbitrary
  • – config.plist/Devices/Properties
  • – config.plist/Devices/AddProperties

从以下位置删除任何与 IGPU 和 HDMI 相关的 SSDT 和 DSDT

  • – CLOVER/ACPI/patched

重命名 GFX0 – > IGPU

  • – WhateverGreen 将自动执行此操作(请参阅下面的警告)
  • – 你应该意识到 WhateverGreen 不重命名 GFX0 的所有实例 – > IGPU,但在大多数情况下应该没问题
  • – 您可能需要包含 Clover GFX0 – > IGPU 重命名用于其他需要它的 kexts 或 ACPI 修补

编译 Lilu + WhateverGreen

下载 WhateverGreen。在编译之前,请确保将 Lilu 的调试版本放入 WhateverGreen 的根目录中。将 Lilu 和 WhateverGreen kext 安装到通常的位置。如果要查看调试输出,请将 WhateverGreen 编译为 debug。

编译问题

如果您在编译时遇到问题,可以下载正式版本二进制文件或下载我的(不支持的)build_lilu.shshell 脚本并在文件夹中运行它以自动下载和构建 Lilu + WhateverGreen 使用 Xcode。我建议您首先尝试调试版本(将它们放入 Clover 的 EFI / Clover / kexts / Other 文件夹中)。

获取 IGPU 的设备路径

下载并使用 gfxutil 工具,如下所示:

$ ./gfxutil -f IGPU DevicePath = PciRoot(0x0)/Pci(0x2,0x0)

ig-platform-id

对于AAPL,ig-platform-id(AAPL,Sandy Bridge 的 snb-platform-id)条目 Clover 要求此值为数据格式,因此您需要反转字节。因此,如果您希望您的 platform-id 为 0x3EA50009,请首先反转字节(0900A53E),然后使用 Xcode 的 plist 编辑器将值添加到 Clover 的 config.plist 中。

使用 WhateverGreen 对英特尔® 核芯显卡 Framebuffer 进行修补

我应该为我的系统使用什么 ig-platform-id?

您应该选择与您的系统最匹配的一个。我建议你在选择之前先做一些研究。有关可用选项,请参阅第 2 篇文章。

您可以通过连字符后的第一个数字来确定 CPU 的生成。

例子

  • – Intel(R) Core(TM) i5-2760QM (Gen 2)
  • – Intel(R) Core(TM) i7-5257U CPU @ 2.70GHz (Gen 5)
  • – Intel(R) Core(TM) m3-6Y30 (Gen 6)
  • – Intel(R) Core(TM) i5-8350U (Gen 8)

仿冒因特尔 CPU 代数

如果需要欺骗不同 Intel 的 CPU 代可以使用 lilucpu = N 启动标志。N 指的是以下英特尔代:

4    Sandy Bridge 5    Ivy Bridge 6    Haswell 7    Broadwell 8    Skylake 9    Kaby Lake 10    Coffee Lake

要欺骗 CPU,您需要在设备 / 属性中的 GPU 条目中为相应的英特尔生成设置有效的设备 ID。

例如。欺骗 Skylake(lilucpu = 8 引导标志,设备 ID = 0x16190000),Kaby Lake(lilucpu = 9 引导标志,设备 ID = 0x12590000)。

以下是一些推荐的 帧缓冲框架

第 2 代:Sandy Bridge(英特尔高清显卡 2000/3000)

  • – S/L/E/AppleIntelSNBGraphicsFB.kext
  • – 支持从 10.7.x 到 10.13.6 的系统
  • – metal 不可用
  • – 设备 ID: 0x0102 0x0106 0x010A 0x0112 0x0116 0x0122 0x0126
  • – AAPL,snb-platform-id (台式机): 0x00030010 (预设值)
  • – AAPL,snb-platform-id (笔记本): 0x00010000 (预设值)

第 3 代:Ivy Bridge(英特尔高清显卡 2500/4000)

  • – S/L/E/AppleIntelFramebufferCapri.kext
  • – 从 10.8.x 开始支持
  • – 设备 ID: 0x0152 0x0156 0x0162 0x0166
  • – AAPL,ig-platform-id (台式机): 0x0166000A (预设值), 0x01620005
  • – AAPL,ig-platform-id (笔记本): 0x01660003 (预设值), 0x01660009, 0x01660004

第 4 代:Haswell(英特尔高清显卡 4200-5200)

  • – S/L/E/AppleIntelFramebufferAzul.kext
  • – 从 10.9.x 开始支持
  • – 设备 ID: 0x0D26 0x0A26 0x0A2E 0x0D22 0x0412
  • – AAPL,ig-platform-id (台式机): 0x0D220003 (预设值)
  • – AAPL,ig-platform-id (笔记本): 0x0A160000 (预设值), 0x0A260005 (推荐)

注:0x0A260005 和 0x0A260006 这两个 ID 需要把 cursormemorysize 值修改为 9m,不然会有局部花屏问题,也可以选用 0x0D260007 或 0x0D26000E/0x0D26000F。

第 5 代:Broadwell(英特尔)高清显卡 5300-6300)

  • – S/L/E/AppleIntelBDWGraphicsFramebuffer.kext
  • – 从 10.10.2 开始支持
  • – 设备 ID: 0x0BD1 0x0BD2 0x0BD3 0x1606 0x160E 0x1616 0x161E 0x1626 0x1622 0x1612 0x162B
  • – AAPL,ig-platform-id (台式机): 0x16220007 (预设值)
  • – AAPL,ig-platform-id (笔记本): 0x16260006 (预设值)

第 6 代:Skylake(英特尔高清显卡 510-580)

  • – S/L/E/AppleIntelSKLGraphicsFramebuffer.kext
  • – 从 10.11.4 开始支持
  • – 设备 ID: 0x1916 0x191E 0x1926 0x1927 0x1912 0x1932 0x1902 0x1917 0x193B 0x191B
  • – AAPL,ig-platform-id (台式机): 0x19120000 (预设值)
  • – AAPL,ig-platform-id (笔记本): 0x19160000 (预设值)

第 7 代:Kaby Lake(英特尔高清显卡 610-650)

  • – S/L/E/AppleIntelKBLGraphicsFramebuffer.kext
  • – 从 10.12.6 开始支持
  • – 设备 ID: 0x5912 0x5916 0x591B 0x591C 0x591E 0x5926 0x5927 0x5923 0x87C0
  • – AAPL,ig-platform-id (台式机): 0x59160000 (预设值)
  • – AAPL,ig-platform-id (笔记本): 0x591B0000 (预设值)

第 8 代:Coffee Lake(Intel UHD Graphics 630)

  • – S/L/E/AppleIntelCFLGraphicsFramebuffer.kext
  • – 从 10.13.6(17G2112)和 10.14 beta4(18A336e)版本开始支持
  • – 设备 ID: 0x3E9B 0x3EA5 0x3E92 0x3E91
  • – AAPL,ig-platform-id (台式机): 0x3EA50000 (预设值), 0x3E9B0007 (推荐)
  • – AAPL,ig-platform-id (笔记本): 0x3EA50009 (预设值)

给缓冲帧打补丁

WhateverGreen 为您自动完成大部分工作,在大多数情况下您不需要任何额外的 Framebuffer 补丁。至少你应该选择一个 ig-platform-id 适用于您的系统并将其放在 config.plist / Devices / Properties 中, 如下所示:

使用 WhateverGreen 对英特尔® 核芯显卡 Framebuffer 进行修补

您可能需要额外缓冲帧补丁的一些原因

  • – 为那些无法在 BISO 中设置超过 32 MB 的人设置 DVMT(framebuffer-stolenmem / framebuffer-fbmem)
  • – 为遇到图形故障的 4K 用户设置更高的 VRAM(帧缓冲)-unifiedmem)
  • – 禁用 eGPU(disable-external-gpu)
  • – 启用 4K 支持的像素时钟补丁(enable-hdmi20)
  • – 禁用连接器以启用睡眠(framebuffer-pipecount / framebuffer-portcount / framebuffer-conX-type = -1)
  • – 删除 <10.13.6 上的 eDP 笔记本电脑屏幕的 CNConnectorAlwaysConnected 标志(framebuffer-con0-flags = 0x00000090)
  • – 更改连接器类型以匹配您的系统端口(framebuffer-conX-type)

帧缓冲区修补类型

我们有三种不同类型的补丁:

1。任意(推荐)

framebuffer-patch-enable (以下补丁的总开关) framebuffer-framebufferid (可选; 默认为当前平台 ID) (以下补丁皆为可选) framebuffer-mobile(mobile 值)framebuffer-pipecount(管道值)framebuffer-portcount(输出端口数)framebuffer-memorycount(memory 值)framebuffer-stolenmem(stolenmen 值,dvmt 补丁之一)framebuffer-fbmem(fbmem 值,dvmt 补丁之一)framebuffer-unifiedmem(核显最大动态显存值)framebuffer-cursormem (cursormemorysize 值,Haswell 核显专用) framebuffer-camellia(camellia 值)framebuffer-flags(标志位)framebuffer-conX-enable (conX 端口的补丁开关) framebuffer-conX-index(conX 端口的索引值)framebuffer-conX-busid(conX 端口的总线 ID)framebuffer-conX-pipe(conX 端口的管道值)framebuffer-conX-type(conX 端口的端口类型)framebuffer-conX-flags(conX 端口的标志位)

注:conX 的 X 可以是 0,1,2,3

2. 所有数据

framebuffer-conX-enable (conX 端口的补丁开关) framebuffer-conX-alldata(conX 端口的补丁数据)

3. 查找 / 替换

framebuffer-patchX-enable (补丁 X 的开关) framebuffer-patchX-framebufferid (可选; 默认为当前平台 ID) framebuffer-patchX-find(补丁 X 要查找匹配的数据)framebuffer-patchX-replace(补丁 X 要替换的数据)framebuffer-patchX-count (可选; 默认为 1)

您应该将补丁放在 Clover config.plist  中的 config.plist / Devices / Properties 中。

一些示例补丁

  • – 32MB BISO,19MB 被盗(帧缓冲)9MB fbmem(光标)2048MB unifiedmem(vram)

使用 WhateverGreen 对英特尔® 核芯显卡 Framebuffer 进行修补

  • – 管道 / 端口数 3 至 2 
  • – 连接器 1 DP 至 HDMI 
  • – 连接器 2 禁用

使用 WhateverGreen 对英特尔® 核芯显卡 Framebuffer 进行修补

以下是 All Data 方法的示例

使用 WhateverGreen 对英特尔® 核芯显卡 Framebuffer 进行修补

以下是查找 / 替换方法的示例

使用 WhateverGreen 对英特尔® 核芯显卡 Framebuffer 进行修补

帧缓冲转储

有两种方法可以转储帧缓冲区数据(两者都需要 WhateverGreen + Lilu 调试版本):

1. 使用 -igfxdump 引导标志将 IGPU 帧缓冲区 kext 转储到 / AppleIntelFramebuffer_X_Y(启动驱动器的根目录)

有几种方法可以读取它转储:

  • – 使用 010 Editor 和 IntelFramebuffer.bt 模板
  • – 使用 Hackintool 文件 – >打开菜单

2. 使用 -igfxfbdump 引导标志将本机和修补的 framebuffer 表转储到 ioreg ISOervice:/ IOResources / WhateverGreen 

有几种方式读取此转储:

  • – 使用 dump_platformlist.shshell 脚本
  • – 使用 Hackintool 文件 – >导入 – > IOReg 转储菜单

3. 使用 Hackintool Framebuffer-> macOS 10.14 菜单

调试输出

要从 Lilu 获取调试输出,请使用 -liludbgall liludump = 60 启动标志。您将需要编译 Lilu 和 WhateverGreen 作为调试,以使这两个标志起作用。日志文件应位于/ var / log / Lilu_ *

要查看调试,请将以下内容粘贴到终端(weglog.txt 将输出到您的主目录):

log show --predicate 'process =="kernel"AND (eventMessage CONTAINS"WhateverGreen"OR eventMessage CONTAINS"Lilu")' --style syslog --source --last boot >weglog.txt

使用 WhateverGreen 对英特尔® 核芯显卡 Framebuffer 进行修补

使用 WhateverGreen 对英特尔® 核芯显卡 Framebuffer 进行修补

正文完
 0
liveob
版权声明:本站原创文章,由 liveob 于2024-09-12发表,共计7094字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码
版权说明

本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。

Copyright udbi.net 蜀ICP备16009809号-13
 Theme by Puock