Weston error when running on iMX8MM (no HDMI video)

I have developed an application that uses 2 docker containers:

demoui: An electron application
weston: The weston interface manager

Running on a Toradex Development Board, all works fine when using a Verdin iMX8MP board (The iMX8 Plus, that has an HMDI interface)

But when I use a Verdin iMX8MM board (without the HDMI interface), there is no signal on screen, and I´m getting the following errors on Weston container:

Docker running:

$ docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED       STATUS                            PORTS                                       NAMES
c7874629d043   renatom/demoui:latest             "./demoui --no-sand…"    2 hours ago   Restarting (133) 27 seconds ago                                               torizon-demoui-1
05fabd4ccf0e   commontorizon/weston-imx8:3.3.2   "/usr/bin/entry.sh"      2 hours ago   Restarting (1) 51 seconds ago                                                 torizon-weston-1
$ docker logs 05fabd4ccf0e
Switching VT tty1 to text mode if currently in graphics mode
Switching VT mode of /dev/tty1 to text
Switching to VT 7
SoC is: 'i.MX8MM'
SoC has GPU: true
SoC has DPU: false
g2d implementation: viv
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.
dos2unix: converting file /etc/xdg/weston/weston.ini to Unix format...
dos2unix: converting file /etc/xdg/weston-dev/weston.ini to Unix format...
00:00:00.000 [INFO] [seatd/seat.c:39] Created VT-bound seat seat0
00:00:00.000 [INFO] [seatd/seatd.c:194] seatd started
Date: 2025-03-17 UTC
[15:20:12.248] weston 10.0.1
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: lf-5.15.52-2.1.0-10-g9452feba
[15:20:12.249] Command line: weston -Bdrm-backend.so --current-mode -Swayland-0
[15:20:12.249] OS: Linux, 6.6.54-7.1.0-g3493ccd66900, #1-Torizon SMP PREEMPT Tue Dec 17 21:04:41 UTC 2024, aarch64
[15:20:12.249] Flight recorder: enabled
[15:20:12.251] Using config file '/etc/xdg/weston/weston.ini'
[15:20:12.255] Output repaint window is 7 ms maximum.
[15:20:12.258] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/drm-backend.so'
[15:20:12.398] initializing drm backend
[15:20:12.398] Trying libseat launcher...
00:00:00.246 [INFO] [seatd/server.c:145] New client connected (pid: 31, uid: 1000, gid: 1000)
00:00:00.247 [INFO] [seatd/seat.c:170] Added client 7 to seat0
00:00:00.247 [INFO] [seatd/seat.c:480] Opened client 7 on seat0
[15:20:12.401] libseat: session control granted
[15:20:12.406] using /dev/dri/card0
[15:20:12.407] DRM: supports atomic modesetting
[15:20:12.407] DRM: does not support GBM modifiers
[15:20:12.407] DRM: supports picture aspect ratio
[15:20:12.409] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/gl-renderer.so'
[15:20:12.500] EGL client extensions: EGL_EXT_client_extensions
               EGL_EXT_platform_base EGL_KHR_platform_wayland
               EGL_EXT_platform_wayland EGL_EXT_device_query
               EGL_EXT_device_drm EGL_EXT_device_drm_render_node
               EGL_KHR_platform_gbm
