Difference between revisions of "Compiling Xen"

From Xen
(Split off stuff from Fedora13Xen4 Tutorial)
 
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
This document currently assumes you are using Fedora/RHEL/CentOS to do the compilation. For other distributions (ie. Ubuntu/Debian), you'll need to use the respective package management software to get the packages.
 
This document currently assumes you are using Fedora/RHEL/CentOS to do the compilation. For other distributions (ie. Ubuntu/Debian), you'll need to use the respective package management software to get the packages.
  +
== Compiling Xen from source - Getting ready ==
== Installing packages required for compiling Xen from sources ==
 
  +
First of all, you have to get the Xen source. You have two options for this, which we’ll deal with in a bit.
For more information about installing Xen 4.0 from sources please see [[Xen4.0]] wiki page.
 
   
  +
Whichever you choose, to actually build from source, you’ll need to download the compilers and such. To do so, run
Install required development tools and libraries:
 
   
<pre><nowiki>
+
<pre>
# yum groupinstall "Development Libraries"
+
# yum groupinstall "Development Libraries" "Development Tools"
  +
# yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial glibc-devel.i686
# yum groupinstall "Development Tools"
 
</nowiki></pre>
+
</pre>
   
  +
It’ll take some time, since there’s ~200MB to download, not including the time to extract, install & configure everything. But, once yum’s got everything installed, you can compile Xen from the source code.
At the time of writing these downloads were around 100 MB and 105 MB in size.
 
 
Then install some additional packages required for building Xen from sources and running it:
 
 
<pre><nowiki>
 
# yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial
 
</nowiki></pre>
 
 
At the time of writing these downloads were around 98 MB in size.
 
 
You also need to install 32bit version of glibc-devel, it's required as well:
 
 
<pre><nowiki>
 
# yum install glibc-devel.i686</nowiki></pre>
 
 
Now all the required packages are installed and you can move forward.
 
   
 
== Building Xen rpm binaries from src.rpm source package ==
 
== Building Xen rpm binaries from src.rpm source package ==
 
