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]>:
>
> 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