Search by Tags

TorizonCore Builder Issue Tracker

 

The following table contains known issues, scheduled bug fixes, and feature improvements for the TorizonCore Builder. The tickets are split in two major states:

  • Submitted (open): new features and bug fixes for TorizonCore Builder versions that have not yet been released. They may be scheduled for a specific release version; not planned; or in our backlog. All of them have one of the following states:
    • Known Issue: a bug or unexpected behavior that has been reported and pending a fix. Once fixed, the status will transition to Fixed.
    • Feature Request: a new feature that may be added to a future release. Once released, the status will transition to New Feature.
  • Released (closed): new features and bug fixes for BSP versions that have already been released. All of them have one of the following states:
    • Fixed: a bug that has been fixed and released.
    • New Feature: something that didn't exist before and was added to a new release.

Any schedules are not guaranteed but reflect the current planning. The planning could be shifted due to priority changes.
Issues that are scheduled for a specific version will be integrated into the mentioned version of the BSP.

We will update this table continuously in order to always provide the latest state of our development plan.

Clear Filter
Issue #StatusSubjectSeverity

3.9.0
TCB-426Known IssueBuilding kernel modules for Verdin AM62 fails with error "make[1]: *** No rule to make target 'arch/arm64/tools/gen-sysreg.awk', needed by 'arch/arm64/include/generated/asm/sysreg-defs.h'. Stop."Low

Description: As reported on Hello-mod kernel module doesn’t build Building kernel modules for Verdin AM62 fails with error "make[1]: *** No rule to make target 'arch/arm64/tools/gen-sysreg.awk', needed by 'arch/arm64/include/generated/asm/sysreg-defs.h'. Stop."

Workaround: This has been fixed and you must use the Torizon OS monthly 202403 or newer.

3.8.1
TorizonCore Builder 3.8.1 release
TCB-401Known Issue"platform lockbox" command fails with error "TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'" when using a custom OS imageLow

Description: On TCB 3.8.0, when you use the "platform lockbox" to create a lockbox that has been defined in the Platform Services, it may fail with the error "TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'" in case your lockbox contains an OS update with a custom OS image that you pushed to the Platform Services.

TCB-399Feature RequestAs a user, I want the "platform lockbox" to work on non-host networks, so I can use it on GH Actions

Description: As reported on the TorizonCore Builder issue tracker on GitHub, the command "platform lockbox" fails on non-host networks.

3.8.0 (Release date: 2023-08-08)
TorizonCore Builder 3.8.0 release
TCB-398FixedFaulty handling of custom URI in Lockboxes leads to error "Could not fetch file"Low

Description: As reported in the Toradex community, downloading lockboxes with the early access version of TCB (c.a. July 15th, 2023) fails with the error "Could not fetch file".

Workaround: Use the latest early access TCB release, or a stable TCB release.

TCB-396FixedTorizoncore-builder "kernel" fails on a TorizonCore 6.3.0 image with error "subprocess.CalledProcessError: Command returned non-zero exit status 2."Low

Description: The error "subprocess.CalledProcessError: Command 'PATH=$PATH:/storage/toolchain/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/bin make -C /storage/linux ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- modules_prepare' returned non-zero exit status 2." happens when trying to build an out-of-tree module for a TorizonCore 6.3.0 image.

Workaround: Use the early access release of TorizonCore Builder until the stable release 3.8.0 is available.

TCB-390New FeatureAdd support for OCI images to commands platform push and lockbox

Description: When you try to push an OCI image to the Torizon Platform, or create a lockbox with one, TorizonCore Builder fails due to lack of support for OCI images.

TCB-386Fixed"ostree serve" fails with "error: Remote refs not available; server has no summary file" when unpacking a Toradex Easy Installer imageLow

Description: When taking a Toradex Easy Installer image as input, running it through the build command, and then serving it (by running "images unpack" followed by "ostree serve"), you should be able (on a device) to fetch the refs and commits from the served repository. However, what one gets on a device when trying to list the remote refs is "error: Remote refs not available; server has no summary file".

This is an advanced use case, and most users of TCB should not be affected.

TCB-383New FeatureAdd canonicalization metadata so the Platform Services can use it instead of parsing Compose file names with the .lock.yml extension

Description: TorizonCore Builder and the Torizon Platform are limited to only accepting files that end in ".lock.yml" for creating lockboxes, used in offline updates.

TCB-381Fixed"platform lockbox" fails with errror "AssertionError: Could not fetch manifest of" when fetching images from repos with a dot in their nameLow

Description: If you try to create a lockbox with a container image that contains a dot in the name, for example "my.remote.registry:4567/user.name/image-name:image-tag", TorizonCore Builder fails with "AssertionError: Could not fetch manifest of"

Workaround: Use the Early Access Version of TorizonCore Builder, which has the bug fixed, while the 3.8.0 version or later is not released.

TCB-371FixedThe "platform push" command fails with secure registries other than Docker Hub having a certificate signed by a known CALow

Description: When using the "platform push" command to push docker-compose files with canonicalization (i.e. when the --canonicalize or --canonicalize-only switches are passed), TorizonCore Builder has to access the registries where the referenced images are stored.
For container images available on container registries whose certificate is signed by a known CA (except Docker Hub) - for example, GCR - the command fails.

TCB-365FixedTorizoncore-builder "push" fails with "Error: Can't determine digest for image" when canonicalizing docker-compose files that refer to OCI container imagesLow

Description: When using a command that canonicalizes a Docker Compose file, such as the "platform push", the error "Error: Can't determine digest for image 'image-tag'" will happen if the Docker Compose references at least one container image that is OCI compatible instead of Docker compatible.

TCB-356New FeatureAs a user, I want a tool to upload binary packages for subsystem updates (on-SoM Cortex-M, configuration, bootloader, external HW firmware, among others), so I can update any HW or SW subsystem in my product

Description: Until this feature is implemented, only OS and application updates are supported in TorizonCore. As of this feature, any other subsystem can be updated, such as but not limited to: Cortex-M, system configuration, application metadata, firmware for external HW.

Update: learn how to push any firmware to the Platform Services on Signing and Pushing TorizonCore Packages to Torizon Platform Services.

