前言

原本的计划是把手上的全部主机都卖掉,然后换iMAC 27寸或者MacBook Pro 15寸,结果在闲鱼上被放鸽子放得丧心病狂,最后明白一个道理:谨慎入手电子产品,因为碰到卖不出去的情况,被放鸽子的概率几乎为99%。于是乎把按摩店主机直接送给老乡了,再把闲鱼上发布的东西都删了,现在全部使用macOS。不用windows,就不会有想下游戏试试画质的念头了,感觉一身轻松

目前按照CPU的跑分推算,大概只有27寸的iMac,或者高配的21.5寸iMac与15寸的MacBook Pro可以压制E3;GPU基本只有新版Mac Pro与iMac Pro才能压制GTX 1070;当前的SATA固态硬盘的速度是完全败给使用PCIE接口的;内存最大可以升级到32GB;外设包括键鼠、音响、显示器都可以升级。虽然心里还是想要一台性能强大但Mac,但感觉真是遥遥无期。

这篇文章还是粗略记录下安装过程,基本都是粗略的操作记录与注意点,假如系统真的挂了,也可以重新修复来过~

正文

先罗列一下E3主机的配置

CPU:E3 1230 v3

主板:华硕B85m-Gamer

内存条:威刚 8G DDR3 1600MHZ x 2

显卡:影驰骨灰大将GTX 1070

硬盘:金士顿UV400 SSD 120GB,日立500GB HDD

散热:九州风神,先马游戏风暴12cm风扇x6

机箱:航嘉MVP2

电源:先马白金全模组750W

显示器:安美特24寸 IPS

键鼠:带数字键盘的有线苹果键盘,罗技M170

音箱:蜂巢2s+

不过其实和黑苹果关联紧密的只有显卡、CPU和主板

这次安装macOS 10.12单系统,使用了Nvidia Web Driver驱动显卡,在Ubuntu下提取了SSDT与DSDT,反编译后通过Clover加载,目前的状态是:

CPU可以正常变频,温度徘徊在45度左右,这个在没有打DSDT和SSDT前就已经可以了;

GTX 1070正常驱动,但帕斯卡显卡的HDMI音频输出无解,炉石传说中偶尔会出现局部花屏,部分特效渲染得有点奇怪,Xcode中使用View Debugger无法捕捉模拟器或真机中的画面,感觉是显卡驱动不完善导致的;

HWSensor不支持帕斯卡显卡,如果使用了GPUSensors.kext,会导致Kernel Panic;

主板上的网卡,声卡正常驱动,USB及SATA使用了原生驱动;

目前还没遇到过在正常使用期间系统崩掉的情况

安装前

两个U盘:一个使用UniBeast以UEFI模式烧录macOS 10.12.5原版安装程序,另一个使用unetbootin烧录Ubuntu 16.04 Desktop镜像

软件:MultiBeast、Clover Configurator、MaciASL、Nvidia Web Driver,全部拷贝到macOS系统U盘中

烧录macOS安装包后,用Clover Configurator挂载U盘,打开config.plist,在Graphics中勾选NvidiaSingle,以便安装时可以初步驱动Nvidia显卡,否则使用默认驱动只有10MB以下的显存,卡顿会很厉害,最后需要查看下系统声卡与网卡类型,以便安装对应驱动

安装中

安装过程十分简单,只关闭了主板中得VT-d,然后U盘启动macOS安装程序,选择GPT分区表格式化固态硬盘,然后直接安装即可,安装完成后重启系统,继续使用U盘启动

安装后

安装驱动

U盘启动系统,选择刚才安装系统的分区,进入系统后,Clover已经加载了U盘的EFI分区中的大量驱动,但本地系统盘上仍旧是没有驱动的

首先将U盘中的MultiBeast、Clover Configurator、MaciASL复制到本地目录,然后安装U盘中的Nvidia Web Driver,完成后不要立刻重新启动

接下来运行MultiBeast,安装驱动

Quick Start中选中UEFI Boot Mode,默认帮我们安装了Clover引导程序,FakeSMC并仿冒机型为iMAC 14,2,具体的机型选择可以参考everymac.com,确保选择一个和自己硬件最接近的机型

然后查看Drivers列表

