Hackintosh 4 Netflix?

Intro

Netflix真的有点难伺候。

其实家里LG电视的Netflix app用着也没什么毛病,唯独一个问题就是不支持倍速播放,而隔壁Youtube 2x速度播放则毫无问题。

经过调研,倍速播放在手机app和电脑浏览器上都可以用,但手机不能投屏给电视(隔壁Youtube为什么就都可以??)。所以尝试用HTPC来播Netflix就成了一个很自然的想法。

Netflix在Windows端如果想要播4K,只能使用Windows Store的app或者Edge浏览器。

而这个app其实也不支持倍速播放,所以实际能选的,只有Edge而已。

我的HTPC配有Win10+6700K+RX 6600,按道理来说这配置播点视频属于杀鸡用牛刀,但实际使用下来发现竟然会掉驱动、黑屏、频繁卡顿?!历经两三个星期的排查,我得出结论,这些问题跟配置毫无关系。测了一堆排列组合都是一样的结果:

  • 6700K+Z270+RX 6600
  • 6700K+Z270+RX 6600 XT
  • 6700K+Z270+GTX 1660 Ti
  • 3700X+X570+RX 6600
  • 3700X+X570+GTX 1660 Ti
  • 7950X+X670E+RTX 4090
  • Win10 / Win11

测试用片源主要使用Our Planet系列纪录片,4K+HDR压力比较大,很容易复现故障。而我用16寸MBP(M1 Pro)的HDMI接电视看就屁事儿没有——虽然不能4K120Hz,但无伤大雅。

经过更广泛的科研,我发现这问题似乎无解,所以我决定把HTPC重装成Hackintosh,去他妈的微软。

结果是失败的。

折腾了好几天之后我解决了几乎所有的问题,但是我到最后才发现在Safari上播4K Netflix有这么一个要求——

T2芯片实现了DRM解码硬件加速,而Apple Silicon则集成了这一功能,但Hackintosh显然不可能满足这一条件,所以实际上根本不可能实现Hackintosh看4K Netflix?!

Anyway,看上去确实是白折腾了,下面记录一下大致折腾过程,以供参考。本次安装参照了dortania的OpenCore安装教程。而本文不会记录每一步操作的细节,因为实在太复杂了,而且硬件不同的话需要操作的东西也很不一样。如果你想要尝试安装自己的Hackintosh,还是自己去跟着安装教程一步一步来吧。

检查硬件兼容性 & 了解关键硬件型号

首先检查一下硬件和Ventura的兼容性(参见上面链接中Hardware Support这一部分):

  • CPU:6700k – OK,Intel装起来相比AMD还要简单些
  • 核显:HD 530 – OK,但是要伪装成HD 630
  • 主板:华硕Z270I-Gaming – OK,华硕Z270属于比较推荐的一类板子
  • 声卡:ALC1220 – OK,但其实接电视肯定还是用显卡hdmi输出音频
  • GPU:RX 6600 – OK,Monterey (12.1)之后就支持了
  • 内存:长鑫DDR4 3000MHz 8Gx2 – OK,但也许需要降频使用,dortania提示macOS对内存稳定性要求较高
  • WiFi:高通QCA-61X4A – 高通的闭源垃圾驱动显然不行,不过反正用不着WiFi
  • 以太网卡:Intel I219-V – OK
  • SSD:PM981 256G – 竟然不行,Phoenix主控跟macOS兼容性不好,还好备件多,换个Intel 535用

研究完暗自窃喜,竟然不需要做太大的调整?然而我又被阿苏斯坑了。

折腾的前期一直用上述配置,但是我弄到一半发现这个华硕Z270I-Gaming如果把CSM关闭、并且安装RX 6600或者RX 6600XT,就会开机卡在华硕logo那里,连BIOS都进不去。哪怕用核显的显示输出也是这样。而如果装个GTX 1660 Ti则根本没有这个问题。Reddit搜索了一下,发现其他一些用户也提到过他们的RDNA2卡在华硕主板上有类似的问题。有些人说BIOS更新修复了问题,但我尝试了最新的两版BIOS(2001、1205),结果都一样。更老的BIOS刷不进去了,我判断就算刷进去了修复几率应该也不大,所以虽然我有编程器但是就没操作了。