TCB-346FixedThe bundle command fails with "Error: Could not load the Docker compose file 'docker-compose.yml'." when using a valid Docker Compose file with spec version of 3.x due to missing propertiesLow

Description: As posted in the community thread Torizoncore-builder maximum version for docker-compose.yml, TorizonCore Builder fails when trying to bundle some Docker Compose files with the 3.x specification, due to missing properties such as "device_cgroup_rules".

3.7.0 (Release date: 2023-03-14)
TorizonCore Builder 3.7.0 release
TCB-370New FeatureAs a user, I want to be warned that special characters on package name and version cause errors, so I can use their ASCII representation instead

Description: Due to a mismatch between how the client and the server calculate the hashes of packages names and versions, updates of packages that contain multi-character bytes in their name or version fail.

If you try to use unsupported characters, TorizonCore Builder will fail and let you know.

TCB-363New FeatureAs a user, I want to use a custom CA certificate in the build command, so I can use a private registry

Description: TorizonCore Builder supports using private secure registries with their own certificates, as documented on remarks about using private registries. A limitation is that this support is enabled through the standalone TorizonCore Builder commands, but not extended to the "build" command.

Support has been added through an external contribution on the project's GitHub, reviewed, and approved. Documentation is available in the TorizonCore Builder "build" command article, under the output --> easy-installer --> bundle --> ca-certificate.

TCB-353New FeatureAs a user, I want to learn how to use the TorizonCore Builder early access version

Description: The tip of the TorizonCore Builder branch is named "early access". Toradex builds this version every weekend, and you can leverage it for critical bug fixes or feature previews. There is no guarantee that what is on the early access has any documentation available yet or that it even works at all. Partially finished work may be included in early access before a release.

Learn about when you should use it, and how to use it, in the tcb-env-setup project's README.

TCB-350New FeatureAs a user, I want a workaround for the lack of support for the "dt checkout" command in TorizonCore Builder for TorizonCore 6, so I can perform device tree and device tree overlays operations to support my custom carrier board and peripherals

Description: The TorizonCore Builder command "dt checkout" is not yet supported for TorizonCore 6.
As we re-evaluate the device tree and overlays workflow with TorizonCore Builder, and the potential deprecation of the "dt checkout" command, we document a workaround instructing you to directly pull the Git repositories with the device trees and overlays source-code.
Please consider that, from TorizonCore 6 onward, the "dt checkout" may not become available. If it happens, a new workflow will be available instead. If it doesn't happen, at some point "dt checkout" support will be reintroduced.

Update: the workaround is documented on TorizonCore Builder Tool - Customizing TorizonCore Images - Device Tree.

TCB-345New FeatureAs a user, I want to use the "kernel build_module" command on TorizonCore 6 with a GCC version and toolchain that matches the one used to build TorizonCore 6, so the likelihood of issues is reduced

Description: Until the release of TorizonCore 6, the GCC toolchain used by TorizonCore Builder matched the version used to build TorizonCore 5 images. It must be updated to match TorizonCore 6 images so the likelihood of compiler issues due to version mismatch is reduced.

Update: this version bump is being implemented in a retro compatible way. If you are using TorizonCore 5 as input image, TorizonCore Builder will still use the older toolchain version that matches it, and if you are using TorizonCore 6 as input image, the newer toolchain will be automatically selected.

TCB-343Fixedbuild: "toradex-feed" property doesn't have support for 6.X.Y images, failing with the error "Error: Don't know how to handle a major version of 6"Low

Description: TorizonCore Builder is not yet updated to handle TorizonCore 6 images as input. This leads to failure in two commands: (1) in the "build" command when using the "toradex-feed" option, and (2) in the "images download" command.

The resulting error is "Error: Don't know how to handle a major version of 6".

Workaround: For the "build" command, either manually download the TorizonCore 6 image and use the "local" property or use the image URL and the "remote" property. For the "images download" command, manually download and unpack the image.

Download links are available on Toradex Download Links (Torizon, Linux BSP, WinCE and Partner Demos).

TCB-332New FeatureAs a user, I want argument abbreviations disabled on TorizonCore Builder, so my scripts are guaranteed to use supported and non-conflicting arguments

Description: Until TorizonCore 3.6.0, abbreviated commands were accepted by the TorizonCore Builder command-line argument parser.

This behavior is undocumented and may lead you to write scripts that may get broken in the future if we add new options that may conflict with existing ones (taking a current example: --login vs --login-to). We decided that being more strict leads to a higher quality of any scripts you may integrate TorizonCore Builder on.

Workaround: This is an undocumented feature and must not provide any breaking changes. If you see any issues, it may be due to a typo. Please double-check your scripts.

TCB-303New FeatureAs a user, I want to set package compatibility with TorizonCore Builder

Description: In the Torizon Platform Services web UI, it is possible to set compatibility on application packages, describing a list of compatible OS packages and versions. We plan to make it possible on the TorizonCore Builder command line, allowing you to integrate it into your CI scripts.

Update: adding compatibility based on the package version isn't trivial. To overcome it, it was decided to support initially setting up the compatibility based on the hash instead of the version. The hash is available in the web UI, making it easy for you to find out its value.

TCB-300New FeatureAs a user, I want advanced registry access when using "platform lockbox", so I can keep my application in private or local container registries

Description: Currently, the "tcb platform lockbox" does not accept advanced registry access, for example access to private registries. This is an issue when doing canonicalization, which requires access to the registry.

TCB-299New FeatureAs a user, I want advanced registry access when using "platform push" with canonicalization, so I can keep my application in private or local container registries

Description: Currently, the "tcb platform push" does not accept advanced registry access, for example access to private registries. This is an issue when doing canonicalization, which requires access to the registry.

Workaround: Here is a suggested workaround which hasn't been fully validated:

  • Use the bundle command on the docker-compose file to be used in the lockbox.
  • The bundle command will fetch the Docker images (unnecessarily) but it will also create a docker-compose in canonical form, by default in bundle/docker-compose.yml; even though it doesn't have the .lock.yml extension this file is actually in canonical form.
  • Copy the file to a name having the .lock.yml extension.
  • Push the renamed/copied file to OTA with platform push; if setting the package name (with the --package-name switch) make sure to end it with the .lock.yml extension).
  • The pushed compose file should then be suitable for use with the lockbox.

