Torizon OTA allows customers to push their own customized versions of TorizonCore to our hosted service. It means that, after customizing the image, you must sign and push it to Torizon OTA.
In this article, you will learn how to use the TorizonCore Builder Tool, the recommended way to customize a TorizonCore image, sign it, and push the image to Torizon OTA, so the system update can be initiated there.
This is a feature available on prime-tiers of Torizon OTA. If you want to learn more about Torizon OTA pricing and plans, please contact us.
Request Access to Evaluate Torizon OTA's Premium Features
This article complies to the Typographic Conventions for Torizon Documentation.
The prerequisites to complete these instructions are:
.tarfile containing the TorizonCore Image with no-container pre-provisioned for offline installation.
credentials.zipfile downloaded from your account on the Torizon OTA dashboard.
splash.png, like this one (Obs.: the splash screen image needs to be a png file with a maximum size of your screens resolution - typically a resolution around 600x400 is used).
Make sure your working directory has the following structure, including
docker-compose.yml, and a directory called
image containing the uncompressed TorizonCore installation image:
$ tree . ├── credentials.zip ├── image │ ├── image.json │ ├── marketing.tar │ ├── prepare.sh │ ├── SPL │ ├── toradexlinux.png │ ├── torizon-core-docker-apalis-imx6.ota.tar.zst │ ├── u-boot.img │ ├── u-boot-initial-env-spl │ └── wrapup.sh └── splash.png └── docker-compose.yml
Also make sure you can run TorizonCore Builder:
$ torizoncore-builder --help
Let's modify a TorizonCore image. In this example, we will apply a custom splash screen to illustrate the process.
To use TorizonCore Builder, you need to create an alias. Follow the installation instructions on the TorizonCore Builder article. Make sure to:
Apply the custom splash screen image – when using torizoncore-builder versions 3.0.0 or later:
torizoncore-builder splash splash.png
Or, if using versions of the tool before 3.0.0:
torizoncore-builder splash --image splash.png
Now create a new TorizonCore OSTree image – when using torizoncore-builder versions 3.0.0 or later:
torizoncore-builder union my-custom-image
Or, if using versions of the tool before 3.0.0:
torizoncore-builder union --union-branch my-custom-image
Note: For a more detailed description of
union and other TorizonCore Builder commands, see TorizonCore Builder Tool article.
push from TorizonCore Builder can be used to push a new TorizonCore image to Torizon OTA.
The command requires the
credentials.zip file from Torizon OTA and a reference to the OSTree repository that should be pushed to the OTA server.
torizoncore-builder push --credentials <credentials file> <ostree reference>
In our example, the OSTree reference is called
my-custom-image (defined in the
union command above), so the command below will push the customized image to Torizon OTA:
torizoncore-builder push --credentials credentials.zip my-custom-image
Now, if you log in to Torizon OTA and initiate an update, you should see the customized image, ready to be used to update a device:
And, if everything went fine with the update, you shall see your board rebooting when the process is completed, and the splash screen showed in the device initialization will be the one defined in the new image.
push can also be used to push docker-compose files to Torizon OTA.
credentials.zip is also required along with the path to the docker-compose file. Your compose file can have any name, as long as it ends in
.yaml. If it does not have either of these file endings then the command will assume you passed an OSTree reference instead.
torizoncore-builder push --credentials <credentials file> <path to docker-compose file>
There are also some additional arguments that can be passed to further customize this update package
torizoncore-builder push --credentials <credentials file> --package-name <name for this update> --package-version <version for this update> <path to docker-compose file>
--package-name argument will apply whatever is passed as the name for this update package. Simply put, this is the name that your update will appear under in our Torizon OTA web UI. This argument is however optional and if not used will default to
docker-compose.yml. The other argument
--package-version is the version that this package will show up as in the web UI. This doesn't have to be a numerical version and can be any legitimate string. This argument is also optional and if not used will default to the date of upload at UTC time in the format of
For example running the following command:
torizoncore-builder push --credentials credentials.zip --package-name tcb-test --package-version 1.1 docker-compose.yml
Will result in the following appearing in your account's web UI: