收了一台老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.dmghttp://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的更多相关文章

  1. python scrapy 入门,10分钟完成一个爬虫

    在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...

  2. 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. ...

  3. 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!

    看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...

  4. Entity Framework Core 1.1 升级通告

    原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...

  5. 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 ...

  6. SQL Server2016升级前几点自检

    SQL Server2016已经出来一段时间了,而且最新的SP1包也于2016年11月18日正式发布,各种新的特性推出让我们跃跃欲试.那么对于我们真实的业务环境,特别是生产环境要不要"跟风& ...

  7. 如何安全的将VMware vCenter Server使用的SQL Server Express数据库平滑升级到完整版

    背景: 由于建设初期使用的vSphere vCenter for Windows版,其中安装自动化过程中会使用SQL Server Express的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...

  8. 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 ...

  9. 升级npm

    查看npm的所有版本 运行命令: npm view npm versions 命令运行后,会输出到目前为止npm的所有版本. [ '1.1.25', '1.1.70', '1.1.71', '1.2. ...

随机推荐

  1. C++ Json解析CJsonObject的详细使用

    引用头文件: #include <string> #include <iostream> #include <fstream> #include <casse ...

  2. 八、OpenStack—Cinder组件安装

    一.安装和配置控制器节点 1.先决条件 1)创建数据库 # mysql -u root -p 2)创建cinder数据库 MariaDB [(none)]> CREATE DATABASE ci ...

  3. [OC] UIcollectionView 与 UIcollectionViewCell 的使用

    UICollectionView    @interface ViewController ()<UICollectionViewDelegate,UICollectionViewDataSou ...

  4. 3. Linux系统磁盘分区介绍

    1. 磁盘分区基本知识 1)磁盘在使用前一般要先分区(相当于建房子要分房间一样). 2)磁盘分区一般有主分区.扩展分区和逻辑分区之分.一块磁盘最多可以有4个主分区,其中一个主分区的位置可以用一个扩展分 ...

  5. C++的编译预处理

    C++中,在编译器对源程序进行编译之前,首先要由预处理对程序文本进行预处理.预处理器提供了一组预编译处理指令和预处理操作符.预处理指令实际上不是C++语言的一部分,它只是用来扩充C++程序设计的环境. ...

  6. vbs脚本实现自动打字祝福&搞笑

    脚本祝福礼物 概述 听说抖音上流行一种用代码做程序表白的东西,,,, 当然我也不是要表白,,,, 但是好像蛮有意思的,,,, 于是,又学了一下vbs脚本,做了几个很不错的祝福脚本,不懂代码的可以直接戳 ...

  7. 限制输入字数JS

    <tr> <th><b>说明内容:</b><span id="content">(500字以内)</span> ...

  8. Kubernetes1.7—DNS安装

    虽然通过了Service解决了Pod重建后IP动态变化(服务发现).负载均衡问题,但使用Service还是要需要知道CLUSTER-IP,而通过NDS可以解决该问题:在Kubernetes集群中可通过 ...

  9. kettle web化

    kettle web化 通过Java API调用kettle核心代码,并基于Spring Boot提供简易的Web管理界面. 背景 在工作中,通过kettle这款ETL产品进行数据处理时,是通过kit ...

  10. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.e3mall.search.mapper.ItemMapper.getItemList

    java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not ...