Using the build scripts
build.sh scripts are called in a single command, with options that control what to build and how. The general form of a
run-me.sh invocation is:
./mbl-tools/build-mbl/run-me.sh [RUN-ME.SH OPTIONS]... -- [BUILD.SH OPTIONS]...
Note the use of
--. It separates options for
run-me.sh from options for
Mandatory build flags
The following build options are mandatory:
||build.sh||Select the MBL branch to build. For example, to build the branch
||build.sh||Select the target device.
The options are [PICO-PI with IMX7D,
||run-me.sh||Create a build directory. This option is for
You must use a different build directory for every device (machine), and we recommend including the device's name in the directory's name.
Note that this directory includes all other artifacts, such as build and error logs. For example, if you've created
||run-me.sh||Specify the output directory for all build artifacts (pinned manifest, target specific images etc).
For example, if you're created
An example using all mandatory options:
./mbl-tools/build-mbl/run-me.sh --builddir /path/to/builddir --outputdir /path/to/artifacts -- --branch mbl-os-0.6 --machine <MACHINE>
Optional build flags
The following build options are not mandatory, but you may find that they improve the development process:
||run-me.sh||Cache downloaded artifacts between successive builds (do not use cacheing for parallel builds).
For example, if you create
||build.sh||By default, building uses the
||run-me.sh||You can build using a pinned manifest, which is an encapsulation created by a build and containing enough information to allow an exact rebuild. The manifest is created in your output directory (
To use it to rebuild, run
The build process creates the following files:
|Full disk image||
||This is a compressed image of the entire flash. Once decompressed, this image can be directly written to storage media, and initializes the device's storage with a full set of disk partitions and an initial version of firmware.|
|Full disk image block map||
||This is a file containing information about which blocks of the uncompressed full disk image actually need to be written to the device. Some blocks of the image represent unused storage space, which does not actually need to be written.|
|Root file system archive||
||This is a compressed