Aquila AM69 and the DSI-to-HDMI adapter

I opened a ticket on this back in April, but never got resolution. Started another just now as well.

Has anyone gotten the aquila-am69 to work via the DSI-to-HDMI adapter?

I have no issue using the display port (via a display port to hdmi adapter) on the dev board using the weston-am69:stable-rc and chromium-am69:rc-stable docker images.

As soon as I enable the aquila-am69_dsi-to-hdmi_overlay.dtbo overlay (along with the aquila-am69_spi1_spidev_overlay.dtbo and aquila-am69_spi2_spidev_overlay.dtbo also) the display port no longer works, and no DRM devices are found on HDMI either.

Weston finds no display to use, and promptly dies.

My custom board uses the same dsi-to-hdmi, and has no display port. So long term display port is really not an option here.

In April, I was given a set of 4 kernel patches, that didn’t do anything at the time. And now they won’t apply against the latest version.

Anyone have any success with this particular issue?

I have another product working just fine that is imx8mp based (using native HDMI that is supported on that SOM), including a custom device tree along the way. This just seem to not work on the am69 right now.

Hi, I’m the Toradex AI Assistant.

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


DSI-to-HDMI Overlay Support on Aquila AM69

Based on the official Toradex documentation, the aquila-am69_dsi-to-hdmi_overlay.dtbo is indeed supported for the Aquila AM69 module(1). The overlay is available starting from BSP 7.1.0 and should enable HDMI output through the DSI-to-HDMI adapter(1).

Current Configuration Status

The documentation confirms that for Aquila AM69, the following overlays are available(1):

  • DSI to HDMI: aquila-am69_dsi-to-hdmi_overlay.dtbo (starting from version 7.1.0)
  • SPI devices: aquila-am69_spi1_spidev_overlay.dtbo and aquila-am69_spi2_spidev_overlay.dtbo

Troubleshooting Steps

Since you’re experiencing issues where Weston cannot find displays after enabling the DSI-to-HDMI overlay, here are some diagnostic approaches:

  1. Verify Overlay Application

    • Confirm the overlay is properly applied by checking the device tree at runtime
    • Ensure you’re using the correct BSP version (7.1.0 or later)
  2. Check DRM Device Detection

    • Use modetest -M imx-drm to verify available display connectors
    • Look for DSI encoder types in the output
  3. Weston Configuration

    • Ensure your Weston configuration matches the expected display output
    • The DSI-to-HDMI should provide a different connector than the native DisplayPort
  4. Container Compatibility

    • Verify that the weston-am69:stable-rc container is compatible with DSI-to-HDMI output
    • Check if any specific environment variables or device mappings are required

Known Considerations

The documentation shows that DSI-to-HDMI functionality is supported on multiple Toradex modules including the Aquila AM69(1). However, enabling DSI overlays typically disables conflicting display interfaces, which explains why your DisplayPort stops working when the DSI overlay is enabled.

Since you mentioned receiving kernel patches in April that didn’t resolve the issue, this suggests there may be ongoing development work on this specific configuration. The fact that your iMX8MP-based product works correctly indicates the DSI-to-HDMI adapter itself is functional.

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 @TxSpace,

What carrier board and what version of the carrier board are you using in this case?

The issue with the DSI to HDMI adapter, on the Aquila development board was due to a hardware oversight. The next revision of this carrier board (V1.3) should resolve this issue with the DSI to HDMI adapter.

Best Regards,
Jeremias

I’m using the Aquila Development board, version 1.2B.

We used the schematics from that to build the DSI-to-HDMI circuit onto our custom carrier board.

Please give me as much detail as possible, so we can know if our carrier board needs the same revision.

Yeah if you used V1.2 as a basis then probably the same, or similar issue is present.

I believe it would be this issue detailed here: Aquila Development Board Issue Tracker

Best Regards,
Jeremias

  1. Can I get a copy of the modified device tree overlay?
  2. On the dev board, where are the jumper wires going to to match that overlay?

This seems easy enough to do with our current dev board. We will see if there’s something we can do temporarily on our carrier as well before we rev it to match.

Edit: Ok, from that link I see the 1.3 schematics. Looks like a TCA9543 I2C switch…

Still, for the work around, detailed instructions would be very helpful to us.

Our next question is why the work around is to use 2 I2C busses, and not just change the address on the EEPROM on the DSI to HDMI circuit to something other than 50? Seems like that would be a whole lot easier…

Looking at things it seems that’s the address conflict, between that EEPROM and the HDMI display itself both trying to use 50.

If we did that, where in the device tree is this eeprom listed? It’s not in the dsi-to-hdmi overlay.

I see an eeprom (same chip even) at that address in the main k3-am69-aquila.dtsi, but on wkup_i2c0, not main_i2c0 where the dsi-to-hdmi lives.

Can I get a copy of the modified device tree overlay?

I don’t believe the modified device tree overlay mentioned in the issue tracker actually exists. It was more of a theoretical “you could do this” type of suggestion.

Unless you’re asking the dsi-to-hdmi overlay that will be used on the 1.3 carrier board in which case this is it: aquila-am69_dsi-to-hdmi_overlay.dts « overlays - device-tree-overlays.git - Sources for Device Tree Overlays

The only thing that changed here between the 1.2 and 1.3 is this commit: device-tree-overlays.git - Sources for Device Tree Overlays

Basically it just reassigns the i2c nodes to use the “new” i2c nodes creates by the i2c switch. As per the issue tracker the adapter itself is under the new i2c_dsi_0 node. While the ddc is connected to the new i2c_dsi_1. Which avoids the conflict that was happening before.

If you pursue the workaround as written a similar idea would be done. You’d be routing the I2C_3 signals from the adapter to a different i2c bus with no address conflict. You’d then change the device tree to point to whatever new i2c bus you re-routed the signals too. The ddc can just remain on the original I2C_3 (main_i2c0 in the device tree).

Ok, from that link I see the 1.3 schematics. Looks like a TCA9543 I2C switch…

Correct, the team opted for an i2c switch to essentially separate the devices with the conflicting addresses.

Our next question is why the work around is to use 2 I2C busses, and not just change the address on the EEPROM on the DSI to HDMI circuit to something other than 50? Seems like that would be a whole lot easier…

Our hardware team would have the full explanation. But, one clear reason would be for compatibility. The DSI to HDMI adapter is used on more than just the Aquila AM69. If the address changed, then the device trees/software of other devices would need to be changed as well for the new address.

This would be quite confusing as many customers would still have the old adapter with the 0x50 address. Meaning there would be 2 versions of the adapter with different addresses that are not software compatible. This would be confusing for many and break already established use-cases.

The solution with the i2c switch makes it so that only the Aquila AM69 needs to be changed. All the other devices that use the DSI to HDMI adapter can use their existing software as is.

If we did that, where in the device tree is this eeprom listed? It’s not in the dsi-to-hdmi overlay.

I don’t believe the EEPROM for the adapter is anywhere in the device tree. Seeing as we use the EEPROM as is with it’s default settings. I’m not even sure if the EEPROM on the DSI to HDMI adapter is something that is even device tree configurable in that way.

I see an eeprom (same chip even) at that address in the main k3-am69-aquila.dtsi, but on wkup_i2c0, not main_i2c0 where the dsi-to-hdmi lives.

Yeah that appears to be the EEPROM for the module itself not the adapter, something entirely different.

Best Regards,
Jeremias

Ok, so I guess we’ll still try the workaround. It seems the device trees in the latest build already have this modification on that overlay to use the switch. We certainly see traffic on the I2C bus to 0x70 (switch address).

I’ve pulled the jumpers on AQUILA B40 and B41, and set wire jumpers from the board side to route to I2C_6 (AQUILA C18 and C19). Hopefully nothing is going on there already (it wasn’t in the april device tree I’m looking at).

I’ll try to get this going with a custom overlay, but it’s going to take me a little while.

Do let us know if there’s any further questions related to this topic.

Best Regards,
Jeremias

So far after 2 days of revisions I still can’t get the split bus thing to work on my 1.2 dev board.

