Gjermund, Sorry for the confusion - no, we did not make it work through option 1 due to the lack of adequate patches. From what I recall we were able to boot the Chameleon boot loader but that was it - and we only tried rather old OSX versions (10.6 and 10.8).
I pasted the JSON below mainly to illustrate that there’s an interface in vmadm that can setup such options to a KVM zone description. To make this work one would probably need to back-port patches for CPU type and Q35 platform support first. These could then also be tested with other KVM VM’s apart from OSX/macOS. The second step would then be to resolve/fix boot issues with OSX/macOS itself. BTW: We haven’t seen huge issues with Windows KVM performance at vcpus=1 although it can be slow occasionally. We only use that OS in a few server VMs, so bigger issues could go unnoticed... Hmm, I have quite some C/C++ programming expertise myself but haven’t spent much time hacking QEMU. One’s ability to support such an effort would of course be very limited without programming experience... Peter > Am 28.11.2017 um 11:33 schrieb Gjermund ॐ Gusland Thorsen > <[email protected]>: > > My intial thought on your section 1 is did you make it work? I see there is > vcpus = 1 in which at least for Windows is brutally slow; however with vcpus > = 16 the running instance appears to be running at an enjoyable pace. > > I would be interested in helpings out on rejuvenating qemu in smartos, but > not sure which part of me is needed. I have the "barebones" knowledge of > scripting in several languages yet no experience in the field of KVM/qemu > other than being a user of SmartOS. > > Sent from my iPhone > > On 28 Nov 2017, at 11:21, Peter Kelm <[email protected] > <mailto:[email protected]>> wrote: > >> Gjermund, >> >> We looked into the very same question ourselves a few months ago and came up >> with the following approaches: >> >> 1) Fix KVM on SmartOS. >> >> This could be accomplished by either „upgrading“ the SmartOS supplied >> version of QEMU or patching the existing version to make it boot macOS. Each >> KVM zone on SmartOS has a „startvm" file in its root directory that would >> need to be modified for a macOS VM. This could be accomplished by passing >> the correct parameters to "vmadm create“, e.g. via „qemu_extra_opts“, e.g.: >> >> { >> "brand": "kvm", >> "vcpus": 1, >> "autoboot": false, >> "alias": "OSX", >> "ram": 2048, >> "resolvers": ["192.168.17.1", "192.168.18.1"], >> "disks": [ >> { >> "boot": true, >> "model": "ide", >> "size": 20480 >> } >> ], >> "nics": [ >> { >> "nic_tag": "admin", >> "model": "virtio", >> "ip": "192.168.17.106", >> "netmask": "255.255.255.0", >> "gateway": "192.168.17.1" >> } >> ], >> "qemu_extra_opts": "-kernel boot -device usb-kbd -device usb-mouse >> -device isa-applesmc,osk=\“whatever\"“ >> } >> >> Note that the patches published at >> https://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/ >> <https://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/> are for a much newer >> version of QEMU (it was mentioned already on this thread that the version >> ported to SmartOS is fairly ancient from today’s perspective)! >> >> Recent versions of OSX/macOS also require the Penryn CPU type and a Q35 >> machine type. Such patches exist(ed) - at least in parts - for older QEMU >> versions, but are completely in current QEMU. >> >> The SeaBIOS file referenced by Gabriel Somlo’s website should be fine as is >> - but again: requires a newer version of QEMU. >> >> Helpful information - in addition to Gabriel’s website: >> - https://github.com/kholia/OSX-KVM <https://github.com/kholia/OSX-KVM> >> - https://github.com/jibaron/q35-qemu <https://github.com/jibaron/q35-qemu> >> (I believe these were the original patches for a Q35 machine type in QEMU) >> >> 2) Use VirtualBox on SmartOS? >> >> The other possibility we came up with would be using macOS inside a >> VirtualBox VM on SmartOS. macOS support in VirtualBox exists and there’s a >> Solaris version that would need to be unpacked and integrated into the GZ >> image (drivers!). From what I read it should run in a (non-global) zone but >> information is scarce on that aspect. At the very least one would need to >> integrate the VBox drivers into the SmartOS image and permit a zone to see >> and access them. VBox itself can be controlled via the command line, so no >> GUI would be needed. >> >> 3) There’s a newer QEMU version in pkgsrc >> Jan Poctavek of Erigones (CC'd) mentioned this potential option to me some >> weeks ago during a meeting. I haven’t looked into this at all and I am not >> too sure whether it would help in the end (a second KVM version, similar >> issues than VBox). But he might be able to give additional details. >> >> With all this said we would lean towards option 1) as it would have the best >> long(er) term potential for the SmartOS platform. Additionally, other KVM’s >> (incl. Windows) might also benefit from such a move by enabling additional >> features and keeping closer track of QEMU’s development outside of SmartOS - >> instead of rolling our own patchy version. >> >> Getting macOS KVM VM’s going would be very interesting for us. We lacked the >> time to do it alone but with the coordinated effort of a (small) group of >> people and it might be achievable… >> >> In this light it would also be interesting to hear from Joyent what their >> take would be on „rejuvenating“ QEMU on SmartOS. >> >> Peter >> >>> Am 27.11.2017 um 19:17 schrieb Gjermund Gusland Thorsen >>> <[email protected] <mailto:[email protected]>>: >>> >>> This should work for any intel Mac with the appropriate amount of CPU / >>> RAM. I did not try on my MacPro yet. >>> >>> The challenge is in making the MacOS X boot inside the KVM zone as MacOS X >>> boots using UEFI, and not legacy. In essence I have a preinstalled image >>> made with CCC from the time when the xserve ran natively; yet I'm not able >>> to make it boot inside the zone. Perhaps I'll just have to dd the image >>> mounted CCC image to a file. I'm still not able to imagine how to tell the >>> KVM zone how to boot in UEFI mode however. >>> >>> Here is a non-stock-illumos approach( and legal stuff pt 4: ) >>> https://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/ >>> <https://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/> >>> >>> Do you know how to submit these patches to Joyent SmartOS? If not in the >>> main thread perhaps a separate dataset? >>> >>> Ideally I would like something along the lines the way we are able to >>> install and boot Windows. >>> >>> G >>> >>> On 27 Nov, 2017, at 15:50, Alex Kritikos <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>>> Would this also work on a Mac Pro 2010? Would you mind sharing some >>>> details on how you achieved it? >>>> >>>> >>>> Alex >>>> >>>> >>>> >>>> On 27 November 2017 at 16:20:02, Gjermund Gusland Thorsen >>>> ([email protected] <mailto:[email protected]>) wrote: >>>> >>>>> I run Joyent SmartOS on an Apple XServ( xserv 2,1 ) w/96 GB RAM >>>>> >>>>> Apple is fine with virtualizing their OS as long as it's done one Apple >>>>> Hardware. >>>>> >>>>> How can I make a MacOS X KVM in a zone? >>>>> >>>>> G >>>>> >> > > smartos-discuss | Archives > <https://www.listbox.com/member/archive/184463/=now> > <https://www.listbox.com/member/archive/rss/184463/25252853-72390e47> | > Modify <https://www.listbox.com/member/?&> Your Subscription > <http://www.listbox.com/> ------------------------------------------- smartos-discuss Archives: https://www.listbox.com/member/archive/184463/=now RSS Feed: https://www.listbox.com/member/archive/rss/184463/25769125-55cfbc00 Modify Your Subscription: https://www.listbox.com/member/?member_id=25769125&id_secret=25769125-7688e9fb Powered by Listbox: http://www.listbox.com
