Since my drivers are not signed, you will need to temporarily disable signature checking for yum.

view plain print about
1# vi /etc/yum.conf
Make sure it says gpgcheck=0

Download the file and untar it.

view plain print about
1# tar xvzf xen-3.2.0-CentOS5.2.tar.gz
2xen-3.2.0-CentOS5.2/
3xen-3.2.0-CentOS5.2/xen-3.2.0-0xs.x86_64.rpm
4xen-3.2.0-CentOS5.2/xen-libs-3.2.0-0xs.x86_64.rpm
5xen-3.2.0-CentOS5.2/xen-devel-3.2.0-0xs.x86_64.rpm
6
7# cd xen-3.2.0-CentOS5.2

Install the RPMs.

view plain print about
1#yum install -y xen-3.2.0-0xs.x86_64.rpm xen-libs-3.2.0-0xs.x86_64.rpm xen-devel-3.2.0-0xs.x86_64.rpm

It will download a bunch of dependencies and install them. Among them will be a new kernel - kernel-xen.

view plain print about
1# vi /etc/yum.conf
Set gpgcheck back to the old value: gpgcheck=1 if it was originally 1.

The only problem at this point is that yum for some reason doesn't update the boot entry, so we have to do this manually.

view plain print about
1# vi /boot/grub/menu.lst

view plain print about
1# grub.conf generated by anaconda
2#
3# Note that you do not have to rerun grub after making changes to this file
4# NOTICE: You have a /boot partition. This means that
5# all kernel and initrd paths are relative to /boot/, eg.
6# root (hd0,0)
7# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
8# initrd /initrd-version.img
9#boot=/dev/sda
10default=1
11timeout=5
12splashimage=(hd0,0)/grub/splash.xpm.gz
13hiddenmenu
14title CentOS (2.6.18-92.1.6.el5xen)
15 root (hd0,0)
16 kernel /xen.gz-2.6.18-92.1.6.el5
17 module /vmlinuz-2.6.18-92.1.6.el5xen ro root=/dev/VolGroup00/LogVol00
18 module /initrd-2.6.18-92.1.6.el5xen.img
19title CentOS (2.6.18-92.el5)
20 root (hd0,0)
21 kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup00/LogVol00
22 initrd /initrd-2.6.18-92.el5.img

We want to update the CentOS (2.6.18-53.1.21.el5xen) entry, and set it to use the proper kernel - xen.gz-3.2

This is what my updated menu.lst looks like - yours may differ. I have also set the default to 0, so that it boots my xen kernel automatically.

view plain print about
1# grub.conf generated by anaconda
2#
3# Note that you do not have to rerun grub after making changes to this file
4# NOTICE: You have a /boot partition. This means that
5# all kernel and initrd paths are relative to /boot/, eg.
6# root (hd0,0)
7# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
8# initrd /initrd-version.img
9#boot=/dev/sda
10default=0
11timeout=5
12splashimage=(hd0,0)/grub/splash.xpm.gz
13hiddenmenu
14title CentOS (2.6.18-92.1.6.el5xen)
15 root (hd0,0)
16 kernel /xen.gz-3.2
17 module /vmlinuz-2.6.18-92.1.6.el5xen ro root=/dev/VolGroup00/LogVol00
18 module /initrd-2.6.18-92.1.6.el5xen.img
19title CentOS (2.6.18-92.el5)
20 root (hd0,0)
21 kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup00/LogVol00
22 initrd /initrd-2.6.18-92.el5.img

Once you reboot you should automatically boot into the xen kernel and be able to create virtual machines.