Building a Custom Linux Image

Required Dependencies for Building

Ubuntu or Debian are recommended as build systems, because MultiTech does more testing with these options. For more information regarding distribution compatibility, refer to the release notes.

Ensure the required dependencies for your operating system are installed.

Password

The setup.sh script allows for either an environmental password or, if that is not provided, a random one.

The setup.sh creates a file called password.txt in its home directory which contains the password and its hash.  It also adds two lines to conf/local.conf which match password.txt.

The initial build may take a few hours depending on your hardware. If you have more than 2 cores and lots of RAM, you can increase the BB_NUMBER_THREADS and PARALLEL_MAKE settings in conf/local.conf to speed up build time considerably.

Download Source & Build Default Images

$ git clone git://git.multitech.net/mlinux mlinux-3.x
$ cd mlinux-3.x
$ git checkout 3
$ ./setup.sh  # Random root password or
$ ROOT_PASSWORD="mypassword" ./setup.sh
$ source env-oe.sh
$ bitbake mlinux-base-image
# OR
$ bitbake mlinux-factory-image

The mlinux-base-image recipe will build an image with basic networking, file system, and time utilities.

The mlinux-factory-image recipe is flashed into Conduits at the factory and adds to mlinux-base-image a full array of extra software including python, ruby, nodejs, and the lighttpd web server.

Download Source & Build Images for Wi-Fi/BT version (see Downloads on how to get the rs9113 Redpine file)

$ git clone git://git.multitech.net/mlinux mlinux-3.x
$ cd mlinux-3.x
$ git checkout 3
$ ./setup.sh  # Random root password or
$ ROOT_PASSWORD="mypassword" ./setup.sh
$ tar -C downloads -xzf ~/Downloads/rs9113-from-src-1.5.0-3.12.27r13.0_mtcdt.tar.gz
$ source env-oe.sh
$ bitbake mlinux-rs9113-base-image
# OR
$ bitbake mlinux-rs9113-factory-image

If you skip the tar step, the system displays the following error from the bitbake command:

ERROR: Need /mlinux-3.3x/downloads/rs9113-ipk/rs9113-from-src_1.5.0-3.12.27r13.0_mtcdt.ipk or set MTS_INTERNAL_GIT and add it to BB_ENV_EXTRAWHITE

The built image files will be located here: build/tmp/deploy/images/mtcdt/ (mtcdt is the machine name)

Create & Build a Custom Image

First, you’ll need to create your custom image recipe here: layers/user-layer/recipes-core/images/ You’ll likely want to build your recipe on top of mlinux-base-image.

A specific recipe must exist in order to add it to an image recipe. To view available recipes, run bitbake-layers show-recipes. If a recipe for your desired software is not available, you’ll need to write a custom recipe.

Example

Perhaps you’d like to build a simple image with LoRa support but without python, node, lighttpd, etc.

The recipe file would be:

# layers/user-layer/recipes-core/images/lora-only-image.bb
require recipes-core/images/mlinux-base-image.bb

IMAGE_INSTALL += "lora-network-server"

To build it, run bitbake lora-only-image