You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Eystein Måløy Stenberg b6be19db20 Support passing arguments directly to script that runs mender-convert container. 6 years ago
..
.dockerignore Improve docker build time by ignoring large image files. 6 years ago
Dockerfile Add Golang environment and support for cross-compiling. 6 years ago
README.md Support passing arguments directly to script that runs mender-convert container. 6 years ago
docker-build Rename docker build.sh and run.sh to make tool names 6 years ago
docker-entrypoint.sh Add Golang environment and support for cross-compiling. 6 years ago
docker-mender-convert Support passing arguments directly to script that runs mender-convert container. 6 years ago

README.md

Docker environment for mender-convert

In order to correctly set up partitions and bootloaders, mender-convert has many dependencies, and their version and name vary between Linux distributions.

To make using mender-convert easier, a reference setup using a Ubuntu 18.04 Docker container is provided.

You need to install Docker Engine to use this environment.

Build the mender-convert container image

To build a container based on Ubuntu 18.04 with all required dependencies for mender-convert, copy this directory to your workstation and change the current directory to it.

Then run

./docker-build

This will create a container image you can use to run mender-convert.

Use the mender-convert container image

Create a directory input under the directory where you copied these files (docker-build, docker-mender-convert, etc.):

mkdir input

Then put your raw disk image into input, e.g.

mv ~/Downloads/2018-11-13-raspbian-stretch.img input/2018-11-13-raspbian-stretch.img

You can run mender-convert from inside the container with your desired options, e.g.

DEVICE_TYPE="raspberrypi3"
RAW_DISK_IMAGE="input/2018-11-13-raspbian-stretch.img"

ARTIFACT_NAME="2018-11-13-raspbian-stretch"
MENDER_DISK_IMAGE="2018-11-13-raspbian-stretch.sdimg"
TENANT_TOKEN="<INSERT-TOKEN-FROM Hosted Mender>"

./docker-mender-convert from-raw-disk-image                 \
            --raw-disk-image $RAW_DISK_IMAGE                \
            --mender-disk-image $MENDER_DISK_IMAGE          \
            --device-type $DEVICE_TYPE                      \
            --mender-client /mender                         \
            --artifact-name $ARTIFACT_NAME                  \
            --bootloader-toolchain arm-linux-gnueabihf      \
            --server-url "https://hosted.mender.io"         \
            --tenant-token $TENANT_TOKEN

Note that the default Mender client is the latest stable and cross-compiled for generic ARM boards, which should work well in most cases. If you would like to use a different Mender client, place it in inputs and adjust the --mender-client argument.

Conversion will take 10-15 minutes, depending on your storage and resources available. You can watch output/build.log for progress and diagnostics information.

After it finishes, you can find your images in the output directory on your host machine!

Known issues

  • BeagleBone images might not convert properly using this docker envirnoment due to permission issues: mount: /mender-convert/output/embedded/rootfs: WARNING: device write-protected, mounted read-only.