首发!记一次Mac Pro (2019)【MacPro7,1】机型的内存报错现象的完美解决过程和方法
笔者的黑苹果台式机配置:i7-8700 ,技嘉B360M D3H(主板含四个内存插槽),英睿达DDR4 2666 8GB*4,蓝宝石RX570 4GB,三星960 evo NVMe,戴尔P2415Q 4K显示器(DP链接,4K@60Hz)。macOS Catalina 10.15.4 Beta1 (19E224g)单系统,无Windows。自从2019年6月,新Mac Pro机型可用于黑苹果时,活跃的黑友们就跃跃欲试。但是,绝大多数人被“内存不应超过768GB”报错的提示打了下来。笔者不存在强迫症,所以笔者一直在用这个机型(一来自由度比iMac Pro更高一些,二来可以免WhateverGreen)。
笔者在半年以内发布的Catalina的黑苹果dmg,默认config都用的是MacPro7,1机型。这一机型以广泛的兼容性得到了坛友的好评,但是也不乏有吐槽“内存不应超过768GB”报错的。我一边安慰“不要纠结”,一边自己又纠结得要死。
突然,我看到了这篇帖子https://bbs.pcbeta.com/viewthread-1842988-1-1.html,讲到一个可以修复内存报错的MacProMemoryNotificationDisabler.kext。笔者下载了最新Release版,分享如下:
笔者一直无WhateverGreen使用。用上这个修复补丁以后,开机仍旧弹出“内存不应超过768GB”,但是点开后电脑自动重启了。重启后,点开关于本机,又是重启。原来是这家伙依赖于WhateverGreen。
放进WhateverGreen以后,“内存不应超过768GB”提示消失,但是内存仍旧报错——另一种错误:
点“打印推荐”,打印机输出这样一张——
这张纸能说明什么问题?我看了Apple官网上的说明(在Mac Pro正式上市之前,这个说明没有提前挂在官网上)
原来,应当虚拟出一个12槽的环境,把内存安装在3、5、8、10四个虚拟槽里才行。怎么办?愁死了,放弃吧。随手删除了weg和内存补丁。
几小时后,心想,要么再坚持坚持?
说干就干。在Clover里面填写双通道、12插槽:
笔者只有四条8GB内存,并不希望像其他人那样简单粗暴直接把12个虚拟插槽填满,而是希望只填写四个虚拟插槽,并且Vendor Part Serial等信息要分别和原来的四条内存对应(这里就不讲究顺序了,顺序随缘)。
于是,笔者在系统信息里面找到了原来的四条内存的相关数据:
填入Clover Configurator:
还打了个如意算盘,既然虚拟内存插槽编号(即Slot栏)填写时从0开始(类似C语言数组下标从0开始),而“关于本机”中是1开始,那么Apple官方推荐的3、5、8、10,填写时不就对应2、4、7、9吗?然而,理想很丰满,现实很骨感:
怎么回事?填写的2、4、7、9,为什么“关于本机”却显示插了第1、6、7、12槽?不讲道理吧?
再在Slot栏里填0、5、6、11:
关于本机显示2、5、8、11:
我又漫无目的地进行了如下若干实验。篇幅所限,列表阐述,不一一放截图了:
Slot栏里填写“关于本机”里显示 备注
2、4、7、9 1、6、7、12 即上述例子看到的
0、5、6、11 2、5、8、11 即上述例子看到的
2、5、6、11 2、5、7、11
2、5、6、9 1、5、7、11
3、5、6、8 3、5、9、11
0、1、2、3 7、8、9、10
5、6、7、8
3、5、6、11
5、6、9、11 1、2、5、11
1、2、9、10 1、4、7、10
2、3、8、9 1、3、7、9
3、4、7、8 3、6、9、12
0、3、8、11 2、3、8、9
1、3、8、103、4、9、10
3、5、7、9 1、5、6、9
3、5、8、10 3、4、5、9
6、7、8、91、3、6、11
3、5、9、111、2、5、9
4、7、9、101、4、6、12
2、7、9、111、2、6、7
扑朔迷离。Slot里填写的数字,好像和关于本机里面显示的插槽没有简单的顺序关系。难道真是随机分配?算了一下排列组合,C(4,12)=495啊!真的要尝试495遍?但是奇怪的是,我按照列表顺序依次尝试过后,发现Slot里重新再填入2、4、7、9,关于本机仍得1、6、7、12。难道是偶然中的必然?
再挣扎挣扎吧。
Slot栏里填写“关于本机”里显示 备注
【1】0、1、5、6 5、8、10、11猜对了三个数!
【2】 0、1、4、8 3、8、10、12又猜对了三个数!
【3】 0、1、4、76、8、10、12把【2】里面的8换成7,猜对了两个数。说明上面的8不能换
【4】 0、1、3、8 3、8、9、10把【2】里面的4换成3,又猜对了三个数
【5】 0、1、2、83、7、8、10把【4】里面的3换成2,又猜对了三个数!
【6】 0、1、5、8 3、5、8、10把【5】里面的2换成5,全对!
本来事成了,但还是忍不住使用小学奥数中逻辑推理的方法推了一遍(推理过程从略),发现居然有这样的规律:
Slot01234567891011
关于本机810791251163142
注:
(1)前提是同时填写四个内存信息,并且选择12插槽、双通道,否则这个表就不灵了。譬如Slot填写6、7、8、9,如果通道数选了单通道,那关于本机对应的就是3、4、5、6,不是1、2、6、11了。
(2)未测试这张表的对应关系与哪些因素有关,欢迎大家测试(譬如,不同版本的Catalina系统、不同的drivers/UEFI、不同的kexts、不同代代CPU等等,是否影响这张表的对应关系)
===========================
Slot栏填入0、1、5、8后,虽然关于本机显示3、5、8、10了,但是还是提示“内存不应超过768GB”。如图:
然后,放进WhateverGreen和MacProMemoryNotificationDisabler.kext,重启,奇迹出现了,开机没有内存报警了。再点开关于本机,只见——
本帖最后由 aishaoquan 于 2020-2-13 13:48 编辑
补充说明:
Q:这番操作是否影响睡眠唤醒?
A:不影响。
Q:在我的机器上,内存“Slot”与“关于本机”的对照关系与楼主不同。那么我怎么自己探索此关系(要求:探索方法不烧脑,不涉及奥数)?
A:根据楼主实验的结论,Slot与“关于本机”呈现出一对一的严格映射关系,不存在“牵一发而动全身”(当然笔者不可能把代码都扒出来,做“理论上的严格证明”)。所以可以这样尝试:
【1】分别尝试在四个Slot里填写(0、1、2、3)、(0、1、2、4)、(0、1、2、5)、……、(0、1、2、11),这样就知道Slot的 3、4、5、……、11 分别对应“关于本机”里面的什么;
【2】在【1】的基础上,分别尝试(0、9、10、11)、(1、9、10、11)、(2、9、10、11),就可以知道 0、1、2 分别对应什么。
然后,就可以自己制作出“Slot — 关于本机”表了。通过自己的表给自己操作,岂不美滋滋?授人以鱼不如授人以渔。
Q:两条内存怎么办?
A:两条内存请放进 8、10 两个虚拟插槽中。请自己摸索Slot里应该填什么(笔者的机器填 0、1)。
Q:一条内存怎么办?
A:两条内存请放进 8 虚拟插槽中。请自己摸索Slot里应该填什么(笔者的机器填 0 )。
Q:三条(或五条、七条等)内存怎么办?
A:不行,请再买一条内存,按照四条内存来处理。至于五条或七条能不能,请用试差法,随便写Slot,注入5或7条,保存后重启,看看关于本机里面是怎么推荐的。如果没有等条数的推荐,请再买一条内存,凑足偶数条。
Q:DDR3内存怎么办?
A:经测试。Slot与关于本机的对照表,不因为内存是DDR几而转移(也就是说,与内存是DDR、DDR2、DDR3还是DDR4无关)。有图为证:
Q:有四条不同容量的内存条,32GB+16GB+8GB+8GB,怎么处理?
A:采用试差法,把四条内存的Slot分别填为0、1、2、3:
看看内存页面,显然不是全绿。这时候点“打印推荐”,看看系统是怎么推荐的:
怎么推荐就怎么来。系统推荐的是把32GB放在3、16GB放在5、两条8GB放在8、10。根据已知的对应关系:
Slot01234567891011
关于本机810791251163142
32GB的Slot填8、16GB的Slot填5、两条8GB的Slot填0、1。修改如图(保存后,Clover Configurator回自己把Slot的顺序回正,不用自己调顺序):
然后重启,效果如图:
大兄弟牛逼 支持一下原创好贴 牛逼,为什么要选择mac pro7.1啊?选择imac一样的吧 这个要支持!!!! 支持楼主一下 感谢分享,给力 好帖子啊 支持 支持楼主,但是有个疑问,我两根内存条怎么办呢? visitingms 发表于 2020-2-12 23:01 https://www.pcbeta.com/static/image/common/back.gif
支持楼主,但是有个疑问,我两根内存条怎么办呢?
这个嘛,后面再研究吧{:5_264:},事情做完一件算一件 感谢分享,很好的原创。 还有个疑问请教,这样调整会不会对双通道有影响还是这个只是表面文章,实际还是按照主板,bios决定的双通道运作呢,不过楼主牛b,这对强迫症绝对是救命的。 visitingms 发表于 2020-2-12 23:21 https://www.pcbeta.com/static/image/common/back.gif
还有个疑问请教,这样调整会不会对双通道有影响还是这个只是表面文章,实际还是按照主板,bios决定的双通道 ...
这个纯属表面文章。不会对内存的运作有任何影响。 哦,那能看一眼你该好以后关于本机里的内存信息么看看有什么变化不 这个要支持,修改完,完美 钢钢地 顶上顶上 原创帖子,顶一下 生活就是来折腾的