原链接:可能会被墙
最近不折腾美化了,折腾黑苹果去了,在国内大佬的帮助下,我只有显卡未驱动了
我的CPU为:i7-1165G7 GPU是集显
以下是论坛的具体内容
你好。🙂
我最近直接用 Xcode 修改了 WhateverGreen 源代码,并尝试了几件事。
而且,哦,我的上帝!🫢
最后,我成功地在英特尔锐炬 Xe iGPU 上加载了 ICLLP 帧缓冲。
此外,在系统信息中,iGPU 的 VRAM 被识别为 1536MB。✨
因此,我写这个话题是为了分享这方面的信息。
但是,仍然存在一些问题,请参阅本主题的底部。
启动完成后,笔记本电脑的内置显示屏会变成黑屏。
值得庆幸的是,我能够使用 macOS 的屏幕共享功能通过同一网络上的另一台 macOS Hackintosh 计算机捕获屏幕截图、转储 IOReg 等。
对 WhateverGreen 源代码的修改
使用 Xcode 从 WhateverGreen 的源代码修改的文件如下。
- kern_igfx.cpp
在 Switch 语句中,指定英特尔第 11 代 Tiger Lake 的 ICLLP 帧缓冲区与 Ice Lake 相同,并将 modDVMTCalcFix.available 值设置为 True。
<span style="background-color:#fafcfc"><span style="color:#4a4a4a"> <span style="color:#000088">case</span> <span style="color:#660066">CPUInfo</span><span style="color:#666600">::</span><span style="color:#660066">CpuGeneration</span><span style="color:#666600">::</span><span style="color:#660066">IceLake</span><span style="color:#666600">:</span><span style="color:#000000">
supportsGuCFirmware </span><span style="color:#666600">=</span> <span style="color:#000088">true</span><span style="color:#666600">;</span><span style="color:#000000">
currentGraphics </span><span style="color:#666600">=</span> <span style="color:#666600">&</span><span style="color:#000000">kextIntelICL</span><span style="color:#666600">;</span><span style="color:#000000">
currentFramebuffer </span><span style="color:#666600">=</span> <span style="color:#666600">&</span><span style="color:#000000">kextIntelICLLPFb</span><span style="color:#666600">;</span><span style="color:#000000">
currentFramebufferOpt </span><span style="color:#666600">=</span> <span style="color:#666600">&</span><span style="color:#000000">kextIntelICLHPFb</span><span style="color:#666600">;</span><span style="color:#000000">
modDVMTCalcFix</span><span style="color:#666600">.</span><span style="color:#000000">available </span><span style="color:#666600">=</span> <span style="color:#000088">true</span><span style="color:#666600">;</span>
<span style="color:#000088">break</span><span style="color:#666600">;</span>
<span style="color:#000088">case</span> <span style="color:#660066">CPUInfo</span><span style="color:#666600">::</span><span style="color:#660066">CpuGeneration</span><span style="color:#666600">::</span><span style="color:#660066">TigerLake</span><span style="color:#666600">:</span><span style="color:#000000">
supportsGuCFirmware </span><span style="color:#666600">=</span> <span style="color:#000088">true</span><span style="color:#666600">;</span><span style="color:#000000">
currentGraphics </span><span style="color:#666600">=</span> <span style="color:#666600">&</span><span style="color:#000000">kextIntelICL</span><span style="color:#666600">;</span><span style="color:#000000">
currentFramebuffer </span><span style="color:#666600">=</span> <span style="color:#666600">&</span><span style="color:#000000">kextIntelICLLPFb</span><span style="color:#666600">;</span><span style="color:#000000">
currentFramebufferOpt </span><span style="color:#666600">=</span> <span style="color:#666600">&</span><span style="color:#000000">kextIntelICLHPFb</span><span style="color:#666600">;</span><span style="color:#000000">
modDVMTCalcFix</span><span style="color:#666600">.</span><span style="color:#000000">available </span><span style="color:#666600">=</span> <span style="color:#000088">true</span><span style="color:#666600">;</span>
<span style="color:#000088">break</span><span style="color:#666600">;</span></span></span>
https://github.com/lshbluesky/WhateverGreen/commit/a091c30109209265245b9bd2f85f38bcf6e9e158
- kern_model.cpp
将值0x9A49与英特尔第 11 代 Tiger Lake Core i5-1135G7 CPU 的 Intel Iris Xe iGPU 的设备 ID 相对应。
<span style="background-color:#fafcfc"><span style="color:#4a4a4a"> <span style="color:#666600">{</span> <span style="color:#006666">0x8A51</span><span style="color:#666600">,</span> <span style="color:#006666">0x0000</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Plus Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#666600">{</span> <span style="color:#006666">0x8A52</span><span style="color:#666600">,</span> <span style="color:#006666">0x0000</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Plus Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#666600">{</span> <span style="color:#006666">0x8A53</span><span style="color:#666600">,</span> <span style="color:#006666">0x0000</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Plus Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#666600">{</span> <span style="color:#006666">0x8A5A</span><span style="color:#666600">,</span> <span style="color:#006666">0x0000</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Plus Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#666600">{</span> <span style="color:#006666">0x8A5C</span><span style="color:#666600">,</span> <span style="color:#006666">0x0000</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Plus Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#880000">// Reserved/unused/generic Ice Lake },</span>
<span style="color:#666600">{</span> <span style="color:#006666">0x9A49</span><span style="color:#666600">,</span> <span style="color:#006666">0x8A52</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Xe Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#666600">{</span> <span style="color:#006666">0x9A40</span><span style="color:#666600">,</span> <span style="color:#006666">0x8A52</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Xe Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#666600">{</span> <span style="color:#006666">0x9A60</span><span style="color:#666600">,</span> <span style="color:#006666">0x8A5A</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Xe Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#666600">{</span> <span style="color:#006666">0x9A68</span><span style="color:#666600">,</span> <span style="color:#006666">0x8A5A</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Xe Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#666600">{</span> <span style="color:#006666">0x9A70</span><span style="color:#666600">,</span> <span style="color:#006666">0x8A5A</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Xe Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#666600">{</span> <span style="color:#006666">0x9A78</span><span style="color:#666600">,</span> <span style="color:#006666">0x8A5A</span><span style="color:#666600">,</span> <span style="color:#008800">"Intel Iris Xe Graphics"</span> <span style="color:#666600">},</span>
<span style="color:#880000">// Reserved/unused/generic Tiger Lake },</span>
<span style="color:#666600">};</span></span></span>
https://github.com/lshbluesky/WhateverGreen/commit/f757d2866abc1559bab750948b4ea667c5eb89fb
https://github.com/lshbluesky/WhateverGreen/commit/0119aa85860271370f914935b38082fed117760d
此外,我在 Acidanthera 的官方 GitHub 上分叉了 WhateverGreen 存储库,修改了上面的源代码,并上传了我自己构建的 WhateverGreen.kext 的调试版本。
如果你需要它或想使用它,你可以从下面的我的GitHub网站下载它。
https://github.com/lshbluesky/WhateverGreen/releases
macOS 启动日志
<span style="background-color:#fafcfc"><span style="color:#4a4a4a"><span style="color:#000000">localhost kernel</span><span style="color:#666600">[</span><span style="color:#006666">0</span><span style="color:#666600">]:</span> <span style="color:#666600">(</span><span style="color:#660066">AppleIntelICLGraphics</span><span style="color:#666600">)</span> <span style="color:#666600">[</span><span style="color:#000000">IGPU</span><span style="color:#666600">]</span> <span style="color:#660066">Failing</span><span style="color:#000000"> probe </span><span style="color:#666600">(-</span><span style="color:#000000">allow3d is NOT </span><span style="color:#660066">set</span><span style="color:#000000"> in boot</span><span style="color:#666600">-</span><span style="color:#000000">arg</span><span style="color:#666600">)!</span></span></span>
“[IGPU] 失败的探测器(-allow3d 未在 boot-arg 中设置)”似乎日志与 Metal 加速有关。
此外,-allow3d 是 AppleIntelICLGraphics.kext 本身的引导参数,而不是 WhateverGreen 中的引导参数。
因此,我尝试添加 -allow3d 引导参数,但在 macOS Catalina 10.15.7 版本中发生了不支持的 ICL Sku 内核崩溃。
在 macOS Big Sur 11.x 及更高版本中,启动会在加载与图形卡相关的驱动程序时停止。
(也许发生了不受支持的 ICL SKU 内核崩溃,但它不会在屏幕上显示为日志。
macOS 系统日志
并且,日志“[IGFB][ERROR][DISPLAY ] FB1: is not enenabled”从某个时间开始无限期地继续显示。
有关其他日志,请参阅下面随附的系统日志文件。
观察 IOReg 转储
-igfxcdc 引导参数工作正常,并且解决了不支持的 CD 时钟频率内核崩溃,因此 ICLLP 帧缓冲已加载到 IGPU 设备上。
但是,与其他 Ice Lake 笔记本电脑的 IOReg 相比,IGPU 设备下不存在 IntelAccelerator 项目。
也许,这是因为 Metal 加速不起作用,因为上面提到的 -allow3d 引导参数没有应用。
另外,IOReg 也有些奇怪。
- 笔记本电脑的内置显示屏被识别为 AppleDisplay,而不是 AppleBacklightDisplay。
- 它连接到 ICLLP Framebuffer 的第二个连接器 (AppleIntelFramebuffer@1),而不是第一个连接器 (AppleIntelFramebuffer@0)。
此外,我在 Linux 中确认了这款笔记本电脑的内置显示连接器是 eDP,而不是 LVDS。
如果您想查看 IOReg,请参阅下面随附的 IOReg 转储文件。
MacBook Pro-TigerLake-shl.ioreg.zip不能利用的
尽管如此,仍然存在的问题
1. 模糊效果不起作用的问题,因为实际的 QE/CI 和 Metal 图形加速不起作用。
应用 -allow3d 引导参数会导致不受支持的 ICL SKU 内核崩溃。
我想我必须找到一种方法来规避这一点。
2.启动完成后,笔记本电脑的内置显示屏变成黑屏。
我尝试使用 -igfxblr、-igfxblt 引导参数,但没有用。
3. 笔记本电脑的内置显示屏被识别为 AppleDisplay 而不是 AppleBacklightDisplay 的问题。
EDID注入和PNLF器件的_UID值无法通过直接将其修改为0x13来解决。
4. 连接到 ICLLP Framebuffer 的第二个连接器 (AppleIntelFramebuffer@1) 而不是第一个连接器 (AppleIntelFramebuffer@0) 时出现问题。
使用“设备属性”中的“连接器修补程序”属性修补连接器未解决问题。
我不确定解决上述问题中的问题 1 是否也能解决剩余的问题 2、3 和 4。
如果我能通过绕过不受支持的 ICL SKU 内核恐慌来解决问题 1,我想我将更接近成功。🍀
编辑时间:2023年12月22日 由 shl628