Skip to content

UEFI Graphics (VNC)

Matt Churchyard edited this page May 27, 2016 · 16 revisions

As of 27th May, bhyve UEFI now supports a frame buffer device which is accessible using VNC.

Update Bhyve

Download the latest bhyve code and rebuild the bhyve executable. This builds very quickly and easily.

svn co http://svn.freebsd.org/base/projects/bhyve_graphics path/to/dir
cd path/to/dir
make BHYVE_SYSDIR=/usr/src -m /usr/src/share/mk
```

#### Get the latest UEFI firmware
Download the latest UEFI firmware from @grehan, and overwrite the original UEFI firmware that `vm-bhyve` uses.

fetch https://people.freebsd.org/~grehan/bhyve_uefi/BHYVE_UEFI_20160526.fd mv BHYVE_UEFI_20160526.fd /my/vm/path/.config/BHYVE_UEFI.fd


#### Update guest configuration
This has been tested with a Windows virtual machine that was already using the previous UEFI firmware.
The following option needs to be added to the configuration file.

graphics="yes"

On starting the guest, a frame buffer device should be added to the guest, and is accessible by connecting to any host IP address on port 5900.

#### Additional configuration options
By default a PS2 mouse is created in the guest. This is the only supported mouse for older versions of Windows/FreeBSD. Newer versions support the XHCI mouse which works much better. The improved mouse can be enabled by adding the following config:

mouse="yes"


If you want VNC to listen on a specific host IP address, specify the following option:

graphics_listen="1.2.3.4"


You can also choose a port other than 5900. Obviously if you have multiple guests, a different port number will need to be used for each. In the future we will dynamically assign an available port.

graphics_port="5901"


By default the screen resolution is set to `800x600`. To specify a different resolution, use the following option

graphics_res="1600x900"

Please note, only the following resolutions are supported at the moment:

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