One of the latest overlays I’m trying looks like this:

    // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
    /*
    * Copyright 2024 Toradex
    */

    // Toradex DSI to HDMI Adapter on Aquila DSI_1 - Board v1.2a (no mux)

    /dts-v1/;
    /plugin/;

    #include <dt-bindings/gpio/gpio.h>

    / {
        compatible = "toradex,aquila-am69";
    };

    &{/} {
        hdmi-connector {
            compatible = "hdmi-connector";
            pinctrl-names = "default";
            pinctrl-0 = <&pinctrl_pwm3_dsi_gpio>;
            /* DDC on main_i2c1 via hardware rerouting */
            ddc-i2c-bus = <&main_i2c1>;
            /* Aquila PWM_3_DSI (AQUILA B46) */
            hpd-gpios = <&main_gpio0 33 GPIO_ACTIVE_HIGH>;
            label = "hdmi";
            type = "a";

            port {
                hdmi_connector_in: endpoint {
                    remote-endpoint = <&lt8912_1_out>;
                };
            };
        };
    };

    &dphy_tx0 {
        status = "okay";
    };

    &dsi0 {
        status = "okay";
    };

    &dsi0_ports {
        #address-cells = <1>;
        #size-cells = <0>;

        /* Port 0: OUTPUT to bridge */
        port@0 {
            reg = <0>;

            dsi0_out: endpoint {
                data-lanes = <1 2 3 4>;
                remote-endpoint = <&lt8912_1_in>;
            };
        };

        /* Port 1: INPUT from display controller */
        port@1 {
            reg = <1>;

            dsi0_in: endpoint {
                remote-endpoint = <&dpi2_out>;
            };
        };
    };

    &dss_ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@2 {
            reg = <2>;

            dpi2_out: endpoint {
                remote-endpoint = <&dsi0_in>;
            };
        };
    };

    /* Aquila PWM_3_DSI */
    &main_ehrpwm5 {
        status = "disabled";
    };

    /* Enable main_i2c1 for DDC */
    &main_i2c1 {
        status = "okay";
        clock-frequency = <100000>;
    };

    /* I2C on DSI Connector Pin #4 and #6 - directly on main_i2c0 (no mux on v1.2a) */
    &main_i2c0 {
        #address-cells = <1>;
        #size-cells = <0>;
        status = "okay";

        /* Disable the non-existent mux */
        i2c-mux@70 {
            status = "disabled";
        };

        hdmi@48 {
            compatible = "lontium,lt8912b";
            reg = <0x48>;
            pinctrl-names = "default";
            pinctrl-0 = <&pinctrl_gpio_20_dsi_1>;
            /* Aquila GPIO_20_DSI_1 (AQUILA B45) */
            reset-gpios = <&main_gpio0 18 GPIO_ACTIVE_LOW>;

            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0>;

                    lt8912_1_in: endpoint {
                        data-lanes = <1 2 3 4>;
                        remote-endpoint = <&dsi0_out>;
                    };
                };

                port@1 {
                    reg = <1>;

                    lt8912_1_out: endpoint {
                        remote-endpoint = <&hdmi_connector_in>;
                    };
                };
            };
        };
    };

But still no display.

To match this I have the DSI adapter pass through pins routed to the I2C_4 lines on pins A12 and A13 (main_i2c1).

It can read EDID of the display, but problems persist in getting the lt8912 ports defined properly. No matter what I try in this overlay, I can’t seem to make any change in the output mapping.

Is this a thing a more knowledgable person at toradex can take a look at, since this is their suggested work around?

Also, has the 1.3 board been tested that this actually works? The overlay in the latest code already assumes there’s a mux there (mine has to disable it)… but before we try that on our board here (ordering parts now), it would be nice to know that you guys have actually tested that this design change works. When can I get a 1.3 for testing?

To match this I have the DSI adapter pass through pins routed to the I2C_4 lines on pins A12 and A13 (main_i2c1).

Just to clarify, do you mean you routed the HDMI DDC to main_i2c1? In your overlay that’s what it looks like, meanwhile the DSI to HDMI bridge is still on main_i2c0. Was this a typo?

It can read EDID of the display, but problems persist in getting the lt8912 ports defined properly.

How did you determine the issue was with the ports of the DSI to HDMI bridge? Are you seeing some kind of logs or readings somewhere that would indicate this?

Is this a thing a more knowledgable person at toradex can take a look at, since this is their suggested work around?

I’ll ask the hardware team who originally wrote the documented workaround.

Also, has the 1.3 board been tested that this actually works?

Yes this has been tested by our development team when the change went into the device tree.

When can I get a 1.3 for testing?

I’ll need to check, this revision is relatively new meaning availability may be limited currently.

For what it’s worth I just tested the documented workaround myself and it works as documented.

On my V1.2 Aquila dev board I removed the jumpers between I2C_3_DSI1_SCL_B/AQUILA_B41 and I2C_3_DSI1_SDA_B/AQUILA_B40. Then using a jumper wire I connected I2C_3_DSI1_SCL_B to AQUILA_A13, and I2C_3_DSI1_SDA_B to AQUILA_A12. These correlate to main_i2c1 in the device tree.

To verify the connection I use i2cdetect:

torizon@aquila-am69-12593482:~$ i2cdetect -y -r 4
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- 48 49 4a 4b -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

As seen, I can see a device at address 48 on I2C_4 (main_i2c) which correlates to the DSI to HDMI bridge address. Furthermore, if I remove the jumper wires these devices go away. So I know the jumper connection is good.

I then use the following overlay:

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright 2024 Toradex
 */

// Toradex DSI to HDMI Adapter on Aquila DSI_1.

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
        compatible = "toradex,aquila-am69";
};

&{/} {
        hdmi-connector {
                compatible = "hdmi-connector";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_pwm3_dsi_gpio>;
                /* I2C on DSI Connector Pin #52 and #54 */
                ddc-i2c-bus = <&main_i2c0>;
                /* Aquila PWM_3_DSI (AQUILA B46) */
                hpd-gpios = <&main_gpio0 33 GPIO_ACTIVE_HIGH>;
                label = "hdmi";
                type = "a";

                port {
                        hdmi_connector_in: endpoint {
                                remote-endpoint = <&lt8912_1_out>;
                        };
                };
        };
};

&dphy_tx0 {
        status = "okay";
};

&dsi0 {
        status = "okay";
};

&dsi0_ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@0 {
                reg = <0>;

                dsi0_out: endpoint {
                        remote-endpoint = <&lt8912_1_in>;
                };
        };

        port@1 {
                reg = <1>;

                dsi0_in: endpoint {
                        remote-endpoint = <&dpi2_out>;
                };
        };
};

&dss_ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@2 {
                reg = <2>;

                dpi2_out: endpoint {
                        remote-endpoint = <&dsi0_in>;
                };
        };
};

/* Aquila PWM_3_DSI */
&main_ehrpwm5 {
        /* Aquila PWM_3_DSI (AQUILA B46) is used as HDMI HPD / GPIO, disable to avoid conflicts */
        status = "disabled";
};

/* I2C on DSI Connector Pin #4 and #6 */
&main_i2c1 {
        #address-cells = <1>;
        #size-cells = <0>;
        status = "okay";

        hdmi@48 {
                compatible = "lontium,lt8912b";
                reg = <0x48>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_gpio_20_dsi_1>;
                /* Aquila GPIO_20_DSI_1 (AQUILA B45) */
                reset-gpios = <&main_gpio0 18 GPIO_ACTIVE_LOW>;

                ports {
                        #address-cells = <1>;
                        #size-cells = <0>;

                        port@0 {
                                reg = <0>;

                                lt8912_1_in: endpoint {
                                        data-lanes = <1 2 3 4>;
                                        remote-endpoint = <&dsi0_out>;
                                };
                        };

                        port@1 {
                                reg = <1>;

                                lt8912_1_out: endpoint {
                                        remote-endpoint = <&hdmi_connector_in>;
                                };
                        };
                };
        };
};

So I have the HDMI ddc on main_i2c0 as is the case on the V1.2 carrier board. I then map the DSI to HDMI bridge to main_i2c1 which matches the re-routing I just did via jumper wires.

I deployed this overlay and ran a graphical container, and I was able to get output via the DSI to HDMI connector. I think it’s safe to say the workaround is accurate as written, at least when applied to the V1.2 Aquila dev board.

Best Regards,
Jeremias

Ok, I had the jumper wires on I2C_3_A, rather than B like you did. So I swapped that around, and then ran your overlay.

It’s still not working for me. I see you’re not disabling the mux, which is in the 7.4.0 sources I’m working with now. So can you tell me which versions you’re building against?

When I run i2cdetect on the same numbered bus I get:

**torizon@aquila-am69-12593476**:**\~**$ i2cdetect -y -r 4 
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f 
00:                         -- -- -- -- -- -- -- --  
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
40: -- -- -- -- -- -- -- -- UU UU 4a 4b -- -- -- --  
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  
70: -- -- -- -- -- -- -- --  

48 is listed as UU

We now have presumably the same hardware and overlay. The only other thing I can think of is the OS itself.

I built a version from source (just to add chrony), and use that as the basis in core builder with this file:

