cheneyveron 发表于 2019-4-24 23:00

Ryzen“完美”黑苹果:能变频、使用iMessage、随意升级——借助KVM(Proxmox/Unraid)

本帖最后由 cheneyveron 于 2019-4-24 23:40 编辑

前言:(可跳过)
一直以来,主流AMD黑苹果的方案都是修改macOS/OS X的内核以使用AMD的处理器。但是这会导致一些无法克服的困难:
1. 不可能变频
2. 不可能通过苹果的iMessage与FaceTime验证
3. 不可能通过App Store在线升级系统
4. 专业软件无法运行
甚至安全更新也无法直接安装。
也正因此,折腾AMD黑苹果也是非常劳神费心的,主要功夫都花在与这破解内核和大量不兼容的软件斗智斗勇上。一次偶然的机会,我发现了KVM这个神器,因此就有了第二个选择:虚拟化CPU以适应macOS。
实践证明,把CPU模拟成Penryn后运行macOS完全没有以上的缺点:
1. 可以变频
2. 可使用iMessage与FaceTime
3. 可用App Store在线升级
4. PhotoShop等Adobe软件无须修改 均可完美运行
各位AMD黑苹果童鞋们,与其把时间花在折腾内核上面,不如把时间花在Qemu+KVM,只要配置好了外层虚拟化环境,在其中即可完美运行macOS了!归根结底,还是Intel的处理器相比于AMD过于昂贵。如今AMD的性价比甚至大大超过了X79洋垃圾,尤其是一代Ryzen,真香。
(前言结束)

我的配置是:
主板:Asrock x370 Taichi
CPU:Ryzen 7 1700x @ 3.8GHz
散热器:千石船
显卡:Onda GTX1050Ti(分配给Windows 打游戏) + 蓝宝石 RX570 4G(分配给macOS)
内存:科赋雷霆3000 16G @ 2933MHz+海盗船复仇者3000 16G @ 2933MHz
硬盘:西数蓝盘SSD 500G

性能测试(GeekBench):
Windows下裸机跑分:https://browser.geekbench.com/v4/cpu/12893803
    单核:4503      多核:26849
macOS下跑分:https://browser.geekbench.com/v4/cpu/12893704
    单核:4413      多核:27114
这两个跑分时CPU的频率是一样的,并且macOS虚拟机只分配了8GB内存。可以看到,Windows下虽然单核分数领先了2%,多核下反而被macOS反超1%。
系统:unRAID 6.6.6(baidu云有破解)

推荐的硬件:
如果到这里激发出了你的兴趣,那么这是我的一点建议:
1. 主板使用x370/x470系列,而非b350/b450系列。入门级x370与高级x370的iommu组数量几乎一致,而b350系列iommu组极少,硬件直通很困难。这里入门级x370我测试了MSI x370 Gaming Plus,高级x370测试了Asrock x370 Taichi。B350我试的经典的Asus B350-plus。
2. 宿主系统需要预留1.5G左右的内存,因此内存建议大于4G。
3. 为了最佳的Mac体验——使用HandOff与其他Mac/iPhone/iPad无缝对接——建议购买一张BCM94360系列的蓝牙网卡。

推荐的软件与教程(英文,需科学上网):
选择0:自行在Ubuntu上搭建Qemu+KVM(免费,极其折腾,不推荐):https://github.com/kholia/OSX-KVM
选择1:Proxmox(免费,较为折腾,推荐):https://www.nicksherlock.com/201 ... -mojave-on-proxmox/
选择2:unRAID(收费,轻松得多,能找到6.6.6版本破解,推荐):https://www.youtube.com/watch?v=YWT4oOz2VK8

可能遇到的坑与解法:
由于硬件虚拟化涉及的内容与可能遇到的问题众多,无法一一列举,我就简单说一下我遇到的问题,供各位有兴趣的童鞋参考。
1. 硬件直通的问题
   1) 在同一个iommu组下的硬件必须同时全部直通 或 全不直通,不能只直通某一个硬件。
   2) 在grub引导项中,添加pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1能尝试软件分割iommu组,如果这样都无法把想直通给虚拟机的硬件分到单独的iommu组,那就没戏了。
   3) Qemu的USB接口只支持5个,可以考虑直通某个USB总线给虚拟机,不受接口数量限制,并且性能更好。

2. GPU硬件直通的问题:
   1) N卡用UEFI模式时只有HDMI口有输出
   2) A卡用UEFI模式时只有DP口有输出
   3) 如果宿主系统在UEFI模式下启动,则需要手动禁用efifb模块
   4) 如果需要直通当前启动时使用的GPU,会有Shadow vbios的问题,用GPU-Z或任何工具提取的vbios都会受干扰,只能将显卡放到第二个pci槽后,用其他显卡放在第一个槽后,启动某个linux系统使用以下命令来提取vbios:
echo 1 > /sys/devices/pci0000:00/0000:00:02.0/rom
cat /sys/devices/pci0000:00/0000:00:02.0/rom > vbios.dump
echo 0 > /sys/devices/pci0000:00/0000:00:02.0/rom
   然后禁用efifb模块,并且直通时指定ROM为vbios文件,即可正常输出post信息。
   5) 如果使用了上面软件分割iommu组的方法,建议手动将显卡与其HDMI设备的pci通道调整为虚拟机上的同一个通道,以避免HDMI无声音的问题


3. Clover的问题:
   不能使用高于4843的版本,否则无法在KVM上使用OVMF固件启动。


乄糖果^:^罐 发表于 2019-4-25 01:29

玩amd还是使用win吧,另外kvm还不如vm,另外一切非裸机装系统都是渣

levis0792 发表于 2019-4-25 01:32

