File: buildfromsource.tex

package info (click to toggle)
faumachine 20180503-4
  • links: PTS
  • area: main
  • in suites: buster
  • size: 61,272 kB
  • sloc: ansic: 272,290; makefile: 6,199; asm: 4,251; sh: 3,022; perl: 886; xml: 563; pascal: 311; lex: 214; vhdl: 204
file content (153 lines) | stat: -rw-r--r-- 6,895 bytes parent folder | download
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).