This page is replaced by Xen

Old FreeBSD/Xen port

This wiki page documents the state of FreeBSD on Xen. Below are reported the several configurations on which FreeBSD can run XEN.

32-bit Intel/AMD (i386)

FreeBSD supports both hardware virtualized (HVM) and fully para-virtualized (PV) kernels on i386. PV drivers are supported only with the PV kernel.

A GENERIC (or similar) kernel should be used in HVM configurations.

A custom-compiled XEN kernel is required for full virtualization. Para-virtualized i386 kernels require options PAE to be included in the kernel configuration.

64-bit Intel/AMD (amd64)

FreeBSD supports only hardware virtualized (HVM) kernels on amd64; however, PV drivers are supported in this configuration.

While a GENERIC (or similar) kernel will work, a custom-compiled XENHVM kernel will add PV drivers, improving performance, etc.

Notes on PV drivers

In addition to emulating physical devices, Xen supports para-virtualized drivers, which provide better performance and integration. FreeBSD supports the netfront (network interface), blkfront (storage device), and Xen console devices. These devices can be probed and attached if xenpci is configured into the kernel.

The netfront driver attaches as its own ethernet driver, xnX.

The blkfront driver attaches as a block storage device, but emulates the adX and daX disk namespaces used by the ATA and SCSI drivers based on the disk number presented by Xen.

Amazon EC2

FreeBSD 9.0-CURRENT and 8.2-STABLE are operational on EC2 t1.micro instances. Work is ongoing to improve the stability and extend support to other instance types. More details are available at

Old FreeBSD/Xen port wiki page

You can refer to the following page for the old project effort: FreeBSD/XenOld

Status and TODO

Current FreeBSD status, as XEN support, and subsequent TODO list are reported in the following presentation:

The following tasks need to be completed in order for full 64bit PV to be functional.




Boot to ddb

Basic stubs to get kernel debugger running


Boot to single user mode

Basic kernel/user boundary entry/exit


Boot to multiuser mode

Validate drivers, domain control etc.


Boot to MP

ipi setup and mmu update path races




A list of Dom0 kernels is available here:

Once you have selected your system of preference for running a Dom0 host instance, some work is needed in order to get it ready. First of all you may need to install the Host system. You can find instructions about how to setup, officially supported, host systems here (please refer to each project page):

After that, some configuration tips are necessary. Please follow advices reported here:

At this point your guest FreeBSD can be booted in the selected configuration.

GENERIC kernel will boot in as HVM guests but won't use any performance optimization. In order to do so, both i386 and amd64 kernel should be compiled as XENHVM kernels.

Additively, i386 can also work as a PV guest by building the XEN kernel configuration.


Several companies and individuals have worked to FreeBSD-XEN support so far. For questions about FreeBSD on xen messages can be sent to the dedicated mailing list:

or the following individuals can be separately contacted:

Will Andrews - will AT FreeBSD DOT org

Sean Bruno - sbruno AT FreeBSD DOT org

Justin T. Gibbs - gibbs AT FreeBSD DOT org

Bret Ketchum - Bret_Ketchum AT dell DOT com

Kenneth D. Merry - ken AT FreeBSD DOT org

Kip Macy - kmacy AT FreeBSD DOT org

Cherry G. Mathew - cherry AT FreeBSD DOT org

Colin Percival - cperciva AT FreeBSD DOT org

Attilio Rao - attilio AT FreeBSD DOT org

CategoryVirtualization CategoryTodo

FreeBSD/Xen (last edited 2017-11-08 21:02:07 by MichaelDexter)