每个驱动都有相应的安装位置与修改文件的说明,按照自己的情况选择即可,FakeSMC是必须安装的,用于欺骗macOS系统,实际上这一步我只安装了声卡和网卡驱动,其他的驱动包括SATA,USB 3.0等都使用系统提供的,驱动默认都安装在/Library/Extensions目录下,每次启动时都会被系统读取,如果安装了有问题的驱动,即使用U盘引导,也会加载这些驱动。当时遇到了这个问题,最后只能把固态硬盘取出放入硬盘盒,外接到了macbook pro上,注意必须使用root权限,才能完全删除问题驱动与kext缓存目录,最后才正常启动

所以一些尚需要测试的驱动,最好放在EFI分区的CLOVER/kexts的对应目录下,当引导失败时,也可以通过U盘引导启动系统,然后挂载分区,删除掉有问题的驱动~下面是我最后选择的配置

安装之后,还是不要立刻重新启动,打开Clover Configurator,挂载当前硬盘的EFI分区,然后用它打开/EFI/CLOVER/config.plist

在边栏选中System Parameters,然后勾选Inject System ID与NvidiaWeb,并设置Inject Kexts为YES

然后检查Graphics中,没有勾选任何注入显卡驱动,这里将使用Nvidia Web Driver驱动GTX1070

最后保存文件,卸载EFI分区,关机拔U盘,启动电脑

DSDT与SSDT

虽然大家都说打了DSST与SSDT会好一点,而且打没打对我来说,没有什么明显的区别,但还是忍不住打了

首选提取原始的DSDT与SSDT,这个就需要用上之前烧录的Ubuntu启动盘

U盘启动Ubuntu,然后打开终端,切换root用户,复制两个文件夹到用户目录下,分别是/sys/firmware/acpi/tables/与/sys/firmware/acpi/tables/dynamic,前者包含DSDT文件与部分SSDT文件,后者包含额外的SSDT文件

注意Ubuntu下无法写入mac分区,所以需要把复制出来的DSDT与SSDT文件保存到FAT32或者NTFS分区,然后再用macOS读取,或者直接挂载mac系统盘的EFI分区,将文件暂存在这里

启动macOS,我们需要的只有DSDT以及SSDT开头的文件,将它们复制到一个test目录下,为所有文件添加.aml后缀,然后使用iasl工具反编译它们,工具链接:RehabMan/acpica,然后执行命令

1
iasl -da -dl -fe refs.txt *.aml

生成asl文件

refs.txt文件中存储了一部分外部函数调用,可以修正编译错误,下面是它的内容

1
2
3
4
5
6
7
External(_SB.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External(_SB.PCI0.XHC.RHUB.TPLD, MethodObj, 2)
External(MDBG, MethodObj, 1)
External(_GPE.MMTB, MethodObj, 0)
External(_GPE.VHOV, MethodObj, 3)

接着要使用MaciASL逐一修正每个asl文件中的错误,只要排除红色的致命错误即可,颜色为黄色的警告可以忽略,下面尝试修复DSDT.asl文件

打开后,点击compile,弹出一个错误,点击错误可以跳转到对应位置

可以参考C语言,直接删除一些看上去语法有问题的语句,这里将Zero全部删除,保存,点击编译,弹出的都是可以忽略的警告

处理的规则基本都是删除,如果有未知函数的警告,可以google下警告,追加对应的函数到refs.txt文件中,最后将文件另存为aml格式。以此类推将所有asl文件排错,编译后,复制到/EFI/CLOVER/ACPI/patched目录下

然后用Clover Configurator修改config.plist,分别勾选SSDT与DSDT的Drop OEM

卸载EFI分区,重启系统,这里再晒一下CineCineBench R15的跑分

最后

仅以此文纪念送出去的按摩店主机,这台外观有点丑的机子,它的配置依旧留在我的心里。

CPU:AMD 速龙 X4 870K

主板:技嘉A88XM-DS2

内存条:金士顿 4G DDR3 1333MHZ x 2

显卡:公版GTX750Ti,单风扇,可接6Pin电源

硬盘:120GB Reeno固态硬盘,500GB西部数据机械硬盘,320GB日立机械硬盘

散热:先马游戏风暴12cm风扇x3,九州风神12cm风扇x1,九州风神冰凌mini

机箱:金河田预见N6(黑色)

电源:金河田铜牌400w

显示器:联想L2250P

键鼠:大水牛套装

音响和手柄:某些很奇怪的牌子

这套机子正常运行功耗在70~80w左右,也是很高了,满载170~180w,相比之下,PS4的游戏功耗约120W左右,E3主机普通使用功耗50W左右,即使在全力编译的状态下,也不超过80W。