Search by Tags

Torizon

 

Introduction

Torizon is a new Linux-based software platform that simplifies the process of developing and maintaining embedded software. It allows you to configure the system for your use case quickly and easily, so you can focus on application development instead of Linux builds.

Resources

Browse for Torizon resources from the tabs below.

Partner Demo Containers

To leverage the flexibility of the Torizon platform, Toradex partners with software companies from different industry segments and technologies to offer you Partner Demo Containers. Those containers are ready-to-run demonstrations with out-of-the-box compatibility to both Toradex hardware and the Torizon platform.

           Partner Demo Container Brief Description
Codesys Codesys Codesys PLC Runtime CODESYS programmable logic controller (PLC) demo runtime on a Torizon container and how to use it
Crank Crank Software Crank Storyboard Crank Storyboard allows you to build embedded systems optimized, rich GUI on a cross-platform IDE
TotalCross TotalCross TotalCross SDK TotalCross is an easy-to-use Open Source SDK aiming the fast designing of beautiful Graphical User Interfaces (GUIs) for multiple platforms

Torizon Debian Containers

Graphic container images with Wayland Weston containing necessary configuration and packages.

Image Name Description
debian-base Base image to start a simple Container.
debian-wayland-base Containing Wayland libraries without a compositor
debian-wayland-base-vivante Contains binary drivers for Vivante GPUs (i.MX 8 modules)
debian-weston Containing Wayland libraries and Weston compositor
debian-weston-vivante Contains binary drivers for Vivante GPUs (i.MX 8 modules)
debian-qt5-wayland Containing Wayland libraries and Qt5 compositor
debian-qt5-wayland-vivante Contains binary drivers for Vivante GPUs (i.MX 8 modules)
debian-kiosk-mode-browser Containing chromium package to run web-GUI or show website on a screen

Development Containers

Development containers to assist the development.

Image Name Description
console base images Extended image with console packages to explore containers during development (contains unnecessary packages for final images)
debian-shell Shell utilities for the Torizon platform
debian-dev-tools: Developer tools
cnab-app-base Used for TorizonCore Docker App support
ostree-easy-installer-builder Container to add some custom content to a torizon-core image
ostree-push-to-garage This tool generates, signs and publishes an update to work with Here! or ATS Garage.

SDK Containers

Toradex provides SDK containers to work with IDEs:

Requirements

Torizon fully supports the following modules, which use eMMC as flash storage:

How to Start

Follow our Step-by-step Getting Started Guide for fully supported modules as an overview step to get you set up in no time.

After you have completed it you can have a complete and updated overview of TorizonCore on the TorizonCore Overview article. You can also check the other tabs from this article, there you can find a list of Torizon features as well as a list of related articles.

Installation

TorizonCore is installed via the Toradex Easy Installer that comes pre-installed in Toradex SoMs from the factory. Install the TorizonCore image with Docker runtime:


  • Install TorizonCore image with Docker runtime

    Install TorizonCore image with Docker runtime

Access to Command-line

Upon booting one can login on the serial console (debug UART) or from the network via SSH using the following user and password:

  • User: torizon
  • Password: torizon

On the first login, you are prompted to change the default password. You can then execute commands as root with sudo <command> or gain root access from within the Linux shell with sudo su.

Additional Resources

Check out ongoing projects on Toradex Labs:

Why should I use Torizon?

Torizon is a new Linux-based software platform that simplifies the process of developing and maintaining embedded software. It allows you to configure the system for your use case quickly and easily, so you can focus on application development instead of Linux builds.

Check out the Torizon page on the Toradex website to learn more.

Why should I use TorizonCore?

TorizonCore came out of a need to ease our customers into Embedded Linux, allowing them to focus on application development by using containers and shipping a binary operating system based on Yocto/OpenEmbedded which is completely open-source. We’re including ease-of-use technology such as Integrated Development Environment (IDE) support, allowing a customer to do development and debugging without leaving the comfort of their IDE.

You can learn more about the technical details on TorizonCore Technical Overview.

What is the difference between Torizon and TorizonCore?

  • Torizon is a platform and a brand name encompassed by the TorizonCore operating system and many other innovative projects.
  • TorizonCore is a distribution, sometimes referred to as an Operating System (OS), that is the foundation to support the Torizon platform and its ecosystem.

