Getting error while custom build

torizoncore-builder build
Building image as per configuration file ‘tcbuild.yaml’…

=>> Handling input section
Copying Toradex Easy Installer image.
Unpacking TorizonCore Toradex Easy Installer image.
An unexpected Exception occurred. Please provide the following stack trace to
the Toradex TorizonCore support team:

Traceback (most recent call last):
File “/builder/torizoncore-builder”, line 222, in
mainargs.func(mainargs)
File “/builder/tcbuilder/cli/build.py”, line 595, in do_build
build(args.config_fname, args.storage_directory,
File “/builder/tcbuilder/cli/build.py”, line 555, in build
handle_input_section(config[“input”], storage_dir=storage_dir)
File “/builder/tcbuilder/cli/build.py”, line 98, in handle_input_section
handle_easy_installer_input(props[“easy-installer”], **kwargs)
File “/builder/tcbuilder/cli/build.py”, line 121, in handle_easy_installer_input
images_cli.images_unpack(
File “/builder/tcbuilder/cli/images.py”, line 143, in images_unpack
images.import_local_image(image_dir, dir_list[0], dir_list[1],
File “/builder/tcbuilder/backend/images.py”, line 371, in import_local_image
unpack_local_image(tezi_dir, src_sysroot_dir)
File “/builder/tcbuilder/backend/images.py”, line 239, in unpack_local_image
tarfile = get_rootfs_tarball(image_dir)
File “/builder/tcbuilder/backend/common.py”, line 143, in get_rootfs_tarball
with open(image_json_filepath, “r”) as jsonfile:
FileNotFoundError: [Errno 2] No such file or directory: ‘/storage/tezi/image.json’

or

torizoncore-builder build
Building image as per configuration file ‘tcbuild.yaml’…

=>> Handling input section
Copying Toradex Easy Installer image.
Unpacking TorizonCore Toradex Easy Installer image.
Error: No root file system content section found in <_io.TextIOWrapper name=‘/storage/tezi/image.json’ mode=‘r’ encoding=‘UTF-8’>
jai_admin@Laptop511:~/tcbdir$ cd images

while trying to build.

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


The error messages you are encountering during the torizoncore-builder build process suggest that there is an issue with the image.json file, which is a crucial part of the Toradex Easy Installer image configuration. Here are some potential reasons and solutions for the errors:

  1. FileNotFoundError: This error indicates that the image.json file is missing from the specified directory (/storage/tezi/). Ensure that the image.json file is present in the correct directory. You might need to verify the path specified in your tcbuild.yaml configuration file to ensure it points to the correct location of the Toradex Easy Installer image.

  2. No root file system content section found: This error suggests that the image.json file is present but does not contain the necessary root file system content section. You should check the image.json file to ensure it is correctly formatted and includes all mandatory properties, especially those related to the root file system. You can use an online JSON validator like jsonlint.com to validate the JSON structure.

To resolve these issues, you should:

  • Verify the presence and correctness of the image.json file in the specified directory.
  • Ensure that the tcbuild.yaml configuration file correctly references the location of the Toradex Easy Installer image.
  • Validate the JSON structure of the image.json file to ensure it complies with the required format and includes all necessary sections.

If the problem persists, consider reaching out to the Toradex TorizonCore support team with the provided stack trace for further assistance.

Please, also check if these links can help you solve your problem:

Install TorizonCore Builder file not found error (when working with device tree overlays).

Hi @Jai8877

For us to be able to help you, you need to provide some basic information of what you are trying to do.

  • What Toradex module are you using?

  • Which is the specific version of Torizon you are trying to use as the input?

  • Which image customization you added?

  • Can you also provide the tcbuild.yaml file?

Hello Torodex Team,

Thanks for your email.

We are using the Verdin iMX8M Mini
I would like to add Acontis Technologies base image
I tried to download the image and put it in the local file, but it didn’t work.

orizoncore-builder build
Building image as per configuration file ‘tcbuild.yaml’…

=>> Handling input section
Copying Toradex Easy Installer image.
Unpacking TorizonCore Toradex Easy Installer image.
Error: No root file system content section found in <_io.TextIOWrapper name=‘/storage/tezi/image.json’ mode=‘r’ encoding=‘UTF-8’>

I tried to download directly from
https://artifacts.toradex.com:443/artifactory/oe-3rdpartyprod/Verdin-iMX8MM_acontis-ecmaster-rt-Tezi_5.1.0_V3.1.1.01
Getting error enable to complete.

My yaml file:

Note : I tried only one option not two options at the same time.
I also tried with other images but same result

>> NOTES:

>> Lines containing “>>” are simply comments explaining the properties that

>> follow; if you don’t like these comments run:

>> $ grep -v ‘>>’ tcbuild.yaml > tcbuild-clean.yaml

>> A line not containing “>>” can be uncommented (by removing the hash mark

>> plus a space from its beginning); also set the corresponding property to

>> appropriate values.

>> When uncommenting a line having a property, remember to uncomment all its

>> parent properties as well; for example: if you uncomment the

>> ‘splash-screen’ property, also uncomment its parent property called

>> ‘customization’.

>> The input section specifies the image to be taken as the base for the

>> customization.

input:

easy-installer:

# >> Choose one of the options (REQUIRED):

# >> (1) Image as local folder or tarball.

local: images/Verdin-iMX8MM_acontis-ecmaster-rt-Tezi_5.1.0_V3.1.1

(if tried like this i am getting error for all reference images like

Error: No root file system content section found in <_io.TextIOWrapper name=‘/storage/tezi/image.json’ mode=‘r’ encoding=‘UTF-8’>)

# >> (2) Remote file (optionally with a filename and or a sha256 checksum):

# remote: "https://artifacts.toradex.com/.../torizon-core-docker-apalis-imx8-Tezi_5.1.0%2Bbuild.1.tar"

remote: "https://artifacts.toradex.com:443/artifactory/oe-3rdpartyprod/Verdin-iMX8MM_acontis-ecmaster-rt-Tezi_5.1.0_V3.1.1.01"

Download incomplete error message

# >> (3) Image specification (URL will be generated by the tool)

# toradex-feed:

#   version: "5.1.0"

#   release: quarterly

#   machine: colibri-imx7-emmc

#   distro: torizon-upstream

#   variant: torizon-core-docker

#   build-number: "1"

#   # build-date: "20210408"

>> If using a Torizon OS image in .wic or .img format, like found in some Common Torizon images,

>> use the option below:

raw-image:

# local: torizon-core-common-docker-dev-intel-corei7-64.wic

# >> (OPTIONAL) specify the filesystem label where rootfs is located in the image.

# >> If not defined it defaults to 'otaroot'

# rootfs-label: otaroot

>> The customization section defines the modifications to be applied to get

>> the desired output image.

customization:

>> Splash screen:

splash-screen: ‘./splash.png’

>> Directories overlayed to the base OSTree

filesystem:

 # - changes/

device-tree:

# >> Directories where to look for include files.

# include-dirs:

  # - device-trees/include/

# >> Custom device tree source:

# custom: device-trees/dts-arm32/imx6ull-colibri-eval-v3.dts

# >> Device-tree overlays configuration:

# overlays:

  # >> Whether to ignore all overlays from the base image (or ostree

  # >> archive in the future).

  # clear: false

  # >> Specific overlays not to use from base image (useful only when

  # >> clear is false and not DT has been selected).

  # remove:

    # - apalis-imx8_hdmi_overlay.dtbo

  # >> Overlays to add to output image.

  # add:

    # - device-trees/overlays/display-edt7_overlay.dts

kernel:

# >> Custom kernel arguments.

# arguments:

  # - key1=val1

  # - key2=val2

# >> Modules to build and possibly load automatically.

# modules:

  # - source-dir: virtual_touchscreen/

  #   autoload: false

>> The output section defines properties of the output image.

output:

>> OSTree deployment configuration (relevant also for raw/Easy Installer output).

ostree:

# branch: my-dev-branch

# commit-subject: "OSTree commit subject"

# commit-body: "OSTree commit body"

>> Choose one of the options (REQUIRED):

>> (1) Parameters for deploying a WIC/raw image.

raw-image:

# >> (REQUIRED) output file/directory of the customized image:

# local: tcb_common_torizon.wic

# >> (OPTIONAL) specify the filesystem label where rootfs is located in the base image.

# >> If not defined it defaults to 'otaroot'.

# base-rootfs-label: otaroot

# >> (OPTIONAL) base image for the output.

# >> If not set it will default to be the same as the input one.

# >> Do not change this unless you know what you're doing.

# base-image:

>> (2) Parameters for deploying to an Easy Installer image.

easy-installer:

# >> Output directory of the customized image (REQUIRED):

local: Acontis Image

# >> Information used by Toradex Easy Installer:

name: "Acontis image"

# description: "My customized image (description)"

# licence: files/custom-licence.html

# release-notes: files/custom-release-notes.html

# accept-licence: true

# autoinstall: true

# autoreboot: true

# bundle:

  # >> Choose one of the options:

  # >> (1) Specify a docker-compose file whose referenced images will be downloaded.

  # >>     Properties platform, username, password, registry and ca-certificate are optional.

  # compose-file: files/docker-compose.yml

  # platform: linux/arm/v7

  # username: "${USERNAME}"

  # password: "${PASSWORD}"

  # registry: hub.docker.com

  # ca-certificate: cacert.pem

  # >> (2) Specify a local directory containing the bundled images (previously

  # >>     obtained by 'torizoncore-builder bundle' command).

  # dir: bundle/

# >> Provisioning configuration:

# provisioning:

  # >> For "online" mode, properties "shared-data" and "online-data" must be specified.

  # >> For "offline" mode, property "shared-data" must be specified alone.

  # mode: "online"

  # shared-data: "shared-data.tar.gz"

  # online-data: "${ONLINE_PROVISIONING_DATA:?online provisioning data not supplied}"

  # >> Provision in hibernated mode. In this state devices are registered, but

  # >> cannot send/receive data to/from Torizon Cloud, and they're not counted

  # >> towards a subscription.

  # hibernated: false

Please give me solution to fix this problem. If you need further information please let me know.

Thank you

With regards,

Jayaprakash

Hello Torodex Team,

Thanks for your email.

We are using the Verdin iMX8M Mini
I would like to add Acontis Technologies base image
I tried to download the image and put it in the local file, but it didn’t work.

orizoncore-builder build
Building image as per configuration file ‘tcbuild.yaml’…

=>> Handling input section
Copying Toradex Easy Installer image.
Unpacking TorizonCore Toradex Easy Installer image.
Error: No root file system content section found in <_io.TextIOWrapper name=‘/storage/tezi/image.json’ mode=‘r’ encoding=‘UTF-8’>

I tried to download directly from
https://artifacts.toradex.com:443/artifactory/oe-3rdpartyprod/Verdin-iMX8MM_acontis-ecmaster-rt-Tezi_5.1.0_V3.1.1.01
Getting error enable to complete.

My yaml file:

Note : I tried only one option not two options at the same time.
I also tried with other images but same result

# >> NOTES:
# >> Lines containing ">>" are simply comments explaining the properties that
# >> follow; if you don't like these comments run:
# >>   $ grep -v '>>' tcbuild.yaml > tcbuild-clean.yaml
# >> A line not containing ">>" can be uncommented (by removing the hash mark
# >> plus a space from its beginning); also set the corresponding property to
# >> appropriate values.
# >> When uncommenting a line having a property, remember to uncomment all its
# >> parent properties as well; for example: if you uncomment the
# >> 'splash-screen' property, also uncomment its parent property called
# >> 'customization'.

# >> The input section specifies the image to be taken as the base for the
# >> customization.
input:
  easy-installer:
    # >> Choose one of the options (REQUIRED):
    # >> (1) Image as local folder or tarball.
    local: images/Verdin-iMX8MM_acontis-ecmaster-rt-Tezi_5.1.0_V3.1.1

**(if tried like this i am getting error for all reference images like**

**Error: No root file system content section found in <_io.TextIOWrapper name=‘/storage/tezi/image.json’ mode=‘r’ encoding=‘UTF-8’>)**

    # >> (2) Remote file (optionally with a filename and or a sha256 checksum):
    # remote: "https://artifacts.toradex.com/.../torizon-core-docker-apalis-imx8-Tezi_5.1.0%2Bbuild.1.tar"
    remote: "https://artifacts.toradex.com:443/artifactory/oe-3rdpartyprod/Verdin-
iMX8MM_acontis-ecmaster-rt-Tezi_5.1.0_V3.1.1.01"

**Download incomplete error message**

    # >> (3) Image specification (URL will be generated by the tool)
    # toradex-feed:
    #   version: "5.1.0"
    #   release: quarterly
    #   machine: colibri-imx7-emmc
    #   distro: torizon-upstream
    #   variant: torizon-core-docker
    #   build-number: "1"
    #   # build-date: "20210408"
  # >> If using a Torizon OS image in .wic or .img format, like found in some Common Torizon images,
  # >> use the option below:
  # raw-image:
    # local: torizon-core-common-docker-dev-intel-corei7-64.wic
    # >> (OPTIONAL) specify the filesystem label where rootfs is located in the image.
    # >> If not defined it defaults to 'otaroot'
    # rootfs-label: otaroot

# >> The customization section defines the modifications to be applied to get
# >> the desired output image.
# customization:
  # >> Splash screen:
  # splash-screen: './splash.png'
  # >> Directories overlayed to the base OSTree
  # filesystem:
     # - changes/
  # device-tree:
    # >> Directories where to look for include files.
    # include-dirs:
      # - device-trees/include/
    # >> Custom device tree source:
    # custom: device-trees/dts-arm32/imx6ull-colibri-eval-v3.dts
    # >> Device-tree overlays configuration:
    # overlays:
      # >> Whether to ignore all overlays from the base image (or ostree
      # >> archive in the future).
      # clear: false
      # >> Specific overlays not to use from base image (useful only when
      # >> clear is false and not DT has been selected).
      # remove:
        # - apalis-imx8_hdmi_overlay.dtbo
      # >> Overlays to add to output image.
      # add:
        # - device-trees/overlays/display-edt7_overlay.dts
  # kernel:
    # >> Custom kernel arguments.
    # arguments:
      # - key1=val1
      # - key2=val2
    # >> Modules to build and possibly load automatically.
    # modules:
      # - source-dir: virtual_touchscreen/
      #   autoload: false

# >> The output section defines properties of the output image.
output:
  # >> OSTree deployment configuration (relevant also for raw/Easy Installer output).
  # ostree:
    # branch: my-dev-branch
    # commit-subject: "OSTree commit subject"
    # commit-body: "OSTree commit body"
  # >> Choose one of the options (REQUIRED):
  # >> (1) Parameters for deploying a WIC/raw image.
  # raw-image:
    # >> (REQUIRED) output file/directory of the customized image:
    # local: tcb_common_torizon.wic
    # >> (OPTIONAL) specify the filesystem label where rootfs is located in the base image.
    # >> If not defined it defaults to 'otaroot'.
    # base-rootfs-label: otaroot
    # >> (OPTIONAL) base image for the output.
    # >> If not set it will default to be the same as the input one.
    # >> Do not change this unless you know what you're doing.
    # base-image:
  # >> (2) Parameters for deploying to an Easy Installer image.
  easy-installer:
    # >> Output directory of the customized image (REQUIRED):
    local: Acontis Image
    # >> Information used by Toradex Easy Installer:
    name: "Acontis image"
    # description: "My customized image (description)"
    # licence: files/custom-licence.html
    # release-notes: files/custom-release-notes.html
    # accept-licence: true
    # autoinstall: true
    # autoreboot: true
    # bundle:
      # >> Choose one of the options:
      # >> (1) Specify a docker-compose file whose referenced images will be downloaded.
      # >>     Properties platform, username, password, registry and ca-certificate are optional.
      # compose-file: files/docker-compose.yml
      # platform: linux/arm/v7
      # username: "${USERNAME}"
      # password: "${PASSWORD}"
      # registry: hub.docker.com
      # ca-certificate: cacert.pem
      # >> (2) Specify a local directory containing the bundled images (previously
      # >>     obtained by 'torizoncore-builder bundle' command).
      # dir: bundle/
    # >> Provisioning configuration:
    # provisioning:
      # >> For "online" mode, properties "shared-data" and "online-data" must be specified.
      # >> For "offline" mode, property "shared-data" must be specified alone.
      # mode: "online"
      # shared-data: "shared-data.tar.gz"
      # online-data: "${ONLINE_PROVISIONING_DATA:?online provisioning data not supplied}"
      # >> Provision in hibernated mode. In this state devices are registered, but
      # >> cannot send/receive data to/from Torizon Cloud, and they're not counted
      # >> towards a subscription.
      # hibernated: false

Please give me solution to fix this problem. If you need further information please let me know.

Thank you

With regards,

Jayaprakash
tcbuild.yaml (5.6 KB)

Hi @Jai8877

The TorizonCore Builder tool is a tool to customize Torizon OS images, so it won’t work for 3rd party images.

To customize the acontis image, you need to use Yocto.