好吧,你会发现这个报警其实什么也不影响但是总是看着就很难受…
内存报警问题的解决思路
这可能是MacPro7,1的唯一问题。系统会在每次开机时弹出来一个内存报警通知。虽然没什么影响,但是如果追求细节还是受不了的…解决方法目前只有两种:
在Big Sur之前的系统,可以通过MacProMemoryNotificationDisabler.kext屏蔽内存警报,或者按照苹果官方内存指导进行内存模拟,详细步骤见下文。
而在Big Sur及以上系统,只能通过模拟内存实现,并且需要模拟出12插槽插满的情况才能避免报警。如果模拟的是未插满的情况,哪怕和苹果官图位置一样,你也会收到一个新的报错:“内存不应超过768GB”,我要是买得起那玩意我还黑苹果…?
内存模拟
如果你是Big Sur以上用户可以不管这张图了。这张图是苹果官方的内存建议,理论上这样才不会报错,但是Big Sur只要不插满就是要报错…
注意,在编辑工具中,插槽位置和编号不一定对应!
上图四种方案实际对应:
4内存
BANK 8 | 3 |
BANK 6 | 5 |
BANK 0 | 8 |
BANK 2 | 10 |
6内存
BANK 10 | 1 |
BANK 8 | 3 |
BANK 6 | 5 |
BANK 0 | 8 |
BANK 2 | 10 |
BANK 4 | 12 |
8内存
BANK 8 | 3 |
BANK 9 | 4 |
BANK 6 | 5 |
BANK 7 | 6 |
BANK 1 | 7 |
BANK 0 | 8 |
BANK 3 | 9 |
BANK 2 | 10 |
10内存
BANK 10 | 1 |
BANK 8 | 3 |
BANK 9 | 4 |
BANK 6 | 5 |
BANK 7 | 6 |
BANK 1 | 7 |
BANK 0 | 8 |
BANK 3 | 9 |
BANK 2 | 10 |
BANK 4 | 12 |
好了,那么该怎么去模拟?很简单,还是要用到老朋友OCC或者OCAT。OCC进入PlatformInfo,OCAT进入Pi,选择自定义内存。OCAT还需要勾选屏幕下方的“CustomMemory”,OCC貌似是会自动勾选的。
接下来,新建12个空的项目,如下填写:
BankLocator | DeviceLocator |
BANK 0 | ChannelF-DIMM0 |
BANK 1 | ChannelF-DIMM1 |
BANK 2 | ChannelE-DIMM0 |
BANK 3 | ChannelE-DIMM1 |
BANK 4 | ChannelD-DIMM0 |
BANK 5 | ChannelD-DIMM1 |
BANK 6 | ChannelA-DIMM0 |
BANK 7 | ChannelA-DIMM1 |
BANK 8 | ChannelB-DIMM0 |
BANK 9 | ChannelB-DIMM1 |
BANK 10 | ChannelC-DIMM0 |
BANK 11 | ChannelC-DIMM1 |
Size栏填写容量,单位为MB,类型整数
Speed就是内存频率,单位MHz,类型整数
SerialNumber和PartNumber是序列号,可以不填写,类型整数
Manufacture是制造厂商,类型字符串
AssetTag不用填写
然后把目光转移到窗口上方
OCAT走十进制,OCC十六进制
DataWidth与TotalWidth填64
ErrorCorrection为内存纠错,一般不支持,填3或0x03
Type为内存类型
- 0x01 = 其它 = 1
- 0x02 = 未知 = 2
- 0x0f = SDRAM = 15
- 0x12 = DDR = 18
- 0x13 = DDR2 = 19
- 0x14 = DDR2 FB-DIMM = 20
- 0x18 = DDR3 = 24
- 0x1B = LPDDR = 27
- 0x1C = LPDDR2 = 28
- 0x1D = LPDDR3 = 29
- 0x1E = LPDDR4 =30
FormFactor为内存类型
- DIMM(台式机)=0x09=9
- SO-DIMM(笔记本)=0x0D=13
- 其它=0x01=1
MaxCapacity主板最大内存容量,单位KB,一般主板128GB填写134217728
TypeDetail=0x80=128 意为同步
大功告成
此处填写容量与频率不影响实际性能,所以给自己一个几百G内存也可以…
如果你想老老实实填,你可以把每个位置都填上很小的数,它们不需要相等。比如16G就是10个1024加上一个2048和4096
重启,问题解决!