Here are some examples of offerings that are part of the Torizon ecosystem: - Torizon OTA: the project is currently under Toradex Labs, comprising a full CI/CD infrastructure, a cloud-hosted dashboard to expose features for our customers among other components, and relies on the native OTA support on the device provided by the TorizonCore OS. - Partner Demo Containers: container images that make it possible to use partner technologies easily on Torizon, running on TorizonCore. - Visual Studio Extension For Torizon: enables a developer-friendly migration path for Windows and Windows CE application developers. - Visual Studio Code Extension for Torizon: support one of the most popular IDEs of the moment. With a large ecosystem and several tools, this is a great way to get started for an awesome development experience.

Is TorizonCore Linux-based?

TorizonCore is 100% Linux-based, using Yocto Project/OpenEmbedded as a base, adding container support, an OTA update client, OSTree and several other key technologies.

How much does TorizonCore cost?

TorizonCore is completely free to all of our customers and we encourage modifications by publishing all of our source code.

What does it mean TorizonCore is Open Source Software (OSS)?

All of the source code needed to build TorizonCore is publicly available and licensed under a free modifiable license. Some components such as GPU drivers may be binary only but this is outside of Toradex control. We strive to open source all components we can and will continue to support upstreaming our changes into mainline anytime we can.

You can find the source-code in our GitHub. In addition, comprehensive documentation about how to Build TorizonCore With Yocto and BSP efforts to mainline, among several other topics, can be found in our developer website.

What license does TorizonCore use?

TorizonCore is built from Yocto Project/OpenEmbedded and utilizes over 200 open source projects which all have licensing which fall under the Open Source Initiative guidelines. The only proprietary pieces we include are from the SoC vendor and actively work to find OSS alternatives.

How does TorizonCore work with Yocto Project/OpenEmbedded BSP layers?

TorizonCore is built upon our foundational work that is done by our BSP team who handles the majority of our driver work. TorizonCore is focused on building ease of use and the best out of the box experience without requiring the customer to have extensive Yocto Project/OpenEmbedded knowledge.

Does TorizonCore replace Yocto Project/OpenEmbedded BSP layers?

TorizonCore is built on top of Yocto BSP layers, therefore it cannot work without the BSP layers. One of the great advantages is that you don't have to build and maintain it by yourself.

If you have strong Yocto Project/OpenEmbedded skills or fall into some corner-cases where customization at the OS level is inevitable (e.g. fast boot), then you must either: - Build your own customized version of TorizonCore, if you still want to benefit from its components and ecosystem. - Opt to go with the traditional Yocto approach to build your own Yocto image.

What are the compelling features of TorizonCore vs building your own Yocto Project/OpenEmbedded custom distribution?

In a nutshell, ultra-summarized sentence, TorizonCore’s focus is to not require the customer to have extensive Yocto Project/OpenEmbedded experience to build applications. Leveraging our container support and IDE integration, you can quickly go to market with your embedded solution.

If you deeply skilled with Yocto Project/OpenEmbedded and need to fully customize your OS experience, the value of TorizonCore is less of an impact. Often this happens for a corner-case not covered by TorizonCore, such as a fast-boot system or the use of a raw NAND-based SoM.

Why Containers?

Containers allow you to focus on just building your application as quickly and efficiently as possible by utilizing 3rd party pre-built containers and not having to worry about incompatibilities with libraries on dependencies.

What is the best development environment for Torizon?

Torizon is focused on providing an experience to our customers they are used to and developing integration with IDE’s we all know and love. We’ve started with Visual Studio and Visual Studio Code and will be working on expanding support to all of the most popular use-cases. Please let us know your development workflow!

How does GUIs work on TorizonCore using containers?

Our out of the box experience includes Wayland, Chromium, and Portainer, which is a web-based tool to manage containers. You can easily customize our pre-built containers or add your one.

We have some examples documenting how to run a Graphical User Interface on TorizonCore:

Keep an eye on the list of Torizon related articles, or subscribe to our updates in the footer of the developer website. We plan to document how to use other technologies to build and run a GUI app on TorizonCore.

How do hardware interfaces such as video, GPIO, I2C, SPI, etc. work with TorizonCore using containers?

