How to keep the Torizon Yocto project up to date

Hi,
i have a question about my torizon yocto project. This my tree:

drwxrwxr-x   7 digimax digimax   4096 gen 12 09:06 ./
drwxrwxr-x   8 digimax digimax   4096 gen 16 08:34 ../
drwxrwxr-x   7 digimax digimax   4096 gen 16 16:17 build-torizon/
drwxrwxr-x   4 digimax digimax 147456 gen  9 12:45 downloads/
drwxrwxr-x  21 digimax digimax   4096 gen 16 08:32 layers/
drwxrwxr-x   7 digimax digimax   4096 gen  9 12:07 .repo/
lrwxrwxrwx   1 digimax digimax     53 gen  9 12:06 setup-environment -> layers/meta-toradex-torizon/scripts/setup-environment*
drwxrwxr-x 259 digimax digimax   4096 gen 16 14:41 sstate-cache/

I wanted to know how I can keep my Torizon Yocto project up to date with the latest updates. Which command should I run to keep my project up to date with patches, etc… ?

Thanks in advanced for the help.

Fabio

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


I can see you have a Torizon Yocto project set up. To keep your Torizon Yocto project up to date with the latest updates, you’ll use the repo tool since your project structure shows you’re using the Toradex manifest system(1).

Updating Your Torizon Yocto Project

To update your project with the latest patches and updates, run these commands from your project root directory:

repo sync

(1)

This command will synchronize all the layers in your project with their respective upstream repositories, pulling in the latest commits and updates(1).

Important Considerations

When updating your Torizon Yocto build environment:

  1. Version Control for Custom Layers: If you have custom meta layers in your project, ensure they are version controlled with Git(2). This is mandatory for Torizon OS builds due to how layer revision information is included with OSTree(2).

  2. Clean Build After Updates: After running repo sync, you may need to clean and rebuild your image to ensure all updates are properly incorporated, especially if there have been significant changes to the BSP layers or core components.

  3. Manifest Updates: The repo sync command will update all layers according to the manifest file, which includes the Toradex BSP layers like meta-toradex-torizon, meta-toradex-bsp-common, and other dependencies(1).

The Toradex manifest system manages all the necessary layers including OpenEmbedded core, BitBake, and the Toradex-specific BSP layers(1), so the repo sync command will keep everything synchronized with the upstream repositories.

Best regards,
Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Greetings @fmolon,

I imagine you’re asking how to keep all your meta-layers up to date?

Basically you want to do what is written here: Host Machine Setup | Toradex Developer Center

Of course make sure you’re targeting the manifests for torizon and not tdxref as is written in the article.

Best Regards,
Jeremias

Exactly, that’s precisely my question. This is the tree of my projetc:

totale 172
drwxrwxr-x   7  fabio fabio   4096 gen 12 09:06 ./
drwxrwxr-x   8  fabio fabio   4096 gen 16 08:34 ../
drwxrwxr-x   7  fabio fabio   4096 gen 20 17:30 build-torizon/
drwxrwxr-x   4  fabio fabio 147456 gen  9 12:45 downloads/
drwxrwxr-x  21  fabio fabio   4096 gen 19 10:06 layers/
drwxrwxr-x   7  fabio fabio   4096 gen  9 12:07 .repo/
lrwxrwxrwx   1  fabio fabio     53 gen  9 12:06 setup-environment -> layers/meta-toradex-torizon/scripts/setup-environment*
drwxrwxr-x 259 fabio fabio   4096 gen 20 17:11 sstate-cache/

and this is the info about my system:

Software summary
------------------------------------------------------------
Bootloader:               U-Boot
Kernel version:           6.6.119-7.5.0-devel-ge5c5595adb06 #1-Torizon SMP PREEMPT Mon Jan  5 09:23:13 UTC 2026
Kernel command line:      root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/bebc4f96fbe626d86d059bc8f88bdad458de3b0f97bbf6b0e88be3fff8bc8512/0
Distro name:              NAME="Torizon OS"
Distro version:           VERSION_ID=7.5.0-devel-20260120145906-build.0
Distro variant:           VARIANT="Docker"
Hostname:                 verdin-imx8mp-15603379
------------------------------------------------------------

Hardware info
------------------------------------------------------------
HW model:                 Toradex Verdin iMX8M Plus WB on Mallow Board
Toradex version:          0064 V1.1A
Serial number:            15603379
Processor arch:           aarch64
------------------------------------------------------------

Obviously, make sure to target the manifests for torizon and not tdxref as stated in the article.
I didn’t understand how I can check which targets the manifest is pointing to and what commands I need to run in order to up to date all my meta-layer.

Thanks for your help @jeremias.tx

Fabio

When you first setup your build environment do you remember running a command like:

repo init -u git://git.toradex.com/toradex-manifest.git -b scarthgap-7.x.y -m torizon/default.xml

Do you remember what parameters you provided after the -b and -m arguments in this command?

Follow the article I linked, but just use the same parameters you did last time. Unless you specifically want to do a different version. It’s just a repo init... and repo sync as the article states, you just need to remember what parameters you used for repo init the first time you setup your build environment.

