Mac Pro Early 2009 4,1固件升级至5,1
本文最后更新于 2024-08-16,文章内容可能已经过时。
前言
前几天从工位拿到了个淘汰的Mac Pro。机箱是真的好看,内部做工精致整洁,可玩性非常强,于是不想放弃这个机会,打算对这台Mac Pro进行一次全方面的升级。
目前这台机子的配置是两块4核的Intel Xeon 5520作为CPU,两根1GB的DDR3 ECC SDRAM内存条,一张苹果于2009年定制的初级Nividia GT 120 512MB显卡和Mac Pro定制的主板。
想要升级到两个6核的Intel Xeon X5690,32GB DDR3 ECC内存,RX580以及使用SSD作为启动盘。
但是第一步就有困难,因为2009的Mac Pro (Mac Pro 4,1)是不支持六核心处理器的。但有意思的是Mac Pro 2010(Mac Pro 5,1)-2012的版本的架构相似度为99.99%,这就使得2010-2012的固件可以刷给2009的Mac Pro,使其支持所有2010-2012 Mac Pro的硬件和API。
有人做出了一个软件,叫做Mac Pro 2009-2010 Firmware Tool。该软件通过联网下载固件并挂载ramdisk强行刷入Mac Pro 5,1固件。原作者于早些年时结束了对软件的维护,同时关闭了固件下载服务器,导致工具一度无法使用。随后该工具由The House of Moth维护。但该工具2020年起出现了弹出刷写成功但不会真正刷固件的问题。因此本篇文章将会讲解2024年依然可用的刷写方法。
工具准备
Mac Pro 2009固件二合一包(包括了升级用的5,1固件,以及降级使用的4,1固件)
Mac Pro 2009-2010 Firmware Tool刷机工具
MacPro2009-2010FirmwareTool.zip
Mac Pro准备
确保Mac Pro升级至OS X El Capitan(10.11.6)
根据以下教程关闭系统完整性保护 (System Integrity Protection),又称作为SIP
关闭系统完整性保护 (System Integrity Protection)
完全关闭Mac Pro (点击苹果LOGO,并选择关机)
点按开机键,听到开机音效后按住 Command + R 键进入系统恢复
在上方工具栏选择「实用工具」并打开「终端」
在终端中,输入「csrutil disable」后回车
在终端中,输入「reboot」后回车,电脑开始重启。
制作可读写的EFI固件挂载盘
在「启动台」中打开磁盘工具
在工具栏中找到「映像」并选择「转换」
在文件选择中首先选择你下载的映像中的「MacProEFIUpdate4-1.dmg」。在打开的窗口中的「储存为」后面的名称改为Mac Pro EFI Update 2009,「映像格式」中选择「读/写」,并点击「转换」
随后会在同目录中生成名为Mac Pro EFI Update 2009.dmg的文件。
MacProEFIUpdate5-1.dmg和上面的步骤一样,名称改为Mac Pro EFI Update 2010并转换为读/写即可。
最后,你应该拥有两个新的dmg文件,分别是Mac Pro EFI Update 2009.dmg和Mac Pro EFI Update 2010.dmg
为Mac Pro 2009-2010 Firmware Tool编写新的脚本
我们已知目前Firmware Tool无法正常刷写固件,因此我们要通过本地挂载的方法写进ramdisk。而想要让ramdisk挂载,我们依然需要使用Mac Pro 2009-2010 Firmware Tool。
右键「Mac Pro 2009-2010 Firmware Tool」,点击「显示包内容」。(我在使用新的mac作为演示,你的电脑不应该有禁止图标)
打开以下路径 Contents > Resources,使用文本编辑器编辑「ExtractAndPatchEFIFiles.sh」,将里面的脚本内容清空,并替换以下脚本。
#!/bin/sh
pushd /Volumes/RamDisk
# hdiutil attach -nobrowse EFI2010.dmg
pkgutil --expand '/Volumes/Mac Pro EFI Update 2010/MacProEFIUpdate.pkg' Expanded
cp Expanded/MacProEFIUpdate.pkg/Payload Payload
tar -xf Payload
mkdir MacProEFI2010-2009
mkdir MacProEFI2009-2010
cp 'System/Library/CoreServices/Firmware Updates/MacProEFIUpdate15/EFIUpdaterApp2.efi' MacProEFI2010-2009
cp 'System/Library/CoreServices/Firmware Updates/MacProEFIUpdate15/MP51_007F_03B_LOCKED.fd' MacProEFI2009-2010/MP41_0081_07B_LOCKED.fd
rm -R Applications
rm -R Expanded
rm -R System
rm Payload
hdiutil detach '/Volumes/Mac Pro EFI Update 2010/'
# hdiutil attach -nobrowse EFI2009.dmg
pkgutil --expand '/Volumes/Mac Pro EFI Update 2009/MacProEFIUpdate.pkg' Expanded
cp Expanded/MacProEFIUpdate.pkg/Payload Payload
tar -xf Payload
cp 'Applications/Utilities/Mac Pro EFI Firmware Update.app/Contents/Resources/EfiUpdaterApp2.efi' MacProEFI2009-2010
cp 'Applications/Utilities/Mac Pro EFI Firmware Update.app/Contents/Resources/MP41_0081_07B_LOCKED.fd' MacProEFI2010-2009/MP51_007F_03B_LOCKED.fd
rm -R Applications
rm -R Expanded
rm -R System
rm Payload
hdiutil detach '/Volumes/Mac Pro EFI Update 2009/'
popd
patch /Volumes/RamDisk/MacProEFI2009-2010/EfiUpdaterApp2.efi EfiUpdater2009.patch
patch /Volumes/RamDisk/MacProEFI2010-2009/EfiUpdaterApp2.efi EfiUpdater2010.patch
记得保存脚本
挂载ramdisk磁盘与EFI磁盘
双击打开Mac Pro 2009-2010 Firmware Tool,点击「Upgrade to 2010 Firmware」
运行一会之后会报5530或5570错误,问题不大。此时桌面应该出现了一个叫做ramdisk的磁盘
双击你刚刚制作的可读写的Mac Pro EFI Update 2009.dmg和Mac Pro EFI Update 2010.dmg,将它们一并挂载。
这时你的桌面上应该有三个磁盘,分别是ramdisk,Mac Pro EFI Update 2009和Mac Pro EFI Update 2010。如果名字不对,请手动改名,一定要确保名称正确,否则会影响后续脚本运行。
运行Patch脚本及升级脚本
在「启动台」中打开「终端」,或你的iTerm(跑
使用cd指令进入你的刷机工具的目录内的Contents/Resources/目录下。如果你的刷机工具在你的「下载」文件夹内,它看起来会是这样的:
cd ~/Downloads/Mac\ Pro\ 2009-2010\ Firmware\ Tool.app/Contents/Resources/
输入
sudo ./ExtractAndPatchEFIFile.sh
来执行我们刚刚修改过的Patch脚本。确保没有报错后,再输入
sudo ./UpgradeEFI2009-2010.sh
来执行升级脚本。再次确保没有其他报错!
脚本报错
如果出现Operation not permitted或其他权限不足的报错提示,请尝试对
Resources
文件夹执行指令chmod 777
使其可读写。如果还是不行,请在「终端」内使用csrutil status
指令查看SIP是否为disable。如果是enable,请返回「关闭系统完整性保护 (System Integrity Protection)」并完成关闭SIP的操作。如果出现文件夹、目录不存在的报错,请返回挂载ramdisk磁盘与EFI磁盘项再次确认你的磁盘名称是否正确,ramdisk是否正确挂载。
进行固件升级
工具栏点击苹果LOGO,选择「关机」将Mac Pro完全关机
确认电源灯闭,长按开机电源键不松手,等待电源灯快速闪烁,并发出很长的一段「哔————」声,依旧保持电源按钮按压,不要松开。
保持电源键按下大概50-60秒时,光驱会弹出,表示固件验证有效,可以升级,此时继续按压电源按键10秒并松开。可以不触碰光驱,在固件升级完成后光驱会自动收回,代表固件安装完成。
固件安装途中有些人的显示屏不会显示任何东西,只靠光驱来验证安装状态。但如果你的屏幕有显示东西,它应该是个灰色的苹果logo和一个粗的灰色进度条。
完成固件升级后,电脑会自动重启。这是回到「系统报告」中,查看设备识别号是否变为MacPro5,1。如果依然保持MacPro4,1,请重试「进行固件升级」步骤。以下是我的Mac Pro截图:
重新启用系统完整性保护(SIP)
SIP是个好东西,可以保护系统底层不被奇怪的软件修改,于是完成固件升级后我们最好重新启用它。
将电脑重启,听到开机音效后立刻按住 Command + R 进入系统恢复
在上方工具栏选择「实用工具」并打开「终端」
在「终端」内输入
csrutil status
,轻敲回车执行输入
reboot
重启电脑
固件降级(5,1 -> 4,1)
降级有个注意的点。虽然5,1支持4核心处理器和六核心处理器,但4,1只支持四核心处理器。这意味着如果你在装有六核心处理器的情况下将Mac pro降回4,1会导致变砖!所以请务必在降级前将处理器换回受支持的四核心处理器。
重复「关闭系统完整性保护 (System Integrity Protection)」步骤
重复「运行Patch脚本及升级脚本」步骤,最后一步我们不使用指令
sudo UpgradeEFI2009-2010.sh
,而是使用sudo DowngradeEFI2010-2009.sh
重复「重新启用系统完整性保护(SIP)」步骤
在「系统报告」中,查看设备识别号是否变为MacPro4,1。
后记
为了折腾这个Mac Pro算是翻遍了Mac Rumors论坛和Stack Overflow以及Raddit。在某一个帖子意外发现了这个办法。在论坛上还有人需要以高价接单修改BootRom并声称除了该方法以外无路可循的情况下,我认为这篇教程是必须的。
同时,这篇文章的英文版也发布在了Mac Rumors上,希望可以帮助到更多的Mac Pro搞机人!
- 感谢你赐予我前进的力量