[15:20:12.501] failed to initialize display
[15:20:12.501] EGL error state: EGL_NOT_INITIALIZED (0x3001)
[15:20:12.501] failed to initialize egl
00:00:00.348 [INFO] [seatd/seat.c:418] No clients on seat0 to activate
00:00:00.349 [INFO] [seatd/seat.c:524] Closed client 7 on seat0
00:00:00.349 [INFO] [seatd/seat.c:192] Removed client 7 from seat0
00:00:00.349 [INFO] [seatd/client.c:471] Client disconnected
[15:20:12.502] fatal: failed to create compositor backend
Internal warning: debug scope 'drm-backend' has not been destroyed.
00:00:00.371 [INFO] [seatd/seatd.c:218] seatd stopped
Switching back to vt 1
Switching VT tty1 to text mode if currently in graphics mode
Switching to VT 7
SoC is: 'i.MX8MM'
SoC has GPU: true
SoC has DPU: false
g2d implementation: viv
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.
dos2unix: converting file /etc/xdg/weston/weston.ini to Unix format...
dos2unix: converting file /etc/xdg/weston-dev/weston.ini to Unix format...
00:00:00.000 [INFO] [seatd/seat.c:39] Created VT-bound seat seat0
00:00:00.000 [INFO] [seatd/seatd.c:194] seatd started
Date: 2025-03-17 UTC
[15:20:13.582] weston 10.0.1
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: lf-5.15.52-2.1.0-10-g9452feba
[15:20:13.583] Command line: weston -Bdrm-backend.so --current-mode -Swayland-0
[15:20:13.583] OS: Linux, 6.6.54-7.1.0-g3493ccd66900, #1-Torizon SMP PREEMPT Tue Dec 17 21:04:41 UTC 2024, aarch64
[15:20:13.583] Flight recorder: enabled
[15:20:13.583] Using config file '/etc/xdg/weston/weston.ini'
[15:20:13.584] Output repaint window is 7 ms maximum.
[15:20:13.584] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/drm-backend.so'
[15:20:13.604] initializing drm backend
[15:20:13.604] Trying libseat launcher...
00:00:00.066 [INFO] [seatd/server.c:145] New client connected (pid: 28, uid: 1000, gid: 1000)
00:00:00.069 [INFO] [seatd/seat.c:170] Added client 7 to seat0
00:00:00.070 [INFO] [seatd/seat.c:480] Opened client 7 on seat0
[15:20:13.613] libseat: session control granted
[15:20:13.624] using /dev/dri/card0
[15:20:13.625] DRM: supports atomic modesetting
[15:20:13.625] DRM: does not support GBM modifiers
[15:20:13.625] DRM: supports picture aspect ratio
[15:20:13.625] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/gl-renderer.so'
[15:20:13.643] EGL client extensions: EGL_EXT_client_extensions
               EGL_EXT_platform_base EGL_KHR_platform_wayland
               EGL_EXT_platform_wayland EGL_EXT_device_query
               EGL_EXT_device_drm EGL_EXT_device_drm_render_node
               EGL_KHR_platform_gbm
[15:20:13.644] failed to initialize display
[15:20:13.644] EGL error state: EGL_NOT_INITIALIZED (0x3001)
[15:20:13.644] failed to initialize egl
00:00:00.102 [INFO] [seatd/seat.c:418] No clients on seat0 to activate
00:00:00.103 [INFO] [seatd/seat.c:524] Closed client 7 on seat0
00:00:00.103 [INFO] [seatd/seat.c:192] Removed client 7 from seat0
00:00:00.103 [INFO] [seatd/client.c:471] Client disconnected
[15:20:13.646] fatal: failed to create compositor backend
Internal warning: debug scope 'drm-backend' has not been destroyed.
00:00:00.110 [INFO] [seatd/seatd.c:218] seatd stopped
Switching back to vt 1
Switching VT tty1 to text mode if currently in graphics mode
Switching to VT 7
SoC is: 'i.MX8MM'
SoC has GPU: true
SoC has DPU: false
g2d implementation: viv
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.
dos2unix: converting file /etc/xdg/weston/weston.ini to Unix format...
dos2unix: converting file /etc/xdg/weston-dev/weston.ini to Unix format...
00:00:00.000 [INFO] [seatd/seat.c:39] Created VT-bound seat seat0
00:00:00.000 [INFO] [seatd/seatd.c:194] seatd started
Date: 2025-03-17 UTC
[15:20:14.641] weston 10.0.1
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: lf-5.15.52-2.1.0-10-g9452feba
[15:20:14.641] Command line: weston -Bdrm-backend.so --current-mode -Swayland-0
[15:20:14.641] OS: Linux, 6.6.54-7.1.0-g3493ccd66900, #1-Torizon SMP PREEMPT Tue Dec 17 21:04:41 UTC 2024, aarch64
[15:20:14.641] Flight recorder: enabled
[15:20:14.642] Using config file '/etc/xdg/weston/weston.ini'
[15:20:14.642] Output repaint window is 7 ms maximum.
[15:20:14.643] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/drm-backend.so'
[15:20:14.655] initializing drm backend
[15:20:14.655] Trying libseat launcher...
00:00:00.052 [INFO] [seatd/server.c:145] New client connected (pid: 28, uid: 1000, gid: 1000)
00:00:00.053 [INFO] [seatd/seat.c:170] Added client 7 to seat0
00:00:00.053 [INFO] [seatd/seat.c:480] Opened client 7 on seat0[15:20:14.657] libseat: session control granted

[15:20:14.661] using /dev/dri/card0
[15:20:14.662] DRM: supports atomic modesetting
[15:20:14.662] DRM: does not support GBM modifiers
[15:20:14.662] DRM: supports picture aspect ratio
[15:20:14.662] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/gl-renderer.so'
[15:20:14.674] EGL client extensions: EGL_EXT_client_extensions
               EGL_EXT_platform_base EGL_KHR_platform_wayland
               EGL_EXT_platform_wayland EGL_EXT_device_query
               EGL_EXT_device_drm EGL_EXT_device_drm_render_node
               EGL_KHR_platform_gbm