Best Regards,
Jeremias

Hi @jeremias.tx ,

i run the follow comand for init my project:

repo init -u git://git.toradex.com/toradex-manifest.git -b scarthgap-7.x.y -m torizon/default.xml

and this is my manifest.xml file

<?xml version="1.0" encoding="UTF-8"?>
<!--
DO NOT EDIT THIS FILE!  It is generated by repo and changes will be discarded.
If you want to use a different manifest, use `repo init -m <file>` instead.

If you want to customize your checkout by overriding manifest settings, use
the local_manifests/ directory instead.

For more information on repo manifests, check out:
https://gerrit.googlesource.com/git-repo/+/HEAD/docs/manifest-format.md
-->
<manifest>
  <include name="torizon/default.xml" />
</manifest>

then i provided scarthgap-7.x.y after -b and torizon/default.xml after -m.

Do I only need to run this command repo sync to up to date my yocto project?

Thanks

Fabio

I’m confused why is your manifest file auto-generated? The repo init command should have downloaded our manifest file.

Do I only need to run this command repo sync to up to date my yocto project?

Correct, after you correctly used repo init to download/update the manifest file. Then, repo sync is used to update the Yocto meta-layers of your project based on the manifest file.

Best Regards,
Jeremias

Thanks for reply. Maybe I was wrong to load you the manifest file. I found this manifest file inside

~/projects/yocto_torizon_docker/layers/manifests/torizon$ cat default.xml 

While my manifet file is:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <include name="base/pinned.xml"/>
  <include name="bsp/pinned-nxp.xml"/>
  <include name="bsp/pinned-ti.xml"/>
  <include name="bsp/pinned-tdx.xml"/>

  <remote alias="repo" fetch="https://github.com/uptane" name="uptane"/>
  <remote alias="repo" fetch="https://github.com/toradex" name="toradex"/>
  <remote alias="repo" fetch="https://github.com/torizon" name="torizon"/>
  <remote alias="repo" fetch="https://github.com/iris-GmbH" name="iris"/>

  <!--
    When doing a monthly or quarterly release, the hashes below must be copied from "torizon/integration.xml",
    except for layer meta-toradex-torizon which in the integration manifest is referenced by branch but here
    should be referenced by the corresponding hash.
  -->
  <project name="meta-security" path="layers/meta-security" remote="yocto" revision="afbbe28cee4af2c6760aaead43a4a3ef29969809"/>
  <project name="meta-updater" path="layers/meta-updater" remote="uptane" revision="b275153c9c8ea09e27d41db9f2faba3ebf92d2c2"/>
  <project name="meta-virtualization" path="layers/meta-virtualization" remote="yocto" revision="17ac21e7d7f6f40a87618b22278b63bcfa14dbf2"/>
  <project name="meta-cyclonedx" path="layers/meta-cyclonedx" remote="iris" revision="0d3e2980c59ffe5d08b4a265ce600981504f7f2f"/>
  <project name="meta-toradex-distro.git" path="layers/meta-toradex-distro" remote="tdx" revision="71f3887a63d9b10b925afd75d6fb00085cd420b3"/>
  <project name="meta-toradex-security" path="layers/meta-toradex-security" remote="toradex" revision="5df01bcb14cefc146ea7dc1afe36a67a6cfb4c2c"/>
  <project name="meta-toradex-torizon" path="layers/meta-toradex-torizon" remote="torizon" revision="a081be1607f80f54e7059654fa4c71bff44db16a">
    <linkfile dest="setup-environment" src="scripts/setup-environment"/>
  </project>
</manifest>

Anyway, in any case, to update my Yocto project I use the command repo sync. Thanks.

If possibile i have another question regarding the yocto torizon repositories. I saw that last week toradex released the torizon 7.5.0 (stable version). I’d like to build this build with your yocto repository. For build i run the follow command:

repo init -u git://git.toradex.com/toradex-manifest.git -b refs/tags/7.5.0 -m tdxref/default.xml
repo sync
bitbake torizon-docker

Finished build i found this archive file:torizon-docker-verdin-imx8mp-Tezi_7.5.0-devel-20260126130139+build.0.tar

a { text-decoration: none; color: #464feb; } tr th, tr td { border: 1px solid #e6e6e6; } tr th { background-color: #f5f5f5; }

Now I have two questions:

  1. Is the command above correct for building Torizon 7.5.0 (the stable release)?
  2. If the commands are corrects, why does the archive file name contain “‑devel‑” even though the build is stable?

Thanks @jeremias.tx

Fabio

Is the command above correct for building Torizon 7.5.0 (the stable release)?

Yes it looks correct, and your produced image is being versioned as 7.5.0.

If the commands are corrects, why does the archive file name contain “‑devel‑” even though the build is stable?

By default any Yocto build of ours, will have the devel tag by default. This is something we explicitly overwrite whenever we do an official release on our side.

Best Regards,
Jeremias

1 Like

Hi @jeremias.tx,

thanks very much for your help.

Fabio

Glad we were able to help.

Best Regards,
Jeremias