最近手头两台电脑一台主板坏了,在修,另一台则进行了更换,所以后两篇文章暂时写了一半,另外平时还要准备考试,所以更新的比较慢,请大家见谅。
由于macbook/imac/mac pro均使用intel处理器,让普通电脑安装macos成为可能,在non-apple机器上安装macos就是黑苹果。
在2005年之前,apple的macbook系列使用ibm的powerpc架构处理器,所以macos属于独占系统,仅仅macbook系列可以安装,但是在2005年6月,苹果在wwdc上宣布他们将个人电脑从powerpc架构转向intel的x86架构。这就让很多人萌生了在非苹果硬件上安装macos的想法。
大约3个月时间后,os x 10.4 tiger被匿名黑客宣布破解!但是当时的破解非常差劲,和现在amd黑苹果类似,采用了更换定制内核的方法,这就要求每一个版本都要有黑客及时更新相应内核进行替换。
os x 10.6 snow leopard发布后,osx86社区的一位黑客写了一个名为chameleon的bootloader,国内大家称呼为“变色龙”,这是第一个广泛性的引导器,基于这个bootloader我们可以比较容易地通过修改一系列config和dsdt来启动os x,相较于之前替换内核的方法,大大减轻了黑客们的工作量。从此黑苹果慢慢进入了大众的视野,由困难变得简单起来。
clover
os x 10.10 yosemite版本开始,出现了新的引导方式——clover bootloader,即四叶草。它支持uefi启动,相较于chameleon功能更加强大,适配更加完美,调试更加简单。和之前不同,10.10开始内核替换几乎绝迹,几乎所有的黑苹果都采用使用额外的bootloader来引导os x原版安装镜像,尽量减少kext的修改,来实现稳定的黑苹果安装。
随着时间的推移,目前几乎所有的黑苹果都采用clover引导。在极客们的努力下,越来越多的bug被修复,kext封装越来越精简,我们配置黑苹果也越来越简单、方便。
接下来的比较纯粹从程序员角度,并非什么音频视频编辑。
ubuntu
linux 在windows/linux/macos之间对比,你会发现linux对于界面做的真的比较一般,相对而言ubuntu等大众linux稍好,但是和其它两者相比就没什么优势,而且很多软件不适配,例如qq等还需要wine来帮忙。
windows 10
windows windows 10真心很不错,不仅拥有宇宙第一ide和生产力鼻祖office套件,拥有庞大的软件生态圈,qq、微信更不会缺少,但是个人非常不喜欢cmd,和linux的bash相比简直是渣渣,这导致很多terminal能完成的事情,windows需要专门的软件,而且使用windows就等于放弃了linux/unix工具链,就算能使用也非常麻烦。
macos mojave
macos macos一方面具有非常不错的ui界面,同时常见的office、qq、微信等软件都有,而且unix-like的bsd内核让它拥有和linux一样强大的terminal,能使用linux工具链,但这并不是说macos就是天下第一系统了,相反,和linux相比macos的包管理机制弱爆了,homebrew早前甚至只有源码分发方式,下载完还得编译一遍,而且ruby的很多问题我还解决不了(可能是我不懂ruby所致),其次和ios一样,macos的opengl支持非常弱,所以图形能力在apple产品上就不要考虑了,啥时候高冷的apple能大力发展一下metal说不定还能看看,最后要说macos其实属于表面光鲜,它很多细节体现出来macos实际上粗制滥造,例如cpupm都是一个个的配置文件,你的cpu符合这个文件就使用这套配置方案,如果不在其中那对不起,不支持。图形卡也是一样,很多bug都是草草结尾,你真的细究会发现macos和linux完全不是一个级别的系统,大部分linux发行版bug fixed or not fixed可以明显看出,但是macos很多bug是差不多fix,能用,但很丑陋。
那为什么大部分的程序员都推荐macbook pro呢? 原因很简单,虽然macos系统很粗制滥造,但是在macbook pro上用起来没啥问题,有bug但是会有苹果帮你处理,大多数人看中就是三点:有常用软件、能用terminal和工具链、macbook pro总体而言还算不错的笔记本。很多时候不折腾是好事,工作学习就够累的了,为什么还要分心做些下水道活。
那黑苹果存在的意义是什么? 很多人看完上面觉得我在打脸自己,选择macos是为了不折腾,但是黑苹果属于顶顶折腾人的,为什么我们要搞?实际上黑苹果有三部分用户:第一部分纯粹就是玩玩,折腾有意思,装完就完事儿了;第二部分人是电影、音频工作室,这个是真的,因为我身边就有此类人,苹果的产品是在太贵太贵,顶配imac能接近十万,而且最让人蛋疼的是很多时候你有钱苹果也没有好的机器给你;第三类人是程序员,不过是没啥钱的程序员,例如学生、或者收入并不高的、新入职的程序员,有些时候为了将就,ios开发必须要macos,就试试黑苹果。总体而言,一二类占大多数,程序员如果用黑苹果一般都是公司配的macbook不行,那么自己组一套不错的黑苹果用着。
经过这么多年的发展,黑苹果基本上可以称得上是比较简单、相对完美了,特别是对于台式机,只要你用的是大众硬件,兼容硬件,那么基本上简单操作后你就可以得到一台比较完美的机器。那么完美主要包括哪几方面呢?我这里简单列举,包括但并不局限于(只说台式机啊):
- cpu:个人觉得ivy bridge及之后的处理器一般都可以,sandy bridge及更老的安装mojave需要在clover boot argument中添加一个跳过兼容性检查的设置。
- 显卡:最好最好要么是intel的核显,要么是amd rx 4xx/5xx或者vega56/64,别n卡了,等驱动实在伤不起,amd卡现在这么便宜,收一张玩玩花不了几个钱。
- 声卡:alc系列的相对来说容易点,此外还要处理hdmi/dp输出声音
- 网卡:bcm94352z、bcm94360cd等等,基本我只用博通固定款
- 蓝牙:如果无线网卡是特定型号,一般蓝牙都能驱动
- 电源管理:原生cpu电源管理,变频等等
- usb:usb内建,并不算难
- 睡眠:这玩意儿只要上面几个处理好,各种东西都内建完成,一般就可以用,但是台式机不睡眠也没啥大问题。
所以总的来说黑苹果台式机还是挺简单的,符合相对完美,且可以简易升级的机器给程序员用也很不错!很多时候公司发给你的macbook pro都是最低配的那种,18年前cpu都是双核四线程低压u,配8g内存 128g硬盘,说实话真的不能让人满意,所以花点小钱组一套强力台式机吊打macbook pro毫不费力。
笔记本的话会更复杂,首先是双显卡需要屏蔽独显,其次类似于屏幕内建等等的问题都会让你头大,所以笔记本最好是有现成的efi。
- tonymacx86.com:这是国外的一个黑苹果论坛,上面有几位非常厉害的clover和相关kexts维护者,不收费有详细教程,首推论坛!
- insanelymac:国外一个比较早的一个黑苹果论坛,就是在上文中osx86社区衍生而来的论坛,人数也不少,但是我用的较少,了解不多,有时候下载的会到这边来。
- github:github也是一个非常好的黑果资源搜索器,首先大部分的kexts开发者都把库放到了这里,其次很多现成现成的efi也在上边,在这里我发现了最佳黑苹果笔记本——xps 9360顶配。
- 远景论坛:算是国内最大的黑苹果论坛,最早我接触黑苹果的时候就是在威锋x86和远景,相对而言威锋x86很多资料都太老了,置顶的精华都是好几年前的,对现在根本没有帮助,所以国内论坛首选远景,国内比较知名的黑果开发者也在上面混,但是远景也有很多问题,首先貌似现在是不开放的状态,注册要邀请码,其次远景曾经有一年左右时间存在问题,域名解析或者服务器挂了,最最重要的是远景知识不成体系,很多时候大家都是做了个efi分享出来完事儿,究竟怎么做的,重点在哪里,这个比较少,而且很多资源都是搬运国外的东西,个人建议你如果黑苹果水平还不错,闲来看看别人在玩啥可以,但别想着从这里学会东西。
- 诸多个人论坛:这个需要个人收集,国内的有国光、黑果小兵,国外的nickwoodhams等等,先不用急着看,个人建议先从tonymacx86看起。
这部分原理为了让大家能听懂,我尽量说的简单一些
电脑系统的启动需要两个东西一起应用,一个是bootloader,就是启动器,二是兼容这个启动器的操作系统。
启动器就是唤醒操作系统的一个小系统,它被烧录在主板rom上,目前的通用启动器有bios和uefi,没有uefi bios这种东西,很多人误以为uefi就是引导方式,并不是,uefi是和bios平级的bootloader。大多数电脑都是用基于这两款定制修改出来的bootloader。
苹果很奇葩,它的引导方式是用的是苹果自家定制的efi搭配各种软硬件引导进入macos,efi是uefi的前身,它相当于在efi基础上再做修改,和uefi同属efi衍生。普通uefi是无法引导macos的,不仅仅是不兼容,还在于无法提供各类macos启动需要的数据和验证。
从黑苹果的历史中我们可以了解到,黑苹果的方法无非就是两种,一、替换内核,启动需要的信息全部写好,需要的验证删掉,这个操作相对繁琐,每个版本都需要替换,升级不易,目前amd处理器黑苹果使用替换内核不太一样,它是将内核做了修改,让macos也能识别ryzen处理器,本质上还需要clover引导,所以个人不是很推荐ryzen,因为这不够原生,当然你只是想玩玩另说。二、启动器:大神开发出来第三方启动器,让uefi先启动这个第三方启动器,然后第三方启动器再引导macos,并且在启动过程中提供各类参数、数据、跳过验证等等。
目前最主流的是uefi clover,首先最近五六年的主板都是uefi,其次clover发展的最快最好,支持最完善,生态最优。很多人可能会问我bios clover可以不,可以,但是我这里不讲,需要请自行研究。
还有一些奇怪的引导方式,例如ozmosis等属于修改主板uefi,让他能兼容macos,并且提供需要的数据等等,但是个人不是很喜欢,首先ozmosis发展的并不是特别好,仍然比较小众,维护者少,其次每次修改都需要刷写bios,大哥!rom乱刷保不准哪天出事儿了哭都来不及,要用编程器救砖了,而且刷bios这个也太麻烦了,你刷个一次两次可以,刷n次就太累了,当然某些主板可以玩玩,比如有现成long release support的主板,例如我手头有一块技嘉z97n-wifi貌似是有人在维护的,总之不推荐。
clover bootloader
总结一下,这里使用的uefi clover引导macos实际上是每次主板启动,都会引导硬盘efi分区中的clover,然后再由定制的clover来引导macos,clover的功能非常强大,可以加载各种定制efi文件,还可以提供对nvme支持,所以之前x99鸡血驱动有些方法就是使用clover来加载,还有一些老主板引导nvme也使用了clover。你完全可以把clover理解为一个安装在硬盘上的bootloader。
假设有一台空机器,我们要在上面安装macos,那么我们首先需要在macos下制作一个macos安装u盘,这就是为什么我们在第一篇中写的是vmware安装macos,我们可以借此创建一个包含macos安装文件的u盘,接下来我们需要在u盘的efi分区中安装clover引导,这样我们在机器上插入u盘,uefi就会引导u盘efi分区的clover,我们再借助clover进入macos安装环境。
这里最大的难点就在于如何配置clover引导,clover配置选项繁多,功能定义查找不清,我们将在下一篇文章中详细讲解,总之,只要能设置好clover引导,我们就能顺利进入macos安装界面,一步步安装macos。所以经常你能在论坛上看到有人伸手要efi,只要配置类似,可能就能顺利安装。
在安装完macos后,我们需要把u盘的clover文件放到硬盘的efi分区中,然后对clover进行进一步的设置,因为在安装的时候,我无所谓声卡网卡显卡是否正常驱动,甚至无所谓usb蓝牙等等,我只要安装完就行。但在安装完后,为了完美运行,我们就需要慢慢调试差错,修改clover并加入kexts让声卡显卡网卡工作,内建usb无线蓝牙,添加dsdt/ssdt让cpu工作变频正常,这就非常考验黑苹果的功底了,我们将在后面慢慢讲解。
最后要说一下,黑苹果真的很累很麻烦,而且黑苹果失败很多时候你是一头雾水,不知道哪里出错,要翻很多资料甚至很久之后你才会明白,而且有时候你明白了也没办法修补,因为毕竟我们能力有限,自己也不可能写驱动或者修改clover,所以黑苹果且黑且珍惜,如果失败了也不要沮丧,这就是图一乐子,倘若你没有黑果基础,又在开始看之前就抱着一定要黑成功的打算,那我劝你还是早早退坑,买一台macbook pro,省下来的时间去赚钱说不定连十台macbook都赚回来了。