TCB-290Fixed"--login" parameter ignored when passing it to the bundle command in CI environmentLow

Description: For an unknown reason, the "--login" parameter of "tcb bundle" is being ignored in a CI environment.

Update: this bug happened once but was not reproducible. We have improved automated tests to validate the "--login" parameter further. If you are able to reproduce the bug, please let us know.

TCB-119New FeatureAs a user, I want to be able to use secure private Docker registries with the bundle command

Description: At the moment, we only support using insecure private registries on TCB, with the "--dind-param" flag of the "tcb bundle" command, as documented in the example in the commands manual. It has been requested by customers to support secure private registries as well.

Update: this has been implemented. Learn more on the remarks about using Docker registries.

3.6.0 (Release date: 2022-09-12)
TorizonCore Builder 3.6.0 release
TCB-323FixedSetup Script: Latest image tag is no longer found due to deprecated APILow

Description: The TorizonCore Builder Setup Script relies on the Docker API to fetch the latest available version of the tool. The version of the API used has been deprecated, thus breaking the script.

Workaround: This has been fixed. Please re-download the setup script.

TCB-319FixedDocumentation for `isolate` command lists ignored files that are not actually ignored.Low

Description: The documentation that lists files ignored by the "isolate" command is outdated. For example, the files "/etc/passwd" and "/etc/shadow" are indeed captured, since you are allowed to customize the default password.

TCB-306FixedTorizonCore Builder auto-completion error "_alternative:shift:14: argument to shift must be non-negative" on ZshLow

Description: When trying to use autocompletion feature of TCB with Zsh (by pressing Tab), it does not work and the following error is printed "_alternative:shift:14: argument to shift must be non-negative".

Keep in mind that Zsh is not fully supported. We fix bugs when reported and reasonable to maintain, but otherwise all our tests focus on Bash.

Workaround: Until we fix it, either use Bash, or don't use autocompletion on Zsh.

TCB-304New FeatureAs a user, I want to set the package description from TorizonCore Builder

Description: In the Torizon Platform Services web UI, it is possible to set a description for packages. We plan to make it possible on the TorizonCore Builder command line, allowing you to integrate it into your CI scripts.

Learn how to use the "--description" flag in the platform push documentation.

TCB-302FixedOffline Updates: Incorrect Metadata in LockboxLow

Description: Sometimes TorizonCore Builder fetches wrong metadata from the Platform Services server and offline updates fail. While this seems to be server-related, we plan to investigate it further and confirm the root cause, improving TorizonCore Builder if possible.

Update: it was confirmed as an issue on the Platform Services, and fixed there. No updates were required on TorizonCore Builder.

TCB-298New FeatureAs a user, I want the tcb-env-setup.sh script to autoupdate

Description: As of TorizonCore 3.5.0, the setup script does not get automatically updated. This is an issue because sometimes changes in the setup script are required for using newer versions of TorizonCore Builder.

Update: after some investigation and customer feedback, it was decided that the script will print a message asking you to update it. This message will provide the exact command you must run, as to make the update easy to execute.

TCB-294FixedAutocompletion for TCB "bundle --bundle-directory" and "deploy --deploy-sysroot-directory" commands do not show available switches correctlyLow

Description: Autocompletion for "tcb bundle" shows old flags such as "--directory" instead of "--bundle-directory", and "tcb deploy" shows "--sysroot-directory" instead of "--deploy-sysroot-directory".

TCB-276New FeatureAs a user, I want to accept NXP's EULA for provisioning at scaleLow

Description: Toradex Easy Installer images may contain an End User License Agreement (EULA). The TorizonCore images have NXP’s EULA included. Therefore, a mechanism for accepting the EULA with TorizonCore Builder must be added, as to ensure that you have actively accepted such a license even in a production programming environment, where it isn't required to accept the EULA on every installation.

TCB-207FixedAutocompletion for TorizonCore Builder push command does not show the 'docker-compose.yml' file as an optionLow

Description: When running "tcb push", you have two options: 1) push an OSTree reference, also known as OS update and; 2) push a docker-compose.yml file, also known as application update.

Currently, the autocompletion only takes into consideration 1), and therefore it does not suggest YML files as possible autocomplete options.

TCB-46New FeatureAs a user, I want to learn how to use the secure offline updatesLow

Description: As a final step to releasing the secure offline updates MVP, public documentation on how to use it will be written.

Update: documentation is now available on How to use secure offline updates with TorizonCore.

3.5.1 (Release date: 2022-05-18)
TorizonCore Builder 3.5.1 patch release
TCB-293Known IssueBuild error "KeyError: 'dir'" in TCB 3.5.0 when bundling imagesCritical

Description: When bundling a Docker Compose file with TorizonCore Builder 3.5.0, a stack trace is printed and the error "KeyError: 'dir'" is displayed

3.5.0 (Release date: 2022-05-13)
TorizonCore Builder 3.5.0 release
TCB-287FixedPush command assigns weird package name to pushed compose file by defaultLow

Description: The "platform push" (formerly "images push") command allows you to set the package name and version. At the moment, the default package name is set to "docker-compose_file.yml", which is not a sane default. We'll fix it by using the base input file name instead. For example if the input file is "my-docker-compose.yml", the base name will be "my-docker-compose".

TCB-284New FeatureAs a user, I want to be able to fetch provisioning data with TorizonCore Builder, so I don't need to do it from the web UILow

Description: To create a custom TorizonCore image with provisioning data, it is first required that you fetch such data from the Platform Services.

The command "platform provisioning-data" fetches this data. Learn how to use it on The Platform Command.

TCB-283FixedPush command does not translate all image references in docker-compose to digest formMedium

Description: The push command has the ability to canonicalize Docker Compose files, creating their corresponding lockfiles with hashes instead of tags. This is a good practice and particularly important for the upcoming secure offline updates. At the moment, canonicalization is not always happening.

TCB-277FixedBuild: Overlays get cleared by defaultLow

Description: There seems to be a discrepancy between the "build" command documentation and what actually happens. Specifically in regards to adding device tree overlays. In the overlays section of the "tcbuild.yaml" there’s a "clear" property that does the following according to the documentation:

