ia64/xen-unstable
annotate README @ 15291:56bab6f498ac
Fix the README to match Xen 3.1
From: Ryan Riley <rileyrd@gmail.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
From: Ryan Riley <rileyrd@gmail.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
author | kfraser@localhost.localdomain |
---|---|
date | Thu Jun 07 16:44:04 2007 +0100 (2007-06-07) |
parents | 1712c62b913c |
children | 5a9c89cd5c7e |
rev | line source |
---|---|
kfraser@15291 | 1 ############################# |
kfraser@15291 | 2 __ __ _____ _ |
kfraser@15291 | 3 \ \/ /___ _ __ |___ / / | |
kfraser@15291 | 4 \ // _ \ '_ \ |_ \ | | |
kfraser@15291 | 5 / \ __/ | | | ___) || | |
kfraser@15291 | 6 /_/\_\___|_| |_| |____(_)_| |
cl349@9840 | 7 |
kfraser@15291 | 8 ############################# |
cl349@9840 | 9 |
cl349@9840 | 10 http://www.xensource.com/xen/about.html |
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 |
kfraser@15291 | 24 The 3.1 release offers excellent performance, hardware support and |
cl349@9840 | 25 enterprise-grade features such as x86_32-PAE, x86_64, SMP guests and |
cl349@9840 | 26 live relocation of VMs. This install tree contains source for a Linux |
kfraser@14883 | 27 2.6 guest; ports to Linux 2.4, NetBSD, FreeBSD and Solaris are |
kfraser@14883 | 28 available from the community. |
cl349@9840 | 29 |
cl349@9840 | 30 This file contains some quick-start instructions to install Xen on |
cl349@9840 | 31 your system. For full documentation, see the Xen User Manual. If this |
cl349@9840 | 32 is a pre-built release then you can find the manual at: |
cl349@9840 | 33 dist/install/usr/share/doc/xen/pdf/user.pdf |
cl349@9840 | 34 If you have a source release, then 'make -C docs' will build the |
cl349@9840 | 35 manual at docs/pdf/user.pdf. |
cl349@9840 | 36 |
cl349@9840 | 37 Quick-Start Guide - Pre-Built Binary Release |
cl349@9840 | 38 ============================================ |
cl349@9840 | 39 |
cl349@9840 | 40 [NB. Unless noted otherwise, all the following steps should be |
cl349@9840 | 41 performed with root privileges.] |
cl349@9840 | 42 |
cl349@9840 | 43 1. Install the binary distribution onto your filesystem: |
cl349@9840 | 44 |
cl349@9840 | 45 # sh ./install.sh |
cl349@9840 | 46 |
cl349@9840 | 47 Among other things, this will install Xen and Xen-ready Linux |
cl349@9840 | 48 kernel files in /boot, kernel modules and Python packages in /lib, |
cl349@9840 | 49 and various control tools in standard 'bin' directories. |
cl349@9840 | 50 |
cl349@9840 | 51 2. Configure your bootloader to boot Xen and an initial Linux virtual |
cl349@9840 | 52 machine. Note that Xen currently only works with GRUB and pxelinux |
cl349@9840 | 53 derived boot loaders: less common alternatives such as LILO are |
cl349@9840 | 54 *not* supported. You can most likely find your GRUB menu file at |
cl349@9840 | 55 /boot/grub/menu.lst: edit this file to include an entry like the |
cl349@9840 | 56 following: |
cl349@9840 | 57 |
kfraser@15291 | 58 title Xen 3.1 / XenLinux 2.6 |
kfraser@15291 | 59 kernel /boot/xen-3.1.gz console=vga |
cl349@9840 | 60 module /boot/vmlinuz-2.6-xen root=<root-dev> ro console=tty0 |
cl349@9840 | 61 module /boot/initrd-2.6-xen.img |
cl349@9840 | 62 |
cl349@9840 | 63 NB: Not all kernel configs need an initial ram disk (initrd), but |
cl349@9840 | 64 if you do specify one you'll need to use the 'module' grub directive |
cl349@9840 | 65 rather than 'initrd'. |
cl349@9840 | 66 |
cl349@9840 | 67 The linux command line takes all the usual options, such as |
cl349@9840 | 68 root=<root-dev> to specify your usual root partition (e.g., |
kaf24@10068 | 69 /dev/hda1). |
cl349@9840 | 70 |
cl349@9840 | 71 The Xen command line takes a number of optional arguments described |
cl349@9840 | 72 in the manual. The most common is 'dom0_mem=xxxM' which sets the |
cl349@9840 | 73 amount of memory to allocate for use by your initial virtual |
cl349@9840 | 74 machine (known as domain 0). Note that Xen itself reserves about |
cl349@9840 | 75 32MB memory for internal use, which is not available for allocation |
kaf24@10068 | 76 to virtual machines. |
cl349@9840 | 77 |
kfraser@15291 | 78 3. Reboot your system and select the "Xen 3.1 / XenLinux 2.6" menu |
cl349@9840 | 79 option. After booting Xen, Linux will start and your initialisation |
cl349@9840 | 80 scripts should execute in the usual way. |
cl349@9840 | 81 |
cl349@9840 | 82 Quick-Start Guide - Source Release |
cl349@9840 | 83 ================================== |
cl349@9840 | 84 |
cl349@9840 | 85 First, there are a number of prerequisites for building a Xen source |
cl349@9840 | 86 release. Make sure you have all the following installed, either by |
cl349@9840 | 87 visiting the project webpage or installing a pre-built package |
cl349@9840 | 88 provided by your Linux distributor: |
kfraser@14883 | 89 * GCC v3.4 or later |
cl349@9840 | 90 * GNU Make |
cl349@9840 | 91 * GNU Binutils |
cl349@9840 | 92 * Development install of zlib (e.g., zlib-dev) |
cl349@9840 | 93 * Development install of Python v2.3 or later (e.g., python-dev) |
kfraser@10797 | 94 * Development install of curses (e.g., libncurses-dev) |
kfraser@14168 | 95 * Development install of openssl (e.g., openssl-dev) |
kfraser@14168 | 96 * Development install of x11 (e.g. xorg-x11-dev) |
cl349@9840 | 97 * bridge-utils package (/sbin/brctl) |
cl349@9840 | 98 * iproute package (/sbin/ip) |
cl349@9840 | 99 * hotplug or udev |
cl349@9840 | 100 |
cl349@9840 | 101 [NB. Unless noted otherwise, all the following steps should be |
cl349@9840 | 102 performed with root privileges.] |
cl349@9840 | 103 |
cl349@9840 | 104 1. Download and untar the source tarball file. This will be a |
cl349@9840 | 105 file named xen-unstable-src.tgz, or xen-$version-src.tgz. |
kfraser@15291 | 106 You can also pull the current version from the mercurial |
kfraser@15291 | 107 repository at http://xenbits.xensource.com/ |
cl349@9840 | 108 |
cl349@9840 | 109 # tar xzf xen-unstable-src.tgz |
cl349@9840 | 110 |
cl349@9840 | 111 Assuming you are using the unstable tree, this will |
cl349@9840 | 112 untar into xen-unstable. The rest of the instructions |
cl349@9840 | 113 use the unstable tree as an example, substitute the |
cl349@9840 | 114 version for unstable. |
cl349@9840 | 115 |
cl349@9840 | 116 2. cd to xen-unstable (or whatever you sensibly rename it to). |
cl349@9840 | 117 |
cl349@9840 | 118 On Linux: |
cl349@9840 | 119 |
cl349@9840 | 120 3. For the very first build, or if you want to destroy existing |
cl349@9840 | 121 .configs and build trees, perform the following steps: |
cl349@9840 | 122 |
cl349@9840 | 123 # make world |
cl349@9840 | 124 # make install |
cl349@9840 | 125 |
kaf24@10068 | 126 This will create and install onto the local machine. It will build |
cl349@9840 | 127 the xen binary (xen.gz), and a linux kernel and modules that can be |
cl349@9840 | 128 used in both dom0 and an unprivileged guest kernel (vmlinuz-2.6.x-xen), |
cl349@9840 | 129 the tools and the documentation. |
cl349@9840 | 130 |
kaf24@10068 | 131 You can override the destination for make install by setting DESTDIR |
cl349@9840 | 132 to some value. |
cl349@9840 | 133 |
kaf24@10068 | 134 The make command line defaults to building the kernel vmlinuz-2.6.x-xen. |
kaf24@10068 | 135 You can override this default by specifying KERNELS=kernelname. For |
kaf24@10068 | 136 example, you can make two kernels - linux-2.6-xen0 |
kaf24@10068 | 137 and linux-2.6-xenU - which are smaller builds containing only selected |
kaf24@10068 | 138 modules, intended primarily for developers that don't like to wait |
cl349@9840 | 139 for a full -xen kernel to build. The -xenU kernel is particularly small, |
cl349@9840 | 140 as it does not contain any physical device drivers, and hence is |
cl349@9840 | 141 only useful for guest domains. |
cl349@9840 | 142 |
cl349@9840 | 143 To make these two kernels, simply specify |
cl349@9840 | 144 |
cl349@9840 | 145 KERNELS="linux-2.6-xen0 linux-2.6-xenU" |
cl349@9840 | 146 |
cl349@9840 | 147 in the make command line. |
cl349@9840 | 148 |
cl349@9840 | 149 If you want to build an x86_32 PAE capable xen and kernel to work |
cl349@9840 | 150 on machines with >= 4GB of memory, use XEN_TARGET_X86_PAE=y on the |
cl349@9840 | 151 make command line. |
cl349@9840 | 152 |
cl349@9840 | 153 4. To rebuild an existing tree without modifying the config: |
cl349@9840 | 154 # make dist |
cl349@9840 | 155 |
cl349@9840 | 156 This will build and install xen, kernels, tools, and |
kaf24@10068 | 157 docs into the local dist/ directory. |
cl349@9840 | 158 |
kaf24@10068 | 159 You can override the destination for make install by setting DISTDIR |
cl349@9840 | 160 to some value. |
cl349@9840 | 161 |
kaf24@10068 | 162 make install and make dist differ in that make install does the |
kaf24@10068 | 163 right things for your local machine (installing the appropriate |
kaf24@10068 | 164 version of hotplug or udev scripts, for example), but make dist |
kaf24@10068 | 165 includes all versions of those scripts, so that you can copy the dist |
cl349@9840 | 166 directory to another machine and install from that distribution. |
cl349@9840 | 167 |
cl349@9840 | 168 5. To rebuild a kernel with a modified config: |
cl349@9840 | 169 |
cl349@9840 | 170 # make linux-2.6-xen-config CONFIGMODE=menuconfig (or xconfig) |
cl349@9840 | 171 # make linux-2.6-xen-build |
cl349@9840 | 172 # make linux-2.6-xen-install |
cl349@9840 | 173 |
cl349@9840 | 174 Depending on your config, you may need to use 'mkinitrd' to create |
kaf24@10068 | 175 an initial ram disk, just like a native system e.g. |
kfraser@15291 | 176 # depmod 2.6.18-xen |
kfraser@15291 | 177 # mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.18-xen.img 2.6.18-xen |
kfraser@15291 | 178 |
kfraser@15291 | 179 Other systems may requires the use of 'mkinitramfs' to create the |
kfraser@15291 | 180 ram disk. |
kfraser@15291 | 181 # depmod 2.6.18-xen |
kfraser@15291 | 182 # mkinitramfs -o initrd-2.6.18-xen.img 2.6.18-xen |
ewan@14706 | 183 |
ewan@14706 | 184 |
ewan@14706 | 185 Python Runtime Libraries |
ewan@14706 | 186 ======================== |
ewan@14706 | 187 |
ewan@14706 | 188 Xend (the Xen daemon) has the following runtime dependencies: |
ewan@14706 | 189 |
ewan@14706 | 190 * Python 2.3 or later. |
ewan@14706 | 191 In many distros, the XML-aspects to the standard library |
ewan@14706 | 192 (xml.dom.minidom etc) are broken out into a separate python-xml package. |
ewan@14706 | 193 This is also required. |
ewan@14706 | 194 |
ewan@14706 | 195 URL: http://www.python.org/ |
ewan@14706 | 196 Debian: python, python-xml |
ewan@14706 | 197 |
ewan@14706 | 198 * For optional SSL support, pyOpenSSL: |
ewan@14706 | 199 URL: http://pyopenssl.sourceforge.net/ |
ewan@14706 | 200 Debian: python-pyopenssl |
ewan@14706 | 201 |
ewan@14706 | 202 * For optional PAM support, PyPAM: |
ewan@14706 | 203 URL: http://www.pangalactic.org/PyPAM/ |
ewan@14706 | 204 Debian: python-pam |
tom@14833 | 205 |
tom@14833 | 206 * For optional XenAPI support in XM, PyXML: |
tom@14833 | 207 URL: http://pyxml.sourceforge.net |
tom@14833 | 208 YUM: PyXML |