[15:20:14.674] failed to initialize display
[15:20:14.674] EGL error state: EGL_NOT_INITIALIZED (0x3001)
[15:20:14.674] failed to initialize egl
00:00:00.070 [INFO] [seatd/seat.c:418] No clients on seat0 to activate
00:00:00.071 [INFO] [seatd/seat.c:524] Closed client 7 on seat0
00:00:00.071 [INFO] [seatd/seat.c:192] Removed client 7 from seat0
00:00:00.071 [INFO] [seatd/client.c:471] Client disconnected
[15:20:14.675] fatal: failed to create compositor backend
Internal warning: debug scope 'drm-backend' has not been destroyed.
00:00:00.076 [INFO] [seatd/seatd.c:218] seatd stopped
Switching back to vt 1
Switching VT tty1 to text mode if currently in graphics mode
Switching to VT 7
SoC is: 'i.MX8MM'
SoC has GPU: true
SoC has DPU: false
g2d implementation: viv
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.
dos2unix: converting file /etc/xdg/weston/weston.ini to Unix format...
dos2unix: converting file /etc/xdg/weston-dev/weston.ini to Unix format...
00:00:00.000 [INFO] [seatd/seat.c:39] Created VT-bound seat seat0
00:00:00.000 [INFO] [seatd/seatd.c:194] seatd started
Date: 2025-03-17 UTC
[15:20:15.797] weston 10.0.1
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: lf-5.15.52-2.1.0-10-g9452feba
[15:20:15.798] Command line: weston -Bdrm-backend.so --current-mode -Swayland-0
[15:20:15.798] OS: Linux, 6.6.54-7.1.0-g3493ccd66900, #1-Torizon SMP PREEMPT Tue Dec 17 21:04:41 UTC 2024, aarch64
[15:20:15.798] Flight recorder: enabled
[15:20:15.798] Using config file '/etc/xdg/weston/weston.ini'
[15:20:15.799] Output repaint window is 7 ms maximum.
[15:20:15.799] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/drm-backend.so'
[15:20:15.812] initializing drm backend
[15:20:15.812] Trying libseat launcher...
00:00:00.051 [INFO] [seatd/server.c:145] New client connected (pid: 29, uid: 1000, gid: 1000)
00:00:00.052 [INFO] [seatd/seat.c:170] Added client 7 to seat0
00:00:00.052 [INFO] [seatd/seat.c:480] Opened client 7 on seat0
[15:20:15.813] libseat: session control granted
[15:20:15.818] using /dev/dri/card0
[15:20:15.818] DRM: supports atomic modesetting
[15:20:15.818] DRM: does not support GBM modifiers
[15:20:15.818] DRM: supports picture aspect ratio
[15:20:15.818] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/gl-renderer.so'
[15:20:15.831] EGL client extensions: EGL_EXT_client_extensions
               EGL_EXT_platform_base EGL_KHR_platform_wayland
               EGL_EXT_platform_wayland EGL_EXT_device_query
               EGL_EXT_device_drm EGL_EXT_device_drm_render_node
               EGL_KHR_platform_gbm