clear (boolean, optional): Boolean indicating whether or not to ignore all the binary overlays (dtbo files) that may already be present in the base image. This property is useful only if no custom device tree was set. Default: false.

If "clear" is not specified in "tcbuild.yaml" then pre-existing overlays will not be cleared by default. However, the actual behavior is that if "clear" is not specified in "tcbuild.yaml" then pre-existing overlays will be cleared by default.

TCB-267New FeatureAs a user, I want to either set or override the OS updates "hardware_id" property with the push command, so I can deploy updates to one or more devices with a custom hostname that doesn't match the one originally setup by Toradex

Description: An OSTree deployment can be compatible with multiple Hardware IDs.

At the moment, the "push" command has an undocumented parameter named "--hardwareid" that only sets the Hardware ID if the value is missing in the OSTree metadata.

We will change the default behavior so that "--hardwareid" can be used to override the default Hardware ID by the user, and can be passed multiple times to support more than one Hardware ID.

TCB-263FixedBundle: Bundle command no longer works on Windows with error "ConnectionRefusedError: [Errno 111] Connection refused"Low

Description: When running the bundle command on Windows, an error happens and it says "ConnectionRefusedError: [Errno 111] Connection refused".

Workaround: Run the setup script like so: "source tcb-env-setup.sh -- --network=host".

TCB-260New FeatureAs a user, I want to autoinstall and auto-reboot TorizonCore images customized with TorizonCore BuilderLow

Description: Toradex Easy Installer supports two features that are very useful for production programming: autoinstall and auto-reboot.

To make it possible to easily set these properties in a custom TorizonCore image, TorizonCore Builder must provide an interface for these capabilities.

TCB-261New FeatureAs a user, I want aktualizr-torizon to report back correct manifest information regarding any pre-provisioned docker-compose packagesLow

Description: At the moment, if you (1) use TorizonCore Builder to pre-provision (bundle) containers into a Toradex Easy Installer image, and (2) upload the same version of the containers to the Torizon Platform Services, your device will not report to the Platoform that it has that SW version installed.

We are working on a fix on TorizonCore Builder that will allow existing TorizonCore versions to provide this version information to the server. We are also working on a fix in Aktualizr that will allow devices that are already provisioned to be updated to newer versions of TorizonCore Builder and then properly report the version to the server.

TCB-258Fixed"ostree serve" command not working on WindowsLow

Description: The TorizonCore Builder "ostree serve" command is not working on Windows machines, due to a limitation of the Docker host network driver.

When sourcing the setup script, you must pass an optional flag that will expose the given port to the host.

TCB-251FixedVariable replacement in tcbuild.yaml file fails with the error "Parsing errors found"Low

Description: When using variable substitution with the "build" command, the YAML parser do validation before doing the substitution. This results in the error "Parsing errors found".

TCB-249FixedServing OSTree repos with TorizonCore Builder fails when external repository directory is specifiedMedium

Description: When passing the switch --ostree-repo-directory to the ostree serve command, for example "torizoncore-builder ostree serve --ostree-repo-directory ostree_repo/", the tool throws an error:
"UnboundLocalError: local variable 'storage_dir' referenced before assignment"

TCB-248New FeatureAs a user, I want to customize TorizonCore with online provisioning data so provisioning at scale supports this use caseLow

Description: To allow provisioning devices at scale to the Torizon Platform Services, we will make it possible to include provisioning credentials into a custom TorizonCore image.

To learn more, check out the "provision" properties in the "output section" of the build command manual.

TCB-85New FeatureAs a user, I want the "deploy" command to automatically find and use a free SSH portLow

Description: The TorizonCore Builder "deploy" command uses the hardcoded port 8080 to deploy customization to a board. Sometimes this port is not free for some reason and the command fails.
We will improve the logic and let TorizonCore Builder find and use a random free port for the deployment.

TCB-209FixedTorizonCore Builder: Bundle command does not work properly with cgroups v2Low

Description: If the Linux distro installed in your development PC has already moved to using cgroup rules v2, you will get the following error when running the TorizonCore Builder "bundle" command: "docker.errors.NullResource: Resource ID was not provided".

TCB-115New FeatureAs a user, I want to update the device trees to the latest available with the 'dt checkout ' commandLow

Description: The "dt checkout" command conveniently clones the device-trees repository in the correct branch for a given input image. It does not provide an option to update the repository given that some updates were made upstream. This task adds the option "--update" that will attempt to pull the latest.

Workaround: Use Git commands as "git pull" to update the repository.

TCB-126New FeatureAs a user, I want to update kernel arguments when deploying a new OSTree image to the device using TorizonCore BuilderLow

Description: Currently, in TorizonCore, default kernel arguments are not updateable. That means when we deploy a new OSTree commit, the kargs defined in this new commit will not be used during deployment.

3.4.0 (Release date: 2022-01-11)
TorizonCore Builder 3.4.0 minor release
TCB-247New FeatureAs a user, I want to learn how to set the name and version when pushing OSTree commits to Torizon OTALow

Description: TorizonCore Builder is capable of setting OSTree name and version when pushing commits to the Torizon Platform Services.
This task documents how you can use this feature. Learn how to use it in the article Signing and Pushing TorizonCore Images to Torizon OTA.

TCB-51New FeatureAs a user, I want to be aware about and free to use my own canonical Docker Compose filesLow

Description: For the offline-updates MVP - and also as a best practice - a canonical Docker Compose file is required. It is a Docker Compose file that does not have comments or blank lines, and instead of tags, it uses SHA hashes for the versions of all containers. The purpose is to ensure the version of all packages for your application will be ensured, or in other words, locked.
Due to this, we are introducing the concept of a docker-compose.lock.yaml file, that is the canonical version of a regular docker-compose.yaml file.
In this task, we have introduced this feature along with documentation explaining how to use it, and why it is important.

3.2.0 (Release date: 2021-11-10)
TorizonCore Builder 3.2.0 minor release
TCB-132New FeatureAs a user, I want to be able to customize the non-initramfs splash screenLow

Description: TorizonCore has two splash screens: one that shows when booting, and another that shows on reboot or shutdown.
It was reported that the reboot/shutdown splash was not being updated by TorizonCore Builder. This ticket address it and makes sure that both splash screens are updated.

