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

Reply via email to