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