E3 1230 v3 + GTX 1070 Hackintosh
文章目录
前言
原本的计划是把手上的全部主机都卖掉,然后换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,然后执行命令
1iasl -da -dl -fe refs.txt *.aml
生成asl文件
refs.txt文件中存储了一部分外部函数调用,可以修正编译错误,下面是它的内容
1External(_SB.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
2External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
3External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
4External(_SB.PCI0.XHC.RHUB.TPLD, MethodObj, 2)
5External(MDBG, MethodObj, 1)
6External(_GPE.MMTB, MethodObj, 0)
7External(_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。