1################################# 2__ __ _ _ _ ___ 3\ \/ /___ _ __ | || | / |/ _ \ 4 \ // _ \ '_ \ | || |_ | | | | | 5 / \ __/ | | | |__ _|| | |_| | 6/_/\_\___|_| |_| |_|(_)_|\___/ 7 8################################# 9 10http://www.xen.org/ 11 12What is Xen? 13============ 14 15Xen is a Virtual Machine Monitor (VMM) originally developed by the 16Systems Research Group of the University of Cambridge Computer 17Laboratory, as part of the UK-EPSRC funded XenoServers project. Xen 18is freely-distributable Open Source software, released under the GNU 19GPL. Since its initial public release, Xen has grown a large 20development community, spearheaded by xen.org (http://www.xen.org). 21 22This file contains some quick-start instructions to install Xen on 23your system. For more information see http:/www.xen.org/ and 24http://wiki.xen.org/ 25 26Quick-Start Guide 27================= 28 29First, this is just a quick-start guide. For more comprehensive 30information see the INSTALL file and the Xen wiki at 31http://wiki.xenproject.org and in particular 32http://wiki.xenproject.org/wiki/Getting_Started. 33 34Second, there are a number of prerequisites for building a Xen source 35release. Make sure you have all the following installed, either by 36visiting the project webpage or installing a pre-built package 37provided by your OS distributor: 38 * GNU Make v3.80 or later 39 * C compiler and linker: 40 - For x86: 41 - GCC 4.1.2_20070115 or later 42 - GNU Binutils 2.16.91.0.5 or later 43 or 44 - Clang/LLVM 3.5 or later 45 - For ARM: 46 - GCC 4.8 or later 47 - GNU Binutils 2.24 or later 48 * Development install of zlib (e.g., zlib-dev) 49 * Development install of Python v2.3 or later (e.g., python-dev) 50 * Development install of curses (e.g., libncurses-dev) 51 * Development install of openssl (e.g., openssl-dev) 52 * Development install of x11 (e.g. xorg-x11-dev) 53 * Development install of uuid (e.g. uuid-dev) 54 * Development install of yajl (e.g. libyajl-dev) 55 * Development install of libaio (e.g. libaio-dev) version 0.3.107 or 56 greater. 57 * Development install of GLib v2.0 (e.g. libglib2.0-dev) 58 * Development install of Pixman (e.g. libpixman-1-dev) 59 * pkg-config 60 * bridge-utils package (/sbin/brctl) 61 * iproute package (/sbin/ip) 62 * GNU bison and GNU flex 63 * GNU gettext 64 * ACPI ASL compiler (iasl) 65 * Libc multiarch package (e.g. libc6-dev-i386 / glibc-devel.i686). 66 Required when building on a 64-bit platform to build 67 32-bit components which are enabled on a default build. 68 69In addition to the above there are a number of optional build 70prerequisites. Omitting these will cause the related features to be 71disabled at compile time: 72 * Development install of Ocaml (e.g. ocaml-nox and 73 ocaml-findlib). Required to build ocaml components which 74 includes the alternative ocaml xenstored. 75 * cmake (if building vtpm stub domains) 76 * markdown 77 * figlet (for generating the traditional Xen start of day banner) 78 * systemd daemon development files 79 * Development install of libnl3 (e.g., libnl-3-200, 80 libnl-3-dev, etc). Required if network buffering is desired 81 when using Remus with libxl. See docs/README.remus for detailed 82 information. 83 * 16-bit x86 assembler, loader and compiler for qemu-traditional / rombios 84 (dev86 rpm or bin86 & bcc debs) 85 * Development install of liblzma for rombios 86 87Second, you need to acquire a suitable kernel for use in domain 0. If 88possible you should use a kernel provided by your OS distributor. If 89no suitable kernel is available from your OS distributor then refer to 90http://wiki.xen.org/wiki/XenDom0Kernels for suggestions for 91suitable kernels to use. 92If you are looking to compile a Dom0 kernel from source, please refer to 93http://wiki.xen.org/wiki/XenParavirtOps. 94 95[NB. Unless noted otherwise, all the following steps should be 96performed with root privileges.] 97 981. Download and untar the source tarball file. This will be a 99 file named xen-unstable-src.tgz, or xen-$version-src.tgz. 100 You can also pull the current version from the git or mercurial 101 repositories at http://xenbits.xen.org/ 102 103 # tar xzf xen-unstable-src.tgz 104 105 Assuming you are using the unstable tree, this will 106 untar into xen-unstable. The rest of the instructions 107 use the unstable tree as an example, substitute the 108 version for unstable. 109 1102. cd to xen-unstable (or whatever you sensibly rename it to). 111 1123. For the very first build, or if you want to destroy build trees, 113 perform the following steps: 114 115 # ./configure 116 # make world 117 # make install 118 119 See the documentation in the INSTALL file for more info. 120 121 This will create and install onto the local machine. It will build 122 the xen binary (xen.gz), the tools and the documentation. 123 124 You can override the destination for make install by setting DESTDIR 125 to some value. 126 1274. To rebuild an existing tree without modifying the config: 128 # make dist 129 130 This will build and install xen, tools, and docs into the local dist/ 131 directory. 132 133 You can override the destination for make install by setting DISTDIR 134 to some value. 135 136 make install and make dist differ in that make install does the 137 right things for your local machine (installing the appropriate 138 version of udev scripts, for example), but make dist includes all 139 versions of those scripts, so that you can copy the dist directory 140 to another machine and install from that distribution. 141 142xenstore: xenstored and oxenstored 143==================================== 144 145Xen uses a configuration database called xenstore [0] to maintain configuration 146and status information shared between domains. A daemon is implemented as part 147of xenstore to act as an interface for access to the database for dom0 and 148guests. Two xenstored daemons are supported, one written in C which we refer 149to as the xenstored (sometimes referred to as cxenstored), and another written 150in Ocaml called oxenstored. Details for xenstore and the different 151implementations can be found on the wiki's xenstore reference guide [1] and 152the xenstored [2] page. You can choose which xenstore you want to enable as 153default on a system through configure: 154 155 ./configure --with-xenstored=xenstored 156 ./configure --with-xenstored=oxenstored 157 158By default oxenstored will be used if the ocaml development tools are found. 159If you enable oxenstored the xenstored will still be built and installed, 160the xenstored used can be changed through the configuration file: 161 162/etc/sysconfig/xencommons 163or 164/etc/default/xencommons 165 166You can change the preferred xenstored you want to use in the configuration 167but since we cannot stop the daemon a reboot will be required to make the 168change take effect. 169 170[0] http://wiki.xen.org/wiki/XenStore 171[1] http://wiki.xen.org/wiki/XenStoreReference 172[2] http://wiki.xen.org/wiki/Xenstored 173 174Python Runtime Libraries 175======================== 176 177Various tools, such as pygrub, have the following runtime dependencies: 178 179 * Python 2.3 or later. 180 URL: http://www.python.org/ 181 Debian: python 182 183Intel(R) Trusted Execution Technology Support 184============================================= 185 186Intel's technology for safer computing, Intel(R) Trusted Execution Technology 187(Intel(R) TXT), defines platform-level enhancements that provide the building 188blocks for creating trusted platforms. For more information, see 189http://www.intel.com/technology/security/. 190 191Intel(R) TXT support is provided by the Trusted Boot (tboot) module in 192conjunction with minimal logic in the Xen hypervisor. 193 194Tboot is an open source, pre- kernel/VMM module that uses Intel(R) TXT to 195perform a measured and verified launch of an OS kernel/VMM. 196 197The Trusted Boot module is available from 198http://sourceforge.net/projects/tboot. This project hosts the code in a 199mercurial repo at http://tboot.sourceforge.net/hg/tboot.hg and contains 200tarballs of the source. Instructions in the tboot README describe how 201to modify grub.conf to use tboot to launch Xen. 202 203There are optional targets as part of Xen's top-level makefile that will 204download and build tboot: install-tboot, build-tboot, dist-tboot, clean-tboot. 205These will download the latest tar file from the SourceForge site using wget, 206then build/install/dist according to Xen's settings. 207