黑苹果睡眠自己突然醒来?或者睡了立马就醒?

您所在的位置:网站首页 黑苹果唤醒后屏幕不亮 黑苹果睡眠自己突然醒来?或者睡了立马就醒?

黑苹果睡眠自己突然醒来?或者睡了立马就醒?

2024-07-13 21:24| 来源: 网络整理| 查看: 265

注意:本教程需要您定制好USB,以及原生电源管理,请配合视频使用

文章了参考xjn等大佬的内容

所需要的软件我已经放在这个网盘里了,如果你比较懒,直接从这里下载,以后我做这类教程,需要的软件等我都会放在这个链接里

https://share.weiyun.com/uPLQfZFI

Part1

     所需的软件以及东西:

   

玩黑苹果的都懂吧

https://github.com/headkaze/Hackintool

编辑ACPI文件的,玩黑苹果的应该也知道

https://github.com/acidanthera/MaciASL

opencore的config编辑工具

https://github.com/ic005k/QtOpenCoreConfig

       其实这里也可以用 opencore config 也可以。这个软件Windows,mac,甚至Linux都可以用,当然大佬用propertree之类的我也不拦着,这个也自带一些通用的EFI配置,很好用。看这个视频播放情况吧,有时间的话我可能会单独介绍一下这个软件

OC-little的包:

https://github.com/daliansky/OC-little

国内访问慢的也可以去gitee下载,这个可能需要注册账号

https://gitee.com/BI4PWI/oc-little2

Part2 ACPI表的提取(如果有就跳过)

         这个方法需要到windows下进行操作

参考自https://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1544506&highlight=

涉及到的指令:

下载网站:

https://www.acpica.org/

Part 3 判断睡眠唤醒的原因,以及以我的机子为例的睡眠问题解决的两种方法

什么是_PRW?

- `_PRW` 定义了一个部件的唤醒方法。其 `Return` 2 个或者 2 个以上字节组成的数据包。有关 `_PRW` 详细的内容参见 ACPI 规范。

- 有这么一些部件,由于他们的 `_PRW` 和 macOS 发生了冲突从而导致机器刚刚睡眠成功就被立即唤醒。为了解决问题,必须对这些部件实施补丁。这些部件 `_PRW` 数据包的第 1 个字节是 `0D` 或者 `6D`。因此,这种补丁被称为 `0D/6D补丁`,也叫`秒醒补丁`,也叫`睡了即醒补丁`。为了描述方便,以下统一称之为 `0D/6D补丁`。

- `_PRW` 数据包的第 2 个字节多为 `03` 或者 `04`,将这个字节修正为 `0` 即完成了 `0D/6D补丁`。

- 不同的机器对 `_PRW` 定义的方法可能不同,其数据包的内容、形式也可能多样化。实际的 `0D/6D补丁` 应视具体情况而定。见后文的描述。

- 我们期待 OpenCore 后续版本能够解决 `0D/6D` 问题。

引用自readme的内容

↑看不懂也没关系,跟着我的视频来就可以了

确定什么部件导致的唤醒

终端里输入下面的命令,这个表示的是显示最近一天的睡眠的唤醒原因

你可能会看到类似以下的内容:

EHC1,EHC2,XHC这些三个部件一般是usb设备(我视频里录的时候可能没说),你要确定哪个USB部件是没有用的你可以打开hackintool来确定这个问题

在我的USB接口,只有XHC是有用的

我想保留键盘能唤醒电脑的这个功能,那么XHC的_PRW部件就不能修改,但EHC1,EHC2在我的电脑上是没有任何接口的,所以得修改

GLAN一般是你的有线网卡

CNVW(CNVI网卡),你的主板得有

HDEF 音频 等等

一般除了USB得特殊看一眼以外,其他的都需要按教程让_PRW失效(具体请看视频)

注:Part4的方法仅适用于method类型(大多数电脑应该都是这种类型),其他的请按照oclittle里面的readme.md的内容进行睡眠唤醒问题的修复

Part4-方法一(参考自使用 OpenCore 引导黑苹果 - Xjn's Blog (xjn819.com))

个人认为这个要比方法二好一点,因为方法二只能用电源键唤醒。

1.打开DSDT,确定要填写的内容

这里就是一个还没全部翻译好的 oc 版改名 xhc 的 prw。那么如何定位 xhc 下的 _prw 呢,主要是填写 Count 和 Skip。其实 oc 的 tgtbridge 是通过一个个数过去来定位具体哪一个位置的。比如xhc的prw是整张dsdt里面的第55个,那 skip 填 54,意味着跳过前 54 个,从第 55 个开始执行。那执行多少次呢?执行一次 count 就填 1;比如你要同时改第 55 个和 56 个,那 count 就填 2。

引用自xjn大佬的博客

多读几遍,挺好理解

2.需要在在OC-ACPI-PATCH添加的内容:

3.清理日志,重启电脑,观察睡眠是否不再醒了,如果没有,再来一遍步骤1~2

Part4-方法二

直接把相应的ACPI文件导进去,在OC-ACPI-PATCH添加一些内容:

find和replace这里UPRW的机子看一下dsl文件开头的注释,你们需要改一下find和replace的值,其余不用动,值在如图的黑框部分,打开SSDT-UPRW.dsl就能看到,和我视频一样的GPRW的那些人,不用管这部分,直接照抄上表就行

SSDT-UPRW

然后重启就行,没什么可说的,理论上你的机子除了电源键,任何方式都唤醒不了了

感谢收看,喜欢的话,给我的视频来个三联吧!免费的赞也可以!谢谢!你的支持对我很重要!视频部分地方由于录制原因可能有喷麦,声音大小不一样等问题,下次注意。

视频BV号:BV1B34y127Cf



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3