1 Introduction
2 ============
3
4 This is a collection of L4Re packages for providing and using filesystems and
5 related components.
6
7 This directory (departure) should be installed within the pkg directory in the
8 L4Re distribution.
9
10 Prerequisites
11 =============
12
13 This software requires some other software to be useful:
14
15 * The Fiasco.OC microkernel and L4Re distribution
16 * The idl4re distribution
17
18 Obtaining and Building idl4re
19 =============================
20
21 The idl4re distribution provides a tool called idl that generates source files
22 from interface descriptions. It can be obtained as follows:
23
24 hg clone https://hg.boddie.org.uk/L4Re/idl4re
25
26 The software can be built as follows:
27
28 cd idl4re
29 make
30
31 When building the Departure software within the L4Re build system, the idl4re
32 directory will need to be present in the appropriate location, this being
33 inside the l4 directory. See below for more details.
34
35 Obtaining and Building Fiasco.OC and L4Re
36 =========================================
37
38 Although the build processes for Fiasco.OC and L4Re are generally documented,
39 the concise instructions for building the software have not been preserved in
40 the L4Re distribution, requiring the perusal of online resources. For example:
41
42 https://github.com/kernkonzept/manifest/wiki/BUILDING
43
44 Some reminders are provided below to save the reader the bother of looking up
45 or searching for this information, particularly if it does not continue to
46 reside in the above location.
47
48 First of all, the ham tool has to be obtained. This can be done as follows:
49
50 git clone https://github.com/kernkonzept/ham.git
51
52 It can be built as follows:
53
54 cd ham
55 make
56
57 Returning to the parent directory, the Fiasco.OC and L4Re distributions can be
58 obtained as follows:
59
60 ham/ham init -u https://github.com/kernkonzept/manifest.git
61 ham/ham sync
62
63 (Referencing ham within its repository avoids any need to put the program on
64 the PATH, which is largely unnecessary since we will only be using it in this
65 particular location and for the specific purpose of downloading the remaining
66 software of interest.)
67
68 Here is a quick summary of the build process for Fiasco.OC starting at the
69 parent directory of the Fiasco.OC and L4Re distributions:
70
71 cd fiasco
72 make BUILDDIR=mybuild
73 cd mybuild
74 make config
75 make
76
77 The final make command can employ flags such as "-j8" or even "-j" without any
78 parameter to parallelise the build.
79
80 At this point, this directory (departure) can be copied into the L4Re
81 distribution within the pkg directory. Also, the idl4re distribution should be
82 made available within the l4 directory itself.
83
84 Here is a quick summary of the build process for L4Re, also starting at the
85 parent directory of the Fiasco.OC and L4Re distributions:
86
87 cd l4
88 make B=mybuild
89 make O=mybuild config
90 make O=mybuild
91
92 Again, the final make command can employ parallelisation flags. For example:
93
94 make -j8 O=mybuild
95
96 Along with the usual L4Re software, this will also build the software provided
97 by this distribution if it has been copied into the pkg/departure location
98 within the l4 directory.
99
100 Defining the L4Re Configuration
101 ===============================
102
103 An example configuration file is provided as conf/Makeconf.boot within this
104 distribution. Where no such existing file has been deployed, this example file
105 can be copied into a suitable location from within the l4 directory as
106 follows:
107
108 cp pkg/departure/conf/Makeconf.boot conf/Makeconf.boot
109
110 Otherwise, with an existing conf/Makeconf.boot file, to make the test programs
111 available to L4Re, add the following line to such a file:
112
113 MODULE_SEARCH_PATH += $(L4DIR_ABS)/pkg/departure/conf
114
115 It may also be necessary to add the following line as well:
116
117 BOOTSTRAP_SEARCH_PATH += $(L4DIR_ABS)/pkg/departure/conf
118
119 This removes any need to copy program configuration files and associated
120 resources to the L4Re distribution itself.
121
122 Defining the Module Lists
123 =========================
124
125 The program module lists in the conf subdirectory can either be appended to
126 the L4Re conf/modules.list file, or a specific .list file can be copied to the
127 conf/modules.list location (potentially after taking a backup copy of the
128 original file). For example, from within the l4 directory:
129
130 cp conf/modules.list conf/modules.list.orig
131 cp pkg/departure/conf/dstest_test.list conf/modules.list
132
133 Running Programs from this Distribution
134 =======================================
135
136 With configuration measures in place, a program can be run in QEMU as follows:
137
138 make O=mybuild qemu E=dstest_test
139
140 The particular program used above is a short concurrency test.