Skip to main content

Compiling and Installing Xen 3.3.1

By February 12, 2009March 4th, 2019Announcements

Xen Community:
Last year, I spent some time getting Xen to work on a machine by leveraging a pre-existing package with Xen built-in (https://xenproject.org/index.php/2008/04/08/install-and-run-xen-on-fedora-8/). I have now taken the effort further and decided to download the latest stable release, Xen 3.3.1, to an Ubuntu server and get Xen up and running.
For those of you who are Linux gurus and understand Xen inside and out, you can ignore this post; however, I believe there are many people who are computer competent with limited Linux skills who think this is beyond their skill set. This post is for you to show that it really is not as hard as you think!
Notes on the process….
1) Setup – I have a Ubuntu 7.10 Server with a fresh installation ; Comments – I found that almost all of the development tools and libraries I needed were not included in the basic installation. My compile would have been a snap with the proper libraries installed.
From the Clarkson University USENIX Training Presentation:
apt-get install gawk libssl-dev libx11-dev gettext libncurses-dev build-essential python-dev texlive-latex-base transfigtetex-extra bcc bin86 pciutils-dev git-core curl texinfolibc6-dev-i386 mercurial bridge-utils graphviz
2) Download and Package Install – I selected the Xen 3.3.1 package (http://bits.xensource.com/oss-xen/release/3.3.1/xen-3.3.1.tar.gz) and unpacked the package into a new directory on my Linux box.
3) Compile – make world ; Comment – this takes a bit longer than most people are used to so be patient and perhaps do some other work while the compile does its magic
4)  Installation – I then ran make install to get the package copied to the proper directories
5) Configuration – I did have problems editing the /boot/grub/menu.lst file to properly have the Xen Kernel launch during reboot. The best advice I received from community members was to model my new section on the previous Ubuntu kernel text that gets loaded. Here is my final text changes:
title                             Xen 3.3.1 / XenLinux 2.6
root                            hd(0,0)
kernel                       /xen-3.3.1.gz dom0_mem=262144
module                   /vmlinuz-2.6.18.8-xen root=/dev/mapper/speclinux-root ro console=tty0
module                  /initrd-2.6.18.8-xen
Issues – I did have problems creating the initrd-2.6.18.8-xen file; I used mkinitramfs command -> sudo mkinitramfs -o /boot/initrd-2.6.18.8-xen 2.6.18.8-xen. NOTE – I did get the following error during this command /lib/firmware/2.6.18.8-xen no such file which I was told to ignore. I also thought that the initrd file should have the word initrd instead of module but that also caused problems so I used module.
6) Starting Xen – I then did the reboot and selected the Xen Kernel which loaded with no problems. I used my standard login information. I had problems during the xend start and had to update my networking information. I made the following change (still researching the issue as to why I had to do this):
a) Remove the Network Manager package – > apt-get remove network-manager
b) Edit /etc/network/interfaces file  – I found that I just needed to uncomment the iface etho inet dhcp line ->
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
c) Restart networking and Xen
sudo /etc/init.d/networking restart
sudo /etc/init.d/xend restart
sudo xm list

From there, I have a DomO up and running. My next step is to create DomU images/files and then launch them. That will be a future post as I continue the process.
Thanks for the people at the IRC Chat ##xen, Todd Deshane, & Josh West for helping me out. There truly is a great community in place to support people trying out Xen; all you need to do is ask!