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. The easiest way of satisfying this requirement is to
34 copy the idl4re directory into the l4 directory and making sure that the
35 software is built before trying to build L4Re itself.
36
37 Obtaining and Building Fiasco.OC and L4Re
38 =========================================
39
40 Although the build processes for Fiasco.OC and L4Re are generally documented,
41 the concise instructions for building the software have not been preserved in
42 the L4Re distribution, requiring the perusal of online resources. For example:
43
44 https://github.com/kernkonzept/manifest/wiki/BUILDING
45
46 Some reminders are provided below to save the reader the bother of looking up
47 or searching for this information, particularly if it does not continue to
48 reside in the above location.
49
50 Obtaining and Building the ham Tool
51 -----------------------------------
52
53 First of all, the ham tool has to be obtained. This can be done as follows:
54
55 git clone https://github.com/kernkonzept/ham.git
56
57 It can be built as follows:
58
59 cd ham
60 make
61
62 Returning to the parent directory, the Fiasco.OC and L4Re distributions can be
63 obtained as follows:
64
65 ham/ham init -u https://github.com/kernkonzept/manifest.git
66 ham/ham sync
67
68 (Referencing ham within its repository avoids any need to put the program on
69 the PATH, which is largely unnecessary since we will only be using it in this
70 particular location and for the specific purpose of downloading the remaining
71 software of interest.)
72
73 Building Fiasco.OC
74 ------------------
75
76 Here is a quick summary of the build process for Fiasco.OC starting at the
77 parent directory of the Fiasco.OC and L4Re distributions:
78
79 cd fiasco
80 make BUILDDIR=mybuild
81 cd mybuild
82 make config
83 make
84
85 The final make command can employ flags such as "-j8" or even "-j" without any
86 parameter to parallelise the build.
87
88 At this point, this directory (departure) can be copied into the L4Re
89 distribution within the pkg directory. Also, the idl4re distribution should be
90 made available within the l4 directory itself.
91
92 Building L4Re
93 -------------
94
95 To build this distribution successfully along with the rest of the L4Re
96 sources, the idl4re distribution must reside within the l4 directory and the
97 software built, as described above.
98
99 Here is a quick summary of the build process for L4Re, also starting at the
100 parent directory of the Fiasco.OC and L4Re distributions:
101
102 cd l4
103 make B=mybuild
104 make O=mybuild config
105 make O=mybuild
106
107 Again, the final make command can employ parallelisation flags. For example:
108
109 make -j8 O=mybuild
110
111 Along with the usual L4Re software, this will also build the software provided
112 by this distribution if this distribution has been placed at the pkg/departure
113 location within the l4 directory.
114
115 Defining the L4Re Configuration
116 ===============================
117
118 An example configuration file is provided as conf/Makeconf.boot within this
119 distribution. Where no such existing file has been deployed, this example file
120 can be copied into a suitable location from within the l4 directory as
121 follows:
122
123 cp pkg/departure/conf/Makeconf.boot conf/Makeconf.boot
124
125 Otherwise, with an existing conf/Makeconf.boot file, to make the test programs
126 available to L4Re, add the following line to such a file:
127
128 MODULE_SEARCH_PATH += $(L4DIR_ABS)/pkg/departure/conf
129
130 It may also be necessary to add the following line as well:
131
132 BOOTSTRAP_SEARCH_PATH += $(L4DIR_ABS)/pkg/departure/conf
133
134 This removes any need to copy program configuration files and associated
135 resources to the L4Re distribution itself.
136
137 Defining the Module Lists
138 =========================
139
140 The program module lists in the conf subdirectory can either be appended to
141 the L4Re conf/modules.list file, or specific .list files can be copied to the
142 conf/modules.list location (potentially after taking a backup copy of the
143 original file). For example, from within the l4 directory:
144
145 cp conf/modules.list conf/modules.list.orig
146 cat pkg/departure/conf/*.list > conf/modules.list
147
148 Running Programs from this Distribution
149 =======================================
150
151 With configuration measures in place, a program can be run in QEMU as follows:
152
153 make O=mybuild qemu E=dstest_test_client
154
155 The particular program used above is a short concurrency test.