You can get the xen src.rpm source package from [http://koji.fedoraproject.org/koji/packageinfo?packageID=7 Fedora koji].
 
You can get the xen src.rpm source package from [http://koji.fedoraproject.org/koji/packageinfo?packageID=7 Fedora koji].
   
For the purposes of this tutorial, we're using Fedora's Xen 4.0.1-6 rpm, which contains some backported bugfixes from Xen 4.0.2.
+
For the purposes of this tutorial, we're using Fedora's Xen 4.0.1-6 rpm.
   
 
Download and install the src.rpm source package:
 
Download and install the src.rpm source package:
   
<pre><nowiki>
+
<pre>
 
# wget http://pasik.reaktio.net/fedora/xen-4.0.1-6.fc14.src.rpm
 
# wget http://pasik.reaktio.net/fedora/xen-4.0.1-6.fc14.src.rpm
# rpm -i xen-4.0.1-6.fc14.src.rpm</nowiki></pre>
+
# rpm -i xen-4.0.1-6.fc14.src.rpm
  +
</pre>
   
 
Then rebuild the source package to generate binary rpms:
 
Then rebuild the source package to generate binary rpms:
   
  +
<pre>
 
  +
# cd rpmbuild/SPECS
<pre><nowiki>
 
# cd /root/rpmbuild/SPECS
 
 
# rpmbuild -bb xen.spec
 
# rpmbuild -bb xen.spec
</nowiki></pre>
+
</pre>
   
 
After a while when the build process finishes you should see output like:
 
After a while when the build process finishes you should see output like:
   
  +
<pre>
 
<pre><nowiki>
 
 
Wrote: /root/rpmbuild/RPMS/x86_64/xen-4.0.1-6.fc13.x86_64.rpm
 
Wrote: /root/rpmbuild/RPMS/x86_64/xen-4.0.1-6.fc13.x86_64.rpm
 
Wrote: /root/rpmbuild/RPMS/x86_64/xen-libs-4.0.1-6.fc13.x86_64.rpm
 
Wrote: /root/rpmbuild/RPMS/x86_64/xen-libs-4.0.1-6.fc13.x86_64.rpm
Line 58: Line 42:
 
Wrote: /root/rpmbuild/RPMS/x86_64/xen-licenses-4.0.1-6.fc13.x86_64.rpm
 
Wrote: /root/rpmbuild/RPMS/x86_64/xen-licenses-4.0.1-6.fc13.x86_64.rpm
 
Wrote: /root/rpmbuild/RPMS/x86_64/xen-debuginfo-4.0.1-6.fc13.x86_64.rpm
 
Wrote: /root/rpmbuild/RPMS/x86_64/xen-debuginfo-4.0.1-6.fc13.x86_64.rpm
</nowiki></pre>
+
</pre>
   
 
Install the newly built rpms: (Note: This assumes you have already satisfied the dependencies for installing Xen)
 
Install the newly built rpms: (Note: This assumes you have already satisfied the dependencies for installing Xen)
   
<pre><nowiki>
+
<pre>
 
# cd /root/rpmbuild/RPMS/x86_64/
 
# cd /root/rpmbuild/RPMS/x86_64/
 
# rpm -Uvh *4.0.1-6*.rpm
 
# rpm -Uvh *4.0.1-6*.rpm
Line 74: Line 58:
 
7:xen-doc ########################################### [ 88%]
 
7:xen-doc ########################################### [ 88%]
 
8:xen-debuginfo ########################################### [100%]
 
8:xen-debuginfo ########################################### [100%]
</nowiki></pre>
+
</pre>
  +
  +
== Compiling Xen from the source repo ==
  +
  +
The second option is getting the latest and greatest source straight from the [http://xenbits.xen.org/hg/ Xen code repos]. [[Compiling Xen From Source]] and [[Compiling Xen From Source on NetBSD]] contains more information on this process for Linux and NetBSD hosts.
  +
  +
== Checking that Xen's actually installed ==
  +
The quick-and-dirty way to check is to look in /boot for xen.gz, and check that the folder /etc/xen exists. If both are present, chances are Xen is installed correctly, though you should still check by booting into Xen and running <pre>xl info</pre>.
  +
  +
If it prints something like
  +
<pre>
  +
system : Linux
  +
host : Fedora
  +
xen_release : 4.0.2
  +
xen_compile_by : root@localdomain
  +
xen_compiler : gcc version 3.3.5
  +
</pre> then Xen has been installed successfully and is working. You can now go ahead and start/create domUs.
  +
 
[[Category:Developers]]
 
[[Category:Developers]]
  +
[[Category:Xen]]

Latest revision as of 14:53, 14 August 2012

This document currently assumes you are using Fedora/RHEL/CentOS to do the compilation. For other distributions (ie. Ubuntu/Debian), you'll need to use the respective package management software to get the packages.

Compiling Xen from source - Getting ready

First of all, you have to get the Xen source. You have two options for this, which we’ll deal with in a bit.

Whichever you choose, to actually build from source, you’ll need to download the compilers and such. To do so, run

# yum groupinstall "Development Libraries" "Development Tools"
# yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial glibc-devel.i686

It’ll take some time, since there’s ~200MB to download, not including the time to extract, install & configure everything. But, once yum’s got everything installed, you can compile Xen from the source code.

Building Xen rpm binaries from src.rpm source package

You can get the xen src.rpm source package from Fedora koji.

For the purposes of this tutorial, we're using Fedora's Xen 4.0.1-6 rpm.

Download and install the src.rpm source package:

# wget http://pasik.reaktio.net/fedora/xen-4.0.1-6.fc14.src.rpm
# rpm -i xen-4.0.1-6.fc14.src.rpm

Then rebuild the source package to generate binary rpms:

# cd rpmbuild/SPECS
# rpmbuild -bb xen.spec

After a while when the build process finishes you should see output like:

Wrote: /root/rpmbuild/RPMS/x86_64/xen-4.0.1-6.fc13.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/xen-libs-4.0.1-6.fc13.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/xen-runtime-4.0.1-6.fc13.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/xen-hypervisor-4.0.1-6.fc13.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/xen-doc-4.0.1-6.fc13.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/xen-devel-4.0.1-6.fc13.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/xen-licenses-4.0.1-6.fc13.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/xen-debuginfo-4.0.1-6.fc13.x86_64.rpm

Install the newly built rpms: (Note: This assumes you have already satisfied the dependencies for installing Xen)

# cd /root/rpmbuild/RPMS/x86_64/
# rpm -Uvh *4.0.1-6*.rpm
Preparing...                ########################################### [100%]
   1:xen-licenses           ########################################### [ 13%]
   2:xen-libs               ########################################### [ 25%]
   3:xen-hypervisor         ########################################### [ 38%]
   4:xen-runtime            ########################################### [ 50%]
   5:xen                    ########################################### [ 63%]
   6:xen-devel              ########################################### [ 75%]
   7:xen-doc                ########################################### [ 88%]
   8:xen-debuginfo          ########################################### [100%]

Compiling Xen from the source repo

The second option is getting the latest and greatest source straight from the Xen code repos. Compiling Xen From Source and Compiling Xen From Source on NetBSD contains more information on this process for Linux and NetBSD hosts.

Checking that Xen's actually installed

The quick-and-dirty way to check is to look in /boot for xen.gz, and check that the folder /etc/xen exists. If both are present, chances are Xen is installed correctly, though you should still check by booting into Xen and running

xl info

.

If it prints something like

system                 : Linux
host                   : Fedora
xen_release            : 4.0.2
xen_compile_by         : root@localdomain
xen_compiler           : gcc version 3.3.5 

then Xen has been installed successfully and is working. You can now go ahead and start/create domUs.