Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Modified titles and some wording for verbal parallelism.
Philip Soltero [Sun, 27 Dec 2009 21:55:40 +0000 (15:55 -0600)]
Added clarification text in a few places.

manual/guest_build/Palacios_Guest_Build.tex

index 991a110..5432897 100644 (file)
@@ -8,26 +8,39 @@
 
 \def\colfigsize{\epsfxsize=5in}
 
-\title{Building guest bootable image for the Palacios and Kitten}
+\pdfpagewidth 8.5in
+\pdfpageheight 11.0in
+
+\setlength\topmargin{0in}
+\setlength\evensidemargin{0in}
+\setlength\oddsidemargin{0in}
+\setlength\textheight{8.0in}
+\setlength\textwidth{6.5in}
+
+\title{Building a bootable guest image for Palacios and Kitten}
 
 \begin{document}
 \maketitle
 
-\section{Getting the stuffs used for building guest image}
+\section{Getting the guest image build tools}
 
-In order to build the bootable guest iso image, we need to build Linux kernel image from its source, 
-an initial file system containing a set of useful binary files and other necessary directories and files, 
-which will be specified in the following text.
-
-We will use a new directory for demonstration, 
-the root directory for our following examples are all in the \verb+test/+ as root directory.
+In order to build the bootable guest iso image, we need to build a Linux kernel
+image from source and an initial file system containing a set of useful binary
+files which will be described in the following text. We will use a new directory
+for demonstration; the root directory for the following examples is
+\verb+test/+:
 
 \begin{verbatim}
 mkdir test/
 cd test/
 \end{verbatim}
 
-There are a set of tools and sources that are useful for this building procedure. You can checkout these resources from our git repositories. To checkout them to your local directory, using commands:
+\vspace{10pt}
+\noindent
+There are a set of tools and sources that are useful for the guest image
+building procedure. You can checkout these resources from our git repositories;
+to check them out to your local \verb+test/+ directory use the following
+commands: 
 
 \begin{verbatim}
 git clone http://hornet.cs.northwestern.edu:9005/busybox
@@ -35,155 +48,231 @@ git clone http://hornet.cs.northwestern.edu:9005/initrd
 git clone http://hornet.cs.northwestern.edu:9005/linux-2.6.30.y
 \end{verbatim}
 
-\section{Build the ramdisk filesystem}
+\section{Building the ramdisk filesystem}
+
+% Introductory text explaining why a ramdisk filesystem is necessary, and a
+% small blurb about what it is. Mostly this is necessary because the
+% introduction said that the "useful binary files" would be described.
+
+Jack has made an initial ramdisk system that you can leverage. The file is
+temporarily in the directory
+\verb|/home/jarusl/initrd/disks/v3vee_initramfs.tar.gz| on the
+newskysaw machine. If you require a custom initial ramdisk, copy the directories
+and files that you require into the \verb+initramfs+/ directory. For minimal
+device support, copy theses devices into the \verb+initramfs/dev/+ directory:
+console, ram, null, tty (you probably need root privilege to copy and make the
+device files).
+
+
 
-Copy needed devices into the \verb+initramfs/dev/+ directory, 
-for minimal support, you need console, ram, null, tty. 
-(You probably need root privilege to copy and make the device files)
 
-There is an already costumed initial ramdisk system made 
-by Jack which you can leverage. The file is temporarily 
-in \verb|/home/jarusl/initrd/disks/v3vee_initramfs.tar.gz|
-in newskysaw machine.
+\pagebreak
+\begin{figure}[h]\begin{center}\colfigsize\epsffile{busyboxConf1.eps}\end{center}\caption{BusyBox configuration}\label{fig:busyboxcf1}\end{figure}
 
-\section{Configure and Install Busybox tools}
 
-BusyBox is a software application released as Free software 
-under the GNU GPL that provides many standard Unix tools. BusyBox 
-combines tiny versions of many common UNIX utilities into a single 
-small executable. For more details on Busybox, visiting http://busybox.net.
 
