Commonization of flashing between Raspberry Pi and Toradex

Hello,

We are considering using Toradex boards instead of Raspberry Pi to use on our future products.
We would like to make software to commonize as much as possible software write and update on both targets,
so that it will be easy for us to maintain both platforms.

Following is the process used for our Raspberry Pi:

  • System images are created in .img format, using Packer. Such images are flashed using rpiboot/balenaEtcher.
    Updates are performed using apt-get update/install commands.
  • We have some application Debian packages that are updated by apt-get update/install commands.
    Please note we also use Docker that must be installed in our system.

Can you tell me what are the possibilities on Toradex boards that could comply with our issue?

Regards

Hey @christophe93,

There are most likely quite a few different types of solutions. They all sort of come down to the detail of whats specifically required. So ill try and give details on needs you requested so it can start a dialog.

first: A typical style of development w/ TorizonCore OS and Toradex SoMs.

A typical start is with our TorizonCore OS. With the software tool TorizonCore Builder, modify the requirements of the OS. With TorizonCore Builder you can also include your docker compose files to include all the application build. This allows a simple ‘package’ that can be easily deployed via our Torizon Platform tool (fleet management style). Also a starting point for remote updating of both OS updates and application updates.
A few keywords highlighted, but they are worth understanding because I think they would be the tools you can work with. I say this so you can see where your current system lines up with ours. I believe migrating to our supported tools w/ our devices seems to be the smoothest option for the long term. (RPI mentioned below) And now some specifics:

It may be possible to use your current software toolchain to deploy an OS to our boards. I’m not sure on the specifics tools, I can ask internally. This would mean integrating the BSP into your build(which is available). It’s worth noting aside from Our TorizonCore Builder tool. Many customers use the Yocto project/BSP to build their custom OS and we have lots of documentation on this topic.

RPI: You could use our tools to support both. See this website/article for more detail on using Torizon with the RPI.

Baked into our TorizonCore OS is a OTA (Over the Air) update solution (aswell as docker). This update solution is both for the OS updates and for containersruntime (docker). These can be updated separately or synchronous based on what you need.
Here is some more information.

Over-The-Air Update Solutions | Toradex Developer Center

Docker is currently the primary way we recommend application development. Combined with out OTA updates. I think this is the right pathway.

Link for how we recommend Application Development
https://developer.toradex.com/torizon/application-development/

I hope this gave you a general overview that helps answer the specifics. If not let me know (again :D) and I will try and answer more clearly.

-Eric

Hello @christophe93,

I hope you are doing well. Could you make some progress in your project? Please let me know if you would still need some additional support or if you have open questions. We would be happy to help you.

Hello,

On short term this task is postponed.
There is no further investigation about how to efficiently build a common process between Toradex and Raspberry Pi

We want to speed up the release of our system on a Toradex board. That is why we investigate on a straightforward way to add it on a Toradex board. Our goal is really releasing a Toradex version as fast as possible, and keeping Raspberry Pi installation process aside.

I am currently investigating about recovering debian packages. I am looking at your pages Toradex Debian Image - Armhf and Debian Containers for Torizon | Toradex Developer Center to see how to make it work using TorizonCore

Hello,

I was hesitating to create a new issue, but finally it aims at recovering Raspberry Pi software on Toradex card.

It would be convenient for us to have a Torizon 32-bit version, so that we are consistent with 32-bit image for Raspberry Pi. Is this easily possible?

Dear @christophe93,

Thanks for your reply.

If I understand you correctly, you would like to migrate/change from your Raspberry Pi system to one of the Toradex modules. Also, I see that you are using (or interested in using) a verdin imx8m-plus module.
Let me try to give you an overall idea based on your two concerns regarding flashing the image and updating Debian packages on our modules compared to your process used for Raspberry Pi:

  • System images are created in .img format, using Packer. Such images are flashed using rpiboot/balenaEtcher.
    Updates are performed using apt-get update/install commands.

OS images can be flashed on Toradex modules using our Linux-based application called Toradex Easy Installer (TEZI). It comes with a nice Graphical User Interface and all newer Toradex System on Modules come with TEZI pre-installed. You can then power on the module and choose (either one of the images that are available from our DHCP servers or your own customized image) what image you want to flash onto your module. We provide several reference images (BSPs) based on Linux and also several versions of our own out-of-the-box image called TorizonCore. Please find some of the available images here.

Flashing the image is, therefore, an easy and straightforward step since all you need to do is load our easy installer, choose the image and click on Install button. We provide several documents about how to build your own custom TEZI image (Build TorizonCore from Source With Yocto Project/OpenEmbedded | Toradex Developer Center, Build U-Boot and Linux Kernel from Source Code | Toradex Developer Center) and how to flash it onto the module.

  • We have some application Debian packages that are updated by apt-get update/install commands.
    Please note we also use Docker that must be installed in our system.

The process of updating the packages depend on what type of image you are using on your module. If you are using one of our BSPs or your own custom Linux BSP, you will have to modify the linux kernel using Yocto and rebuild the image to add a missing package or driver support.

On the other hand, it is an easy process if you use our TorizonCore image. TorizonCore is our OS built from Yocto with docker integrated into the kernel. This means you will be running your application in docker containers on top of the OS itself. Therefore, you have the flexibility and freedom to choose what platform you want the container to be based on (example: Debian). So you will be installing/adding the packages you need in those docker images that you want your application container to run from. You can easily build your own docker images using all the configurations and requirements written in a simple DockerFile and run your application containers from those images using a docker-compose file.

On top of these, the Torizon platform comes with other features such as Over The Air updates (remote updates) and Secure Offline Updates using which you can update your base OS image or application containers or both synchronously at your own convenience. I hope this answers some of your questions.

Regarding your other question:

This depends on which processor you choose to use. We provide modules with both 32 bit and 64 bit architecture and also TorizonCore images supporting some of those modules. Here you can find the list of supported modules. In your case, verdin imx8mp module uses a 64 bit processor. Therefore you should be using an OS that supports this architecture.

If you still have some open questions, I would propose that we arrange a meeting where we could clarify all your doubts and help you get started quickly. Please let me know if you are interested in that and we will be happy to help you.

Hello @rudhi.tx

Thank you very much for your answer.
Finally we are going to try and upgrade our whole system and applications to 64 bits for Toradex boards, we find it better to do so, even if it can take longer

I am currently trying to upgrade our scripts and build system

Hey @christophe93,

Thanks for the update. Sounds like you are making some progress. In case you come across any questions or issues regarding your development on the verdin modules or with the Torizon platform, feel free to open a new thread to address those. Wishing you a smooth transition into our products!