MacPro4,1升级到MacPro5,1

收了一台老MacPro,2009年版本,准确型号是“MacPro4,1”。机器很好,美中不足的是,太老了。硬件还好说,很多部件都可以单独采购升级,特别是有了淘宝,几乎只要有的东西,都可以买到。软件就麻烦了,macOS sierra已经不支持,更别说high sierra。
而如果不能用最新的系统,对于研发人员来讲,MacPro的价值将大大降低,因为从开发系统到测试环境,都是非常严格的版本相关的。比如对于iPhone这类产品,Apple更是发布新版本后几个小时,老版本的验证服务器就会关闭从而强制用户升级。
经过仔细的研究资料,发现苹果的"MacPro4,1"版本硬件跟“MacPro5,1”版本硬件区别很小,网上也有了对应工具用于将前者升级到后者版本。不过因为这款机器太老,很多相关的工具、脚本的下载、使用都有了很多问题,这里把文件下载存储到国内服务器上,然后给个总结如下:
首先下载升级工具:http://p1avd6u2z.bkt.clouddn.com/201712/22/MacPro2009-2010FirmwareTool.zip
解压缩后是个可执行.app文件,尝试运行,按照屏幕提示操作即可,根据网上的评论,大多情况下可以顺利完成升级。也有一些会中间出现长时间锁死或者报错5570失败,很可惜啊我是后者。
一般的出现错误的原因都是因为时间太长,需要下载的固件包已经无法下载;又或者是http协议当前在苹果内部已经废弃;当然也不排除是“大防火墙”的问题了,碰到这种情况可以如下操作:
- 到苹果官方网站下载两个补丁包,地址分别为:http://support.apple.com/downloads/DL989/en_US/MacProEFIUpdate.dmg和http://support.apple.com/downloads/DL1321/en_US/MacProEFIUpdate.dmg,特别注意,两个文件名完全相同,但是不同的版本,前者是1.4,后者是1.5,下载后保存的时候不要搞混。
- 如果你已经有一台web服务器是最好的,但是如果你没有,可以考虑在本地临时设置一台web服务器,比如使用python内置的SimpleHTTPServer。下面假设我们在本地设置一台web服务器。
- 首先确定一个工作目录,在其下根据上面URL的方式设置两个文件夹:
mkdir -P downloads/DL989/en_US/及mkdir -P downloads/DL1321/en_US/,将刚才下载的两个文件,对应分别放入目录,再次强调,因为文件名是相同的,别放错。 - 修改本地hosts文件,把support.apple.com网址指向127.0.0.1。看到这里你会不会说“咦?刚才下载的时候命名网址可以访问啊?”,不过可惜啊,这个升级工具它下载不下来,猜测的原因一开始就说过了。
- 在当前文件夹执行:
sudo python -m SimpleHTTPServer 80,这是在80端口启动了web服务,使用sudo的原因是80端口只能使用root权限启动。接着,再次执行升级工具试试,至少在我这里,可以顺利的将系统升级了。
(升级成功的对比)
系统升级后,再安装macos sierra及high sierra就都不会有问题了。而且在新版本系统安装的时候,检测到固件的版本会比较老,会自动为你升级MacPro5,1的新固件,新固件工作起来一切正常。
除了升级软件,硬件可能会出现的问题主要是两个:
- 原有的蓝牙模块功率非常小,而且是老版本的蓝牙协议,同当前的很多蓝牙键盘、鼠标已经不兼容,建议在淘宝买一个usb的蓝牙适配器,找的时候搜索Mac电脑免驱动可以用的。
- MacPro4,1的风扇电路设计可能同MacPro5,1有所不同,系统的自动调速似乎工作总是不正常,推荐用一个第三方软件“Macs Fan Control”,根据使用情况人工干预风扇的转速,在平常的时候,可以关小一些大幅的降低噪音。
资料参考:http://forum.netkas.org/index.php/topic,852.0.html
MacPro4,1升级到MacPro5,1的更多相关文章
- python scrapy 入门,10分钟完成一个爬虫
在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!
看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...
- Entity Framework Core 1.1 升级通告
原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...
- ASP.NET 5 RC1 升级 ASP.NET Core 1.0 RC2 记录
升级文档: Migrating from DNX to .NET Core Migrating from ASP.NET 5 RC1 to ASP.NET Core 1.0 RC2 Migrating ...
- SQL Server2016升级前几点自检
SQL Server2016已经出来一段时间了,而且最新的SP1包也于2016年11月18日正式发布,各种新的特性推出让我们跃跃欲试.那么对于我们真实的业务环境,特别是生产环境要不要"跟风& ...
- 如何安全的将VMware vCenter Server使用的SQL Server Express数据库平滑升级到完整版
背景: 由于建设初期使用的vSphere vCenter for Windows版,其中安装自动化过程中会使用SQL Server Express的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part2:clusterware安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part2:clusterware安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 3.安装Clus ...
- 升级npm
查看npm的所有版本 运行命令: npm view npm versions 命令运行后,会输出到目前为止npm的所有版本. [ '1.1.25', '1.1.70', '1.1.71', '1.2. ...
随机推荐
- TensorFlow之多核GPU的并行运算
tensorflow多GPU并行计算 TensorFlow可以利用GPU加速深度学习模型的训练过程,在这里介绍一下利用多个GPU或者机器时,TensorFlow是如何进行多GPU并行计算的. 首先,T ...
- 将Map中的参数封装为XML
public String packageYDImageUploadXML(String versionCode, Map parmsMap) throws ParseException { Docu ...
- Use try-with-resources
public void doQueries() throws MyException{ // First try-with-resources. try ( Connection con = Driv ...
- 通过s3cmd上传css文件到s3导致样式加载失败
情景说明: 将css文件上传到aws s3存储桶中,通过浏览器访问页面,发现css文件渲染失败. 通过浏览器工程模式发现css为 Content-Type: text/html,正确的 Content ...
- Vue(三十一)轮播组件
直接上源码 (1)组件文件 Carousel.vue <template> <div class="carousel-component"> <div ...
- angular.isUndefined()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 《SpringMVC从入门到放肆》十四、SpringMVC分组数据校验
上一篇我们学习了数据校验,但是在实际项目中,还是有些不够灵活,今天我们就来继续学习一种更灵活的数据校验方法——分组数据校验. 一.什么是分组校验 校验规则是定义在实体中的,而同一个实体可以被多个Con ...
- 3.1circle
就是括号匹配的题目,如果有交集就是NO #include<iostream> #include<cstring> #include<stdio.h> #includ ...
- Java语法细节 - synchronized和volatile
目录 synchronized关键字 关键字volatile synchronized关键字 synchronized关键字锁住方法和this的不同之处: public synchronized vo ...
- Python基础之迭代器、生成器
一.迭代器: 1.迭代:每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值.例如:循环获取容器中的元素. 2.可迭代对象(iterable): 1)定义:具有__ite ...