Mac OS X on KVM? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
adrianzhang
V2EX    macOS

Mac OS X on KVM?

  •  
  •   adrianzhang 2016-06-06 09:10:21 +08:00 10385 次点击
    这是一个创建于 3422 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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-adeon-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     Solana     1170 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 17:16 PVG 01:16 LAX 10:16 JFK 13:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86