From a03c61b2f7018b36d600491754123a8bd07da1e0 Mon Sep 17 00:00:00 2001 From: "emellor@leeni.uk.xensource.com" Date: Mon, 10 Apr 2006 16:21:44 +0100 Subject: Updated to reflect new KERNELS defaults, and properly describe make install and make dist. --- README | 334 ++++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 176 insertions(+), 158 deletions(-) diff --git a/README b/README index 34ee02040c..b3ab351f52 100644 --- a/README +++ b/README @@ -1,158 +1,176 @@ -################################ - __ __ _____ ___ - \ \/ /___ _ __ |___ / / _ \ - \ // _ \ '_ \ |_ \| | | | - / \ __/ | | | ___) | |_| | - /_/\_\___|_| |_| |____(_)___/ - -################################ - -http://www.xensource.com/xen/about.html - -What is Xen? -============ - -Xen is a Virtual Machine Monitor (VMM) originally developed by the -Systems Research Group of the University of Cambridge Computer -Laboratory, as part of the UK-EPSRC funded XenoServers project. Xen -is freely-distributable Open Source software, released under the GNU -GPL. Since its initial public release, Xen has grown a large -development community, spearheaded by XenSource Inc, a company created -by the original Xen development team to build enterprise products -around Xen. - -The 3.0 release offers excellent performance, hardware support and -enterprise-grade features such as x86_32-PAE, x86_64, SMP guests and -live relocation of VMs. This install tree contains source for a Linux -2.6 guest; ports to Linux 2.4, NetBSD, FreeBSD and Solaris will follow -later (and are already available for previous Xen releases). - -This file contains some quick-start instructions to install Xen on -your system. For full documentation, see the Xen User Manual. If this -is a pre-built release then you can find the manual at: - dist/install/usr/share/doc/xen/pdf/user.pdf -If you have a source release, then 'make -C docs' will build the -manual at docs/pdf/user.pdf. - -Quick-Start Guide - Pre-Built Binary Release -============================================ - -[NB. Unless noted otherwise, all the following steps should be -performed with root privileges.] - -1. Install the binary distribution onto your filesystem: - - # sh ./install.sh - - Among other things, this will install Xen and Xen-ready Linux - kernel files in /boot, kernel modules and Python packages in /lib, - and various control tools in standard 'bin' directories. - -2. Configure your bootloader to boot Xen and an initial Linux virtual - machine. Note that Xen currently only works with GRUB and pxelinux - derived boot loaders: less common alternatives such as LILO are - *not* supported. You can most likely find your GRUB menu file at - /boot/grub/menu.lst: edit this file to include an entry like the - following: - - title Xen 3.0 / XenLinux 2.6 - kernel /boot/xen-3.0.gz console=vga - module /boot/vmlinuz-2.6-xen root= ro console=tty0 - module /boot/initrd-2.6-xen.img - - NB: Not all kernel configs need an initial ram disk (initrd), but - if you do specify one you'll need to use the 'module' grub directive - rather than 'initrd'. - - The linux command line takes all the usual options, such as - root= to specify your usual root partition (e.g., - /dev/hda1). - - The Xen command line takes a number of optional arguments described - in the manual. The most common is 'dom0_mem=xxxM' which sets the - amount of memory to allocate for use by your initial virtual - machine (known as domain 0). Note that Xen itself reserves about - 32MB memory for internal use, which is not available for allocation - to virtual machines. - -3. Reboot your system and select the "Xen 3.0 / XenLinux 2.6" menu - option. After booting Xen, Linux will start and your initialisation - scripts should execute in the usual way. - -Quick-Start Guide - Source Release -================================== - -First, there are a number of prerequisites for building a Xen source -release. Make sure you have all the following installed, either by -visiting the project webpage or installing a pre-built package -provided by your Linux distributor: - * GCC (preferably v3.2.x or v3.3.x; older versions are unsupported) - * GNU Make - * GNU Binutils - * Development install of zlib (e.g., zlib-dev) - * Development install of Python v2.3 or later (e.g., python-dev) - * bridge-utils package (/sbin/brctl) - * iproute package (/sbin/ip) - * hotplug or udev - -[NB. Unless noted otherwise, all the following steps should be -performed with root privileges.] - -1. Download and untar the source tarball file. This will be a - file named xen-unstable-src.tgz, or xen-$version-src.tgz. - You can also pull the current version from the SCMS - that is being used (Bitkeeper, scheduled to change shortly). - - # tar xzf xen-unstable-src.tgz - - Assuming you are using the unstable tree, this will - untar into xen-unstable. The rest of the instructions - use the unstable tree as an example, substitute the - version for unstable. - -2. cd to xen-unstable (or whatever you sensibly rename it to). - The Linux, netbsd and freebsd kernel source trees are in - the $os-$version-xen-sparse directories. - -On Linux: - -3. For the very first build, or if you want to destroy existing - .configs and build trees, perform the following steps: - - # make KERNELS=linux-2.6-xen world - # make install - - It will create and install into the dist/ directory which is the - default install location. It will build the xen binary (xen.gz), - and a linux kernel and modules that can be used in both dom0 and an - unprivileged guest kernel (vmlinuz-2.6.x-xen), the tools and the - documentation. - - If you don't specify KERNELS= on the make command line it will - default to building two kernels, vmlinuz-2.6.x-xen0 and - vmlinuz-2.6.x-xenU. These are smaller builds with just selected - modules, intended primarilly for developers that don't like to wait - for a -xen kernel to build. The -xenU kernel is particularly small - as it does not contain any physical device drivers, and hence is - only useful for guest domains. - - If you want to build an x86_32 PAE capable xen and kernel to work - on machines with >= 4GB of memory, use XEN_TARGET_X86_PAE=y on the - make command line. - -4. To rebuild an existing tree without modifying the config: - # make dist - - This will build and install xen, kernels, tools, and - docs into the local dist/ directory. - -5. To rebuild a kernel with a modified config: - - # make linux-2.6-xen-config CONFIGMODE=menuconfig (or xconfig) - # make linux-2.6-xen-build - # make linux-2.6-xen-install - - Depending on your config, you may need to use 'mkinitrd' to create - an initial ram disk, just like a native system e.g. - # depmod 2.6.12.6-xen - # mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.12.6-xen.img 2.6.12.6-xen +################################ + __ __ _____ ___ + \ \/ /___ _ __ |___ / / _ \ + \ // _ \ '_ \ |_ \| | | | + / \ __/ | | | ___) | |_| | + /_/\_\___|_| |_| |____(_)___/ + +################################ + +http://www.xensource.com/xen/about.html + +What is Xen? +============ + +Xen is a Virtual Machine Monitor (VMM) originally developed by the +Systems Research Group of the University of Cambridge Computer +Laboratory, as part of the UK-EPSRC funded XenoServers project. Xen +is freely-distributable Open Source software, released under the GNU +GPL. Since its initial public release, Xen has grown a large +development community, spearheaded by XenSource Inc, a company created +by the original Xen development team to build enterprise products +around Xen. + +The 3.0 release offers excellent performance, hardware support and +enterprise-grade features such as x86_32-PAE, x86_64, SMP guests and +live relocation of VMs. This install tree contains source for a Linux +2.6 guest; ports to Linux 2.4, NetBSD, FreeBSD and Solaris will follow +later (and are already available for previous Xen releases). + +This file contains some quick-start instructions to install Xen on +your system. For full documentation, see the Xen User Manual. If this +is a pre-built release then you can find the manual at: + dist/install/usr/share/doc/xen/pdf/user.pdf +If you have a source release, then 'make -C docs' will build the +manual at docs/pdf/user.pdf. + +Quick-Start Guide - Pre-Built Binary Release +============================================ + +[NB. Unless noted otherwise, all the following steps should be +performed with root privileges.] + +1. Install the binary distribution onto your filesystem: + + # sh ./install.sh + + Among other things, this will install Xen and Xen-ready Linux + kernel files in /boot, kernel modules and Python packages in /lib, + and various control tools in standard 'bin' directories. + +2. Configure your bootloader to boot Xen and an initial Linux virtual + machine. Note that Xen currently only works with GRUB and pxelinux + derived boot loaders: less common alternatives such as LILO are + *not* supported. You can most likely find your GRUB menu file at + /boot/grub/menu.lst: edit this file to include an entry like the + following: + + title Xen 3.0 / XenLinux 2.6 + kernel /boot/xen-3.0.gz console=vga + module /boot/vmlinuz-2.6-xen root= ro console=tty0 + module /boot/initrd-2.6-xen.img + + NB: Not all kernel configs need an initial ram disk (initrd), but + if you do specify one you'll need to use the 'module' grub directive + rather than 'initrd'. + + The linux command line takes all the usual options, such as + root= to specify your usual root partition (e.g., + /dev/hda1). + + The Xen command line takes a number of optional arguments described + in the manual. The most common is 'dom0_mem=xxxM' which sets the + amount of memory to allocate for use by your initial virtual + machine (known as domain 0). Note that Xen itself reserves about + 32MB memory for internal use, which is not available for allocation + to virtual machines. + +3. Reboot your system and select the "Xen 3.0 / XenLinux 2.6" menu + option. After booting Xen, Linux will start and your initialisation + scripts should execute in the usual way. + +Quick-Start Guide - Source Release +================================== + +First, there are a number of prerequisites for building a Xen source +release. Make sure you have all the following installed, either by +visiting the project webpage or installing a pre-built package +provided by your Linux distributor: + * GCC (preferably v3.2.x or v3.3.x; older versions are unsupported) + * GNU Make + * GNU Binutils + * Development install of zlib (e.g., zlib-dev) + * Development install of Python v2.3 or later (e.g., python-dev) + * bridge-utils package (/sbin/brctl) + * iproute package (/sbin/ip) + * hotplug or udev + +[NB. Unless noted otherwise, all the following steps should be +performed with root privileges.] + +1. Download and untar the source tarball file. This will be a + file named xen-unstable-src.tgz, or xen-$version-src.tgz. + You can also pull the current version from the SCMS + that is being used (Bitkeeper, scheduled to change shortly). + + # tar xzf xen-unstable-src.tgz + + Assuming you are using the unstable tree, this will + untar into xen-unstable. The rest of the instructions + use the unstable tree as an example, substitute the + version for unstable. + +2. cd to xen-unstable (or whatever you sensibly rename it to). + The Linux, netbsd and freebsd kernel source trees are in + the $os-$version-xen-sparse directories. + +On Linux: + +3. For the very first build, or if you want to destroy existing + .configs and build trees, perform the following steps: + + # make world + # make install + + This will create and install onto the local machine. It will build + the xen binary (xen.gz), and a linux kernel and modules that can be + used in both dom0 and an unprivileged guest kernel (vmlinuz-2.6.x-xen), + the tools and the documentation. + + You can override the destination for make install by setting DESTDIR + to some value. + + The make command line defaults to building the kernel vmlinuz-2.6.x-xen. + You can override this default by specifying KERNELS=kernelname. For + example, you can make two kernels - linux-2.6.16-xen0 + and linux-2.6.16-xenU - which are smaller builds containing only selected + modules, intended primarilly for developers that don't like to wait + for a full -xen kernel to build. The -xenU kernel is particularly small, + as it does not contain any physical device drivers, and hence is + only useful for guest domains. + + To make these two kernels, simply specify + + KERNELS="linux-2.6.16-xen0 linux-2.6.16-xenU" + + in the make command line. + + If you want to build an x86_32 PAE capable xen and kernel to work + on machines with >= 4GB of memory, use XEN_TARGET_X86_PAE=y on the + make command line. + +4. To rebuild an existing tree without modifying the config: + # make dist + + This will build and install xen, kernels, tools, and + docs into the local dist/ directory. + + You can override the destination for make install by setting DISTDIR + to some value. + + make install and make dist differ in that make install does the + right things for your local machine (installing the appropriate + version of hotplug or udev scripts, for example), but make dist + includes all versions of those scripts, so that you can copy the dist + directory to another machine and install from that distribution. + +5. To rebuild a kernel with a modified config: + + # make linux-2.6-xen-config CONFIGMODE=menuconfig (or xconfig) + # make linux-2.6-xen-build + # make linux-2.6-xen-install + + Depending on your config, you may need to use 'mkinitrd' to create + an initial ram disk, just like a native system e.g. + # depmod 2.6.12.6-xen + # mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.12.6-xen.img 2.6.12.6-xen -- cgit v1.2.3