Xen in Emulab


Xen 3.1.4 on a Fedora 8 Image

Instructions on how to build and install an x86, 32-bit, non-PAE version of Xen 3.1.4 and Linux 2.6.18.8 dom0 from source on a pc2400c2 node running the FEDORA8-STD image in Emulab. Assumes basic kernel compilation knowledge.

Build Xen & Linux 2.6.18 dom0

In $XEN_ROOT/Config.mk, set: XEN_TARGET_X86_PAE ?= n Perform build: $ make dist

Create Ramdisk

$ depmod 2.6.18.8-xen $ mkinitrd -v -f initrd-2.6.18.8-xen.img 2.6.18.8-xen

Boot Configuration

/boot/grub/grub.conf: default=0 timeout=5 serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=5 serial console title Xen 3.1.4 / Fedora 8 root (hd0,1) kernel /boot/xen.gz com1=115200,8n1 console=com1 module /boot/vmlinuz-2.6.18.8-xen root=/dev/sda2 ro console=tty0 console=ttyS0,115200n8 xencons=ttyS module /boot/initrd-2.6.18.8-xen.img Modify paramenters to suit your own needs, e.g. root (hd0,1)

xend Configuration

/etc/xen/xend-config.sxp (xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '') (xend-relocation-hosts-allow '') (network-script 'network-bridge netdev=eth1') (vif-script vif-bridge) (dom0-min-mem 196) (dom0-cpus 0) (vnc-listen '0.0.0.0') (vncpasswd 'abc123')

Disabling TLS

Xen requires a special glibc that Fedora 8 doesn't provide by default. Easiest way to get around this is to disable TLS. $ echo "hwcap 0 nosegneg" >/etc/ld.so.conf.d/libc6-xen.conf $ ldconfig

Xen 3.2.x

A change in the build configuration steps from those described for Xen 3.1.x are necessary to build Xen 3.2.x in 32-bit non-PAE mode.

$XEN_ROOT/Config.mk must still be modified to: XEN_TARGET_X86_PAE ?= n

However, $XEN_ROOT/buildconfigs/Rules.mk no longer needs modification, but instead the following actions must be taken (from root of source tree): $ make xen $ make prepkernels Edit linux-2.6.18-xen.hg/arch/i386/Kconfig and comment out the line: # select X86_PAE Complete the build. $ make dist