-To configure BusyBox, in the \verb+busybox/+ directory, type
+
+\pagebreak
+\begin{figure}[h]\begin{center}\colfigsize\epsffile{busyboxConf2.eps}\end{center}\caption{BusyBox configuration}\label{fig:busyboxcf2}\end{figure}
+
+
+
+
+\section{Configuring and installing BusyBox tools}
+
+BusyBox is a software application released as Free software under the GNU GPL
+that provides many standard Unix tools. BusyBox combines tiny versions of many
+common UNIX utilities into a single small executable. For more details on
+BusyBox, visiting http://busybox.net. To configure BusyBox, in the
+\verb+busybox/+ directory, type the following:
 
 \begin{verbatim}
-make meunconfig 
-make xconfig (X version)
+make menuconfig
 \end{verbatim}
 
-You can add tools as you needed into the guest image. There are 
-two specified configurations are required here:
-First, in the "\verb|Build Options|", check the option 
-"\verb|Build BusyBox as a static binary (no shared libs)|", 
-as shown in figure \ref{fig:busyboxcf1}. Second, 
-in the "\verb|Installation Options|", Change 
-the "\verb|Busybox installation prefix|" to be the path 
-of your "\verb|initramfs|" directory, as shown in figure \ref{fig:busyboxcf2}.
-\begin{figure}\begin{center}\colfigsize\epsffile{busyboxConf1.eps}\end{center}\caption{BusyBox configuartion}\label{fig:busyboxcf1}\end{figure}
+or
 
-\begin{figure}\begin{center}\colfigsize\epsffile{busyboxConf2.eps}\end{center}\caption{BusyBox configuartion}\label{fig:busyboxcf2}\end{figure}
-After you finish the configuration, save your configuration
-and quit the window. Then, to make the Busybox tools, type 
 \begin{verbatim}
-make
+make xconfig (X version)
 \end{verbatim}
-And then install the tools to your inital ramdisk directory
 
+\vspace{10pt}
+\noindent
+You can add the tools you need into the guest image. There are two required
+configuration options: in ``\verb|BusyBox settings->Build Options|", check the 
+``\verb|Build BusyBox as a static binary|" option, and in
+``\verb|BusyBox settings->Installation Options|", set the
+``\verb|Busybox installation prefix|" to the path of your \verb|initramfs|
+directory, as shown in figure \ref{fig:busyboxcf2}. After you finish configuring
+BusyBox, save your configuration and quit the window. Then, to make the BusyBox
+tools, type the following:
+\begin{verbatim}
+make
+\end{verbatim}
+Install the tools to your initial ramdisk directory:
 \begin{verbatim}
 make install
 \end{verbatim}
 
-\section{Configure and Compile Linux Kernel}
 
-Go to \verb|linux-2.6.30.y/| directory (or whatever your 
-Linux kernel source directory). Type 
+\begin{figure}[h]\begin{center}\colfigsize\epsffile{linuxConf.eps}\end{center}\caption{Linux Kernel configuration}\label{fig:linuxcf}\end{figure}
+
 
+
+\section{Configuring and compiling the Linux kernel}
+
+Change to the \verb|linux-2.6.30.y/| directory (or whatever your Linux kernel
+source directory is named) and type the following:
+
+\begin{verbatim}
+make menuconfig
+\end{verbatim}
+or
 \begin{verbatim}
-make menuconfig 
 make xconfig (X version)
 \end{verbatim}
 
