1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
%
% Copyright (C) 2003-2009 FAUmachine Team <info@faumachine.org>.
% This program is free software. You can redistribute it and/or modify it
% under the terms of the GNU General Public License, either version 2 of
% the License, or (at your option) any later version. See COPYING.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Installing the FAUmachine Source Distribution}
\label{s:buildfromsource.installsrc}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The following information concerns the FAUmachine source distribution.
No installation procedures are necessary for the FAUmachine binary snapshot.
It is usable out-of-the-box. For usage information, please refer to the appropriate
chapters in this user guide.
%%======================================================================
\subsection{Extracting the Sources}
\label{s:buildfromsource.installsrc.extract}
%%======================================================================
The following explanation assumes that the current working directory is /proj.
To extract the source type
\command{tar -xzf FAUmachine-\replaceable{version}.src.tar.gz} at the command
prompt. This will create a directory FAUmachine-\replaceable{version}-src in the
current working directory with a number of subdirectories.
%%======================================================================
\subsection{Contents of FAUmachine/ directory}
\label{s:buildfromsource.installsrc.dir}
%%======================================================================
The important subdirectories in the FAUmachine/ directory are
\begin{description}
\item[\Filename{docs}]
some of the papers on FAUmachine we have published so far as well as
this user's guide \Filename{guide.pdf}.
\item[\Filename{launcher}]
the graphical frontend, including the wizard and configuration dialogs
\item[\Filename{node-pc}]
the actual simular
\item[\Filename{node-serial\_terminal}]
the serial terminal which is able to connect to a virtual machine.
\item[\Filename{expect}]
the automatic experiment controller Expect
\item[\Filename{experiments}]
contains a few example, including the necessary
setup-files for generating appropriately configured nodes automatically. Things
change quickly here.
\item[\Filename{bridge-net}]
interconnection between real and virtual net
\item[\Filename{scripts}]
collection of Perl and shell scripts we are using
\item[\Filename{faum-\replaceable{*}}]
modified versions of bootloaders and kernels.
These directories include all changed source files together with some ready-to-use
precompiled binaries for the most important distributions.
\end{description}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Building \package}
\label{s:buildfromsource.build}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
There are two things you can build from source:
\package itself or bootloaders/kernels modified for \package.
To build \package, simply call the standard sequence
\command{./configure \&\& make \&\& make install}.
Everything will be installed into the directory \Filename{/usr/local}.
If you want to install to another directory,
pass \command{--prefix=\replaceable{dir}} to \command{./configure}
(remember to get root access prior to \command{make install} if neccessary).
{\em Note}: in order to build, you need the xfree86 and openmotif development
files.
Building modified versions of bootloaders or kernels is a bit more
complicated and is discussed in the next sections.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Building bootloaders and kernels}
\label{s:buildfromsource.guest}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Because of space limitations, we don't ship the full sources of
the modified boot loaders and kernels.
If you want to build them yourself, you need to optain their
original sources first.
%%======================================================================
\subsection{Downloading and Installing Original Sources}
\label{s:buildfromsource.guest.source}
%%======================================================================
Downloading the original kernel and bootloader sources is done with scripts called
\command{unpack-\replaceable{*}} in the scripts subdirectory.
These download and unpack all required sources
(edit the script if you want to change the mirror used).
All sources are unpacked into the current working directy.
There is another script called \command{los} (link-original-sources),
which creates symbolic links to the location of your unpacked sources.
By default, it will look for your sources in \Filename{/usr/src}.
If you unpacked them to another directory, set the environment variable
\command{SRC} before running the script, e.g. by executing
\command{SRC=~/src scripts/los} (when using bash as shell).
Be careful, this scripts downloads {\em all} sources,
requiring a {\em lot} of free disk space.
If you only want to build only one specific kernel, just download,
unpack and link it yourself.
%%======================================================================
\subsection{Building}
\label{s:buildfromsource.guest.build}
%%======================================================================
Several make targets in the top-level Makefile can be used to
build the bootloaders and kernels.
A normal \command{make} run will build \package together with
some default kernels and bootloaders
(well, it won't actually build them as they are already shipped with
the source package).
To build all modified linux versions, execute \command{make faum-linux-allall}.
Building bootloaders is similar: just replace 'linux' with the bootloader
that should be build: lilo, syslinux, gfxboot or grub.
To build only one special version, set the environment variable
\command{KERNEL\_VERSION}, \command{LILO\_VERSION}, \command{SYSLINUX\_VERSION},
\command{GFXBOOT\_VERSION} or \command{GRUB\_VERSION} and execute
\command{make faum-\replaceable{*}-all}.
{\em Note}:
It may not be possible to build all kernels with the same version
of your compiler.
Older kernels often require older compilers, newer kernels require newer compilers.
For that reason we build kernels for some distributions using the correct
compiler for that distribution.
%%======================================================================
\subsection{Installation}
\label{s:buildfromsource.guest.install}
%%======================================================================
If the BIOS prints a message that it cannot find a replacement bootloader
or kernel, you have to add a line to this config-file to point
\package to the correct image for replacement.
Every line in that file contains a search string (the one printed by the BIOS)
and a filename (the image to load).
|