1.1 --- a/docs/wiki/Getting_Started Tue Jun 20 18:20:16 2023 +0200
1.2 +++ b/docs/wiki/Getting_Started Tue Sep 12 17:20:10 2023 +0200
1.3 @@ -9,17 +9,14 @@
1.4 need to be applied. This patch distribution can be obtained from the following
1.5 location:
1.6
1.7 -[[https://www.boddie.org.uk/paul/L4Re-Fiasco.OC.html]]
1.8 +[[https://projects.boddie.org.uk/L4Re-Fiasco.OC-patches]]
1.9
1.10 -The "current archive" should be obtained since the "initial archive" is merely
1.11 -provided for historical purposes. Instructions about applying the patches are
1.12 -provided in the distributed archive, as is a summary of the issues related to
1.13 -configuring and building the software. Building can be done after the steps
1.14 -described below.
1.15 +Instructions about applying the patches are provided in the patch
1.16 +distribution, as is a summary of the issues related to configuring and
1.17 +building this software. This document serves as a more detailed reference for
1.18 +the configuration and building of the Landfall components in particular.
1.19
1.20 -Some dependencies are also needed and these are documented in a section below.
1.21 -To actually build the software, various development tools are required, and
1.22 -suggestions are also provided in the dependencies section.
1.23 +<<TableOfContents(2)>>
1.24
1.25 == Configuring this Software ==
1.26
1.27 @@ -67,39 +64,109 @@
1.28 (The repository root of the L4Re/Fiasco.OC distribution typically contains a
1.29 directory called `fiasco` and a directory called `l4`.)
1.30
1.31 +== Obtaining Software Dependencies ==
1.32 +
1.33 +As noted in the [[Prerequisites|prerequisites]] document, a number of other
1.34 +software dependencies are needed to be able to build the software. Various
1.35 +additional development tools and components are required, and these can be
1.36 +installed on a Debian system as follows (with appropriate privileges):
1.37 +
1.38 +{{{
1.39 +apt-get install build-essential python unifont
1.40 +}}}
1.41 +
1.42 +The idl4re distribution must be installed within the `l4` directory of the
1.43 +L4Re/Fiasco.OC distribution and the `idl` program built. This can be done as
1.44 +follows within that directory:
1.45 +
1.46 +{{{
1.47 +hg clone https://hg.boddie.org.uk/L4Re/idl4re
1.48 +cd idl4re
1.49 +make
1.50 +}}}
1.51 +
1.52 +See the idl4re documentation for more information.
1.53 +
1.54 +The libipc package must be installed within the `l4/pkg` directory of the
1.55 +L4Re/Fiasco.OC distribution. This is purely a matter of obtaining the `libipc`
1.56 +directory from the Departure distribution. Within the `l4` directory, the
1.57 +package can be installed as follows:
1.58 +
1.59 +{{{
1.60 +hg clone https://hg.boddie.org.uk/L4Re/departure
1.61 +mkdir pkg/departure-minimal
1.62 +cp -R departure/libipc pkg/departure-minimal
1.63 +}}}
1.64 +
1.65 +Further integration of these distributions will hopefully make the
1.66 +installation of this software easier in future.
1.67 +
1.68 == Building the Software ==
1.69
1.70 With this software installed into the appropriate location, the instructions
1.71 -for building Fiasco.OC and L4Re can now be followed. (They are provided in the
1.72 -L4Re-Fiasco.OC-patches distribution.) This process should proceed without
1.73 -error.
1.74 +for building Fiasco.OC and L4Re can now be followed. Such instructions are
1.75 +provided in the L4Re-Fiasco.OC-patches distribution, but can be summarised as
1.76 +follows. For Fiasco.OC:
1.77 +
1.78 +{{{
1.79 +cd fiasco
1.80 +make BUILDDIR=mybuild
1.81 +cd mybuild
1.82 +make config
1.83 +}}}
1.84 +
1.85 +After interacting with the configuration dialogue:
1.86 +
1.87 +{{{
1.88 +make -j
1.89 +}}}
1.90 +
1.91 +For L4Re:
1.92 +
1.93 +{{{
1.94 +cd l4
1.95 +make B=mybuild
1.96 +make O=mybuild config
1.97 +}}}
1.98 +
1.99 +After interacting with the configuration dialogue:
1.100 +
1.101 +{{{
1.102 +make -j
1.103 +}}}
1.104
1.105 As a consequence of building Fiasco.OC and L4Re, a payload can be generated
1.106 and deployed for one of the examples provided by this software distribution.
1.107 -For example, in the l4 subdirectory of the unpacked L4Re/Fiasco.OC
1.108 -distribution, the following commands might be run:
1.109 -
1.110 -{{{
1.111 -cp conf/landfall-examples/mips-qi_lb60-keypad-demo.list conf/modules.list
1.112 -~/L4/Landfall/tools/listlibs.sh \
1.113 - conf/landfall-examples/mips-qi_lb60-keypad-demo.list >> conf/modules.list
1.114 -make O=mybuild uimage E=mips-qi_lb60-keypad-demo-example
1.115 -}}}
1.116 +For example, in the `l4` subdirectory of the unpacked L4Re/Fiasco.OC
1.117 +distribution, a number of commands might be run.
1.118
1.119 First, a module list is copied from the `conf/landfall-examples` directory to
1.120 `conf/modules.list`, this being the place where the build system obtains the
1.121 details of the software to include in the payload.
1.122
1.123 +{{{
1.124 +cp conf/landfall-examples/mips-qi_lb60-keypad-demo.list conf/modules.list
1.125 +}}}
1.126 +
1.127 The module lists provide details of essential programs and resources but may
1.128 also require libraries if shared libraries are being used. The `listlibs.sh`
1.129 invocation produces a manifest of required libraries for a given list of
1.130 programs or modules. This manifest augments the module list provided.
1.131
1.132 +{{{
1.133 +~/L4/Landfall/tools/listlibs.sh \
1.134 + conf/landfall-examples/mips-qi_lb60-keypad-demo.list >> conf/modules.list
1.135 +}}}
1.136 +
1.137 Finally, the make invocation combines programs and libraries found in the
1.138 `mybuild` directory and uses the indicated payload to construct, in this case,
1.139 an example demonstrating use of the Ben NanoNote's keypad. Here, the `E`
1.140 parameter corresponds to the `entry` line in the `conf/modules.list` file.
1.141
1.142 +{{{
1.143 +make O=mybuild uimage E=mips-qi_lb60-keypad-demo-example
1.144 +}}}
1.145 +
1.146 == Deploying the Software ==
1.147
1.148 The resulting payload should reside in the created images directory and be