Compiling Xen: Difference between revisions
No edit summary |
No edit summary |
||
(5 intermediate revisions by 4 users not shown) | |||
Line 15: | Line 15: | ||
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 |
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 |
<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 |
# 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 |
<pre> |
||
# cd rpmbuild/SPECS |
# cd rpmbuild/SPECS |
||
# rpmbuild -bb xen.spec |
# rpmbuild -bb xen.spec |
||
</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> |
||
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 41: | 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 |
||
</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 |
<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 57: | Line 58: | ||
7:xen-doc ########################################### [ 88%] |
7:xen-doc ########################################### [ 88%] |
||
8:xen-debuginfo ########################################### [100%] |
8:xen-debuginfo ########################################### [100%] |
||
</pre> |
|||
== Compiling Xen from the source repo == |
== 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]. |
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. |
||
Select the appropriate repository from the list of Xen repositories. In practice, you’ll probably want the latest stable branch, though you can choose the development branch or any of the historical branches. At this moment, the latest stable branch is 4.1, so that’ll be used. |
|||
Xen uses Mercurial for source control. So the command to pull the latest revision is simply |
|||
<pre>hg clone http://xenbits.xen.org/<repo name></pre> |
|||
For the 4.1 stable branch, the command is |
|||
<pre>hg clone http://xenbits.xen.org/xen-4.1-testing.hg</pre> |
|||
And wait for the download to finish. It’ll create a folder named after the repository name, so change to the directory |
|||
<pre>cd xen-4.1-testing.hg</pre> |
|||
Then, to compile Xen, run |
|||
<pre>make xen && make tools && make stubdom</pre> |
|||
And watch your screen fill with status messages. Do note that this step requires Internet access to pull the latest source code from repositories like xen-tools. If you don’t have Internet access, this will fail. |
|||
Finally, do |
|||
<pre>make install xen && make install tools PYTHON_PREFIX_ARG= && make install stubdom</pre> |
|||
to actually install Xen. |
|||
== Checking that Xen's actually installed == |
== Checking that Xen's actually installed == |
||
Line 99: | Line 75: | ||
xen_compiler : gcc version 3.3.5 |
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. |
</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.