This page is replaced by [[/Xen]]
====== Old FreeBSD/Xen port wiki page ======
The port will only run as a guest (ie. domU) right now, on i386/PAE platforms.
===== Status =====
* domU is self-hosting on 8-CURRENT (can compile world + kernel in a VM). Latest sources are CVS/SVN.
* domU support is available for 6.3 and RELENG_6 in project branches:
* 6.3-RELEASE svn:%%//%%svn.freebsd.org/base/projects/release_6_3_xen/
* RELENG_6 svn:%%//%%svn.freebsd.org/base/projects/releng_6_xen/
* Xen 3.0.3 and earlier are not currently supported.
* Amazon's EC2 uses 3.0.3.
* Device structure needs to be cleaned up, it's not conformant to newbus.
* SMP support is working.
* amd64 support is planned.
* 3.1 has been tested under vmware and on real hardware with a 32-bit dom0 (one cannot run 32-bit guests with a 64-bit dom0 on xen 3.1)
* 3.2 has been tested on real hardware with both 32-bit and 64-bit dom0
* 3.3 has been tested on real hardware with a 32-bit dom0
===== TODO =====
* Substantial cleanup needed - check with Kip Macy or Scott Long for further details if you are interested.
* Device tree:
* Add a newbus nexus for the front-end bus
* Figure out how to get xenstore working in time for the bus scan (get scheduler running)
* Convert drivers to newbus
* XEN kernel conf file cleanup:
* Remove options and devices that don't apply to Xen
* Add xc, xbd, and xn devices, and update /sys/conf/files.i386 appropriately
* Fix blkfront to give sensible unit numbers
===== Warnings =====
* If you want to use xen as a development environment you would be well advised to install a 32-bit dom0. The libxc interface that emulates ptrace for gdbserver-xen cannot fetch a 32-bit register set when running on a 64-bit kernel.
* There are problem reports on some systems with the %%DomU%% clock not running reliably, giving stalled or sporadic console output and system progress during boot. This is being investigated. Please contact us if you are experiencing this.
===== Setup =====
To help get one started a small file-backed disk and some sample configuration files can be found at:
http://www.fsmware.com/xenofreebsd/7.0/download/
Steps I used for installing Xen 3.2 on a recent %%CentOS%%:
Install zlib-devel, gcc, libX11-devel, openssl-devel, ncurses-devel, bridge-utils, python-devel.
Install git if it's not already included in the Dom0 install; it's needed by the Xen build.
Fetch mercurial:
wget http://www.selenic.com/mercurial/release/mercurial-1.0.2.tar.gz
Build & install mercurial:
python setup.py config; python setup.py build; python setup.py install
Fetch xen sources:
hg clone http://xenbits.xensource.com/xen-3.2-testing.hg
Build and install the xen kernel, modules, and tools:
cd xen-3.3-testing.hg ; make world && make install
Create new initrd:
mkinitrd /boot/initrd-2.6.18.8-xen.img 2.6.18.8-xen
Update /boot/grub/grub.conf (menu.lst on some systems). A sample entry might look like this:
title Xen (2.6.18.8-xen-3.3)
root (hd0,1)
kernel /boot/xen-3.3.gz console=com1 com1=115200,8n1
module /boot/vmlinuz-2.6.18.8-xen ro root=/dev/sda2 rhgb console=tty console=ttyS0,115200
module /boot/initrd-2.6.18.8-xen.img
**NOTE: Don't use this example verbatim without reviewing the "//root//****" parameters**
===== Updates =====
For questions about %%FreeBSD%% on xen and next steps please contact Kip Macy - he can be reached at kmacy at freebsd.org. There is also a dedicated mailing list: http://lists.freebsd.org/mailman/listinfo/freebsd-xen
Kip Macy is currently working on a RELENG_7 backport.
This entry is referenced by the [[http://bsdresearch.blogspot.com|BSD Research blog]].
----
[[/CategoryHistorical]]