-To configure the kernel as your need. 
-There is a customed configuration file "\verb|jrl-default-config|" 
-which is configured with minimal kernel options (all of 
-unnecessary stuffs are turned off to keep guest booting process faster).
+\vspace{10pt}
+\noindent
+Configure the kernel to meet your requirements. There is a custom configuration
+file \verb|jrl-default-config| which is configured with minimal kernel options
+(all unnecessary options are removed to keep the guest booting process fast).
+For more on configuring and compiling Linux kernel images, check online.
+
+\vspace{5pt}
+\noindent
+The kernel must be configured with the initial ramdisk file system directory
+(e.g. \verb|initrd/initramfs|): in the ``\verb|General setup|" menu under
+option
+``\verb|Initial RAM filesystem and RAM disk support|" set the
+``\verb|Initramfs source file(s)|" option to the path of your \verb|initramfs|
+directory as shown in figure \ref{fig:linuxcf}. When you are finished
+configuring the kernel, save your configuration, and type the following:
+\begin{verbatim}
+make
+\end{verbatim}
+Some blurb about where the kernel image is...
+
 
-For more on configuring and compiling Linux kernel image, check online. Here, one 
-option for configuring the initial ramdisk file system directory (such 
-as \verb|initrd/initramfs|) in the option 
-"\verb|initial RAM filesystem and Ram Disk|" is needed, 
-as shown in figure \ref{fig:linuxcf}.
 
-\begin{figure}\begin{center}\colfigsize\epsffile{linuxConf.eps}\end{center}\caption{Linux Kernel configuartion}\label{fig:linuxcf}\end{figure}
 