TCB-236FixedTorizonCore Builder: --storage-directory argument does not seem to work wellLow

Description: Make it possible to set the storage directory in the setup script, and change the --storage-directory parameter to be hidden (it will be deprecated later).

TCB-144New FeatureAs a user, I want to be able to change the SSH port used by TorizonCore Builder for device connectionLow

Description: Create a --remote-port parameter to make it possible to set the SSH port TorizonCore Builder will use to connect to devices running TorizonCore.

TCB-200FixedTorizonCore builder does not update tezi image metadata on a deploy commandLow

Description: When running the `deploy` command, an image compatible with Toradex Easy Installer is created. Some metadata contained in image.json, such as the image size, are not updated by TorizonCore builder, and it uses the same values as the input image.

TCB-133New FeatureAs a user, I want to locally provision an Easy Installer image via an HTTP server, so I don't have to use a USB stickLow

Description: In TorizonCore Builder, the deploy and combine commands are responsible to generate Easy Installer images.

To be able to install them using the LAN in an easy way, we have introduced the `images serve` command, that brings up a local Easy Installer image server.

3.1.2 (Release date: 2021-09-21)
TorizonCore Builder 3.1.2 patch release
TCB-221FixedTorizonCore Builder is failing to push docker-compose files to Torizon OTALow

Description: After recent changes in the backend, TorizonCore Builder is failing when we try to push docker-compose files to OTA.

3.1.1 (Release date: 2021-09-17)
TorizonCore Builder 3.1.1 patch release
TCB-222FixedTorizonCore Builder does not apply the Splash Screen on an image when an external kernel module build is also includedLow

Description: When building a Custom Image of TorizonCore with external kernel modules and a splash screen, the splash screen does not show on the device display. When the external kernel module is not included the splash screen shows on the display.

TCB-217FixedTorizonCore Builder: Isolate fails when using --changes-directory with symlinksLow

Description: There is an issue when using the isolate command when there are symlinks to be isolated and using the --changes-directory argument.

TCB-86New FeatureAs a user, I want to be able to use TorizonCore Builder to generate takeout images for offline updatesLow

Description: The command `images takeout` is introduced to the TorizonCore 3.x series, as part of the preparation for the secure offline updates MVP. The command is still unstable, features and syntax may change without further notice in the near future.

TCB-61New FeatureImprove the error message requiring an unpack image in TorizonCore BuilderLow

Description: Improve the error messages on TorizonCore Builder when "unpack" hasn't been run yet.

3.1.0 (Release date: 2021-07-19)
TorizonCore Builder 3.1.0 minor release
TCB-166New FeatureAs a user, I want to automatically complete commands and parameters in TorizonCore BuilderLow

Description: Command-line developers are used to pressing `Tab` to autocomplete commands. We are introducing such a feature for TorizonCore Builder as well.

TCB-227FixedTorizonCore Builder: "splash" directory in storage is not cleared by images commandLow

Description: The `images` command has an option to clear the storage directories. It does not clear the /splash directory, though. This ticket aims to fix it.

TCB-67New FeatureAs a user, I want to be able to isolate/union files containing especial charactersLow

