Setting up Xen Dom0 on Fedora 12 with Kernel 2.6.32.13
Xen remains a production-grade hypervisor used in enterprise environments (AWS EC2, Citrix Hypervisor), though KVM has become the default for most Linux distributions. This guide covers building a stable Xen Dom0 on current Fedora releases using modern kernel sources.
Hardware Considerations
This guide assumes server-class hardware with:
- Intel or AMD processor with virtualization extensions (VT-x or AMD-V)
- Minimum 8GB RAM (16GB+ recommended for multiple DomUs)
- Dedicated storage for Dom0 and DomU images
- IOMMU support for device passthrough (optional but recommended)
Prerequisites
Ensure SELinux is disabled before proceeding:
# setenforce 0
Update your system and remove conflicting packages:
# dnf update -y
# dnf remove -y xen* libvirt* qemu*
Install build dependencies:
# dnf groupinstall -y "Development Tools" "Development Libraries"
# dnf install -y \
make gcc kernel-devel \
wget git patch \
bridge-utils \
dev86 glibc-devel glibc-devel.i686 \
e2fsprogs-devel mkinitrd \
iasl xz-devel bzip2-devel \
pciutils-devel SDL-devel libX11-devel gtk2-devel \
python3-devel libuuid-devel yajl-devel
Building Xen Hypervisor and Tools
Download and extract Xen. As of 2026, check xen.org for the latest stable release (typically 4.x series):
$ cd /tmp
$ wget https://releases.xen.org/xen-4.18.tar.gz
$ tar xf xen-4.18.tar.gz
$ cd xen-4.18
Build Xen and tools:
$ ./configure --prefix=/usr --sysconfdir=/etc
$ make -j$(nproc) dist
$ sudo make install-dist
Update boot configuration to include Xen:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Building Xenified Kernel
Modern Xen Dom0 support is integrated into mainline Linux kernels (6.x series). No external patches are required for recent Xen versions.
Download the kernel source matching your Fedora release:
$ cd /tmp
$ wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.tar.xz
$ tar xf linux-6.8.tar.xz
$ cd linux-6.8
Configure the kernel for Xen Dom0:
$ make menuconfig
Enable these options:
Processor type and features --->
[*] Symmetric multi-processing support
[*] Xen guest support
[*] Dom0 support
Device Drivers --->
XEN --->
[*] Backend driver support
[*] Block-device backend driver
[*] Network-device backend driver
[*] PCI-device backend driver
[*] Frontend driver support
[*] Block-device frontend driver
[*] Network-device frontend driver
Build and install:
$ make -j$(nproc)
$ sudo make modules_install install
Regenerate GRUB configuration:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Configuring Xen Services
Enable Xen services to start at boot:
# systemctl enable xen
# systemctl enable xendomains
On older systems using SysVinit:
# chkconfig --add xend
# chkconfig --add xendomains
Verify the configuration:
# systemctl status xen
Booting Xen Dom0
Reboot and select the Xen entry from GRUB. After boot, verify Xen is running:
# xl info
This command displays Dom0 memory, CPU count, and Xen version. Check domain status:
# xl list
Network Bridge Configuration
For DomU networking, create a bridge on Dom0:
# nmcli connection add type bridge ifname br0 con-name bridge-br0
# nmcli connection add type bridge-slave ifname eth0 master bridge-br0
# nmcli connection down bridge-br0
# nmcli connection up bridge-br0
Or edit /etc/sysconfig/network-scripts/ for legacy systems.
Performance Tuning
Reserve CPU cores and memory for Dom0 to improve stability:
Add to GRUB kernel parameters:
xen-dom0=max_vcpus=2 dom0_mem=2048M
Then rebuild GRUB:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Pin Dom0 vCPUs to physical cores:
# xl vcpu-pin Domain-0 0 0
# xl vcpu-pin Domain-0 1 1
Common Issues
Xen fails to initialize: Verify CPU virtualization support is enabled in BIOS. Check dmesg for error messages.
DomU refuses to start: Confirm bridge configuration with brctl show. Check domain XML syntax with xl create -n domain.cfg.
Performance degradation: Monitor Dom0 CPU and memory with xl top. Check I/O contention using iostat and adjust DomU resource allocations.
For additional DomU configuration and advanced Xen solutions, refer to the Xen documentation and community forums.

1.
I have finished installation of xen 3.4.3 in light of your tutorial,and it works well. Thanks a lot.
2.During the installation of DomainU(Fedora12x86_64 too),I download the images from my local ftp repo(ftp server:Hom ftp server,anonymous Home Directory = my DVD disk which is a Fedora12x86_64 installation disk). I visit my local ftp with firefox browser,and it works well.
However,when I execute:
[root@localhost czm]# yum update –disableexcludes=[mylocalftpyum.repo]
Loaded plugins: presto, refresh-packagekit
fedora/metalink | 1.8 kB
00:00
fedora | 4.2 kB
00:00
fedora/primary_db | 12 MB
00:41
Traceback (most recent call last):
File “/usr/lib/python2.6/site-packages/urlgrabber/grabber.py”, line
1106, in _hdr_retrieve
self.size = int(s)
ValueError: invalid literal for int() with base 10: ‘20091109000910.000’
I have tried the following tow edition of repos,but they were both reluctant to work.
——————————————–
Attachment: mylocalftpyum.repo
[mylocalftpyum]
name=My Local Ftp yum repo for fedora12X86_64
baseurl=ftp://192.168.0.100
enabled=0
#metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
—————————————————————-
Attachment: mylocalftpyum.repo
[mylocalftpyum]
name=My Local Ftp yum repo for fedora12X86_64
baseurl=ftp://192.168.0.100
enabled=0
#metadata_expire=7d
gpgcheck=0
—————————————————————
Best regards.
Caizm
I am confused: is the DomU already installed successfully? Where (dom0 or domu) do you use the yum?
Using DVD image as the yum repository source should be ok: http://fclose.com/b/linux/54/
BTW: if you want to install DomU using the DVD or DVD image, one possible method is to attached the DVD drive or DVD ISO image to DomU as it’s cdrom.
One configuration example (using iso image) is as follows (the disk config only here).
disk=[‘file:/lhome/xen/vm-10.0.1.235/vmdisk0,xvda,w’, ‘file:/lhome/FC-12-x86_64-DVD.iso,xvdc:cdrom,r’]
Sorry ,clerical errors last time.
Attachment: mylocalftpyum.repo
[mylocalftpyum]
name=My Local Ftp yum repo for fedora12X86_64
baseurl=ftp://192.168.0.100
enabled=1 //【Note 】
#metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
—————————————————————-
Attachment: mylocalftpyum.repo
[mylocalftpyum]
name=My Local Ftp yum repo for fedora12X86_64
baseurl=ftp://192.168.0.100
enabled=1 //【Note 】
#metadata_expire=7d
gpgcheck=0
The configuration seems good if the directory structure is correct.
What about try to install some packages instead of upgrade? It will not update any package since they are the same versions as the repository.
Many thanks.I have finished installation of DomainU from local yum repository.
Suggestion: As installing DomainU from remote yum repository will last several hours,setting up a local yum repository would be a good idea.
Dear Ma,
Your suggestion takes effect.I install Xen 3.4.3 in Fedora【14】x86_64 smoothly.
Attachment:
Ma’s suggestion:Before make xen, try to install glibc-devel.i686 first.
Great! And very nice to see this solution also works on Fedora 14 x86_64.