[15:20:15.831] failed to initialize display
[15:20:15.831] EGL error state: EGL_NOT_INITIALIZED (0x3001)
[15:20:15.831] failed to initialize egl
00:00:00.071 [INFO] [seatd/seat.c:418] No clients on seat0 to activate
00:00:00.071 [INFO] [seatd/seat.c:524] Closed client 7 on seat0
00:00:00.072 [INFO] [seatd/seat.c:192] Removed client 7 from seat0
00:00:00.072 [INFO] [15:20:15.833] fatal: failed to create compositor backend
[seatd/client.c:471] Client disconnected
Internal warning: debug scope 'drm-backend' has not been destroyed.
00:00:00.076 [INFO] [seatd/seatd.c:218] seatd stopped
Switching back to vt 1
Switching VT tty1 to text mode if currently in graphics mode
Switching to VT 7
SoC is: 'i.MX8MM'
SoC has GPU: true
SoC has DPU: false
g2d implementation: viv
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.
dos2unix: converting file /etc/xdg/weston/weston.ini to Unix format...
dos2unix: converting file /etc/xdg/weston-dev/weston.ini to Unix format...
00:00:00.000 [INFO] [seatd/seat.c:39] Created VT-bound seat seat0
00:00:00.000 [INFO] [seatd/seatd.c:194] seatd started
Date: 2025-03-17 UTC
[15:20:17.335] weston 10.0.1
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: lf-5.15.52-2.1.0-10-g9452feba
[15:20:17.335] Command line: weston -Bdrm-backend.so --current-mode -Swayland-0
[15:20:17.336] OS: Linux, 6.6.54-7.1.0-g3493ccd66900, #1-Torizon SMP PREEMPT Tue Dec 17 21:04:41 UTC 2024, aarch64
[15:20:17.336] Flight recorder: enabled
[15:20:17.336] Using config file '/etc/xdg/weston/weston.ini'
[15:20:17.337] Output repaint window is 7 ms maximum.
[15:20:17.338] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/drm-backend.so'
[15:20:17.352] initializing drm backend
[15:20:17.352] Trying libseat launcher...
00:00:00.058 [INFO] [seatd/server.c:145] New client connected (pid: 29, uid: 1000, gid: 1000)
00:00:00.058 [INFO] [seatd/seat.c:170] Added client 7 to seat0
00:00:00.059 [INFO] [seatd/seat.c:480] Opened client 7 on seat0
[15:20:17.354] libseat: session control granted
[15:20:17.359] using /dev/dri/card0
[15:20:17.359] DRM: supports atomic modesetting
[15:20:17.359] DRM: does not support GBM modifiers
[15:20:17.359] DRM: supports picture aspect ratio
[15:20:17.359] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/gl-renderer.so'
[15:20:17.372] EGL client extensions: EGL_EXT_client_extensions
               EGL_EXT_platform_base EGL_KHR_platform_wayland
               EGL_EXT_platform_wayland EGL_EXT_device_query
               EGL_EXT_device_drm EGL_EXT_device_drm_render_node
               EGL_KHR_platform_gbm
[15:20:17.373] failed to initialize display
[15:20:17.373] EGL error state: EGL_NOT_INITIALIZED (0x3001)
[15:20:17.373] failed to initialize egl
00:00:00.078 [INFO] [seatd/seat.c:418] No clients on seat0 to activate
00:00:00.078 [INFO] [seatd/seat.c:524] Closed client 7 on seat0
00:00:00.078 [INFO] [seatd/seat.c:192] Removed client 7 from seat0
00:00:00.078 [INFO] [seatd/client.c:471] Client disconnected
[15:20:17.373] fatal: failed to create compositor backend
Internal warning: debug scope 'drm-backend' has not been destroyed.
00:00:00.084 [INFO] [seatd/seatd.c:218] seatd stopped
Switching back to vt 1
Switching VT tty1 to text mode if currently in graphics mode
Switching to VT 7
SoC is: 'i.MX8MM'
SoC has GPU: true
SoC has DPU: false
g2d implementation: viv
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.
dos2unix: converting file /etc/xdg/weston/weston.ini to Unix format...
dos2unix: converting file /etc/xdg/weston-dev/weston.ini to Unix format...
00:00:00.000 [INFO] [seatd/seat.c:39] Created VT-bound seat seat0
00:00:00.000 [INFO] [seatd/seatd.c:194] seatd started
Date: 2025-03-17 UTC
.
.
.
.

My docker compose file docker-compose.yml:


services:
  demoui:
    image: renatom/demoui:latest
    restart: always
    depends_on:
      - weston
    networks: 
      - demo_network
    volumes:
      - type: bind
        source: /tmp
        target: /tmp
      - type: bind
        source: /dev
        target: /dev
      - type: bind
        source: /var/run/dbus
        target: /var/run/dbus
    device_cgroup_rules:
      # ... for tty
      - "c 4:* rmw"
      # ... for /dev/input devices
      - "c 13:* rmw"
      - "c 199:* rmw"
      # ... for /dev/dri devices
      - "c 226:* rmw"
  weston:
    image: commontorizon/weston-imx8:3.3.2
    restart: always
    environment:
      - ACCEPT_FSL_EULA=1
    network_mode: host
    volumes:
      - type: bind
        source: /tmp
        target: /tmp
      - type: bind
        source: /dev
        target: /dev
      - type: bind
        source: /run/udev
        target: /run/udev
      - type: bind
        source: /var/run/dbus
        target: /var/run/dbus
    cap_add:
      - CAP_SYS_TTY_CONFIG
    device_cgroup_rules:
      # ... for tty
      - "c 4:* rmw"
      # ... for /dev/input devices
      - "c 13:* rmw"
      - "c 199:* rmw"
      # ... for /dev/dri devices
      - "c 226:* rmw"

