1 = Getting Started = 2 3 To use this software, it is necessary to first obtain the L4Re and Fiasco.OC 4 source distribution: 5 6 [[http://l4re.org/download.html]] 7 8 With this unpacked, the patches from the L4Re-Fiasco.OC-patches distribution 9 need to be applied. This patch distribution can be obtained from the following 10 location: 11 12 [[https://projects.boddie.org.uk/L4Re-Fiasco.OC-patches]] 13 14 Instructions about applying the patches are provided in the patch 15 distribution, as is a summary of the issues related to configuring and 16 building this software. This document serves as a more detailed reference for 17 the configuration and building of the Landfall components in particular. 18 19 <<TableOfContents(2)>> 20 21 == Configuring this Software == 22 23 Some files may need to be adjusted for the device on which the software is to 24 be deployed. A script is provided to check and update them: 25 26 {{{ 27 $LANDFALL/tools/checkconfig.sh $PLATFORM 28 }}} 29 30 (Here, `$LANDFALL` needs to expand to the location of this distribution 31 whereas `$PLATFORM` indicates a platform type.) 32 33 For example: 34 35 {{{ 36 ~/L4/Landfall/tools/checkconfig.sh qi_lb60 37 }}} 38 39 This configures the files for the Ben NanoNote. See the following file for a 40 list of supported platforms: 41 42 {{{ 43 conf/landfall-examples/platforms.txt 44 }}} 45 46 == Installing this Software == 47 48 With the above patches applied, this software can be installed within the 49 unpacked L4Re/Fiasco.OC distribution using a command of the following form: 50 51 {{{ 52 $LANDFALL/tools/install.sh $L4DIR 53 }}} 54 55 (Here, `$LANDFALL` needs to expand to the location of this distribution 56 whereas `$L4DIR` needs to expand to the location of the L4Re software.) 57 58 For example: 59 60 {{{ 61 ~/L4/Landfall/tools/install.sh ~/L4/src/l4 62 }}} 63 64 (The repository root of the L4Re/Fiasco.OC distribution typically contains a 65 directory called `fiasco` and a directory called `l4`.) 66 67 == Obtaining Software Dependencies == 68 69 As noted in the [[Prerequisites|prerequisites]] document, a number of other 70 software dependencies are needed to be able to build the software. Various 71 additional development tools and components are required, and these can be 72 installed on a Debian system as follows (with appropriate privileges): 73 74 {{{ 75 apt-get install build-essential python unifont 76 }}} 77 78 The idl4re distribution must be installed within the `l4` directory of the 79 L4Re/Fiasco.OC distribution and the `idl` program built. This can be done as 80 follows within that directory: 81 82 {{{ 83 hg clone https://hg.boddie.org.uk/L4Re/idl4re 84 cd idl4re 85 make 86 }}} 87 88 See the idl4re documentation for more information. 89 90 The libipc package must be installed within the `l4/pkg` directory of the 91 L4Re/Fiasco.OC distribution. This is purely a matter of obtaining the `libipc` 92 directory from the Departure distribution. Within the `l4` directory, the 93 package can be installed as follows: 94 95 {{{ 96 hg clone https://hg.boddie.org.uk/L4Re/departure 97 mkdir pkg/departure-minimal 98 cp -R departure/libipc pkg/departure-minimal 99 }}} 100 101 Further integration of these distributions will hopefully make the 102 installation of this software easier in future. 103 104 == Building the Software == 105 106 With this software installed into the appropriate location, the instructions 107 for building Fiasco.OC and L4Re can now be followed. Such instructions are 108 provided in the L4Re-Fiasco.OC-patches distribution, but can be summarised as 109 follows. For Fiasco.OC: 110 111 {{{ 112 cd fiasco 113 make BUILDDIR=mybuild 114 cd mybuild 115 make config 116 }}} 117 118 After interacting with the configuration dialogue: 119 120 {{{ 121 make -j 122 }}} 123 124 For L4Re: 125 126 {{{ 127 cd l4 128 make B=mybuild 129 make O=mybuild config 130 }}} 131 132 After interacting with the configuration dialogue: 133 134 {{{ 135 make -j 136 }}} 137 138 As a consequence of building Fiasco.OC and L4Re, a payload can be generated 139 and deployed for one of the examples provided by this software distribution. 140 For example, in the `l4` subdirectory of the unpacked L4Re/Fiasco.OC 141 distribution, a number of commands might be run. 142 143 First, a module list is copied from the `conf/landfall-examples` directory to 144 `conf/modules.list`, this being the place where the build system obtains the 145 details of the software to include in the payload. 146 147 {{{ 148 cp conf/landfall-examples/mips-qi_lb60-keypad-demo.list conf/modules.list 149 }}} 150 151 The module lists provide details of essential programs and resources but may 152 also require libraries if shared libraries are being used. The `listlibs.sh` 153 invocation produces a manifest of required libraries for a given list of 154 programs or modules. This manifest augments the module list provided. 155 156 {{{ 157 ~/L4/Landfall/tools/listlibs.sh \ 158 conf/landfall-examples/mips-qi_lb60-keypad-demo.list >> conf/modules.list 159 }}} 160 161 Finally, the make invocation combines programs and libraries found in the 162 `mybuild` directory and uses the indicated payload to construct, in this case, 163 an example demonstrating use of the Ben NanoNote's keypad. Here, the `E` 164 parameter corresponds to the `entry` line in the `conf/modules.list` file. 165 166 {{{ 167 make O=mybuild uimage E=mips-qi_lb60-keypad-demo-example 168 }}} 169 170 == Deploying the Software == 171 172 The resulting payload should reside in the created images directory and be 173 deployed to the appropriate location on storage media used to boot the target 174 device. For the above example, the following payload would be created: 175 176 {{{ 177 mybuild/images/bootstrap_mips-qi_lb60-keypad-demo-example.uimage 178 }}} 179 180 More information about deploying payloads and booting devices is provided in 181 the L4Re-Fiasco.OC-patches distribution's documentation.