顶了,看样子可以amd yes了 。类似于esxi的方式虚拟mac系统和win系统吗?

NumberVII 发表于 2019-4-25 05:09

这不是Linus前几天发的视频讲的吗

cheneyveron 发表于 2019-4-25 08:50

乄糖果^:^罐 发表于 2019-4-25 01:29 https://www.pcbeta.com/static/image/common/back.gif
玩amd还是使用win吧,另外kvm还不如vm,另外一切非裸机装系统都是渣

vmware比kvm更傻瓜化一些,就稳定性、性能、可配置性来说,kvm哪点比不上VMware... 现在数据中心虚拟化发展的很成熟了已经,平民虚拟化也司空见惯。
AMD修改内核直接装自然是一种方案,不过,这两种方案的优劣,自己试试就知道啦,试了虚拟化就再也不想回去了{:5_262:}

cheneyveron 发表于 2019-4-25 08:56

levis0792 发表于 2019-4-25 01:32 https://www.pcbeta.com/static/image/common/back.gif
顶了,看样子可以amd yes了 。类似于esxi的方式虚拟mac系统和win系统吗?

是的,用esxi的话只能模拟主板信息,无法模拟处理器,所以还是需要破解内核才能装,那样的话,可能还不如裸机装。
win系统的话,虚拟机和物理机可以共用一个分区,方便的很。

levis0792 发表于 2019-4-25 09:14

看了油管的视频,好像有点难,需要专业的知识,小白的我表示感觉有点难

xuchi 发表于 2019-4-25 09:33

 出个教程吧

sleele 发表于 2019-4-25 10:02

楼主是看的这个么。我觉得这个也是现今搞黑苹果第二好的方案,第一好的AMD黑苹果方案
https://www.youtube.com/watch?v=ATnpEOo3GJA&list=PLntqhmJkQDbcSzZ1RU_X3iBSSNYgHJGrs&index=2&t=4s

cheneyveron 发表于 2019-4-25 22:26

sleele 发表于 2019-4-25 10:02 https://www.pcbeta.com/static/image/common/back.gif
楼主是看的这个么。我觉得这个也是现今搞黑苹果第二好的方案,第一好的AMD黑苹果方案
https://www.youtube ...

哈哈,linus正好也提了,不过我从去年11月份就开始琢磨啦,目前自认为unRAID是最佳选择,因为有“CPU固定”功能。
借助这个功能,可以把处理器的某个核心分配给unRAID宿主系统,然后8个核心分配给macOS虚拟机,4个核心给Windows虚拟机打游戏,剩余核心给docker,这样就不会出现虚拟机满载的时候宿主机无法分配到资源导致宿主无响应,进而整个机器都挂掉的情况。

zhuoyue8552 发表于 2019-4-26 08:00

这不是虚拟机运行mac吗?

ifree 发表于 2019-4-26 08:01

假设我只有一个黑苹果需要使用显卡,在这种无集成显卡的Ryzen处理器上,能否只插一个显卡,然后直通给虚拟机呢?

cheneyveron 发表于 2019-4-26 12:00

ifree 发表于 2019-4-26 08:01 https://www.pcbeta.com/static/image/common/back.gif
假设我只有一个黑苹果需要使用显卡,在这种无集成显卡的Ryzen处理器上,能否只插一个显卡,然后直通给虚拟机 ...

可以的,我最开始就是这么做的

一岁的风骚 发表于 2019-4-26 16:14

好在在B站上看到过这个完全一脸懵逼

小叶在远方 发表于 2019-4-27 09:53

NumberVII 发表于 2019-4-25 05:09 https://www.pcbeta.com/static/image/common/back.gif
这不是Linus前几天发的视频讲的吗

似乎是的 当时我也看到了

v037 发表于 2019-4-29 15:52

我正在研究这个,新买的笔记本配的32g内存无处使,看了很多资料感觉KVM很有搞头,准备宿主机用核显,虚拟的黑苹果直通gtx1060独显,CPU的完全虚拟化再KVM上已经很成熟,只要能直通独显,用起来和真机差别不多,我在看github上的这套方案 https://github.com/kholia/OSX-KVM

v037 发表于 2019-4-29 16:00

乄糖果^:^罐 发表于 2019-4-25 01:29 https://www.pcbeta.com/static/image/common/back.gif
玩amd还是使用win吧,另外kvm还不如vm,另外一切非裸机装系统都是渣

vm做不到硬件直通,这点不如kvm

edius8886 发表于 2019-4-29 18:17

顶上 这个工具好AMD 的春天建议开个 AMD U 的专场论坛区

cheneyveron 发表于 2019-4-30 08:02

v037 发表于 2019-4-29 15:52
我正在研究这个,新买的笔记本配的32g内存无处使,看了很多资料感觉KVM很有搞头,准备宿主机用核显,虚拟的 ...

笔记本的iommu组可能会是硬伤,而且不少i系列处理器不支持vt-d。
有一个非常简单的验证方法,就是花5分钟做一个unraid启动U盘,登录进去点System Info就能看到是否支持硬件直通、有多少分组。

cheneyveron 发表于 2019-4-30 08:10

v037 发表于 2019-4-29 15:52
我正在研究这个,新买的笔记本配的32g内存无处使,看了很多资料感觉KVM很有搞头,准备宿主机用核显,虚拟的 ...

笔记本的iommu组可能是硬伤,另外,不少i系列处理器不支持vt-d,可以先简单调研一下
有一个比较简单的方法能查看iommu组,就是U盘做个unraid启动盘,直接去System info看即可。还能图形界面一键添加iommu分割补丁。
页: [1] 2 3 4 5 6
查看完整版本: Ryzen“完美”黑苹果:能变频、使用iMessage、随意升级——借助KVM(Proxmox/Unraid)