-\section{Configure guest devices}
-Checkout the updated Palacios repository to \verb|palacios/|. 
-(You can find the instruction of how to get the Palacios and
-Kitten repository in http://www.v3vee.org/palacios/).
+\section{Configuring guest devices}
+
+% Can we make this a true hyperlink?
+Checkout the updated Palacios repository to \verb|palacios/|.  (You can find
+instructions for checking out the Palacios and Kitten repositories at
+http://www.v3vee.org/palacios/). To build the guest VM creator tool, change to
+the \verb|palacios/utils/guest_creator| directory and type the following:
 
-In the "\verb|palacios/utils/guest_creator|", Type
 \begin{verbatim}
 make
 \end{verbatim}
-You will get the guest configuration files creator "\verb|build_vm|".
 
-The guest configuration file is using XML format. There is a sample configuration file: \verb|default.xml|. 
-You can create your own guest configuration, after creating your file, type
+\vspace{10pt}
+\noindent
+You will get the \verb|build_vm| executable. The guest configuration file uses
+XML. A sample configuration file is provided: \verb|default.xml|.
+
+\vspace{5pt}
+\noindent
+***Various information about how to configure the VM.***
 
+\vspace{5pt}
+\noindent
+Once you have configured the VM, type the following to build the full guest VM
+image:
 \begin{verbatim}
 ./build_vm myconfig.xml -o guest.iso
 \end{verbatim}
+where \verb+myconfig.xml+ is your guest configuration file, and \verb+guest.iso+
+is the output image file that will be used to configure kitten in the next
+section.
+
+
+
+
+\pagebreak
+\begin{figure}[h]\begin{center}\colfigsize\epsffile{kittenConf1.eps}\end{center}\caption{Kitten configuration}\label{fig:kittencf}\end{figure}
+
+
+
 
-Where \verb+myconfig.xml+ is your guest configuration file, 
-and \verb+guest.iso+ is the output image file that can be 
-feed into kitten¡¯s configuration (see next section).
+\pagebreak
+\begin{figure}[h]\begin{center}\colfigsize\epsffile{kittenConf2.eps}\end{center}\caption{Kitten configuration}\label{fig:kittencf2}\end{figure}
 
-\section{Configure and Make Palacios and Kitten}
-\subsection*{Configure and build Palacios}
 
-You can find the detail manual of getting and building Palacios and Kitten 
-from scratch in the Palacios website (http://www.v3vee.org/palacios). 
-Here we only give the specific requirements related to the booting guest procedure.
 
-To configure Palacios, in Palacios root directory, such as \verb+palacios/+, type
 
+\section{Configuring and building Palacios and Kitten}
+\subsection*{Configuring and building Palacios}
+
+You can find the detailed manual of getting and building Palacios and Kitten 
+from scratch in the Palacios website (http://www.v3vee.org/palacios). Here we
+only give the specific requirements related to the booting guest procedure. To
+configure Palacios, in the Palacios root directory (i.e. \verb+palacios/+) type
+the following:
 \begin{verbatim}
 make config
+\end{verbatim}
 or
+\begin{verbatim}
 make xconfig
 \end{verbatim}
 
-To configure the components you want to build into Palacios. And then type 
-
+\vspace{10pt}
+\noindent
+When you have configured the components you want to build into Palacios type
+the following:
 \begin{verbatim}
 make
+\end{verbatim}
 or
+\begin{verbatim}
 make all
 \end{verbatim}
 
-To build Palacios static library, after build, you can find the Palacios library file \verb+libv3vee.a+ in root directory.
-
-\subsection*{Configure and build Kitten}
+\vspace{10pt}
+\noindent
+Once the Palacios static library has been built you can find the library file
+\verb+libv3vee.a+ in the Palacios root directory.
 
-To build Kitten, first configure it using the similar way as Palacios, go to \verb+kitten/+, type
+\subsection*{Configuring and building Kitten}
 
+To build Kitten, first configure it in as you did Palacios. Change to the
+\verb+kitten/+ directory and type the following:
 \begin{verbatim}
 make config
+\end{verbatim}
 or
+\begin{verbatim}
 make xconfig
 \end{verbatim}
 
-Specifically, you have to enable Palacios VMM support in Kitten, 
-and configure the root directory of Palacios and the 
-path of the guest image file we just built in previous step, 
-as show in figure \ref{fig:kittencf} and \ref{fig:kittencf2}.
-
-\begin{figure}\begin{center}\colfigsize\epsffile{kittenConf1.eps}\end{center}\caption{Kitten configuartion}\label{fig:kittencf}\end{figure}
-
-\begin{figure}\begin{center}\colfigsize\epsffile{kittenConf2.eps}\end{center}\caption{Kitten configuartion}\label{fig:kittencf2}\end{figure}
-After configure, to build the Kitten, type
-
+\vspace{10pt}
+\noindent
+Under the ``\verb|Virtualization|" menu select the
+``\verb|Include Palacios virtual machine monitor|" option. Set the
+``\verb|Path to pre-built Palacios tree|" option to the path of your Palacios
+build, and set the ``\verb|Path to guest ISO image|" option to the path
+containing the guest image that was built in the Configuring guest devices
+section of this manual.
+
+\vspace{10pt}
+\noindent
+After configuring Kitten, to build Kitten, type the following:
 \begin{verbatim}
 make isoimage
 \end{verbatim}
 
-to make the bootable ISO image file with guest OS, Palacios and Kitten.
+\vspace{10pt}
+\noindent
+This builds the bootable ISO image file with guest OS, Palacios and Kitten.
 The ISO file is located in \verb+kitten/arch/x86_64/boot/image.iso+.
 
-Until here, you have successfully created a guest CD image file that can be 
-booted on machine. You can boot the file on Qemu using following sample command
+\vspace{5pt}
+\noindent
+You have successfully created a guest CD image file that can be booted on a
+machine. You can boot the file on Qemu using the following sample command:
 
 \begin{verbatim}
 /opt/vmm-tools/qemu/bin/qemu-system-x86_64 \
@@ -194,11 +283,11 @@ booted on machine. You can boot the file on Qemu using following sample command
         < /dev/null
 \end{verbatim}
 
-Here, we finally finish the entire procedure to 
-build costumed guest and boot it on Palacios VMM. 
-For more updated details, check Palacios 
-website \verb+http://www.v3vee.org/palacios+ and 
-Kitten website \verb+https://software.sandia.gov/trac/kitten+ regularly.
-
+\vspace{10pt}
+\noindent
+We have finished the entire procedure for building a guest image and booting it
+on the Palacios VMM. For more updated details, check the Palacios website
+\verb+http://www.v3vee.org/palacios+ and Kitten website
+\verb+https://software.sandia.gov/trac/kitten+ regularly.
 
 \end{document}
\ No newline at end of file