networks:
  demo_network:
    driver: bridge  # Default network type

Yes, my Development Board has the DSI to HDMI coverter installed and it works fine (tested when I was installing the Torizon OS)

Help appreciated to solve this.

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

Did you like my answer?

:+1: :-1:


Hello,

It seems you’re encountering an issue with the Weston container on the Verdin iMX8MM board, which lacks a native HDMI interface. The error logs indicate a failure in EGL initialization, which is crucial for display rendering. Here are some steps to help resolve this:

  1. Display Configuration: Since the iMX8MM does not have a native HDMI interface, ensure your weston.ini file is configured for the available display outputs, such as DSI or LVDS, if applicable. Verify that the DSI to HDMI converter is properly connected and configured.

  2. Headless Setup: If you are operating without a physical display, consider configuring Weston to run in headless mode. This can be achieved by setting up a virtual framebuffer or enabling remote access via VNC/RDP.

  3. Weston Logs: The EGL initialization failure suggests potential issues with GPU or display settings. Ensure that the GPU drivers are correctly installed and that the Weston container is configured to use the correct DRM device.

  4. Environment Variables: Double-check that all necessary environment variables are set correctly in your Docker Compose file. The ACCEPT_FSL_EULA=1 variable is essential for enabling certain features on NXP-based systems.

By following these steps, you should be able to diagnose and address the issue with the Weston container on your Verdin iMX8MM board. If the problem persists, consider simplifying your setup to isolate the issue further.

Best regards,
Toradex AI Assistant

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

Weston not starting on Verdin Dahlia.

Greetings @renatom,

First of all what version of Torizon OS are you running on this device?

Second, why are you using the Weston container image from “commontorizon” instead of the one from the “torizon” namespace?

If I use the following command on Verdin i.MX8MM running Torizon OS 6.8.1 I can see Weston come up on the DSI-to-HDMI:

docker run -e ACCEPT_FSL_EULA=1 -d --rm --name=weston --net=host --cap-add CAP_SYS_TTY_CONFIG \
             -v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ \
             --device-cgroup-rule='c 4:* rmw' --device-cgroup-rule='c 13:* rmw' \
             --device-cgroup-rule='c 199:* rmw' --device-cgroup-rule='c 226:* rmw' \
             torizon/weston-vivante:$CT_TAG_WESTON_VIVANTE --developer --tty=/dev/tty7

Also make sure to check whether you have the DSI-to-HDMI device tree overlay applied in Torizon OS. Otherwise the converter won’t work.

Best Regards,
Jeremias

  1. Torizon OS version:
$ cat /etc/os-release
ID=torizon
NAME="Torizon OS"
VERSION="7.1.0+build.4 (scarthgap)"
VERSION_ID=7.1.0-build.4
VERSION_CODENAME="scarthgap"
PRETTY_NAME="Torizon OS 7.1.0+build.4 (scarthgap)"
CPE_NAME="cpe:/o:openembedded:torizon:7.1.0+build.4"
BUILD_ID="4"
ANSI_COLOR="1;34"
VARIANT="Docker"
  1. I just followed the example given at Visual Studio IDE Extension for an electron application - it uses “commontorizon”. What is the difference betwenn “torizon” and “commontorizon” ?

  2. I had to change a little the command:
    $ docker run -e ACCEPT_FSL_EULA=1 -d --rm --name=weston --net=host --cap-add CAP_SYS_TTY_CONFIG -v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ --device-cgroup-rule=‘c 4:* rmw’ --device-cgroup-rule=‘c 13:* rmw’ --device-cgroup-rule=‘c 199:* rmw’ --device-cgroup-rule=‘c 226:* rmw’ torizon/weston-imx8:stable-rc --developer --tty=/dev/tty7

That worked fine! The screen showed up!

  1. No I haven´t installed any device tree overlay regarding DSI-to-HDMI

As (3) worked, that shall be done in my project?

I just followed the example given at Visual Studio IDE Extension for an electron application - it uses “commontorizon”. What is the difference betwenn “torizon” and “commontorizon” ?

Perhaps you are using some old version of our extension or of the templates. We stopped using commontorizon in our templates months ago. Nearly all the container images in our templates come from torizon now.

The container images from common-torizon aren’t the officially supported set of container images. The ones from torizon are. This could be why you were experiencing issues.

As (3) worked, that shall be done in my project?

It should, but as I said before if you have common-torizon showing up in the VSCode extension then you might have some old version of either the extension or the project templates. I would double-check this before proceeding to make sure you are working with up-to-date stuff.

Best Regards,
Jeremias