input:
easy-installer:
    local: torizon-docker-aquila-am69-Tezi_7.4.0-devel-20251015223357+build.0.tar

customization:
splash-screen: txspace-splash-screen.png
device-tree:
    include-dirs:
    - linux/include/
    - device-trees/include/
    #custom: linux/arch/arm64/boot/dts/ti/k3-am69-aquila-v1.0-dev.dts
    overlays:
    add:
        - device-trees/overlays/aquila-am69_dsi-to-hdmi_tdx_fix_overlay.dts
        #- device-trees/overlays/aquila-am69_spi1_spidev_overlay.dts
        #- device-trees/overlays/aquila-am69_spi2_spidev_overlay.dts
#kernel:
    #arguments:
    # - video=HDMI-A-1:800x480@60.0

output:
easy-installer:
    local: torizon-docker-aquila-am69-Tezi_7.4.0q
    name: "TxSpace Torizon Image"
    description: "TxSpace Torizon Image"
    accept-licence: true
    autoinstall: true

If I git status the device-trees folder I get:
On branch toradex_ti-linux-6.6.y
Your branch is up to date with ‘origin/toradex_ti-linux-6.6.y’.
Which shouldn’t really matter since the only one I’m adding is the one you just gave me. and isn’t in the repos anyways.

And on the linux folder:

On branch toradex_ti-linux-6.6.y
Your branch is up to date with ‘origin/toradex_ti-linux-6.6.y’.

Which probably does matter greatly, since that’s where the base device trees are coming from. for tcb as I understand it.

And when I built from source, it spewed this version info at me:

Build Configuration:
BB_VERSION           = "2.8.1"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "arm-tdx-eabi"
MACHINE              = "aquila-am69-k3r5"
DISTRO               = "torizon"
DISTRO_VERSION       = "7.4.0-devel-20251016175547+build.0"
TUNE_FEATURES        = "arm armv7a vfp thumb callconvention-hard"
TARGET_FPU           = "hard"
meta-toradex-torizon = "HEAD:edbcb811140bd5b902b814afdbc468508c8365c5"
meta-toradex-security = "HEAD:01731e3c8acdd56911bc865a133b2af6073c494b"
meta-toradex-distro  = "HEAD:ef66ecad7e4d4339115fb494ee325630e80940e2"
meta-toradex-bsp-common = "HEAD:bf9b67ca1dae378c612ba9fc89e491a11b314e05"
meta-tpm             = "HEAD:bc865c5276c2ab4031229916e8d7c20148dfbac3"
meta-oe              
meta-networking      
meta-filesystems     
meta-python          
meta-perl            = "HEAD:e621da947048842109db1b4fd3917a02e0501aa2"
meta-virtualization  = "HEAD:151273b120117468e70733020b6db864d8180c0b"
meta-updater         = "HEAD:b275153c9c8ea09e27d41db9f2faba3ebf92d2c2"
meta-cyclonedx       = "HEAD:0c0c387bb841335581e5b30c999027cad29d4e04"
meta-toradex-nxp     = "HEAD:5aaa24b977db19e5096ade3e0258db19933aba16"
meta-freescale       = "HEAD:62423c69631d7f7cffe2bd20997412d76caa94ef"
meta-freescale-3rdparty = "HEAD:70c83e96c7f75e73245cb77f1b0cada9ed4bbc6d"
meta-yocto-bsp       
meta-poky            = "HEAD:82602cda1a89644d1acbe230a81c93e3fb5031c8"
meta-security        = "HEAD:bc865c5276c2ab4031229916e8d7c20148dfbac3"
meta-toradex-ti      = "HEAD:0e50c759b1e509c2b97b305916702acad3a7f734"
meta-arm-toolchain   
meta-arm             = "HEAD:0f1e7bf92c89759f0ab74cfa5be4ee47b092ad46"
meta-ti-bsp          
meta-ti-extras       = "HEAD:9a30c7b97a979fa66cb22b2c2ce1d3b7d466ee24"
meta                 = "HEAD:4cf131ebd157b79226533b5a5074691dd0e1a4ab"
meta-customer        = "main:cbf8d5566d601e422133ad71eb7f3909e33f0930"

It’s still not working for me. I see you’re not disabling the mux, which is in the 7.4.0 sources I’m working with now. So can you tell me which versions you’re building against?

I’m also building on 7.4.0. For sure my software version has the changes related to the mux, seeing as the mux change was added to the base device tree back in May, which predates 7.4.0.

The reason I didn’t disable the mux, is cause it was pointless in my perspective. My V1.2 carrier board physically doesn’t have the i2c mux anyways, so disabling/enabling it makes no difference.

48 is listed as UU

Okay so UU means that the device at this address is being used by a Linux driver. This is good and expected as the driver for the DSI to HDMI bridge should be using this device. Do you have any logs from dmesg or anything that could suggest anything else wrong? Try looking for messages related to hdmi, or lt8912b (the bridge driver), or i2c even.

It’s still not working for me.

By the way how did you determine this exactly? Are you running some graphical application to verify?

Best Regards,
Jeremias

I’m running this docker-compose to test with. It works fine when I don’t use any dsi-to-hdmi overlay and use the display port on this same monitor:

services:

weston:
    container_name: weston
    environment:
    - ACCEPT_FSL_EULA=1
    volumes:
    - /sys:/sys
    - /run:/run
    - /dev:/dev
    - /tmp:/tmp
    - /run/udev/:/run/udev/
    network_mode: host
    cap_add:
    - CAP_SYS_TTY_CONFIG
    device_cgroup_rules:
    - c 4:* rmw
    - c 13:* rmw
    - c 199:0 rmw
    - c 10:223 rmw
    - c 226:* rmw
    - c 253:* rmw
    image: torizon/weston-am69:stable-rc
    command: --tty=/dev/tty7

chromium:
    container_name: kiosk
    volumes:
    - /tmp:/tmp
    - /var/run/dbus:/var/run/dbus
    - /dev:/dev
    - /dev/galcore:/dev/galcore
    device_cgroup_rules:
    - c 81:* rmw
    - c 199:* rmw
    - c 226:* rmw
    - c 234:* rmw
    - c 235:* rmw
    - c 253:* rmw
    security_opt:
    - seccomp=unconfined
    shm_size: 512mb
    image: torizon/chromium-am69:stable-rc
    command: --virtual-keyboard http://172.16.34.11:9080/frontpanel
    depends_on:
    weston:
        condition: service_started

It’ll be tomorrow before I can get you the dmesg output, as it’s powered down on the lab bench and I’m at home now.

I put together a little shell script to pull all the info that could be related.

Script:

#!/bin/bash

echo "====================="
echo "TORADEX AQUILA AM69 DSI-TO-HDMI DEBUG REPORT"
echo "Date: $(date)"
echo "Date UTC: $(date -u)"
echo "Hardware: v1.2a (no I2C mux)"
echo "====================="
echo ""

echo "=== System Information ==="
uname -a
cat /proc/version
cat /etc/os-release | grep -E "VERSION|BUILD"
echo ""

echo "=== DSI Port Phandles ==="
echo -n "DSI port@0 endpoint remote-endpoint: "
cat /proc/device-tree/bus@100000/dsi@4800000/ports/port@0/endpoint/remote-endpoint 2>/dev/null | od -An -tx4 || echo "NOT FOUND"
echo -n "DSI port@1 endpoint remote-endpoint: "
cat /proc/device-tree/bus@100000/dsi@4800000/ports/port@1/endpoint/remote-endpoint 2>/dev/null | od -An -tx4 || echo "NOT FOUND"
echo ""

echo "=== LT8912 Port Phandles ==="
echo -n "LT8912 port@0 endpoint remote-endpoint: "
cat /proc/device-tree/bus@100000/i2c@2000000/hdmi@48/ports/port@0/endpoint/remote-endpoint 2>/dev/null | od -An -tx4 || echo "NOT FOUND"
echo -n "LT8912 port@1 endpoint remote-endpoint: "
cat /proc/device-tree/bus@100000/i2c@2000000/hdmi@48/ports/port@1/endpoint/remote-endpoint 2>/dev/null | od -An -tx4 || echo "NOT FOUND"
echo ""

