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]]