为什么一定要关CSM呢?首先dortania的教程中强烈建议关闭CSM,其次我安装的过程也确实遇到一些问题,具体表现为Opencore引导安装镜像到一半就黑屏,如果用核显输出则不会黑屏,但是会在随机的地方卡住。我其实也不知道跟CSM有没有关联,但是调整config.plist和各种kext确实都没什么效果。

本来折腾了几天之后我都打算放弃了,但是不服,又换了一套闲置平台从头写配置,结果这回竟然相当顺利。最终使用的配置列表如下:

  • CPU:6600k
  • 核显:HD 530
  • 主板:华硕Z170I-Gaming
  • 声卡:ALC1150
  • GPU:RX 6600
  • 内存:芝奇DDR4 3200MHz C14 8Gx2
  • WiFi:高通QCA6174(板载网卡,并不能用)
  • 以太网卡:Intel I219-V
  • SSD:intel 535 240G

然后我们使用OpenCore开装。

制作引导U盘

这一步在macOS/Windows/Linux中都可以操作,都挺简单。但只有mac里能制作离线安装包,Windows和Linux只能做在线安装包。

我操作的大致过程如下:

  1. Windows下先下载OpenCore安装套件,然后根据需要的系统版本指定参数运行macrecovery.py这个脚本来下载macOS安装镜像 。
  2. 使用rufus格式化U盘,把离线安装包放进根目录,然后把OpenCore安装套件里的EFI文件夹也拷贝进去。
  3. 大幅瘦身EFI文件夹,根据教程移除不需要的tools和drivers。
  4. 添加HfsPlus.efi这一driver。
  5. 添加LiluVirtualSMCWhateverGreen这三个必需kext。
  6. 因为El Captian之后的macOS有个奇怪的USB口数量限制,所以为了避免安装时有些USB口不能用或者出现奇怪的问题,提前在目标机器上用Windows做一下USB mapping很重要。做完mapping之后要把USBToolBox.kext和map出来的UTBMap.kext都放进启动U盘里。
  7. 按需添加其他kext。
  8. 根据你使用的平台添加SSDT,可以自己编译,懒人也可以直接下载别人编译好的
  9. 把安装套件里的sample.plist复制到U盘/EFI/OC目录下然后改名为config.plist。
  10. 使用ProperTree来编辑config.plist,其中一些牵涉到核显的参数需要参考Whatevergreen的文档来设置。非常费时的一步。
  11. 使用GenSMBIOS生成假的设备型号、序列号、主板序列号等等,并将它们写进config.plist里。

安装

如果U盘做得没问题,其实这一步不需要什么操作。从U盘启动,然后格式化Intel 535,插好网线等他装完即可。过程非常缓慢,大约一个半小时?

修复DRM问题

装完之后我很快就发现在Safari里任何Netflix视频都播放不了,研究了一下发现是硬件DRM解码不能正常运行的问题。而不同的配置/macOS能达成的修复也是不尽相同。Whatevergreen文档的这一页面对这个问题进行了详细说明。但简单来说就是macOS 11及以后的系统想要硬件DRM正常,必须把核显禁用,使用iMacPro1,1或者MacPro7,1的SMBIOS(因为这两款本身没有核显,因而可以在禁用核显的情况下正常运行),并且需要一张受支持的AMD独显。

我并没有使用unfairgva=4这一boot-arg来实现SMBIOS的注入,它似乎在我的配置上并不起作用。我手动生成了一套iMacPro1,1的SMBIOS写入config.plist就可以正常打开Netflix视频了。

这一做法也有其不利之处——如果使用iMacPro1,1和MacPro7,1这两款设备的SMBIOS,电源管理就需要额外的操作来进行优化。但是如果你像我一样不在意待机功耗,那也无所谓。

结语

写到这里也应该告一段落了,因为我无论如何也没法让Netflix播放4k视频,分辨率最高只能1080p。我当机立断订购了一条8米长的光纤HDMI线,直接从电视后面拉到沙发上来接MBP。这样可以边用MBP网上冲浪边用电视看Netflix。虽然这样意味着MBP变得less mobile,但是只用MBP自己的键盘和触控板来操作两个屏幕也许实际上是最方便的选择。

另外值得一提的是,我几乎不看Netflix。

Share