echo "=== DSI Endpoint Details ==="
echo "DSI port@0 endpoint:"
ls -la /proc/device-tree/bus@100000/dsi@4800000/ports/port@0/endpoint/ 2>/dev/null || echo "NOT FOUND"
echo -n "DSI port@0 data-lanes: "
cat /proc/device-tree/bus@100000/dsi@4800000/ports/port@0/endpoint/data-lanes 2>/dev/null | od -An -td4 || echo "NOT FOUND"
echo "DSI port@1 endpoint:"
ls -la /proc/device-tree/bus@100000/dsi@4800000/ports/port@1/endpoint/ 2>/dev/null || echo "NOT FOUND"
echo -n "DSI port@1 data-lanes: "
cat /proc/device-tree/bus@100000/dsi@4800000/ports/port@1/endpoint/data-lanes 2>/dev/null | od -An -td4 || echo "NOT FOUND"
echo ""

echo "=== LT8912 Endpoint Details ==="
echo "LT8912 port@0 endpoint:"
ls -la /proc/device-tree/bus@100000/i2c@2000000/hdmi@48/ports/port@0/endpoint/ 2>/dev/null || echo "NOT FOUND"
echo -n "LT8912 port@0 data-lanes: "
cat /proc/device-tree/bus@100000/i2c@2000000/hdmi@48/ports/port@0/endpoint/data-lanes 2>/dev/null | od -An -td4 || echo "NOT FOUND"
echo "LT8912 port@1 endpoint:"
ls -la /proc/device-tree/bus@100000/i2c@2000000/hdmi@48/ports/port@1/endpoint/ 2>/dev/null || echo "NOT FOUND"
echo ""

echo "=== I2C Bus 3 (DSI control I2C) ==="
i2cdetect -y -r 3 2>/dev/null || echo "i2cdetect failed"
echo ""

echo "=== I2C Bus 4 (DDC I2C) ==="
i2cdetect -y -r 4 2>/dev/null || echo "i2cdetect failed"
echo ""

echo "=== LT8912 Device Info ==="
echo "Device exists: $(ls -d /sys/bus/i2c/devices/3-0048 2>/dev/null && echo YES || echo NO)"
if [ -d /sys/bus/i2c/devices/3-0048 ]; then
    echo "Name: $(cat /sys/bus/i2c/devices/3-0048/name 2>/dev/null)"
    echo "Modalias: $(cat /sys/bus/i2c/devices/3-0048/modalias 2>/dev/null)"
    echo "Driver bound: $(ls -la /sys/bus/i2c/devices/3-0048/driver 2>/dev/null | awk '{print $NF}' || echo 'NO DRIVER')"
    echo "All device attributes:"
    ls -la /sys/bus/i2c/devices/3-0048/
fi
echo ""

echo "=== GPIO Status (Reset and HPD) ==="
cat /sys/kernel/debug/gpio 2>/dev/null | grep -E "gpio-18|gpio-33|AQUILA_B45|AQUILA_B46" || echo "GPIO debug info not available"
echo ""

echo "=== DRM Bridge Chains ==="
cat /sys/kernel/debug/dri/0/bridge_chains 2>/dev/null || echo "Bridge chains not available (debugfs not mounted or no permission)"
echo ""

echo "=== DRM State (CRTC 48) ==="
cat /sys/kernel/debug/dri/0/state 2>/dev/null | grep -A30 "crtc\[48\]" || echo "DRM state not available"
echo ""

echo "=== Connector Status ==="
for conn in /sys/class/drm/card0-*/; do
    if [ -d "$conn" ]; then
        echo "$(basename $conn):"
        echo "  Status: $(cat $conn/status 2>/dev/null || echo 'N/A')"
        echo "  Enabled: $(cat $conn/enabled 2>/dev/null || echo 'N/A')"
        echo "  DPMS: $(cat $conn/dpms 2>/dev/null || echo 'N/A')"
        echo "  Modes (first 3):"
        cat $conn/modes 2>/dev/null | head -3 || echo "    N/A"
        echo ""
    fi
done

echo "=== DSI Configuration ==="
echo "DSI status: $(cat /proc/device-tree/bus@100000/dsi@4800000/status 2>/dev/null | tr -d '\0' || echo 'NOT FOUND')"
echo "DSI pinctrl-names: $(cat /proc/device-tree/bus@100000/dsi@4800000/pinctrl-names 2>/dev/null | tr '\0' '\n' || echo 'NOT FOUND')"
echo ""

echo "=== DPHY Configuration ==="
echo "DPHY status: $(cat /proc/device-tree/bus@100000/phy@4480000/status 2>/dev/null | tr -d '\0' || echo 'NOT FOUND')"
echo ""

echo "=== I2C Configuration ==="
echo "main_i2c0 (bus 3) status: $(cat /proc/device-tree/bus@100000/i2c@2000000/status 2>/dev/null | tr -d '\0' || echo 'NOT FOUND')"
echo "main_i2c0 clock-frequency: $(cat /proc/device-tree/bus@100000/i2c@2000000/clock-frequency 2>/dev/null | od -An -td4 || echo 'NOT FOUND')"
echo "main_i2c1 (bus 4) status: $(cat /proc/device-tree/bus@100000/i2c@2010000/status 2>/dev/null | tr -d '\0' || echo 'NOT FOUND')"
echo "main_i2c1 clock-frequency: $(cat /proc/device-tree/bus@100000/i2c@2010000/clock-frequency 2>/dev/null | od -An -td4 || echo 'NOT FOUND')"
echo ""

echo "=== DSS (Display Controller) Configuration ==="
echo "DSS status: $(cat /proc/device-tree/bus@100000/dss@4a00000/status 2>/dev/null | tr -d '\0' || echo 'NOT FOUND')"
echo "DSS ports exist: $(ls -d /proc/device-tree/bus@100000/dss@4a00000/ports 2>/dev/null && echo YES || echo NO)"
if [ -d /proc/device-tree/bus@100000/dss@4a00000/ports ]; then
    echo "DSS port@2 exists: $(ls -d /proc/device-tree/bus@100000/dss@4a00000/ports/port@2 2>/dev/null && echo YES || echo NO)"
    if [ -d /proc/device-tree/bus@100000/dss@4a00000/ports/port@2/endpoint ]; then
        echo -n "DSS port@2 remote-endpoint: "
        cat /proc/device-tree/bus@100000/dss@4a00000/ports/port@2/endpoint/remote-endpoint 2>/dev/null | od -An -tx4 || echo "NOT FOUND"
    fi
fi
echo ""