Description: TorizonCore Builder should be able to handle (isolate, union) files with special characters (e.g. "hello'world.txt).

TCB-117New FeatureAs a user, I want files created by torizoncore-builder to belong to user and not to rootLow

Description: TorizonCore Builder runs inside a container, and by default it creates files owned by root. This is a bit annoying since we sometimes want to edit or erase some files with our user in the development PC. We investigate and implement a way to make files belong to the user and not root.

TCB-162New FeatureAs a user, I want to use TorizonCore Builder to push container updates to TorizonCore OTA, so I don't need the web frontend and can use offline keysLow

Description: Add feature in TorizonCore Builder to push container updates (docker-compose files) to TorizonCore OTA.

TCB-160New FeatureImprove TorizonCore Builder device connection parametersLow

Description: For the commands that require device connection, make --remote-username and --remote-password parameters optional.

3.0.0 (Release date: 2021-06-09)
TorizonCore Builder 3.0.0 major release
TCB-59New FeatureAs a developer, I want to show a message in the TorizonCore Builder set up script to warn users about files in the working directoryLow

Description: TorizonCore Builder can only see files inside the working directory, but users often change directories outside of their working directory or reference file paths outside of it. To improve that, let's add a message in the setup script

TCB-215FixedTorizoncore builder union command fails with enabled systemd services.Low

Description: Torizoncore builder union command fails with enabled systemd services.

Workaround: Disable the systemd service before running the "isolate" command. This will require you to manually enable it after deployment.

TCB-77New FeatureImprovements in the TorizonCore Builder CLILow

Description: Several improvements in the command line interface in TorizonCore Builder:

  • Move --bundle-directory parameter from the top-level torizoncore-builder command to the "batch", "bundle" and "combine" subcommand.
  • Remove --image-directory and --output-directory from the combine command (make them positional arguments).
  • Check if the given image input directory for the "combine" command contains a valid Easy Installer image.

TCB-223FixedTorizonCore Builder's union command doesn't work with symlinksLow

Description: If you have a symlink in the changes directory that points to a file using the full path, TorizonCore Builder’s union command fails.

TCB-238FixedTorizonCore Builder: "bundle" fails with insecure http registryLow

Description: The bundle command doesn't work when trying to fetch images from their insecure local HTTP registry.

TCB-163New FeatureImprove the user interface of the TorizonCore Builder union commandLow

Description: The interface of the union command was simplified to make it easier to use:

  • the --extra-changes-directory switch was removed and its functionality moved to --changes-directory;
  • the switch --union-branch no longer exists either - the branch name is now a positional parameter;

2.6.1 (Release date: 2021-05-27)
TorizonCore Builder 2.6.1 patch release
TCB-138New FeatureAs a user, I want TorizonCore Builder to return an error if I try to compile a device tree using an overlayLow

Description: TorizonCore Builder should return an error if users try to apply a device tree using a device tree overlay.

2.6.0 (Release date: 2021-05-12)
TorizonCore Builder 2.6.0 minor release
TCB-212Fixedtorizoncore-builder leaves temporary files in the working directoryLow

Description: When uncompressing a local image, TorizonCore Builder leaves behind the uncompressed directory, even though it isn't used anymore. In this ticket we clean up the uncompressed directory.

TCB-90New FeatureAs a user, I want TorizonCore Builder to customize the TEZI image metadata even when not bundling containers in itLow

Description: TorizonCore Builder should be able to customize a Toradex Easy Installer Image (by setting its name, description, license file, and release notes) even when not trying to bundle container images in it.

TCB-71New FeatureAs a user, I want to set permissions on files, so I can keep credentials when committing changes to OSTreeLow

Description: TorizonCore Builder should be able to save and restore credentials when isolating files from the device and union-ing files to another TorizonCore image.

TCB-165New FeatureAs a user, I want to store image customizations in a configuration file, so I can better manage the changes and incrementally rebuild the imageLow

Description: Introduce TorizonCore Builder "build" command to build a customized image based on a configuration file.

2.5.4 (Release date: 2021-04-20)
TorizonCore Builder 2.5.4 patch release
TCB-225FixedBundle command in TorizonCore Builder sometimes creates an incorrect tar fileLow

Description: There's an issue with the bundle sub-command where the the tar file output that gets created is inconsistent. The proper expected name that should be created is docker-storage.tar.xz, yet sometimes a docker-storage.tar is created instead.

2.5.3 (Release date: 2021-04-07)
TorizonCore Builder 2.5.3 patch release
TCB-240FixedTorizonCore Builder union fails if changes directory is in a sub-directoryLow

Description: The `union` command applies changes to an image. It currently only works if the changes are kept in a directory directly under the TorizonCore Builder directory. Sub-directories such as "samples/changes" does not work.

TCB-226FixedIsolate command doesn't capture the mandatory password change for the torizon userLow

Description: Upon the first login, it is mandatory to change the password. This modification is not captured by TorizonCore Builder's isolate command.

TCB-194Fixedtorizoncore-builder: Bundle fails if trying to access a private registry that is not dockerhubLow

Description: So far, only Docker Hub is supported by TorizonCore Builder. We will add a `--registry` flag or something similar to the `bundle` command, so users can pass any registry for login.

TCB-231FixedTorizonCore Builder isolate issue with NetworkManager connections with spaces in namesLow

Description: The isolate command fails because of spaces in the name of files.

TCB-229FixedTorizonCore Builder is not able to build and apply some device tree overlaysLow

Description: Some device tree overlays from Toradex's overlays repository fail to build.

2.5.2 (Release date: 2021-03-24)
TorizonCore Builder 2.5.2 patch release
TCB-237FixedTorizonCore Builder cannot fetch branch toradex_5.4-2.3.x-imx from device trees repositoryLow

Description: TorizonCore Builder cannot fetch the new NXP BSP branch (toradex_5.4-2.3.x-imx) from device trees repository.

TCB-219FixedSome services fail to start after deploying a new OSTree image with TorizonCore BuilderLow

Description: After deploying an OSTree image with custom files using TorizonCore Builder, some services fail to start.

TCB-201FixedTorizonCore Builder: Bundle commands fails when used on Windows in a WSL 2 distroLow

Description: If you attempt to bundle a container with TorizonCore Builder on Windows from WSL 2, it fails.

2.5.1 (Release date: 2021-03-16)
TorizonCore Builder 2.5.1 patch release
TCB-54New FeatureAs a user, I want to run TorizonCore Builder on Windows, so I don't have to install/learn LinuxLow

Description: TorizonCore Builder already runs in a containerized environment. In this task, we document how to set it up on Windows and add tests on Windows to our release tests.

2.5.0 (Release date: 2021-03-11)
TorizonCore Builder 2.5.0 minor release
TCB-218FixedTorizonCore Builder container image size is too bigLow

Description: With the introduction of the `kernel build_module` command, the size of TorizonCore Builder increased by a factor of ~10x, due to the download of a duplicated toolchain. This commit addresses this issue and also removes the toolchain from TorizonCore Builder, leaving the download only to those users who need to execute the `kernel build_module` command. This approach increases the time for the first run of the command, while leaving TorizonCore Builder much smaller by default.

TCB-197FixedCannot Export tcb-env-setup.sh with ZshLow

Description: Make TorizonCore Builder set up script work with other shells like ksh and zsh.

TCB-202FixedTorizonCore Builder Not Listing All Compatible OverlaysLow

Description: TorizonCore Builder seems to not be listing all compatible overlays for some machines, like Apalis iMX8.

TCB-70New FeatureAs a user, I want TorizonCore Builder to build my own kernel modules, so I don't need to learn OpenEmbedded to do thatLow

Description: Add the build_module command in TorizonCore Builder to build and add to the image out-of-tree kernel modules.

TCB-69New FeatureAs a user, I want to use TorizonCore Builder to set custom kernel arguments, so I can generate customized images with my own kernel argumentsLow

Description: Make it possible to set custom kernel arguments using TorizonCore Builder.

2.4.0 (Release date: 2021-02-11)
TorizonCore Builder 2.4.0 minor release
TCB-135New FeatureAs a user, I want to run just one command to deploy an overlay in the device, so it is easier and less error-proneLow

Description: Create 'dto deploy' command in TorizonCore Builder to automatically deploy a device tree overlay in the device.

2.3.0 (Release date: 2021-02-05)
TorizonCore Builder 2.3.0 minor release
TCB-49New FeatureAs a user, I want TorizonCore Builder to automatically download and unpack TorizonCore images, so I don't need toLow

Description: Add 'images download/unpack' commands in TorizonCore Builder to automatically download Tezi images from Artifactory (based on the version running on a device) and unpack for further customizations.

TCB-55New FeatureSupport mDNS on hosts with multiple network interfacesLow

Description: It seems that currently mDNS only works on the primary network interface. Hosts with multiple network interfaces are quite common, especially in more restrictive corporate networks, where development needs to happen on a separate network. It can also be relevant if WiFi and Ethernet is used alongside.

2.2.0 (Release date: 2021-01-29)
TorizonCore Builder 2.2.0 minor release
TCB-161New FeatureAs a user, I want to know when a new version of TorizonCore Builder is available, so I can update it as soon as possible to leverage new commands and featuresLow

Description: Create a shell script to automate environment configuration and warn the user when a new TorizonCore Builder version is available.

TCB-57New FeatureAdd the ability in TorizonCore Builder to "bundle" containers stored in private registriesLow

Description: Currently, there is a limitation with the "bundle" command of TorizonCore Builder. If any of the container images specified in the provided docker-compose.yml are stored in private registries the "docker pull" will fail, causing the entire command to error out.

TCB-168New FeatureAs a user, I want to see a link to the web documentation in the help option, so I have quick access to more information about the toolLow

Description: To increase awareness about the TorizonCore Builder documentation, we add a hyperlink to it at the end of the `--help`.

TCB-214FixedTorizoncore-builder: Deploying new OSTree on the device fails if I perform hard reboot to boot into the new deploymentLow

Description: Deploying new OSTree on the device fails if I perform hard reboot to boot into the new deployment.

TCB-233FixedTorizonCore Builder dt deploy fails if hostname is used instead of IP addressLow

Description: If you execute `torizoncore-builder deploy dt_changes` and pass the board hostname as parameter for `--remote-host` instead of the board IP, for example `apalis-imx8-06543292.local`, it does not work.

Workaround: It has been fixed in TorizonCore Builder 2.2.0. Use this version of the tool.

2.1.2 (Release date: 2021-01-13)
TorizonCore Builder 2.1.2 patch release
TCB-235FixedInternet connection stops working after applying overlay with TorizonCore-BuilderLow

Description: After applying some device tree overlays with TorizonCore Builder, the internet connection stops working.

2.1.1 (Release date: 2020-12-17)
TorizonCore Builder 2.1.1 patch release
TCB-105New FeatureRefactor device tree commands and adapt them to use overlays.txtLow

Description: Refactor device tree commands and adapt them to use overlays.txt.

2.1.0 (Release date: 2020-12-17)
TorizonCore Builder 2.1.0 minor release
TCB-220FixedTorizonCore Builder is generating Easy Installer images that don't bootLow

Description: TorizonCore Builder is generating Easy Installer images that don't boot.

TCB-199FixedTorizonCore Builder is creating an Easy Installer image with incorrect permissionsLow

Description: After using TorizonCore Builder to customize an Easy Installer image with a device tree overlay applied, the generated Easy Installer image has incorrect permissions in the /home/torizon directory.

2.0.1 (Release date: 2020-11-24)
TorizonCore Builder 2.0.1 patch release
TCB-193FixedTorizonCore Builder splash command does not work using --storage-directoryLow

Description: TorizonCore Builder splash command does not work using --storage-directory.

2.0.0 (Release date: 2020-11-09)
TorizonCore Builder 2.0.0 major release
TCB-101New FeatureMove torizoncore-builder container to BullseyeLow

Description: Update the TorizonCore Builder container to Debian Bullseye.

1.3.1 (Release date: 2021-12-03)
TorizonCore Builder 1.3.1 minor release
TCB-123New FeatureAllow to specifiy Easy Installer feed for evaluation container build commandLow

Description: To allow TorizonCore Builder batch command (only available on the 1.x series) to use any Easy Installer feed, and not only the internal Toradex one, we added the parameter `--tezi-feed-url`.

1.2.1 and older (Release date: 2020-11-04)
TorizonCore Builder 1.x.y series releases up to 1.2.1
TCB-242FixedTorizoncore-builder: invalid compose file after bundle commandLow

Description: Torizoncore Builder generates an invalid compose file after bundle command.

TCB-78New FeatureAdd product IDs to evaluation containersLow

Description: Add a property called TORADEX_PRODUCT_IDS to the TorizonCore images with pre-provisioned containers.

TCB-203Fixeddocker-compose file missing MACHINE variableLow

Description: When TorizonCore Builder replaces the tags in docker-compose file with concrete sha256 hashes, it drops the MACHINE variable.

TCB-148New FeatureInvestigate how to improve TorizonCore Builder usabilityLow

Description: In this ticket we make some UX-based improvements

  • Show list of available device tree overlays automatically if none specified. Improve console visible messages in general.
  • Use sensible default include paths for device tree includes.
  • Improve dt subcommand description to be a bit more descriptive.
  • Currently --devicetree specifies a binary or source device tree depending on the exact subcommand. This might lead to confusion. Use --devicetree for device tree binaries exclusively and --devicetree-source when a source file is required.
  • Write a clear error message if the "devicetree" file is not present.

TCB-106New FeatureCreate "dt list-overlays" sub-command to list available/compatible device tree overlaysLow

Description: We want to create the "dt list-overlays" (or similar name) sub-command to list available (and compatible with the module) device tree overlays.

TCB-109New FeatureCreate "dt checkout" command to checkout a branch from the device tree overlays repositoriesLow

Description: Create the "dt checkout" sub-command to checkout a branch from the device tree overlays repositories, to improve customers UX as they will not need to manually find the repository, correct branch, compatible version.

TCB-48New FeatureDoc: How to use TorizonCore Builder to apply device treesLow

Description: Create documentation on how to use TorizonCore Builder to apply device trees

TCB-107New FeatureShow currently applied device tree overlaysLow

Description: Add an option in TorizonCore Builder so the customer can see the device tree overlays applied to the current device tree.

TCB-111New FeatureAdd additional metadata to OTA targets.jsonLow

Description: Add additional metadata to OTA targets.json.

TCB-108New FeatureImplement deploy to deviceLow

Description: TorizonCore Builder command to deploy a OSTree reference directly onto a target device.

TCB-40New FeatureImplement splash sub-commandLow

Description: Add feature in TorizonCore Builder to set a splash screen image.

TCB-216FixedTorizonCore Builder isolate does not work with mDNS host namesLow

Description: TorizonCore Builder should work with mDNS host names

TCB-121New FeaturePush OSTree repository to OTALow

Description: Add the push command to torizoncore-builder tool to upload changes in an OSTree repository to Torizon OTA.

TCB-211FixedTorizonCore Builder not working with a Docker-compose with environment variablesLow

Description: Trying to run torizoncore-builder bundle with a Docker-compose that has an environment variable gives an error.

TCB-13New FeatureTorizonCore Builder toolLow

Description: TorizonCore Builder is a tool that helps to integrate Docker containers and user's customization in a production image.

TCB-410New FeatureAdd nano to the dev-tools container

Description: The dev-tools container should have nano as text editors for a better user experience

TCB-152New FeatureSupport custom EULA when preprovisioning containersLow

Description: Some containers such as our base containers with Vivante binary drivers need the customer to accept an EULA. We should support adding an EULA to the Tezi image as part of the pre-provisioning process (in torizoncore-builder).

TCB-228Fixedtorizoncore-builder error on Windows using cmdLow

Description: torizoncore-builder does not work on Windows using cmd

Not Planned
TCB-328Known IssueBundle command fails with the error "ConnectionRefusedError: [Errno 111] Connection refused" when using a Linux distro with the ZFS filesystemLow

Description: TorizonCore Builder does not support the ZFS filesystem. If you setup a computer with a Linux distro that uses ZFS - for example, Ubuntu 22.04 LTS with the experimental ZFS support enabled - you will see errors such as "ConnectionRefusedError: [Errno 111] Connection refused" when running the bundle command.

On TorizonCore Builder we run Docker in Docker (DinD) and use the OverlayFS driver. As stated on Docker storage drivers - Supported storage drivers per Linux distribution, it is the recommended storage driver and requires XFS or ext4 as the filesystem where "/var/lib/docker" (from the DinD) is located. In practice, this means that you have to use a filesystem compatible with OverlayFS on your computer for TorizonCore Builder to work, even if you don't run the Docker daemon itself with OverlayFS.

At the moment, our plans are to make the error message more intuitive, stating that ZFS is not supported. We will keep monitoring the adoption of ZFS and possibly other filesystems and, as they gain traction and become the default on major Linux distros, we might consider adding support for them in upcoming TorizonCore versions.

Workaround: Use a Linux distro with either ext4 or XFS (with `d_type=true` enabled) as the filesystem

TCB-208Known IssueTorizonCore Builder: bundled container executed with net=host permission fails with error "SIOCSIFFLAGS: Operation not permitted"Low

Description: As reported in our community, with TorizonCore Builder, If you bundle a container that sets extended attributes on files inside the container (for example, using the "setcap" command), the container will fail upon execution with the error "SIOCSIFFLAGS: Operation not permitted" or another related error.

If you remove the bundled container and manually pull it from Docker Hub, then try to run it again, the same error will not happen.

While this bug was investigated, we came to docker build does not preserve xattrs in the generated image, and after several tests such as setting capabilities and building the container with the classic Docker vs Buildkit, we concluded that:

  • Docker does not keep all extended attributes that are set in a Dockerfile, regardless of using Buildkit or the Classic Docker builder, and using Docker directly (without Compose).
  • Even some capabilities that are kept by Docker get lost when bundling a container with TorizonCore Builder

Given the constraints of Docker, we won't work on a fix in TorizonCore Builder, and we advise you to not rely on xattrs or any feature based on them inside a container.

Workaround: For this specific bug: set the suid for executable files rather than using setcap. For example use "chmod u+s" instead of "setcap" seems to work as well and may carry through the bundle process.

In general, do not rely on xattrs or any feature based on them inside a container. Capabilities and ACLs are features that may be set via xattrs and can also be set via docker-compose properties, which is the recommended way to set them in a portable and reliable way.

TCB-232Known IssueTorizonCore Builder: "bundle" command causes issues on a local registry on Windows machinesLow

Description: After using the "bundle" command the container running the local registry stops working properly. On further investigation, it appears that while the container for the local registry is still up and running the port for this container is no longer accessible.

This issue only happens on Windows machines.

Update: this bug is not reproducible anymore, therefore it has possibly been fixed by an update on Docker for Windows. If you face such issue, please let us know and we'll reevaluate it.

Workaround: Until the bug is fixed, use a Linux machine.

TCB-409Known IssueApplying overlay on Apalis iMX8X failsLow

Description: Activating device tree overlay fails on Apalis i.MX8

Backlog
TCB-327Feature RequestAs a user of torizoncore-builder I want a line number when a parse error occurs in the "build" command

Description: When running the build command with a tcbuild.yaml file with incorrect syntax, the error does not display the line number.

TCB-316Known IssueBuild command fails when not using Docker volumesLow

Description: It is possible to run TorizonCore Builder without using a Docker volume, by passing some extra flags to the setup script: "source tcb-env-setup.sh -d -s /srv/builder-tool/storage".

When using the "tcb build" command, though, it does not create the output directory as expected.

It has been reported on the TCB GitHub issues.

Workaround: Use docker volumes (the default option) when using the build command.

TCB-305Known Issue"dto deploy" error "AttributeError: 'Namespace' object has no attribute 'update'" because it does not have the "update" switchLow

Description: The command "dto deploy" is a combination of several commands at once. It essentially runs the following commands in sequence:

  • images download
  • dt checkout
  • dto remove
  • dto apply
  • union
  • deploy

However not every switch for the individual commands is supported by dto deploy. In particular for this bug the --update switch from the dt checkout command isn’t supported which causes the error AttributeError: 'Namespace' object has no attribute 'update'

Workaround: Run the commands stated in the public description above one-by-one.
You might not need to run all of them, though. Consult each command functionality in the TorizonCore Builder - Commands Manual to evaluate which ones you need to run.

TCB-205Known Issue"images serve" command not working on WindowsLow

Description: The TorizonCore Builder "images serve" command was added to TorizonCore Builder on version 3.2.0. It does not work on Windows due to two limitations: (1) the Docker host network driver is not supported on Windows and (2) the multicast DNS (mDNS) used by Avahi does not work.

Workaround: Take the output image from TorizonCore Builder and use an SD Card/USB stick to install it to a Toradex SoM.

Alternatively, use a Linux machine.

TCB-230Known IssueTorizoncore builder "bundle" command fails when TCP docker access is enabledLow

Description: When Docker is run with TCP access, the bundle command fails with error "ConnectionRefusedError: [Errno 111] Connection refused"

Workaround: Run Docker with the default configuration instead of TCP.