hyperkit
hyperkit copied to clipboard
Support for booting more guest operating systems
Linux is the only “first class” operating system supported at the moment. FreeBSD does boot, but requires running the installer and so isn’t as seamless.
UEFI support exists (#10) to add UEFI BIOS support to boot Windows, OpenBSD, or NetBSD, but this requires more testing.
Is Darwin / OS X as a guest OS completely out of the question here?
There is a grub2 implementation to allow booting of disk images, however i'm not sure how portable it is.. I also looked for the ability to kernel exec (kexec) into a boot loader instead of a kernel, which is how hyper kit starts virtual machines currently.
Is Darwin / OS X as a guest OS completely out of the question here?
TL;DR: It would be possible (and very cool), but an awful lot of work ;-)
I wouldn't say completely out of the question, but I'd expect it to be a significant amount of work to add emulations for the minimal set of h/w requirements that OS X would tolerate running on top of. If there were OS X virtio drivers that'd be a much smaller concern, but I don't know if they exist or not.
I'd be particularly concerned about what its minimum demands in terms of a video device were.
In terms of booting AIUI (modern) Apple hardware uses UEFI (or UEFI-like?) firmware so presumably (and I'm speculating wildly here) UEFI (EDK2) via the support added in #10 and stuff like the hackintosh guides would get you a reasonable portion along that path. I'd guess that h/w support would be the larger body of work.
Windows 2008r2 reported to boot under hyperkit: https://twitter.com/jdmulloy/status/733196551015829506
Indeed, would be interesting to know what the graphics stack used there is, perhaps it is just running headless with VNC or RDP or something.
That's headless with RDP, though bhyve has work in the pipe for native graphics so that may trickle through to xhyve at some point https://twitter.com/nahannisys/status/659517013027454978
@grehan-freebsd Awesome! We should certainly wait for that to land in bhyve rather than repeating that work over here!
Is there any plans to merge over the framebuffer/vnc work that has just landed in bhyve? https://lists.freebsd.org/pipermail/freebsd-virtualization/2016-May/004471.html
@thebsdbox the framebuffer/vnc stuff would be great to have, as far as I know nobody is working on that so feel free to pick it up, since it looks to all be on the bhyve userspace side I hope the port should be reasonably easy! I guess we wouldn't want to merge into hyperkit master until it is in FreeBSD HEAD rather than a feature branch, but there no harm in getting a headstart on the port and preparing an initial PR to track the progress to HEAD.
There will be some fiddly work to pull in all of the missing usb /xhci code from https://github.com/freebsd/freebsd/tree/master/sys/dev/usb, along with again removing all of the vmctx requirement.
What is the status here. I just got the UEFI shell to boot and it looks like others have got further in this thread.
build/com.docker.hyperkit -A -m 1G -s 0:0,hostbridge -s 31,lpc -l com1,autopty=/tmp/tty -U deadbeef-dead-dead-dead-deaddeafbeef -f bootrom,test/BHYVE_UEFI_20160526.fd,,
If help is still wanted before I dive in to much l suggest a write up design proposal doc. I suspect once a design/scoping is written breaking the work down into individual issues with help-wanted might be an effective way to tackle things in parallel and incrementally work towards.
Sorry for the simplistic question, is the lineage for this - 'bhyve -> xhyve -> hyperkit'
@pnasprat: The scope here is really just:
while not(more oses to try)
pick an $OS (random, own pet OS, etc)
while not(that $OS boots and works well with hyperkit)
fix issues
done
done
(Or perhaps s/fix issues/report issues/
as anyone contributing prefers).
I don't think we need to get too bogged down with design proposals at this step, lets defer that to specific issues which arise iff it is appropriate for that issue. I expect most to either be minor and easily solvable or to have an obvious path forward.
@rkazak: Yes, that lineage is correct.
👍 I'm fine for lighter weight - I was just basing this on the documented contributors process. I'll hopefully have sometime next week to look at a few guests.
Related I'm wondering about tools/utils to make eg disk setup/partitioning easier for eg setting up a UEFI boot partition disk and putting images onto particularly on OS X. For some hyperkit users this may not matter too much but I'd love it to be easy for non-os hacker people who just want to get an OS running.