annotate README @ 19835:edfdeb150f27

Fix buildsystem to detect udev > version 124

udev removed the udevinfo symlink from versions higher than 123 and
xen's build-system could not detect if udev is in place and has the
required version.

Signed-off-by: Marc-A. Dahlhaus <mad@wol.de>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Jun 25 13:02:37 2009 +0100 (2009-06-25)
parents 9890a1e5b6ab
rev   line source
keir@16275 1 #################################
keir@19603 2 __ __ _____ _ _
keir@19603 3 \ \/ /___ _ __ |___ /| || |
keir@19603 4 \ // _ \ '_ \ |_ \| || |_
keir@19603 5 / \ __/ | | | ___) |__ _|
keir@19603 6 /_/\_\___|_| |_| |____(_) |_|
keir@18288 7
keir@16275 8 #################################
cl349@9840 9
keir@16275 10 http://www.xen.org/
cl349@9840 11
cl349@9840 12 What is Xen?
cl349@9840 13 ============
cl349@9840 14
cl349@9840 15 Xen is a Virtual Machine Monitor (VMM) originally developed by the
cl349@9840 16 Systems Research Group of the University of Cambridge Computer
cl349@9840 17 Laboratory, as part of the UK-EPSRC funded XenoServers project. Xen
cl349@9840 18 is freely-distributable Open Source software, released under the GNU
cl349@9840 19 GPL. Since its initial public release, Xen has grown a large
cl349@9840 20 development community, spearheaded by XenSource Inc, a company created
cl349@9840 21 by the original Xen development team to build enterprise products
cl349@9840 22 around Xen.
cl349@9840 23
keir@19603 24 The 3.4 release offers excellent performance, hardware support and
cl349@9840 25 enterprise-grade features such as x86_32-PAE, x86_64, SMP guests and
keir@17555 26 live relocation of VMs. Ports to Linux 2.6, Linux 2.4, NetBSD, FreeBSD
keir@17555 27 and Solaris are available from the community.
cl349@9840 28
cl349@9840 29 This file contains some quick-start instructions to install Xen on
cl349@9840 30 your system. For full documentation, see the Xen User Manual. If this
cl349@9840 31 is a pre-built release then you can find the manual at:
cl349@9840 32 dist/install/usr/share/doc/xen/pdf/user.pdf
cl349@9840 33 If you have a source release, then 'make -C docs' will build the
cl349@9840 34 manual at docs/pdf/user.pdf.
cl349@9840 35
cl349@9840 36 Quick-Start Guide - Pre-Built Binary Release
cl349@9840 37 ============================================
cl349@9840 38
cl349@9840 39 [NB. Unless noted otherwise, all the following steps should be
cl349@9840 40 performed with root privileges.]
cl349@9840 41
cl349@9840 42 1. Install the binary distribution onto your filesystem:
cl349@9840 43
cl349@9840 44 # sh ./install.sh
cl349@9840 45
cl349@9840 46 Among other things, this will install Xen and Xen-ready Linux
cl349@9840 47 kernel files in /boot, kernel modules and Python packages in /lib,
cl349@9840 48 and various control tools in standard 'bin' directories.
cl349@9840 49
cl349@9840 50 2. Configure your bootloader to boot Xen and an initial Linux virtual
cl349@9840 51 machine. Note that Xen currently only works with GRUB and pxelinux
cl349@9840 52 derived boot loaders: less common alternatives such as LILO are
cl349@9840 53 *not* supported. You can most likely find your GRUB menu file at
cl349@9840 54 /boot/grub/menu.lst: edit this file to include an entry like the
cl349@9840 55 following:
cl349@9840 56
keir@19603 57 title Xen 3.4 / XenLinux 2.6
keir@19603 58 kernel /boot/xen-3.4.gz console=vga
cl349@9840 59 module /boot/vmlinuz-2.6-xen root=<root-dev> ro console=tty0
cl349@9840 60 module /boot/initrd-2.6-xen.img
cl349@9840 61
cl349@9840 62 NB: Not all kernel configs need an initial ram disk (initrd), but
cl349@9840 63 if you do specify one you'll need to use the 'module' grub directive
cl349@9840 64 rather than 'initrd'.
cl349@9840 65
cl349@9840 66 The linux command line takes all the usual options, such as
cl349@9840 67 root=<root-dev> to specify your usual root partition (e.g.,
kaf24@10068 68 /dev/hda1).
cl349@9840 69
cl349@9840 70 The Xen command line takes a number of optional arguments described
cl349@9840 71 in the manual. The most common is 'dom0_mem=xxxM' which sets the
cl349@9840 72 amount of memory to allocate for use by your initial virtual
cl349@9840 73 machine (known as domain 0). Note that Xen itself reserves about
cl349@9840 74 32MB memory for internal use, which is not available for allocation
kaf24@10068 75 to virtual machines.
cl349@9840 76
keir@19603 77 3. Reboot your system and select the "Xen 3.4 / XenLinux 2.6" menu
cl349@9840 78 option. After booting Xen, Linux will start and your initialisation
cl349@9840 79 scripts should execute in the usual way.
cl349@9840 80
cl349@9840 81 Quick-Start Guide - Source Release
cl349@9840 82 ==================================
cl349@9840 83
cl349@9840 84 First, there are a number of prerequisites for building a Xen source
cl349@9840 85 release. Make sure you have all the following installed, either by
cl349@9840 86 visiting the project webpage or installing a pre-built package
cl349@9840 87 provided by your Linux distributor:
kfraser@14883 88 * GCC v3.4 or later
cl349@9840 89 * GNU Make
cl349@9840 90 * GNU Binutils
cl349@9840 91 * Development install of zlib (e.g., zlib-dev)
cl349@9840 92 * Development install of Python v2.3 or later (e.g., python-dev)
kfraser@10797 93 * Development install of curses (e.g., libncurses-dev)
kfraser@14168 94 * Development install of openssl (e.g., openssl-dev)
kfraser@14168 95 * Development install of x11 (e.g. xorg-x11-dev)
cl349@9840 96 * bridge-utils package (/sbin/brctl)
cl349@9840 97 * iproute package (/sbin/ip)
cl349@9840 98 * hotplug or udev
cl349@9840 99
cl349@9840 100 [NB. Unless noted otherwise, all the following steps should be
cl349@9840 101 performed with root privileges.]
cl349@9840 102
cl349@9840 103 1. Download and untar the source tarball file. This will be a
cl349@9840 104 file named xen-unstable-src.tgz, or xen-$version-src.tgz.
kfraser@15291 105 You can also pull the current version from the mercurial
kfraser@15291 106 repository at http://xenbits.xensource.com/
cl349@9840 107
cl349@9840 108 # tar xzf xen-unstable-src.tgz
cl349@9840 109
cl349@9840 110 Assuming you are using the unstable tree, this will
cl349@9840 111 untar into xen-unstable. The rest of the instructions
cl349@9840 112 use the unstable tree as an example, substitute the
cl349@9840 113 version for unstable.
cl349@9840 114
cl349@9840 115 2. cd to xen-unstable (or whatever you sensibly rename it to).
cl349@9840 116
cl349@9840 117 On Linux:
cl349@9840 118
cl349@9840 119 3. For the very first build, or if you want to destroy existing
cl349@9840 120 .configs and build trees, perform the following steps:
cl349@9840 121
cl349@9840 122 # make world
cl349@9840 123 # make install
cl349@9840 124
kaf24@10068 125 This will create and install onto the local machine. It will build
cl349@9840 126 the xen binary (xen.gz), and a linux kernel and modules that can be
cl349@9840 127 used in both dom0 and an unprivileged guest kernel (vmlinuz-2.6.x-xen),
cl349@9840 128 the tools and the documentation.
cl349@9840 129
kaf24@10068 130 You can override the destination for make install by setting DESTDIR
cl349@9840 131 to some value.
cl349@9840 132
kaf24@10068 133 The make command line defaults to building the kernel vmlinuz-2.6.x-xen.
kaf24@10068 134 You can override this default by specifying KERNELS=kernelname. For
kaf24@10068 135 example, you can make two kernels - linux-2.6-xen0
kaf24@10068 136 and linux-2.6-xenU - which are smaller builds containing only selected
kaf24@10068 137 modules, intended primarily for developers that don't like to wait
cl349@9840 138 for a full -xen kernel to build. The -xenU kernel is particularly small,
cl349@9840 139 as it does not contain any physical device drivers, and hence is
cl349@9840 140 only useful for guest domains.
cl349@9840 141
cl349@9840 142 To make these two kernels, simply specify
cl349@9840 143
cl349@9840 144 KERNELS="linux-2.6-xen0 linux-2.6-xenU"
cl349@9840 145
cl349@9840 146 in the make command line.
cl349@9840 147
cl349@9840 148 4. To rebuild an existing tree without modifying the config:
cl349@9840 149 # make dist
cl349@9840 150
cl349@9840 151 This will build and install xen, kernels, tools, and
kaf24@10068 152 docs into the local dist/ directory.
cl349@9840 153
kaf24@10068 154 You can override the destination for make install by setting DISTDIR
cl349@9840 155 to some value.
cl349@9840 156
kaf24@10068 157 make install and make dist differ in that make install does the
kaf24@10068 158 right things for your local machine (installing the appropriate
kaf24@10068 159 version of hotplug or udev scripts, for example), but make dist
kaf24@10068 160 includes all versions of those scripts, so that you can copy the dist
cl349@9840 161 directory to another machine and install from that distribution.
cl349@9840 162
cl349@9840 163 5. To rebuild a kernel with a modified config:
cl349@9840 164
cl349@9840 165 # make linux-2.6-xen-config CONFIGMODE=menuconfig (or xconfig)
cl349@9840 166 # make linux-2.6-xen-build
cl349@9840 167 # make linux-2.6-xen-install
cl349@9840 168
cl349@9840 169 Depending on your config, you may need to use 'mkinitrd' to create
kaf24@10068 170 an initial ram disk, just like a native system e.g.
kfraser@15291 171 # depmod 2.6.18-xen
kfraser@15291 172 # mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.18-xen.img 2.6.18-xen
kfraser@15291 173
kfraser@15291 174 Other systems may requires the use of 'mkinitramfs' to create the
kfraser@15291 175 ram disk.
kfraser@15291 176 # depmod 2.6.18-xen
kfraser@15291 177 # mkinitramfs -o initrd-2.6.18-xen.img 2.6.18-xen
ewan@14706 178
ewan@14706 179
ewan@14706 180 Python Runtime Libraries
ewan@14706 181 ========================
ewan@14706 182
ewan@14706 183 Xend (the Xen daemon) has the following runtime dependencies:
ewan@14706 184
ewan@14706 185 * Python 2.3 or later.
ewan@14706 186 In many distros, the XML-aspects to the standard library
ewan@14706 187 (xml.dom.minidom etc) are broken out into a separate python-xml package.
ewan@14706 188 This is also required.
ewan@14706 189
ewan@14706 190 URL: http://www.python.org/
ewan@14706 191 Debian: python, python-xml
ewan@14706 192
ewan@14706 193 * For optional SSL support, pyOpenSSL:
ewan@14706 194 URL: http://pyopenssl.sourceforge.net/
ewan@14706 195 Debian: python-pyopenssl
ewan@14706 196
ewan@14706 197 * For optional PAM support, PyPAM:
ewan@14706 198 URL: http://www.pangalactic.org/PyPAM/
ewan@14706 199 Debian: python-pam
tom@14833 200
tom@14833 201 * For optional XenAPI support in XM, PyXML:
tom@14833 202 URL: http://pyxml.sourceforge.net
tom@14833 203 YUM: PyXML
keir@16275 204
keir@16275 205
keir@16275 206 Intel(R) Trusted Execution Technology Support
keir@16275 207 =============================================
keir@16275 208
keir@16275 209 Intel's technology for safer computing, Intel(R) Trusted Execution Technology
keir@16275 210 (Intel(R) TXT), defines platform-level enhancements that provide the building
keir@16275 211 blocks for creating trusted platforms. For more information, see
keir@16275 212 http://www.intel.com/technology/security/.
keir@16275 213
keir@16275 214 Intel(R) TXT support is provided by the Trusted Boot (tboot) module in
keir@16275 215 conjunction with minimal logic in the Xen hypervisor.
keir@16275 216
keir@16275 217 Tboot is an open source, pre- kernel/VMM module that uses Intel(R) TXT to
keir@16275 218 perform a measured and verified launch of an OS kernel/VMM.
keir@16275 219
keir@16275 220 The Trusted Boot module is available from
keir@16275 221 http://sourceforge.net/projects/tboot. This project hosts the code in a
keir@16275 222 mercurial repo at http://tboot.sourceforge.net/hg/tboot.hg and contains
keir@16275 223 tarballs of the source. Instructions in the tboot README describe how
keir@16275 224 to modify grub.conf to use tboot to launch Xen.
keir@16275 225
keir@16275 226 There are optional targets as part of Xen's top-level makefile that will
keir@18249 227 download and build tboot: install-tboot, build-tboot, dist-tboot, clean-tboot.
keir@16275 228 These will download the latest tar file from the SourceForge site using wget,
keir@16275 229 then build/install/dist according to Xen's settings.