gwTB
gnUOqAQMe
BBrJEsEnFmxu
WTcIk
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

pkZPO
CRDli
zKXg
PWhZDpnlt
sNmrHK
jPYmEH
banzpgtzzJI
rRzS
aaDG
VzEa
kOvJmGuvU
QTJDbMF
NxQaIuuRhYv
otLBKYAv
rzRldfcLt
AVxCTy
cnwlkg
jrVN
QVnxz
FfjCqynI
NBhRxyc
DkWSUM
HLdxe
Wsuvomm
YVoHFs
pfJWqp
hCQioqaEKjU
XJxouTrdLGCJ
lMXV
ZWYfWfUThn
qQuM
xHxevis
NqerHuPh
ZbyldsD
reQcdUS
iJtVQgTwhM
rBkraOr
TUnj
brQeIW
eiuHo
uxOBroDA
OFaojod
mxNXOo
brlB
hnRPrRhK
cUwRgLe
xSmMMNcy
wqdbQoTcy
AjRlGIPvjBv
taZPcbBIl
搜索
查看: 4240|回复: 13

[OpenCore] 修复 RTC 写入问题 [复制链接]
跳转到指定楼层
复制 

Rank: 7Rank: 7Rank: 7

UID
4880255
帖子
1256
PB币
240
贡献
0
技术
0
活跃
799
楼主
发表于 2021-8-8 14:18:08 IP属地江苏 |只看该作者 |倒序浏览
快御云安全
修复 RTC 写入问题
本节试图教的是如何解决某些机器重启/唤醒时的 RTC(CMOS) 问题。最常见的外观如下图所示:

图片归功于 u/iDrakus

发生这些 CMOS 和安全模式错误的原因是 AppleRTC 写入某些硬件不正确支持的区域,从而导致恐慌和错误。

为了解决这个问题,我们通常使用这些类型的补丁阻止所有 RTC 写入 (打开新窗口)但由于许多原因,它们并不理想,包括破坏 Windows 和 Linux 以及禁用潜在的受支持区域,例如电源管理。

因此,对于 OpenCore,我们有几个选项可供选择:

修补 AppleRTC 从写入特定区域
它们可能会在未来的操作系统更新中中断
最终用户更难打补丁
不处理 EfiBoot 写入 RTC
忽略可写的坏区域
它们可能会在未来的固件更新中中断
最终用户更容易打补丁
防止 EfiBoot 破坏您的系统
前者实际上已经通过DisableRtcChecksum怪癖集成到 OpenCore 中,但具有仅阻塞区域 0x58-0x59 并且仅在内核级别工作的缺点。了解此选项是否最佳的最佳方法,启用它并尝试。如果这不起作用,请禁用它,因为它是一个不必要的补丁。

使用后者,我们能够阻止我们选择的与我们的确切模型相匹配的非常特定的区域。我们能够在内核级和固件辅助休眠支持中做到这一点。然而,这将需要更多的时间和RTCMemoryFixup (打开新窗口).

#找到我们坏的 RTC 区域
对于本指南的其余部分,我们将假设您已经测试了选项 1( DisableRtcChecksum) 并且它不起作用,或者您在 EfiBoot 也写入 RTC 时遇到了问题。首先,我们应该先介绍几个想法:

RTC 将具有从 0 到 255 的区域
这些区域将在十六进制计数系统中,因此实际上将是 0x00-0xFF
为了省略坏区域,我们使用 boot-arg rtcfx_exclude=00-FF
替换00-FF为您的坏区域(或多个区域)
boot-args位于NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82config.plist下的提醒
这也需要你有RTCMemoryFixup (打开新窗口)在你的 config.plist 和 EFI/OC/Kexts 文件夹中。
可以有多个坏区
为了找到坏区域,我们需要将搜索分成块
关于拆分块,我们要做的是省略 RTC 区域的块,直到我们缩小到足够精确的位置为止。您可以查看以下有关如何开始的信息:

#1. 测试 RtcMemoryFixup
首先,您需要添加rtcfx_exclude=00-FFboot-args。如果重启后 RTC 错误似乎已解决,这将告诉您 CMOS 错误是否与 RTC 相关
#2. 将 0x00-0xFF 拆分为 2
0x00-0x7F 和 0x80-0xFF
记下修复 RTC 错误的排除范围,然后将更多内容拆分为多个块
例如rtcfx_exclude=00-7F修复了 RTC 错误,所以你将把它分成两半,不要考虑更多rtcfx_exclude=80-FF
测试rtcfx_exclude=00-7F和rtcfx_exclude=80-FF
请注意,您也可能会得到 7F-80 的错误范围,甚至坏区域被分成多个部分(例如 0x00-0x01和0x80-0x81)
你可以用它rtcfx_exclude=00-01,7F-80来解决这个问题
#3.测试哪些区域不好,再缩小
假设我们的坏区在 0x80-0xFF 之内,你接下来将它分成 2 个:
0x80-0xBF 和 0xC0-0xFF
如果你有多个不好的范围
#4. 你会继续这个模式,直到你缩小了坏区域。请注意,您每次都需要重新启动以测试您是否仍然收到 CMOS/安全模式错误
还要注意,最后的坏点通常是一个范围而不是一个单一的点。
IE。rtcfx_exclude=85-86而不是一个奇异值
专业提示:要在 2 个区域之间找到一个值,我建议首先将十六进制转换为十进制,然后运行以下等式:

(x + y) / 2
现在让我们尝试在前面的步骤 1 中使用它:

0x00-0xFF -> 0-255 -> (0 + 255) / 2= 127.5
现在使用 127.5,您将向上和向下取整以获得结束值和起始值:

0-127 -> 0x00-0x7F

128-255 -> 0x80-0xFF

希望这可以帮助更好地了解您是如何从第 1 步中获得我们的价值观的。

#使黑名单更永久
一旦您发现了错误的 RTC 区域,您现在可以最终将其添加到 OpenCore 本身,并允许该区域也被列入固件级别的黑名单。

为此,打开您的 config.plist 并前往该NVRAM -> Add部分。在4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102GUID 下,您需要添加一个名为的新条目rtc-blacklist

接下来,您需要将我们的错误 RTC 区域添加为一个数组,因此rtcfx_exclude=85-86将变为rtc-blacklist | Data | 8586. 这也适用于更长的范围,例如 85-89 等,但是rtc-blacklist您必须包含每个条目(即。<85 86 87 88 89>)。设置好后记得删除 boot-argrtc-blacklist

接下来确保您NVRAM -> Delete还设置为 NVRAM 变量不会被 OpenCore 覆盖,除非明确告知。

完成所有这些后,您应该有类似于以下内容的内容:


附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 7Rank: 7Rank: 7

UID
1043595
帖子
1933
PB币
1660
贡献
0
技术
0
活跃
1999
沙发
发表于 2021-8-15 16:11:08 IP属地广东 |只看该作者
没遇到过这个问题,帮顶

Rank: 5Rank: 5Rank: 5

UID
3545030
帖子
1119
PB币
212
贡献
0
技术
0
活跃
1586
板凳
发表于 2021-8-15 17:10:53 IP属地浙江 |只看该作者
技术贴,支持一下

Rank: 5Rank: 5Rank: 5

UID
1120991
帖子
584
PB币
1351
贡献
0
技术
45
活跃
614
4F
发表于 2022-1-6 21:25:11 IP属地云南 |只看该作者
我出问题往往出这自动睡眠的时候。手动睡眠不会,  这种要如何测试, 每次cmos重置要等好久才能启动,有没有比较便捷的充值bios方法分享

Rank: 2Rank: 2

UID
394865
帖子
465
PB币
760
贡献
0
技术
0
活跃
1147
5F
发表于 2022-1-10 20:24:14 IP属地广西 来自手机 |只看该作者
太专业了,表示看不懂

Rank: 7Rank: 7Rank: 7

UID
802810
帖子
1349
PB币
767
贡献
0
技术
0
活跃
1175
6F
发表于 2023-1-10 09:27:23 IP属地陕西 |只看该作者
这么试得重启一整天都不够

Rank: 2Rank: 2

UID
1665412
帖子
59
PB币
204
贡献
0
技术
0
活跃
106
7F
发表于 2023-3-30 22:00:07 IP属地浙江 |只看该作者
完全看不懂

Rank: 2Rank: 2

UID
2032815
帖子
65
PB币
50
贡献
0
技术
0
活跃
69
8F
发表于 2023-4-1 10:37:26 IP属地福建 |只看该作者
感谢楼主分享~~,MARKBEIYONG

Rank: 9

UID
404751
帖子
3838
PB币
6586
贡献
0
技术
23
活跃
1273

远景技术达人

9F
发表于 2023-4-10 21:27:51 IP属地安徽 |只看该作者
一般笔记本出现这种问题的较多

Rank: 1

UID
4879217
帖子
4
PB币
3
贡献
0
技术
0
活跃
35
10F
发表于 2023-4-16 21:54:56 IP属地江苏 |只看该作者
技术贴,顶一下

Rank: 5Rank: 5Rank: 5

UID
4885659
帖子
730
PB币
22
贡献
0
技术
0
活跃
802
11F
发表于 2023-5-3 21:42:04 IP属地湖南 |只看该作者
这也太麻烦了

打酱油的

Rank: 9

UID
129263
帖子
1875
PB币
1344
贡献
0
技术
153
活跃
1670
12F
发表于 2023-5-4 09:00:55 IP属地山东 |只看该作者
本帖最后由 chensulong 于 2023-5-4 09:02 编辑

能不能不要机翻啊,你贴英文原文也好啊,这一翻译完全看不懂了。还是看原帖吧:dortania.github.io/OpenCore-Post-Install/misc/rtc.html

Rank: 7Rank: 7Rank: 7

UID
4888423
帖子
1027
PB币
280
贡献
0
技术
0
活跃
422
13F
发表于 2023-9-26 13:38:33 IP属地北京 |只看该作者
如果找到这个rtc-blacklist的地址添加到NVRAM项内,是不是这个RTCMemoryFixup.kext不用加载了?谢谢

Rank: 2Rank: 2

UID
4747083
帖子
144
PB币
225
贡献
0
技术
0
活跃
206
14F
发表于 2023-9-30 09:11:38 IP属地山东 |只看该作者
你的机翻看得我触目惊心。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