We have documented how to access devices and interfaces through the container isolation layer from the Host OS, allowing the customer to control exactly what their application can use and keep it as secure as possible.

Search for your use-case in the list of Torizon related articles. If you didn't find what you need, post a question in our community.

Does the use of containers increases complexity and affects performance?

Containers actually utilize user-mode virtualization to isolate processes but share the same kernel, allowing performance to match native applications. There is some storage/memory overhead, however, with some library duplication when using different versions.

What is OSTree?

OSTree is a way to check and store filesystem changes in a git-like filesystem, allowing the customer to do atomic updates in their rootfs. When updates do occur, only the delta between the difference is sent to the customer, which makes updating much quicker.

Learn more on our article about OSTree.

What is DeviceTree?

The primary purpose of Device Tree in Linux is to provide a way to describe non-discoverable hardware. TorizonCore utilizes Device Tree files to define a set of hardware and allows you to customize it to your exact specifications.

To learn more, read our article about Device Tree Overlays that focuses on TorizonCore.

How does TorizonCore work with OTA?

TorizonCore has a built-in client updater, called Aktualizr, which allows someone to update using a Uptane backend, such as HERE or our own OTA solution. It relies on OSTree to execute the updates.

Learn more about it on Torizon Update System. Keep in mind that Torizon OTA is under Toradex Labs.

What does Mainline and Downstream kernel/drivers mean and how does this affect TorizonCore?

In our context, in a very summarized way, Mainline is the tip of the Linux kernel maintained directly by Linus Torvalds. Downstream are modified releases of specific versions of the mainline maintained by someone else, usually hardware vendors.

We strive to be on the mainline whenever possible with TorizonCore. We work with our SoC vendors to open up as much source code as possible and upstream their drivers, removing as many proprietary drivers as possible - as you can glimpse on BSP efforts to mainline. Nevertheless, when it is not possible to follow the mainline for various reasons, we make sure that the downstream version offered by the SoC vendor works well on our SoMs. You can easily see it by looking at our Linux BSP releases and our commit history in our downstream Linux kernel.

What is the difference between a Docker image and container?

An image is a read-only, stateless template, whereas a container is a running instance of it. More than one container can be run from the same image. For comprehensive information, go through the Docker documentation. For instance, in the Docker overview, there is a section that defines what are images and containers.

I have a raw NAND SoM and my flash memory is full. How can I overcome it?

The full-featured image is rather large taking up most of the space on the raw NAND-based modules. As such it is not recommended to experiment with containers on these devices since there isn't much space for containers as is. In the future, we hope to slim down the footprint. Alternatively, the Balena based image is slimmer by about ~70MB, although fully unsupported by Toradex.

What video driver is being used on SoMs supported by the mainline kernel?

In our i.MX6-based Debian containers we are using the Armada X.org DDX driver which seems to have worked fine in our tests but, it might show stability issues.

After re-installing TorizonCore using the Toradex Easy Installer, the board does not boot. What can I do?

Make sure to clear the U-Boot environment by using env default -a && env save. If resetting the U-Boot environment does not help, use setenv tdxargs loglevel=7 to enable kernel debug messages. Also setenv tdxargs "loglevel=7 earlycon" can help to initialize a console during very early boot and thus see debug output in case the kernel crashes very early during boot.

What OS options do I have besides Torizon?

Refer to the OS and Demo Images tab from the Toradex Easy Installer article.

How relevant is the processor's architecture in containers?

Just like when building regular applications, a container built on an x86 machine will work only on x86 targets, the same is true for ARM and other computer architectures. Both images used in this lesson have been built for a wide variety of architectures, including ARM.

Note: There is also a distinction between ARMv7 (32 bit) and ARMv8 (64 bit)

Can I run 32-bit containers on 64-bit platforms?

Preliminary tests show that it's possible, though you're encouraged to use the 64-bit version whenever possible.

Where do I find more information about the Torizon Visual Studio Code support for Python?

Check out the Visual Studio Code Knowledge Base page.

How to fix apt-get not working because security certificates dates don’t match on Windows?

There is an open Docker bug that affects Windows machines in which the date inside the containers may not be correctly synced with the host PC.

You may experience weird issues due to that, such as apt-get failing due to security certificates dates not matching, or wrong dates in logs.

The only solution at the moment is to restart the Docker deamon on your host machine.