echo "=== Overlays Applied ==="
echo "Overlay files:"
ls -lh /boot/ostree/*/dtb/overlays/*dsi*hdmi*.dtbo 2>/dev/null || echo "No DSI-HDMI overlays found"
echo ""
echo "Overlay configuration:"
cat /var/sota/storage/ostree/deploy/torizon/var/rootdirs/home/torizon/overlays.txt 2>/dev/null || \
cat /boot/loader/uEnv.txt 2>/dev/null | grep overlay || echo "Could not find overlay configuration"
echo ""

echo "=== Kernel Messages: DSI/LT8912/DRM ==="
dmesg | grep -iE "dsi|lt8912|lontium|drm|tidss|bridge|4800000|hdmi-connector" | grep -v dsp
echo ""

echo "=== Kernel Messages: Errors/Warnings ==="
dmesg | grep -iE "error|failed|warning" | grep -iE "dsi|lt8912|lontium|drm|display|bridge|hdmi"
echo ""

echo "=== HDMI Connector Device Tree ==="
echo "HDMI connector exists: $(ls -d /proc/device-tree/hdmi-connector 2>/dev/null && echo YES || echo NO)"
if [ -d /proc/device-tree/hdmi-connector ]; then
    echo "Compatible: $(cat /proc/device-tree/hdmi-connector/compatible 2>/dev/null | tr -d '\0')"
    echo "Label: $(cat /proc/device-tree/hdmi-connector/label 2>/dev/null | tr -d '\0')"
    echo "Type: $(cat /proc/device-tree/hdmi-connector/type 2>/dev/null | tr -d '\0')"
    echo "DDC I2C bus phandle: $(cat /proc/device-tree/hdmi-connector/ddc-i2c-bus 2>/dev/null | od -An -tx4)"
    echo "HPD GPIO: $(cat /proc/device-tree/hdmi-connector/hpd-gpios 2>/dev/null | od -An -tx4)"
    if [ -d /proc/device-tree/hdmi-connector/port/endpoint ]; then
        echo -n "HDMI connector endpoint remote-endpoint: "
        cat /proc/device-tree/hdmi-connector/port/endpoint/remote-endpoint 2>/dev/null | od -An -tx4 || echo "NOT FOUND"
    fi
fi
echo ""

echo "====================="
echo "END OF REPORT"
echo "====================="

Here’s the output:

=====================
TORADEX AQUILA AM69 DSI-TO-HDMI DEBUG REPORT
Date: Tue Oct 21 14:21:04 UTC 2025
Date UTC: Tue Oct 21 14:21:04 UTC 2025
Hardware: v1.2a (no I2C mux)
=====================

=== System Information ===
Linux aquila-am69-12593476 6.6.106-7.4.0-devel-g650792253644 #1-Torizon SMP PREEMPT Thu Sep 18 20:27:33 UTC 2025 aarch64 GNU/Linux
Linux version 6.6.106-7.4.0-devel-g650792253644 (oe-user@oe-host) (aarch64-tdx-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1-Torizon SMP PREEMPT Thu Sep 18 20:27:33 UTC 2025
VERSION="7.4.0-devel-20251015223357+build.0 (scarthgap)"
VERSION_ID=7.4.0-devel-20251015223357-build.0
VERSION_CODENAME="scarthgap"
BUILD_ID="0"

=== DSI Port Phandles ===
DSI port@0 endpoint remote-endpoint:  09020000
DSI port@1 endpoint remote-endpoint:  0a020000

=== LT8912 Port Phandles ===
LT8912 port@0 endpoint remote-endpoint: LT8912 port@1 endpoint remote-endpoint: 
=== DSI Endpoint Details ===
DSI port@0 endpoint:
total 0
drwxr-xr-x 2 root root 0 Oct 21 14:16 .
drwxr-xr-x 3 root root 0 Oct 21 14:16 ..
-r--r--r-- 1 root root 9 Oct 21 14:16 name
-r--r--r-- 1 root root 4 Oct 21 14:16 phandle
-r--r--r-- 1 root root 4 Oct 21 14:16 remote-endpoint
DSI port@0 data-lanes: DSI port@1 endpoint:
total 0
drwxr-xr-x 2 root root 0 Oct 21 14:16 .
drwxr-xr-x 3 root root 0 Oct 21 14:16 ..
-r--r--r-- 1 root root 9 Oct 21 14:16 name
-r--r--r-- 1 root root 4 Oct 21 14:16 phandle
-r--r--r-- 1 root root 4 Oct 21 14:16 remote-endpoint
DSI port@1 data-lanes: 
=== LT8912 Endpoint Details ===
LT8912 port@0 endpoint:
NOT FOUND
LT8912 port@0 data-lanes: LT8912 port@1 endpoint:
NOT FOUND

=== I2C Bus 3 (DSI control I2C) ===
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- 37 -- -- 3a -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- 4a 4b -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

=== I2C Bus 4 (DDC I2C) ===
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- UU UU 4a 4b -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

=== LT8912 Device Info ===
Device exists: NO

=== GPIO Status (Reset and HPD) ===
gpio-627 (AQUILA_B45          |reset               ) out hi ACTIVE LOW
gpio-642 (AQUILA_B46          |hpd                 ) in  hi 

=== DRM Bridge Chains ===
encoder[39]
        bridge[0] type: 0, ops: 0x0
        bridge[1] type: 10, ops: 0x7, OF: /bus@100000/bridge@a000000:ti,j721e-mhdp8546
encoder[49]
        bridge[2] type: 0, ops: 0x0
        bridge[3] type: 0, ops: 0x0, OF: /bus@100000/dsi@4800000:ti,j721e-dsi
        bridge[4] type: 0, ops: 0x3, OF: /bus@100000/i2c@2010000/hdmi@48:lontium,lt8912b
        bridge[5] type: 11, ops: 0x7, OF: /hdmi-connector:hdmi-connector

=== DRM State (CRTC 48) ===
crtc[48]: crtc-1
        enable=1
        active=1
        self_refresh_active=0
        planes_changed=1
        mode_changed=0
        active_changed=0
        connectors_changed=0
        color_mgmt_changed=0
        plane_mask=2
        connector_mask=2
        encoder_mask=2
        mode: "1920x1080": 60 148500 1920 2008 2052 2200 1080 1082 1087 1125 0x48 0x5
connector[40]: DP-1
        crtc=(null)
        self_refresh_aware=0
        max_requested_bpc=0
        colorspace=Default
connector[50]: HDMI-A-1
        crtc=crtc-1
        self_refresh_aware=0
        max_requested_bpc=0
        colorspace=Default

=== Connector Status ===
card0-DP-1:
Status: disconnected
Enabled: disabled
DPMS: On
Modes (first 3):

card0-HDMI-A-1:
Status: connected
Enabled: enabled
DPMS: On
Modes (first 3):
1920x1080
1920x1080
1920x1080

=== DSI Configuration ===
DSI status: okay
DSI pinctrl-names: 

=== DPHY Configuration ===
DPHY status: okay

=== I2C Configuration ===
main_i2c0 (bus 3) status: okay
main_i2c0 clock-frequency:  -1601830656
main_i2c1 (bus 4) status: okay
main_i2c1 clock-frequency:  -2145778176

=== DSS (Display Controller) Configuration ===
DSS status: okay
DSS ports exist: /proc/device-tree/bus@100000/dss@4a00000/ports
YES
DSS port@2 exists: /proc/device-tree/bus@100000/dss@4a00000/ports/port@2
YES
DSS port@2 remote-endpoint:  0b020000

=== Overlays Applied ===
Overlay files:
-rw-r--r-- 1 root root 3.5K Jan  1  1970 /boot/ostree/torizon-1f424195e69d1034d0f1fd4b55e29a13148806b3fe253782728bac4dfbe0a4fb/dtb/overlays/aquila-am69_dsi-to-hdmi_overlay.dtbo
-rw------- 1 root root 3.3K Jan  1  1970 /boot/ostree/torizon-1f424195e69d1034d0f1fd4b55e29a13148806b3fe253782728bac4dfbe0a4fb/dtb/overlays/aquila-am69_dsi-to-hdmi_tdx_fix_overlay.dtbo

Overlay configuration:
overlays_file="overlays.txt"
fitconf_fdt_overlays=""
load_overlay=load ${devtype} ${devnum}:${otaroot} ${loadaddr} /boot${fdtdir}/${overlays_file}; env import -t ${loadaddr} ${filesize}
apply_overlays=if test ${kernel_image_type} = "fitImage"; then \
                for overlay_file in ${fdt_overlays}; do \
                    echo "Applying Overlay: ${overlay_file}"; \
                    env set fitconf_fdt_overlays "${fitconf_fdt_overlays}"#conf-"${overlay_file}"; \
                fdt mknode /chosen overlays && \
                for overlay_file in ${fdt_overlays}; do \
                    echo "Applying Overlay: ${overlay_file}" && \
                    load ${devtype} ${devnum}:${otaroot} ${loadaddr} /boot${fdtdir}/overlays/${overlay_file} && fdt apply ${loadaddr}; \
                    fdt set /chosen/overlays ${overlay_file} $?; \
            if test ${skip_fdt_overlays} != 1; then \
                    if test -e ${devtype} ${devnum}:${otaroot} /boot${fdtdir}/${overlays_file}; then \
                        run load_overlay && run apply_overlays || true; \
set_bootargs_custom=if test -n "${fdt_overlays}"; then \
                        for overlay_file in ${fdt_overlays}; do \
                            if test "${overlay_file}" = "custom-kargs_overlay.dtbo"; then \
                        bootm ${fitimage_addr_r}#conf-ti_${fdtfile}${fitconf_fdt_overlays} ; \
                        bootm ${fitimage_addr_r}#conf-ti_${fdt_file}${fitconf_fdt_overlays} ; \

=== Kernel Messages: DSI/LT8912/DRM ===
[    8.091003] lt8912 4-0048: supply vdd not found, using dummy regulator
[    8.091107] lt8912 4-0048: supply vccmipirx not found, using dummy regulator
[    8.091134] lt8912 4-0048: supply vccsysclk not found, using dummy regulator
[    8.091183] lt8912 4-0048: supply vcclvdstx not found, using dummy regulator
[    8.091209] lt8912 4-0048: supply vcchdmitx not found, using dummy regulator
[    8.091261] lt8912 4-0048: supply vcchdmipll not found, using dummy regulator
[    8.093360] lt8912 4-0048: supply vdd not found, using dummy regulator
[    8.093483] lt8912 4-0048: supply vccmipirx not found, using dummy regulator
[    8.093515] lt8912 4-0048: supply vccsysclk not found, using dummy regulator
[    8.093558] lt8912 4-0048: supply vcclvdstx not found, using dummy regulator
[    8.093599] lt8912 4-0048: supply vcchdmitx not found, using dummy regulator
[    8.093650] lt8912 4-0048: supply vcchdmipll not found, using dummy regulator
[    8.095715] lt8912 4-0048: supply vdd not found, using dummy regulator
[    8.095823] lt8912 4-0048: supply vccmipirx not found, using dummy regulator
[    8.095857] lt8912 4-0048: supply vccsysclk not found, using dummy regulator
[    8.095884] lt8912 4-0048: supply vcclvdstx not found, using dummy regulator
[    8.095922] lt8912 4-0048: supply vcchdmitx not found, using dummy regulator
[    8.095970] lt8912 4-0048: supply vcchdmipll not found, using dummy regulator
[    8.097998] lt8912 4-0048: supply vdd not found, using dummy regulator
[    8.098126] lt8912 4-0048: supply vccmipirx not found, using dummy regulator
[    8.098153] lt8912 4-0048: supply vccsysclk not found, using dummy regulator
[    8.098179] lt8912 4-0048: supply vcclvdstx not found, using dummy regulator
[    8.098205] lt8912 4-0048: supply vcchdmitx not found, using dummy regulator
[    8.098273] lt8912 4-0048: supply vcchdmipll not found, using dummy regulator
[    8.100411] lt8912 4-0048: supply vdd not found, using dummy regulator
[    8.100514] lt8912 4-0048: supply vccmipirx not found, using dummy regulator
[    8.100543] lt8912 4-0048: supply vccsysclk not found, using dummy regulator
[    8.100570] lt8912 4-0048: supply vcclvdstx not found, using dummy regulator
[    8.100597] lt8912 4-0048: supply vcchdmitx not found, using dummy regulator
[    8.100647] lt8912 4-0048: supply vcchdmipll not found, using dummy regulator
[    8.102682] lt8912 4-0048: supply vdd not found, using dummy regulator
[    8.102808] lt8912 4-0048: supply vccmipirx not found, using dummy regulator
[    8.102838] lt8912 4-0048: supply vccsysclk not found, using dummy regulator
[    8.102866] lt8912 4-0048: supply vcclvdstx not found, using dummy regulator
[    8.102897] lt8912 4-0048: supply vcchdmitx not found, using dummy regulator
[    8.102956] lt8912 4-0048: supply vcchdmipll not found, using dummy regulator
[    8.104909] lt8912 4-0048: supply vdd not found, using dummy regulator
[    8.105007] lt8912 4-0048: supply vccmipirx not found, using dummy regulator
[    8.105040] lt8912 4-0048: supply vccsysclk not found, using dummy regulator
[    8.105071] lt8912 4-0048: supply vcclvdstx not found, using dummy regulator
[    8.105099] lt8912 4-0048: supply vcchdmitx not found, using dummy regulator
[    8.105161] lt8912 4-0048: supply vcchdmipll not found, using dummy regulator
[    8.106945] lt8912 4-0048: supply vdd not found, using dummy regulator
[    8.107059] lt8912 4-0048: supply vccmipirx not found, using dummy regulator
[    8.107090] lt8912 4-0048: supply vccsysclk not found, using dummy regulator
[    8.107118] lt8912 4-0048: supply vcclvdstx not found, using dummy regulator
[    8.107143] lt8912 4-0048: supply vcchdmitx not found, using dummy regulator
[    8.107196] lt8912 4-0048: supply vcchdmipll not found, using dummy regulator

... repeats over and over ...

[    9.290150] lt8912 4-0048: supply vdd not found, using dummy regulator
[    9.291408] lt8912 4-0048: supply vccmipirx not found, using dummy regulator
[    9.291459] lt8912 4-0048: supply vccsysclk not found, using dummy regulator
[    9.291493] lt8912 4-0048: supply vcclvdstx not found, using dummy regulator
[    9.291523] lt8912 4-0048: supply vcchdmitx not found, using dummy regulator
[    9.291583] lt8912 4-0048: supply vcchdmipll not found, using dummy regulator
[    9.334226] cdns-mhdp8546 a000000.bridge: invalid resource (null)
[    9.340665] cdns-mhdp8546 a000000.bridge: Failed to get SAPB memory resource, HDCP not supported
[    9.473797] [drm] Initialized tidss 1.0.0 20180215 for 4a00000.dss on minor 0
[    9.503501] tidss 4a00000.dss: [drm] fb0: tidssdrmfb frame buffer device
[   28.879500] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   28.881311] Bridge firewalling registered

=== Kernel Messages: Errors/Warnings ===
[    9.340665] cdns-mhdp8546 a000000.bridge: Failed to get SAPB memory resource, HDCP not supported

=== HDMI Connector Device Tree ===
HDMI connector exists: /proc/device-tree/hdmi-connector
YES
Compatible: hdmi-connector
Label: hdmi
Type: a
DDC I2C bus phandle:  5c010000
HPD GPIO:  1c000000 21000000 00000000
HDMI connector endpoint remote-endpoint:  08020000

=====================
END OF REPORT
=====================

And here’s the output from me trying to use the display with the above docker-compose.yml file:

[+] Running 1/3
✔ Network torizon_default  Created                                                                                                                                                                                                                                                                                    0.1s 
⠹ Container weston         Created                                                                                                                                                                                                                                                                                    0.1s 
⠋ Container kiosk          Created                                                                                                                                                                                                                                                                                    0.0s 
Attaching to kiosk, weston
weston  | Switching VT tty1 to text mode if currently in graphics mode
weston  | Switching to VT 7
weston  | Cannot detect SoC! Assuming it's GPU-capable.
weston  | SoC has GPU: true
weston  | SoC has DPU: false
weston  | Removing previously created '.X*-lock' entries under /tmp before starting Weston. Pass 'IGNORE_X_LOCKS=1' environment variable to Weston container to disable this behavior.
weston  | dos2unix: converting file /etc/xdg/weston/weston.ini to Unix format...
weston  | dos2unix: converting file /etc/xdg/weston-dev/weston.ini to Unix format...
weston  | 00:00:00.000 [INFO] [seatd/seat.c:39] Created VT-bound seat seat0
weston  | 00:00:00.000 [INFO] [seatd/seatd.c:194] seatd started
weston  | Date: 2025-10-21 UTC
weston  | [14:12:34.385] weston 10.0.1
weston  |                https://wayland.freedesktop.org
weston  |                Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
weston  |                Build: 10.0.1
weston  | [14:12:34.385] Command line: weston -Bdrm-backend.so -Swayland-0
weston  | [14:12:34.385] OS: Linux, 6.6.106-7.4.0-devel-g650792253644, #1-Torizon SMP PREEMPT Thu Sep 18 20:27:33 UTC 2025, aarch64
weston  | [14:12:34.385] Flight recorder: enabled
weston  | [14:12:34.385] Using config file '/etc/xdg/weston/weston.ini'
weston  | [14:12:34.386] Output repaint window is 7 ms maximum.
weston  | [14:12:34.387] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/drm-backend.so'
weston  | [14:12:34.417] initializing drm backend
weston  | [14:12:34.417] Trying libseat launcher...
weston  | 00:00:00.085 [INFO] [seatd/server.c:145] New client connected (pid: 26, uid: 1000, gid: 1000)
weston  | 00:00:00.086 [INFO] [seatd/seat.c:170] Added client 7 to seat0
weston  | 00:00:00.086 [INFO] [seatd/seat.c:480] Opened client 7 on seat0
weston  | [14:12:34.418] libseat: session control granted
weston  | [14:12:34.421] using /dev/dri/card0
weston  | [14:12:34.421] DRM: supports atomic modesetting
weston  | [14:12:34.421] DRM: supports GBM modifiers
weston  | [14:12:34.421] DRM: supports picture aspect ratio
weston  | [14:12:34.421] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/gl-renderer.so'
weston  | [14:12:34.862] EGL client extensions: EGL_EXT_device_base
weston  |                EGL_EXT_device_enumeration EGL_EXT_device_query
weston  |                EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
weston  |                EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device
weston  |                EGL_EXT_explicit_device EGL_EXT_platform_wayland
weston  |                EGL_KHR_platform_wayland EGL_EXT_platform_x11
weston  |                EGL_KHR_platform_x11 EGL_EXT_platform_xcb EGL_MESA_platform_gbm
weston  |                EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
weston  | [14:12:34.865] EGL device extensions: EGL_MESA_device_software
weston  |                EGL_EXT_device_drm_render_node
weston  | [14:12:34.865] failed to query DRM device from EGL
weston  | [14:12:34.865] EGL version: 1.5
weston  | [14:12:34.865] EGL vendor: Mesa Project
weston  | [14:12:34.865] EGL client APIs: OpenGL OpenGL_ES 
weston  | [14:12:34.865] EGL extensions: EGL_ANDROID_blob_cache EGL_EXT_buffer_age
weston  |                EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import
weston  |                EGL_EXT_image_dma_buf_import_modifiers
weston  |                EGL_EXT_image_gl_colorspace
weston  |                EGL_EXT_query_reset_notification_strategy EGL_EXT_yuv_surface
weston  |                EGL_KHR_cl_event2 EGL_KHR_config_attribs
weston  |                EGL_KHR_context_flush_control EGL_KHR_create_context
weston  |                EGL_KHR_create_context_no_error EGL_KHR_fence_sync
weston  |                EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
weston  |                EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
weston  |                EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
weston  |                EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
weston  |                EGL_KHR_no_config_context EGL_KHR_reusable_sync
weston  |                EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
weston  |                EGL_KHR_wait_sync EGL_MESA_configless_context
weston  |                EGL_MESA_drm_image EGL_MESA_gl_interop
weston  |                EGL_MESA_image_dma_buf_export EGL_MESA_query_driver
weston  |                EGL_WL_bind_wayland_display
weston  | [14:12:34.865] warning: Disabling render GPU timeline and explicit synchronization due to missing EGL_ANDROID_native_fence_sync extension
weston  | [14:12:34.865] EGL_KHR_surfaceless_context available
weston  | [14:12:34.929] GL version: OpenGL ES 3.2 Mesa 24.0.1
weston  | [14:12:34.929] GLSL version: OpenGL ES GLSL ES 3.20
weston  | [14:12:34.929] GL vendor: Mesa
weston  | [14:12:34.929] GL renderer: llvmpipe (LLVM 15.0.6, 128 bits)
weston  | [14:12:34.929] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
weston  |                GL_EXT_texture_filter_anisotropic
weston  |                GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1
weston  |                GL_EXT_texture_compression_rgtc GL_EXT_texture_format_BGRA8888
weston  |                GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24
weston  |                GL_OES_element_index_uint GL_OES_fbo_render_mipmap
weston  |                GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
weston  |                GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float
weston  |                GL_OES_texture_float_linear GL_OES_texture_half_float
weston  |                GL_OES_texture_half_float_linear GL_OES_texture_npot
weston  |                GL_OES_vertex_half_float GL_EXT_draw_instanced
weston  |                GL_EXT_texture_sRGB_decode GL_OES_EGL_image
weston  |                GL_OES_depth_texture GL_OES_packed_depth_stencil
weston  |                GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render
weston  |                GL_OES_get_program_binary GL_APPLE_texture_max_level
weston  |                GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
weston  |                GL_NV_pack_subimage GL_NV_texture_barrier GL_EXT_frag_depth
weston  |                GL_NV_fbo_color_attachments GL_OES_EGL_image_external
weston  |                GL_OES_EGL_sync GL_OES_vertex_array_object
weston  |                GL_OES_viewport_array GL_ANGLE_pack_reverse_row_order
weston  |                GL_ANGLE_texture_compression_dxt3
weston  |                GL_ANGLE_texture_compression_dxt5
weston  |                GL_EXT_occlusion_query_boolean GL_EXT_robustness
weston  |                GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers
weston  |                GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil
weston  |                GL_NV_read_stencil GL_APPLE_sync GL_EXT_draw_buffers
weston  |                GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_KHR_debug
weston  |                GL_KHR_robustness GL_KHR_texture_compression_astc_ldr
weston  |                GL_NV_generate_mipmap_sRGB GL_NV_pixel_buffer_object
weston  |                GL_OES_depth_texture_cube_map GL_OES_required_internalformat
weston  |                GL_OES_surfaceless_context GL_EXT_color_buffer_float
weston  |                GL_EXT_debug_label GL_EXT_sRGB_write_control
weston  |                GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch
weston  |                GL_EXT_shader_group_vote GL_EXT_shader_implicit_conversions
weston  |                GL_EXT_shader_integer_mix GL_EXT_tessellation_point_size
weston  |                GL_EXT_tessellation_shader GL_ANDROID_extension_pack_es31a
weston  |                GL_ARM_shader_framebuffer_fetch_depth_stencil
weston  |                GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture
weston  |                GL_EXT_copy_image GL_EXT_draw_buffers_indexed
weston  |                GL_EXT_draw_elements_base_vertex GL_EXT_gpu_shader5
weston  |                GL_EXT_polygon_offset_clamp GL_EXT_primitive_bounding_box
weston  |                GL_EXT_render_snorm GL_EXT_shader_io_blocks
weston  |                GL_EXT_texture_border_clamp GL_EXT_texture_buffer
weston  |                GL_EXT_texture_cube_map_array GL_EXT_texture_norm16
weston  |                GL_EXT_texture_view GL_KHR_blend_equation_advanced
weston  |                GL_KHR_blend_equation_advanced_coherent
weston  |                GL_KHR_context_flush_control
weston  |                GL_KHR_robust_buffer_access_behavior GL_NV_image_formats
weston  |                GL_NV_shader_noperspective_interpolation GL_OES_copy_image
weston  |                GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex
weston  |                GL_OES_gpu_shader5 GL_OES_primitive_bounding_box
weston  |                GL_OES_sample_shading GL_OES_sample_variables
weston  |                GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation
weston  |                GL_OES_tessellation_point_size GL_OES_tessellation_shader
weston  |                GL_OES_texture_border_clamp GL_OES_texture_buffer
weston  |                GL_OES_texture_cube_map_array GL_OES_texture_stencil8
weston  |                GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view
weston  |                GL_EXT_blend_func_extended GL_EXT_buffer_storage
weston  |                GL_EXT_float_blend GL_EXT_geometry_point_size
weston  |                GL_EXT_geometry_shader GL_EXT_texture_filter_minmax
weston  |                GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_no_error
weston  |                GL_KHR_texture_compression_astc_sliced_3d
weston  |                GL_OES_EGL_image_external_essl3 GL_OES_geometry_point_size
weston  |                GL_OES_geometry_shader GL_OES_shader_image_atomic
weston  |                GL_EXT_clear_texture GL_EXT_clip_cull_distance
weston  |                GL_EXT_disjoint_timer_query
weston  |                GL_EXT_texture_compression_s3tc_srgb
weston  |                GL_MESA_shader_integer_functions GL_EXT_clip_control
weston  |                GL_EXT_color_buffer_half_float GL_EXT_memory_object
weston  |                GL_EXT_memory_object_fd GL_EXT_texture_compression_bptc
weston  |                GL_EXT_texture_mirror_clamp_to_edge
weston  |                GL_KHR_parallel_shader_compile GL_EXT_EGL_image_storage
weston  |                GL_EXT_shader_framebuffer_fetch_non_coherent
weston  |                GL_EXT_texture_shadow_lod GL_MESA_framebuffer_flip_y
weston  |                GL_EXT_depth_clamp GL_EXT_texture_query_lod
weston  |                GL_MESA_sampler_objects GL_MESA_bgra
weston  | [14:12:34.959] GL ES 3.2 - renderer features:
weston  |                read-back format: BGRA
weston  |                EGL Wayland extension: yes
weston  | [14:12:35.060] event2  - Lemokey Lemokey M55: is tagged by udev as: Mouse
weston  | [14:12:35.060] event2  - Lemokey Lemokey M55: device is a pointer
weston  | [14:12:35.064] event4  - Lemokey Lemokey M55: not tagged as supported input device
weston  | [14:12:35.257] event4  - not using input device '/dev/input/event4'
weston  | [14:12:35.261] event3  - Lemokey Lemokey M55 Keyboard: is tagged by udev as: Keyboard
weston  | [14:12:35.261] event3  - Lemokey Lemokey M55 Keyboard: device is a keyboard
weston  | [14:12:35.262] event0  - gpio-key-power: is tagged by udev as: Keyboard
weston  | [14:12:35.262] event0  - gpio-key-power: device is a keyboard
weston  | [14:12:35.263] event1  - gpio-key-wakeup: is tagged by udev as: Keyboard
weston  | [14:12:35.264] event1  - gpio-key-wakeup: device is a keyboard
weston  | [14:12:35.264] libinput: configuring device "Lemokey Lemokey M55".
weston  | [14:12:35.291] libinput: configuring device "Lemokey Lemokey M55 Keyboard".
weston  | [14:12:35.291] libinput: configuring device "gpio-key-power".
weston  | [14:12:35.291] libinput: configuring device "gpio-key-wakeup".
weston  | [14:12:35.291] DRM: head 'DP-1' updated, connector 40 is disconnected.
weston  | [14:12:35.291] DRM: head 'DP-1' found, connector 40 is disconnected.
weston  | [14:12:35.316] DRM: head 'HDMI-A-1' updated, connector 50 is connected, EDID make 'HHS', model 'HDMI', serial 'unknown'
weston  | [14:12:35.316] DRM: head 'HDMI-A-1' found, connector 50 is connected, EDID make 'HHS', model 'HDMI', serial 'unknown'
weston  | [14:12:35.317] Registered plugin API 'weston_drm_output_api_v1' of size 24
weston  | [14:12:35.317] Registered plugin API 'weston_drm_virtual_output_api_v1' of size 48
weston  | [14:12:35.317] Color manager: no-op
weston  | [14:12:35.317] Output 'HDMI-A-1' using color profile: built-in default sRGB SDR profile
weston  | [14:12:35.317] Chosen EGL config details: id:  31 rgba: 8 8 8 0 buf: 24 dep:  0 stcl: 0 int: 1-1 type: win|pbf vis_id: XRGB8888 (0x34325258)
weston  | [14:12:35.317] Output HDMI-A-1 (crtc 48) video modes:
weston  |                1920x1080@60.0, preferred, current, 148.5 MHz
weston  |                1920x1080@60.0 16:9, 148.5 MHz
weston  |                1920x1080@59.9 16:9, 148.4 MHz
weston  |                1920x1080@50.0 16:9, 148.5 MHz
weston  |                1680x1050@59.9, 119.0 MHz
weston  |                1400x1050@59.9, 101.0 MHz
weston  |                1600x900@60.0, 108.0 MHz
weston  |                1280x1024@60.0, 108.0 MHz
weston  |                1440x900@59.9, 88.8 MHz
weston  |                1280x960@60.0, 108.0 MHz
weston  |                1280x720@60.0, 74.2 MHz
weston  |                1280x720@60.0 16:9, 74.2 MHz
weston  |                1280x720@59.9 16:9, 74.2 MHz
weston  |                1024x768@60.0, 65.0 MHz
weston  |                800x600@60.3, 40.0 MHz
weston  |                720x480@60.0 4:3, 27.0 MHz
weston  |                720x480@59.9 4:3, 27.0 MHz
weston  |                640x480@60.0 4:3, 25.2 MHz
weston  |                640x480@59.9, 25.2 MHz
weston  |                640x480@59.9 4:3, 25.2 MHz
weston  | [14:12:35.317] associating input device event2 with output HDMI-A-1 (none by udev)
weston  | [14:12:35.317] associating input device event3 with output HDMI-A-1 (none by udev)
weston  | [14:12:35.317] associating input device event0 with output HDMI-A-1 (none by udev)
weston  | [14:12:35.317] associating input device event1 with output HDMI-A-1 (none by udev)
weston  | [14:12:35.317] Output 'HDMI-A-1' enabled with head(s) HDMI-A-1
weston  | [14:12:35.317] Compositor capabilities:
weston  |                arbitrary surface rotation: yes
weston  |                screen capture uses y-flip: yes
weston  |                cursor planes: yes
weston  |                arbitrary resolutions: no
weston  |                view mask clipping: yes
weston  |                explicit sync: no
weston  |                color operations: yes
weston  |                presentation clock: CLOCK_MONOTONIC, id 1
weston  |                presentation clock resolution: 0.000000001 s
weston  | [14:12:35.318] Loading module '/usr/lib/aarch64-linux-gnu/weston/desktop-shell.so'
weston  | [14:12:35.323] launching '/usr/lib/aarch64-linux-gnu/weston-keyboard'
weston  | [14:12:35.326] Note: support for the deprecated wl_shell interface is disabled. If a legacy client still needs it, it can be re-enabled by passing -Ddeprecated-wl-shell=true to Meson when building Weston.
weston  | [14:12:35.327] Loading module '/usr/lib/aarch64-linux-gnu/weston/screen-share.so'
weston  | [14:12:35.329] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/xwayland.so'
weston  | [14:12:35.385] Registered plugin API 'weston_xwayland_v1' of size 32
weston  | [14:12:35.385] Registered plugin API 'weston_xwayland_surface_v1' of size 16
weston  | [14:12:35.385] xserver listening on display :0
weston  | [14:12:35.385] launching '/usr/lib/aarch64-linux-gnu/weston-desktop-shell'
weston  | could not load cursor 'dnd-move'
weston  | could not load cursor 'dnd-move'
weston  | could not load cursor 'dnd-copy'
weston  | could not load cursor 'dnd-copy'
weston  | could not load cursor 'dnd-none'
weston  | could not load cursor 'dnd-none'
kiosk   | [11:37:1021/141236.233483:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | [11:37:1021/141236.233774:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | [11:37:1021/141236.233872:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | [11:37:1021/141236.233921:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | [11:11:1021/141236.343326:ERROR:policy_logger.cc(157)] :components/enterprise/browser/controller/chrome_browser_cloud_management_controller.cc(161) Cloud management controller initialization aborted as CBCM is not enabled. Please use the `--enable-chrome-browser-cloud-management` command line flag to enable it if you are not using the official Google Chrome build.
kiosk   | [11:37:1021/141236.413265:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | [11:37:1021/141236.414365:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | libEGL warning: egl: failed to create dri2 screen
kiosk   | [11:79:1021/141236.648368:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
kiosk   | [11:79:1021/141236.650422:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
kiosk   | [11:79:1021/141236.655305:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.EnumerateDevices: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
kiosk   | [11:43:1021/141236.862835:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | [11:42:1021/141236.862827:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | 
kiosk   | (process:11): GLib-GIO-CRITICAL **: 14:12:36.889: g_settings_schema_source_lookup: assertion 'source != NULL' failed
kiosk   | MESA: error: ZINK: vkEnumeratePhysicalDevices failed (VK_ERROR_INITIALIZATION_FAILED)
kiosk   | MESA: error: ZINK: failed to choose pdev
kiosk   | libEGL warning: egl: failed to create dri2 screen
kiosk   | [11:11:1021/141237.163337:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
kiosk   | [11:11:1021/141237.163515:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
kiosk   | [11:34:1021/141237.163559:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | [11:11:1021/141237.193632:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
kiosk   | [11:33:1021/141237.193847:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | [11:11:1021/141237.201200:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
kiosk   | [11:34:1021/141237.201473:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | [81:103:1021/141237.203718:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
kiosk   | [11:11:1021/141237.205124:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
kiosk   | [11:35:1021/141237.205369:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
kiosk   | [11:11:1021/141237.207845:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 

I don’t see anything obviously wrong with your logs. In fact it looks like the HDMI interface is being detected correctly in Linux. Even in the logs from the Weston container it looks like the HDMI interface is detected and the resolutions are also correctly detected.

Okay try this, I prepared an OS image you can flash with Toradex Easy Installer: Download - Toradex File Sharing Platform

This image is based on our latest nightly image so it should be the latest software. It already has the overlay applied by default so no need to do that. You just need to unzip, and flash this image and run a graphical container.

Other than the overlay this image has no other customization and is default Torizon OS.

I verified this myself on my V1.2B Aquila dev board. Using the following compose file:

services:

weston:
    container_name: weston
    environment:
    - ACCEPT_FSL_EULA=1
    volumes:
    - /sys:/sys
    - /run:/run
    - /dev:/dev
    - /tmp:/tmp
    - /run/udev/:/run/udev/
    network_mode: host
    cap_add:
    - CAP_SYS_TTY_CONFIG
    device_cgroup_rules:
    - c 4:* rmw
    - c 13:* rmw
    - c 199:0 rmw
    - c 10:223 rmw
    - c 226:* rmw
    - c 253:* rmw
    image: torizon/weston-am69:stable-rc
    command: --tty=/dev/tty7

If you still don’t see anything on the DSI to HDMI, then I’m not sure what else it could be. I would verify the jumper cable connections and try different HDMI displays. Maybe you have some other customization that somehow affect this. But I can say for sure the OS image I provided above does work in my setup.

Best Regards,
Jeremias

Jeremias,

No idea. Still not working with your OS build/overlays. I tried 3 displays, 2 cables, etc… plugging the same display into the display port (through an insignia HDMI to DisplayPort adapter) it comes right up.

I wonder if the verdin DSI-to-HDMI adapter itself could have a problem. Not sure what else it could be at this point.

We just put a little board together to with the I2C mux on it. I’ll test that next (with stock overlays), but that still routes through the now suspect adapter board…

Can you tell me what your base device tree is?

Mine is using the v1.0

torizon@aquila-am69-12593476:~$ cat /proc/device-tree/model | tr -d ‘\0’
Toradex Aquila AM69 V1.0 on Aquila Development Board

Maybe it also explains why stuff works for you without the mux but not for me.