V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
adrianzhang
V2EX  ›  macOS

Mac OS X on KVM?

  •  
  •   adrianzhang · 2016-06-06 09:10:21 +08:00 · 10000 次点击
    这是一个创建于 3079 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://blog.ostanin.org/2014/02/11/playing-with-mac-os-x-on-kvm/

    有人做过这种吗?实际体验怎么样?工作站装 Linux 再虚拟个 MacOS 可以做 xcode 开发吗?
    18 条回复    2017-03-07 20:11:29 +08:00
    ivmm
        1
    ivmm  
       2016-06-06 09:15:45 +08:00
    Mac 虚拟 Mac OS 我都觉得卡
    fcicq
        2
    fcicq  
       2016-06-06 09:19:27 +08:00   ❤️ 1
    楼主应该引用 KVM 补丁作者的教程. linux kernel 3.15+ 免补丁, 从当年的 10.10 起一路升级 10.11.5 没问题. 显示性能很烂但是如果有单独显卡 pci passthrough 应该还是可以的. 但是本人不做 iOS 开发啊... 不走 passthrough 的话还想性能就折腾大了.
    txx
        3
    txx  
       2016-06-06 09:21:24 +08:00
    直接黑苹果呗..
    fcicq
        4
    fcicq  
       2016-06-06 09:22:46 +08:00
    这个东西最大的用途可能是找高配机做远程编译, 肯定比垃圾桶性价比高.
    fcicq
        5
    fcicq  
       2016-06-06 09:23:53 +08:00
    @txx 和黑苹果相比不看硬件(当然虚拟化还是要的), 不挑驱动.
    adrianzhang
        6
    adrianzhang  
    OP
       2016-06-06 09:30:04 +08:00 via Android
    @fcicq 主要是考虑 dell 的图形工作站性价比挺高的,做 android 和网站系列的开发好用。如果虚拟化跑 macos 还过得去的话就省得再为苹果生态开发配置另外的机器。话说你当初装了以后都做哪些事?
    fcicq
        7
    fcicq  
       2016-06-06 09:37:19 +08:00   ❤️ 1
    @adrianzhang 关掉各种特效, 设个单色壁纸, 打通 vnc (qemu 的 vnc 和 mac 系统的 vnc 各有特点, 说不上该用哪个), 设自动启动之类的? 只要 chameleon 能启动你的安装盘后面应该就是平路了, 没有也不需要驱动.
    eddiechen
        8
    eddiechen  
       2016-06-06 11:04:11 +08:00
    想省事还是直接上 mac mini 吧,会折腾死人的
    adrianzhang
        9
    adrianzhang  
    OP
       2016-06-06 11:34:42 +08:00 via Android
    @eddiechen 不止一个开发。所以想了解下可行性。
    pheyx
        10
    pheyx  
       2016-06-06 12:39:03 +08:00   ❤️ 4
    @adrianzhang 我现在就是在 Linux KVM 下用的 El capitan 虚拟机。 Passthrough 了一张显卡,所以运行很流畅,图形加速都可用。 USB 是 Passthrough 了一个 USB3.0 PCIe 卡。
    建议使用 E5 的 CPU (当然主板也需工作站或服务器级别的),单 Socket 的话支持 40 PCIe lanes ,比 I7 或 I5 多很多,比较适合 PCIe passthrough 。显卡建议 N 卡, OS X 下装 nVidia 的 web driver ,不是太老的 N 卡差不多都能驱动。
    建议订阅 vfio (目前 PCIe passthrough 是通过 vfio 这个驱动实现的)邮件列表,有 vfio 的开发者参与。另外 insanelymac.com 的虚拟化版也有关于 KVM 下安装 OS X 的讨论。
    adrianzhang
        11
    adrianzhang  
    OP
       2016-06-06 13:25:00 +08:00 via Android
    @pheyx 很详细。非常感谢!
    uztyzrxd
        12
    uztyzrxd  
       2016-06-13 16:16:29 +08:00   ❤️ 1
    e5 很美,再加上工作站主板,银子上可不太美啊

    简单说下我的机器配置及理解,略有偏题,供参考

    cpu: e3-1230 v2
    KVM 下 VGA passthrough 已经很成熟了, cpu 支持 VT-d 的都可以尝试下
    cpu 如果能够支持 ACS 最好,见: https://vfio.blogspot.com.ar/2015/10/intel-processors-with-acs-support.html
    但 e3-1230 v2 不支持 ACS, 需要 ACS override patch
    见: VFIO+VGA FAQ Question 1 https://vfio.blogspot.com/2014/08/vfiovga-faq.html
    如果 cpu 带核显的更好,可以省掉一块独立显卡, 不过可能需要 i915 VGA arbiter patch
    见: VFIO+VGA FAQ Question 3 https://vfio.blogspot.com/2014/08/vfiovga-faq.html
    有钱任性还是上 E5-26xx v3 吧,有几个特性对于虚拟化来说值得关注
    见: https://software.intel.com/en-us/blogs/2014/09/08/four-new-virtualization-technologies-on-the-latest-intel-xeon-are-you-ready-to

    主板: ASRock Z77 Extreme4
    主板支持 VT-d, BIOS 支持 VT-d

    内存: 16G
    若只是为了运行 OS X, 其实是不用这么大的,但我开机即需要长期运行 30 多个 lxc 虚拟机, 也需要编译 AOSP 和 CyanogenMod 之类的

    存储: hddx6 + ssdx1
    不太在意数据安全的, 1 块 ssd 即可. 我是为了系统用 Btrfs, 数据用 zfs, 用 zvol 提供 iSCSI 给虚拟机

    显卡: 主卡 hd6570 + 辅卡 hd7750
    一般来说差些的显卡用做主卡, 辅卡用来 passthrough, 看需求决定
    hd6570 用作辅卡也是不错的, OS X 可以直接驱动,不需要特殊设置
    hd7750 用作辅卡在 El Capitan 和 Yosemite 上需要做些调整, Mavericks 及以下不必
    见: http://www.tonymacx86.com/graphics/161511-radeon-hd-7750-xfx-glitchy-after-10-10-3-update.html
    8400gs 我也用过,就是有些慢, passthrough 是没问题的
    想说的是, A 卡也好, N 卡也罢,都是有机会驱动的,在没有尝试之前,不要轻易购买新显卡

    鼠标键盘:
    如果不是多人同时共用一台机器,不必 passthrough 鼠标键盘,用 Synergy 共享鼠标键盘省钱而且操作方便

    声卡:
    对声音如果没有特殊要求, 也不必 passthrough 声卡, QEMU 设置 -soundhw hda 给 OS X, OS X 内用 VoodooHDA 驱动

    网卡:
    如果是用 libvirt 进行配置,不能通过图形界面配置网卡,否则 OS X 系统更新会失败, 应该用 virsh edit 进行编辑,比如
    <qemu:commandline>
    <qemu:arg value='-netdev'/>
    <qemu:arg value='bridge,id=hostnet0,br=br0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='e1000-82545em,netdev=hostnet0'/>
    </qemu:commandline>

    host OS: debian jessie + backports
    host OS 我倾向于系统支持时间长,稳定,更新尽可能的少,需要手工更改的尽可能的少
    CentOS 7 是不错的选择,但 CentOS 7 的 QEMU 不支持 OS X, 需要自己编译及更新,对于系统维护来说不是一个好选择
    不介意多些折腾的, Fedora 23 运行 OS X 也是可以的,网上也有大量的示例以 Arch Linux 做 host OS
    题外话,如果需要 Xen nested on KVM, 目前只有 Linux 4.1.x 支持,否则在 Xen 上创建 HVM 虚拟机,会导致 Xen 崩溃
    可能有些人考虑到要编译 Android, 倾向于使用 Ubuntu, 但 Ubuntu 用 lxc 跑即可
    我的 Linux 桌面用的是 debian jessie, 也是运行在 lxc 上的,这样和 host OS 隔离开来,方便 host OS 切换,不对桌面应用造成影响

    还有些细节及小问题,不赘述了
    adrianzhang
        13
    adrianzhang  
    OP
       2016-06-13 17:19:05 +08:00 via Android
    @uztyzrxd 多谢老司机带路!见到配置里竟然还有 voodoo 字样,不免感慨了一下。
    woyaojizhu8
        14
    woyaojizhu8  
       2016-07-15 01:09:43 +08:00
    @uztyzrxd 这个 ACS 具体有什么用呢?用 ACS override patch 来代替会有什么不足吗? 抱歉由于理解能力问题没能很好地利用你给的网页链接。
    woyaojizhu8
        15
    woyaojizhu8  
       2016-07-15 01:37:49 +08:00
    @uztyzrxd 你好,我正在计划配一台主力机,详见此贴: https://v2ex.com/t/290762 。我也是有虚拟化需求(虽然客户机系统不是用 OS X ),并且比较在意数据安全 。初步打算 960 作主卡, 650 直通给虚拟机,这样做有问题吗?其他配件,比如主板、 cpu 等,可以给点建议吗?
    woyaojizhu8
        16
    woyaojizhu8  
       2016-07-18 23:55:17 +08:00
    @pheyx 请问想直通显卡给 windows 虚拟机的话,配置用 e3 v3+z87 还是 e3 v5 +c236 比较合适?我看到这里有人说 ” Note that Skylake CPUs are not recommended for VMs with GPU pass through (harder to isolate the IOMMU groups; no support for the ACS override). “ : https://lime-technology.com/forum/index.php?PHPSESSID=abf3898aff54b61ced37ead5bb4e332a&topic=47088.0
    但好像也没有明确详细的例子。还有 z87 是否支持 vt-d 也未知。
    还有,显卡用什么样的比较容易直通呢?有没有一个兼容性列表呢?
    deyu260
        17
    deyu260  
       2017-03-07 16:53:27 +08:00
    @adrianzhang 暴露年龄了
    adrianzhang
        18
    adrianzhang  
    OP
       2017-03-07 20:11:29 +08:00 via iPhone
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2692 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:53 · PVG 14:53 · LAX 22:53 · JFK 01:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.