bhyve graphics support
grehan at freebsd.org
Fri May 27 08:33:50 UTC 2016
As of r300829, support for graphic output has been checked into the
projects/bhyve_graphics branch. This is just the usr.sbin/bhyve
executable, so is quick and easy to build from source.
Assuming a reasonably current source tree is in /usr/src,
svn co http://svn.freebsd.org/base/projects/bhyve_graphics path/to/dir
make BHYVE_SYSDIR=/usr/src -m /usr/src/share/mk
UEFI GOP support has been checked into the freebsd/edk2 repo:
A pre-built bhyve/UEFI binary image with GOP support is available at:
The new bhyve executable supports some new devices. An example of using
them for Windows10 is:
-c 2 \
-s 3,ahci-cd,/images/win10_install.iso \
-s 4,ahci-hd,/images/win10.img \
-s 11,fbuf,tcp=0.0.0.0:5900,w=1600,h=900,wait \
-s 20,xhci,tablet \
-s 31,lpc \
-l bootrom,/images/BHYVE_UEFI_20160526.fd \
-m 2G -H -w \
The framebuffer device, "fbuf", takes parameters describing the VNC
server options. The optional "wait" parameter will hold execution of the
guest until a VNC client is connected. The height and width of the frame
buffer can be specified, with the constraints that the maximum is 1920x1200.
Arbitrary resolutions are not yet supported by UEFI. That will be fixed,
but in the meantime, available resolutions are:
1920 x 1200
1920 x 1080
1600 x 1200
1600 x 900
1280 x 1024
1280 x 720
1024 x 768
800 x 600
640 x 480
Specifying an unsupported resolution will result in UEFI falling back
The XHCI emulation currently only has a tablet back end. This connects
to pointer input from VNC. If not present, pointer input defaults to the
ps2 mouse emulation. Note the latter only suppports relative coordinates
which don't track the cursor very well in VNC.
Keyboard input currently defaults to the PS2 keyboard.
The code has been tested with Windows 7/8/8.1/10 and Server 2k12/2k16,
Ubuntu 15.10, and FreeBSD 10.3/11-CURRENT. Note that older versions of
Windows, and FreeBSD, don't like the XHCI tablet - the default ps2 mouse
should be used with those.
For VNC clients, TightVNC, TigherVNC, and RealVNC (aka VNC Viewer)
have been tested on various hosts. The OSX VNC client is known not to work.
Give it a try and let us know how it goes !
Many thanks to Michael Dexter for helping out with the testing of this.
More information about the freebsd-virtualization