paul@49 | 1 | = Getting Started = |
paul@49 | 2 | |
paul@49 | 3 | To use this software, it is necessary to first obtain the L4Re and Fiasco.OC |
paul@49 | 4 | source distribution: |
paul@49 | 5 | |
paul@49 | 6 | [[http://l4re.org/download.html]] |
paul@49 | 7 | |
paul@49 | 8 | With this unpacked, the patches from the L4Re-Fiasco.OC-patches distribution |
paul@49 | 9 | need to be applied. This patch distribution can be obtained from the following |
paul@49 | 10 | location: |
paul@49 | 11 | |
paul@93 | 12 | [[https://www.boddie.org.uk/paul/L4Re-Fiasco.OC.html]] |
paul@49 | 13 | |
paul@49 | 14 | The "current archive" should be obtained since the "initial archive" is merely |
paul@49 | 15 | provided for historical purposes. Instructions about applying the patches are |
paul@49 | 16 | provided in the distributed archive, as is a summary of the issues related to |
paul@49 | 17 | configuring and building the software. Building can be done after the steps |
paul@49 | 18 | described below. |
paul@49 | 19 | |
paul@49 | 20 | Some dependencies are also needed and these are documented in a section below. |
paul@49 | 21 | To actually build the software, various development tools are required, and |
paul@49 | 22 | suggestions are also provided in the dependencies section. |
paul@49 | 23 | |
paul@49 | 24 | == Configuring this Software == |
paul@49 | 25 | |
paul@49 | 26 | Some files may need to be adjusted for the device on which the software is to |
paul@49 | 27 | be deployed. A script is provided to check and update them: |
paul@49 | 28 | |
paul@49 | 29 | {{{ |
paul@49 | 30 | $LANDFALL/tools/checkconfig.sh $PLATFORM |
paul@49 | 31 | }}} |
paul@49 | 32 | |
paul@49 | 33 | (Here, `$LANDFALL` needs to expand to the location of this distribution |
paul@49 | 34 | whereas `$PLATFORM` indicates a platform type.) |
paul@49 | 35 | |
paul@49 | 36 | For example: |
paul@49 | 37 | |
paul@49 | 38 | {{{ |
paul@49 | 39 | ~/L4/Landfall/tools/checkconfig.sh qi_lb60 |
paul@49 | 40 | }}} |
paul@49 | 41 | |
paul@49 | 42 | This configures the files for the Ben NanoNote. See the following file for a |
paul@49 | 43 | list of supported platforms: |
paul@49 | 44 | |
paul@49 | 45 | {{{ |
paul@49 | 46 | conf/landfall-examples/platforms.txt |
paul@49 | 47 | }}} |
paul@49 | 48 | |
paul@49 | 49 | == Installing this Software == |
paul@49 | 50 | |
paul@49 | 51 | With the above patches applied, this software can be installed within the |
paul@49 | 52 | unpacked L4Re/Fiasco.OC distribution using a command of the following form: |
paul@49 | 53 | |
paul@49 | 54 | {{{ |
paul@49 | 55 | $LANDFALL/tools/install.sh $L4DIR |
paul@49 | 56 | }}} |
paul@49 | 57 | |
paul@49 | 58 | (Here, `$LANDFALL` needs to expand to the location of this distribution |
paul@108 | 59 | whereas `$L4DIR` needs to expand to the location of the L4Re software.) |
paul@49 | 60 | |
paul@49 | 61 | For example: |
paul@49 | 62 | |
paul@49 | 63 | {{{ |
paul@108 | 64 | ~/L4/Landfall/tools/install.sh ~/L4/src/l4 |
paul@49 | 65 | }}} |
paul@49 | 66 | |
paul@49 | 67 | (The repository root of the L4Re/Fiasco.OC distribution typically has a |
paul@49 | 68 | directory name of `src`.) |
paul@49 | 69 | |
paul@49 | 70 | == Building the Software == |
paul@49 | 71 | |
paul@49 | 72 | With this software installed into the appropriate location, the instructions |
paul@49 | 73 | for building Fiasco.OC and L4Re can now be followed. (They are provided in the |
paul@49 | 74 | L4Re-Fiasco.OC-patches distribution.) This process should proceed without |
paul@49 | 75 | error. |
paul@49 | 76 | |
paul@49 | 77 | As a consequence of building Fiasco.OC and L4Re, a payload can be generated |
paul@49 | 78 | and deployed for one of the examples provided by this software distribution. |
paul@49 | 79 | For example, in the l4 subdirectory of the unpacked L4Re/Fiasco.OC |
paul@49 | 80 | distribution, the following commands might be run: |
paul@49 | 81 | |
paul@49 | 82 | {{{ |
paul@49 | 83 | mkdir mybuild/images |
paul@49 | 84 | cp conf/landfall-examples/mips-qi_lb60-keypad-demo.list conf/modules.list |
paul@84 | 85 | ~/L4/Landfall/tools/listlibs.sh \ |
paul@84 | 86 | conf/landfall-examples/mips-qi_lb60-keypad-demo.list >> conf/modules.list |
paul@49 | 87 | make O=mybuild uimage E=mips-qi_lb60-keypad-demo-example |
paul@49 | 88 | }}} |
paul@49 | 89 | |
paul@49 | 90 | First, a directory for images or payloads is created. Here, it is assumed that |
paul@49 | 91 | the `mybuild` directory has been named for building L4Re. |
paul@49 | 92 | |
paul@49 | 93 | Then, a module list is copied from the conf/landfall-examples directory to |
paul@49 | 94 | `conf/modules.list`, this being the place where the build system obtains the |
paul@49 | 95 | details of the software to include in the payload. |
paul@49 | 96 | |
paul@84 | 97 | The module lists provide details of essential programs and resources but may |
paul@84 | 98 | also require libraries if shared libraries are being used. The `listlibs.sh` |
paul@84 | 99 | invocation produces a manifest of required libraries for a given list of |
paul@84 | 100 | programs or modules. This manifest augments the module list provided. |
paul@84 | 101 | |
paul@49 | 102 | Finally, the make invocation combines programs and libraries found in the |
paul@49 | 103 | `mybuild` directory and uses the indicated payload to construct, in this case, |
paul@49 | 104 | an example demonstrating use of the Ben NanoNote's keypad. |
paul@49 | 105 | |
paul@49 | 106 | == Deploying the Software == |
paul@49 | 107 | |
paul@49 | 108 | The resulting payload should reside in the created images directory and be |
paul@49 | 109 | deployed to the appropriate location on storage media used to boot the target |
paul@49 | 110 | device. For the above example, the following payload would be created: |
paul@49 | 111 | |
paul@49 | 112 | {{{ |
paul@49 | 113 | mybuild/images/bootstrap_mips-qi_lb60-keypad-demo-example.uimage |
paul@49 | 114 | }}} |
paul@49 | 115 | |
paul@49 | 116 | More information about deploying payloads and booting devices is provided in |
paul@49 | 117 | the L4Re-Fiasco.OC-patches distribution's documentation. |