黑苹果SSDT修正关机/重启问题

news/2024/11/18 2:36:26/

前言

黑苹果进入十代酷睿搭 400 系主板时代后,某些机型上(部分 Z390 和 B460)的 macOS 可能会遇到一个奇怪的问题,就是关机时,电脑可能会变成自动重启,或卡在壁纸界面(开了 -v 跑码的卡在跑码界面)。

这是因为 ACPI 中缺少 S5 调用而导致控制器无法断电。当然,Windows 和 Linux 都有各自的黑科技来解决这个问题,但 macOS 没有内置此类修复(不是因为苹果傲娇,而是它的自家产品没有这个问题)。这个现象在 Clover 中并不常见,因为 Clover 内置了很多隐藏的自动应用的热补丁,再加上非常方便的各类 ACPI 开关,修复也比较方便。

但是 OpenCore 并没有内置这些东西,所以我们需要做一些本来应该是主板厂家工程师的工作,修复他们留在 ACPI 里的 Bug 导致的问题。

「注意」因为 SSDT 编辑有门槛,需要一定的编程基础知识和 ACPI 知识,本文只做思路分享,不做新手式教学。

需要的软件

  • DPCIManager.app
  • MaciASL.app
  • OpenCore Configurator:用于修改 OC 的配置文件,不喜欢 OCC 的话下面几个也可以
    • OCAuxiliaryTools
    • ProperTree
    • Visual Studio Code

查找设备并添加到 SSDT

使用 DPCIManager 提取你的 DSDT.aml 文件,然后使用 MaciASL 打开,搜索其中 _PRW 相关内容,因为这个方法(Method)是 Power Resources for Wake 的关系,可能有非常多的结果。查看其中有没有提到 XHC、XHCI 和 XHC1 之类的设备,例如 SB.PCI0.XHC 。

然后,打开 MaciASL,新建文件,添加以下代码:

DefinitionBlock ("", "SSDT", 2, "HeiPG", "ZPTS", 0x00000000)
{External (_SB_.PCI0.XHC_.PMEE, FieldUnitObj)External (ZPTS, MethodObj)    // 1 ArgumentsMethod (_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep{ZPTS (Arg0)If ((0x05 == Arg0)){\_SB.PCI0.XHC.PMEE = Zero}}
}

解释:基本意思就是当 ZPTS 的 Arg0 被赋值为 0x05 时(S5 状态),让 SB.PCI0.XHC 这个设备变成 0(就是没有了)。其中 SB.PCI0.XHC 是设备位置,这个需要根据你自己的情况自行确定。完成后,用 MaciASL 导出编译后的 aml 文件,添加到 EFI 目录和 config 文件中,并启用。

更进一步,再添加一个系统判断以及操作范围,就更加稳妥了。

DefinitionBlock ("", "SSDT", 2, "hack", "SHUT", 0x00000000)
{External (_SB_.PCI0.XHC_.PMEE, FieldUnitObj)External (ZPTS, MethodObj)    // 1 ArgumentsMethod (_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep{ZPTS (Arg0)If (_OSI ("Darwin")){If ((0x05 == Arg0)){If (CondRefOf (\_SB.PCI0.XHC.PMEE)){\_SB.PCI0.XHC.PMEE = Zero}OperationRegion (PMRS, SystemIO, 0x1830, One)Field (PMRS, ByteAcc, NoLock, Preserve){,   4, SLPE,   1}SLPE = ZeroSleep (0x10)}}Else{}}
}

「注意」这个补丁还需要搭配 ACPI 重命名,将方法 _PTS 重命名为 ZPTS,否则无效(因为原本没有 ZPTS)。

重命名补丁可以通过 OCC 等编辑工具快捷添加到 OpenCore 的 config 中,记得把 Enabled 勾上。

代码如下:

Find: 5F505453 01
Replace: 5A505453 01
Comment: Change _PTS to ZPTS

尾声

不想自己弄的懒人,可以直接下载下面整理好的文件包,其中 .dsl 是源文件,.aml 是 OpenCore 可以直接使用的,已经写好了各类常见的 XHC 名称,但 ACPI 重命名补丁还是要自己加的。不保证一定可以解决你的问题,因为每台电脑的 DSDT 都是不一样的。


http://www.ppmy.cn/news/230379.html

相关文章

vue 3 第三十二章:状态管理(Pinia状态持久化)

Pinia 的状态持久化 在实际开发中,我们通常需要对状态进行持久化或缓存,以便在应用程序重新加载或离线时仍然能够访问数据。在 Pinia 中,我们可以使用插件来实现状态的持久化和数据缓存。 Pinia 提供了一个名为pinia-plugin-persist的插件&…

黑苹果安装常见问题汇总

安装完进入系统后显示显存7MB,非常卡顿? 多半是核显没有正确驱动,解决方法是定制Framebuffer信息,驱动核显。 我修改了config.plist文件后进不去系统了,怎么办? 首先,对config.plist做任何修…

为什么需要黑苹果(hackintosh)

简单的来讲,苹果的产品线可以分为基于IOS ARM的移动触屏设备和基于Mac OS Intel X86的电脑设备,无疑苹果移动设备的成功帮助苹果坐实了世界市值最高的公司,相比之下其个人电脑产品因与微软具有极高的市场占有率的Windows产品并不能很好的兼…

使用黑苹果的一些软件

这里是我日常使用黑苹果收集的一些软件 下载地址:https://pan.baidu.com/s/1fz5qFnbH3zgv1yg7KLuKkw 密码:6vpu 键盘映射软件,能把ALt修改为cmd(专治小米游戏本少颗win键的键盘),还能修改F功能键,如增减音量、切换歌…

安装黑苹果常见问题总结

黑苹果字体模糊? 由于macOS使用了HiDPi技术以达到更高的每英寸像素率,即缩放,因此普通显示器只要不是4k分辨率,安装黑苹果后一定会遇到字体模糊的问题,解决方法可以阅读我往期发布的文章。 为什么用iStat Menus无法检…

黑苹果系统发热与续航

黑苹果系统发热与续航 黑苹果系统的安装,最难的在EFI文件的配置上,EFI配置完成后,95%的功能可以实现,剩下的就留给白苹果了,世界上没有完美的黑苹果,只有极限无限趋近于白苹果的黑苹果。 注:本…

苹果紧急修复两个已遭利用的 0day,影响 iPhone 和 Mac设备

聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 苹果发布紧急安全更新,修复了被用于攻陷 iPhone、Mac 和 iPad 的两个0day 漏洞。 苹果公司在上周五发布的安全公告中指出,“苹果收到关于该漏洞可能已遭活跃利用的一…

奔腾cpu可以安装黑苹果吗_黑苹果是什么?黑苹果对硬件有什么要求?

对于黑苹果,很多小伙伴想知道黑苹果对硬件有哪些要求,那么黑苹果对硬件有什么要求?小伙伴们是不是还不是很清楚呢?下面小编就给大家分享一下,希望对大家有帮助哦~ 黑苹果硬件要求详细介绍 一、CPU 笔记本:因…