Compiling Xen From Source on NetBSD: Difference between revisions
(Created page with "==Introduction== The purpose of this document is to guide users through the process of installing Xen from source (either from the tarball releases or from a source code reposit…") |
No edit summary |
||
Line 74: | Line 74: | ||
<pre> |
<pre> |
||
# gmake install-tools |
# gmake install-tools |
||
</pre> |
</pre> |
||
Revision as of 12:11, 14 August 2012
Introduction
The purpose of this document is to guide users through the process of installing Xen from source (either from the tarball releases or from a source code repository).
This document was written targeting the Xen 4.2 release, which is the first release to build natively on NetBSD without any specific patches.
An assumption is made of some familiarity with the general concept of building software and with using your distributions package manager to install relevant build tools etc.
Dependencies
The first step is to install the dependencies needed by Xen, they can all be found in pkgsrc. Here is the list of packages that should be installed for 4.2:
devel/mercurial devel/scmgit devel/gmake lang/python27 devel/py-curses devel/dev86 devel/glib2 devel/yajl
Configuration
From Xen 4.2 onwards Xen uses the commonly used autoconf tool to provide compile time configurability of the toolstack. This allows some control of what features are built into Xen, as well as compile time sanity checking. Since pkgsrc installs packages in /usr/pkg, we will need to instruct configure to search for the required libraries there:
$ ./configure PYTHON=/usr/pkg/bin/python2.7 APPEND_INCLUDES=/usr/pkg/include APPEND_LIB=/usr/pkg/lib --prefix=/usr/xen42
Please note that "prefix" has been set to /usr/xen42, you can change this to install it in /usr/pkg or whatever directory that suits your needs.
Building
Now that the configuration has finished, let's start the building. Stubdomains are not available on NetBSD, so we will skip the build of those:
$ gmake PYTHON=/usr/pkg/bin/python2.7 xen $ gmake tools
Install
First, we will copy the Xen kernel to /:
# cp xen/xen.gz /xen.gz
Now we need to fetch a Dom0 kernel for the NetBSD version we are running, Dom0 kernels can be found at:
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-<version>/<arch>/binary/kernel/netbsd-XEN3_DOM0.gz.
Download it to /, unpack and rename it to netbsd.xen. The next step is to modify the bootloader to correctly boot the Xen kernel and NetBSD. The following line should be added to /boot.cfg:
menu=NetBSD Xen:load /netbsd.xen console=com0;multiboot /xen.gz dom0_mem=512M
For a serial console boot use the following:
menu=NetBSD Xen com0:load /netbsd.xen console=com0;multiboot /xen.gz dom0_mem=512M console=com1 com1=115200,8n1
Also, set the dom0_mem parameter to an appropriate value for your use case. More info about the Xen kernel boot parameters can be found at Xen Command Line and Boot Options.
Finally, we should install the tools that we compiled previously:
# gmake install-tools
Now we can reboot into the newly installed Xen system:
# shutdown -r now
Basic usage
If you have installed Xen in a location different than /usr/pkg you will need to add it to your LD_LIBRARY_PATH, PATH and PYTHONPATH:
# export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/xen42/lib" # export PATH="${PATH}:/usr/xen42/sbin:/usr/xen42/bin" # export PYTHONPATH="/usr/xen42/lib/python2.7/site-packages"
To begin using Xen, xencommons has to be started:
# /usr/xen42/etc/rc.d/xencommons onestart
Check that xl is working:
# xl list