- 积分
- 902
- 最后登录
- 2024-4-19
- 精华
- 0
- 阅读权限
- 40
- 主题
- 258
- UID
- 259057
- 帖子
- 1476
- PB币
- 518
- 威望
- 52
- 贡献
- 0
- 技术
- 1
- 活跃
- 1249
- UID
- 259057
- 帖子
- 1476
- PB币
- 518
- 贡献
- 0
- 技术
- 1
- 活跃
- 1249
|
板凳
发表于 2020-12-30 05:28:57
IP属地英国
|只看该作者
ling6344 发表于 2020-12-30 02:15
看了一下文档。没理解,能做一下说明吗??
文档讲解的很详细,不过我大概说一下我的操作过程便于理解。
问题产生原因:
是由于AppleRTC向BIOS里的的特定区域写入内容,而系统硬件不能正确支持所写入的内容,导致POST错误。
解决方法是找到“坏”的区域,设为禁止AppleRTC写入。
具体在OpenCore下的解决方法如下:
首先下载RTCMemoryFixup.kext,拷贝到OC的Kexts目录,并在config.plist里载入。
其次寻找问题区域。AppleRTC的写入区域在0到255之间(16进制的00-FF)。寻找问题区域具体在哪个位置需要反复启动电脑确认。
以下是我的操作过程
先禁止所有区域写入(00-FF),在启动参数里添加rtcfx_exclude=00-FF
启动参数位置:Config.plist->NVRAM->7C436110-AB2A-4BBB-A880-FE41995C9F82->boot-args
添加参数后,重启电脑使设置生效。再次启动,POST错误消失,明问题启动的POST错误是由于这个问题产生。下面进一步查找问题区域的所在位置。
刚才设置中,00-FF所有区域都设置为禁止写入,下一步是进一步缩小问题区域。,在此采取二分法:
把00-FF分为两部分,00-80和80-FF。
修改启动参数:rtcfx_exclude=00-80,重启电脑使参数生效后再次启动电脑,POST错误消失,说明问题区域在00-80区间。(否则问题区域在80-FF之间。)
刚才启动参数设为rtcfx_exclude=00-80后,问题消失,确定问题区域在此区间。继续把这个区域二分为00-40和40-80,启动参数修改为rtcfx_exclude=00-40.第一次启动使参数生效,第二次启动发现POST错误。以此判断错误区域在40-80之间。
和上面类似,每次修改参数后都启动两次,查看错误情况。如下:
继续二分:
40-60 & 60-80
启动参数修改为rtcfx_exclude=40-60,POST问题消失,问题区域在此区间
继续二分:
40-50 & 50-60
启动参数修改为rtcfx_exclude=40-50,POST问题出现,问题区域在50-60区间
继续二分:
50-58 & 58-60
启动参数修改为rtcfx_exclude=50-58,POST问题出现,问题区域在58-60区间
继续二分:
分为两组58 59 5A 5B 5C 和 5C 5D 5E 5F 60
启动参数修改为rtcfx_exclude=58-5C,POST问题消失,问题区域在58-5C区间
至此确认错误区域在58 59 5A 5B 5C。(当然还可以再进一步检查这五个里面具体是某几个,但似乎没有必要了。)
最后修改config.plist
1. 删除boot-args中 rtcfx_exclude部分,这个参数仅用于之前查找问题区域,现在问题区域找到,不再需要。
2. NVRAM->Add->4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102->rtc-blacklist下面添加参数58595A5B5C
3. NVRAM->Delete-> 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102->0下添加rtc-blacklist
以上是我的操作过程,OC文档介绍的更详细,建议阅读。
|
|