11代黑苹果显卡驱动的可能性

原链接:可能会被墙

最近不折腾美化了,折腾黑苹果去了,在国内大佬的帮助下,我只有显卡未驱动了

我的CPU为:i7-1165G7 GPU是集显

以下是论坛的具体内容

你好。🙂

我最近直接用 Xcode 修改了 WhateverGreen 源代码,并尝试了几件事。
而且,哦,我的上帝!🫢


最后,我成功地在英特尔锐炬 Xe iGPU 上加载了 ICLLP 帧缓冲。
此外,在系统信息中,iGPU 的 VRAM 被识别为 1536MB。✨
因此,我写这个话题是为了分享这方面的信息。

但是,仍然存在一些问题,请参阅本主题的底部。

 

image.png.f98e298eca48e058e5df44bbb37645a3.png

 

image.thumb.png.65eef4afc8ebcadeb5c43ccaee014391.png

 

启动完成后,笔记本电脑的内置显示屏会变成黑屏。
值得庆幸的是,我能够使用 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

 

image.thumb.png.cf296c60b8fa256e356f24560f79ac73.png

 

 

macOS 启动日志

 

image.thumb.jpeg.39a518b810282f6fffccbf94ed2e9cf0.jpeg

<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 内核崩溃。

 

image.thumb.jpeg.1eb5d9c6eb497e8934190fc6da5b03b6.jpeg

 

在 macOS Big Sur 11.x 及更高版本中,启动会在加载与图形卡相关的驱动程序时停止。
(也许发生了不受支持的 ICL SKU 内核崩溃,但它不会在屏幕上显示为日志。

 

 

macOS 系统日志

 

image.png.2ca5c1a74282256182db0f8548822c1c.png

image.thumb.png.2daa55162234eaa7a01308a1051d7fc3.png

image.thumb.png.088a57739fbd94ec752f2308a5272d8c.png

 

并且,日志“[IGFB][ERROR][DISPLAY ] FB1: is not enenabled”从某个时间开始无限期地继续显示。
有关其他日志,请参阅下面随附的系统日志文件。

系统日志 - Iris Xe iGPU.txt不能利用的

 

 

观察 IOReg 转储

 

-igfxcdc 引导参数工作正常,并且解决了不支持的 CD 时钟频率内核崩溃,因此 ICLLP 帧缓冲已加载到 IGPU 设备上。

 

image.thumb.png.6915ff7db949670131aca5aa05760d0b.png

 

但是,与其他 Ice Lake 笔记本电脑的 IOReg 相比,IGPU 设备下不存在 IntelAccelerator 项目。
也许,这是因为 Metal 加速不起作用,因为上面提到的 -allow3d 引导参数没有应用。

 

另外,IOReg 也有些奇怪。

  1. 笔记本电脑的内置显示屏被识别为 AppleDisplay,而不是 AppleBacklightDisplay。
  2. 它连接到 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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值