Custom Torizoncore build disabling HDMI output

I am using torizoncore-builder to build an image which has some minor customizations. Typically in our application we don’t use a display so most of my development and use has been without a display. I was suprised to find that the HDMI output doesnt work using my custom torizoncore image. but hdmi works fine during tezi or stock torizoncore build.

below is my tcbbuild file. its mainly stock with minor changes.

# >> 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: torizon-core-docker-apalis-imx8-Tezi_5.5.0+build.11.tar
    # >> (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/.../torizon-core-docker-colibri-imx6-Tezi_5.0.0-devel-202009%2Bbuild.2.tar;filename=torizon-core-docker-colibri-imx6-Tezi_5.0.0-devel-202009+build.2.tar;sha256sum=368595fa3fb00af9604e70311de3b04df6b30b280deec2f8918c46f479026ddb"
    # >> (3) Image specification (URL will be generated by the tool)
    # toradex-feed:
    #   version: "5.3.0"
    #   release: quarterly
    #   machine: colibri-imx7-emmc
    #   distro: torizon-upstream
    #   variant: torizon-core-docker
    #   build-number: "1"
    #   # build-date: "20210408"

# >> The customization section defines the modifications to be applied to get
# >> the desired output image.
customization:
  # >> Splash screen:
  splash-screen: wtr_splash.png
  # >> Directories overlayed to the base OSTree
  filesystem:
       - changes_20220310/
  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/apalis-imx8_pcie_disable.dts
  # kernel:
    # >> Custom kernel arguments.
    # arguments:
      # - key1=val1
      # - key2=val2
    # >> Modules to build and possibly load automatically.
    # modules:
      # - source-dir: virtual_touchscreen/
      #   autoload: no

# >> The output section defines properties of the output image.
output:
  # >> OSTree deployment configuration (relevant also for Easy Installer output).
  #ostree:
    #branch: Cleanbot-Tezi_5.4.0+build.10.CUSTOM
    # commit-subject: "OSTree commit subject"
    # commit-body: "OSTree commit body"
  # >> Parameters for deploying to an Easy Installer image.
  easy-installer:
    # >> Output directory of the customized image (REQUIRED):
    local: Cleanbot-Tezi_5.5.0+build.11.CUSTOM
    # >> Information shown by Toradex Easy Installer:
    name: "Cleanbot TorizonCore 5.5.0 "
    description: "Torizoncore 5.5.0 +build.11 customized for Cleanbot: No Conainters"
    # licence: files/custom-licence.html
    # release-notes: files/custom-release-notes.html
    #bundle:
      # >> Choose one of the options:
      # >> (1) Specify a docker-compose file whose referenced images will be downloaded.
      # >>     Properties platform, username, password and registry are optional.
      #compose-file: files/docker-compose.yml
      # platform: linux/arm/v7
      # username: "${USERNAME}"
      # password: "${PASSWORD}"
      # registry: hub.docker.com
      # >> (2) Specify a local directory containing the bundled images (previously
      # >>     obtained by 'torizoncore-builder bundle' command).
      # dir: bundle/

main changes we do is to free up the GPIO7

//free up GPIO7.

/dts-v1/;
/plugin/;
/ {
	compatible = "toradex,apalis-imx8";
};

&pciea{
       status="disabled";
};

&reg_pcie_switch{
        status="disabled";
};

changes directory file listing- its mainly the IP setting of network interface and fstab file that is changed.

njha@comp:~/tcbworkdir/changes_20220310$ ls -R
.:
usr

./usr:
etc

./usr/etc:
NetworkManager  fstab  group  gshadow  ipk-postinsts  shadow

./usr/etc/NetworkManager:
system-connections

./usr/etc/NetworkManager/system-connections:
network0.nmconnection

./usr/etc/ipk-postinsts:

when i got the changes from the running module it did not have a display connected to it. Could this cause it thought i thought hdmi should be detect normally when a display is connected or not.

as my image doesn’t really contain anything proprietary i can upload it if needed to be investigated.

apalis imx8qm 1.1B and 1.1C on two separate ixora carrier boards.

Greetings @nkj,

I was able to confirm the same thing on my end. When using the build command of torizoncore-builder it seems pre-existing overlays (like the HDMI overlay) are removed by default.

However, if you the clear: false property under overlays then it seems like the HDMI overlay is preserved. Which is odd since false should be the default value of clear should be false anyways, according to the documentation

Please use this workaround for now while I report the issue. Thank you for bringing this to our attention.

Best Regards,
Jeremias

sorry i havent gotten it to work.
i tried setting the clear to false but this doesnt seem to do anything. i am using torizon-core-docker-apalis-imx8-Tezi_5.5.0+build.11.tar as my base image

  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/apalis-imx8_pcie_disable.dts

This is the tcbuild.yaml I’m using:

input:
  easy-installer:
    local: tezi/torizon-core-docker-apalis-imx8-Tezi_5.5.0+build.11

customization:
  device-tree:
    include-dirs:
       - device-trees/include/
    overlays:
      clear: false
      add:
        - device-trees/overlays/apalis-imx8_pcie_disable.dts

output:
  easy-installer:
    local: Cleanbot-Tezi_5.5.0+build.11.CUSTOM
    name: "Cleanbot TorizonCore 5.5.0 "
    description: "Torizoncore 5.5.0 +build.11 customized for Cleanbot: No Conainters"

I’m copying the overlay you provided as well. The image created from this has HDMI working when I flash the image to my Apalis i.MX8. Are you saying this isn’t the case for you?

Best Regards,
Jeremias

i had some more look into. the HDMI overlay is enabled in the overlays.txt

the hdmi works when i explicitly start a weston container. but the bootup splash screen or the basic linux text console doesn’t appear. was there any change done on torizon that disabled this ?

Well actually due to technical reasons splash screen isn’t supported on the Apalis i.MX8 specifically as documented here: Splash Screen on TorizonCore | Toradex Developer Center

As for the linux console this was disabled due to this change here: torizon.bbclass: disable kernel logs in the virtual terminal · toradex/meta-toradex-torizon@c478628 · GitHub

Best Regards,
Jeremias

Hi jeremias

thanks for the clarification. not sure how i missed that the imx8 doesnt support the splashscreen.

regards,

Glad I could help clarify.