Weston crashing on imx8mp, OS 7.2 for chromium kiosk

I am not exactly sure what the cause is, but despite working really well for multiple weeks, for some reason today weston (I assume) has been constantly crashing. After restarting the board, or restarting the docker container for weston (and chromium) I have display for about 5 minutes(quite consistent, within a few seconds of variance), then the screen goes completely black. Restarting the kiosk does nothing, but restarting weston restores display.

I have found some errors listed in the docker logs for weston, which coincide directly with the display going dark, but I don’t really understand what they mean.

Any assistance debugging would be helpful. I have included tdx-info below, and then the log file. In this case the crash happens at 17:50:24. with the g2d_blitEX errors.

Software summary

Bootloader: U-Boot
Kernel version: 6.6.84-7.2.0-g87bfb710b6f1 #1-Torizon SMP PREEMPT Mon Mar 31 08:47:48 UTC 2025
Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/157a467dd3b97eaebfbf6e17d0c8859fdd0abc1d397c637c6ecd808f79dc0260/0
Distro name: NAME=“Torizon OS”
Distro version: VERSION_ID=7.2.0-build.13
Distro variant: VARIANT=“Docker”
Hostname: verdin-imx8mp-15636855

Hardware info

HW model: Toradex Verdin iMX8M Plus on Verdin Development Board
Toradex version: 0063 V1.1B
Serial number: 15636855
Processor arch: aarch64

Switching back to vt 1
00:07:35.032 [INFO] [17:45:22.931] event2 - Goodix Capacitive TouchScreen: device removed
[seatd/seat.c:560] Disabling client 7 on seat0
Switching VT tty1 to text mode if currently in graphics mode
Switching to VT 7
SoC is: ‘i.MX8MP’
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-06-03 UTC
[17:45:23.791] weston 12.0.4
https://wayland.freedesktop.org
Bug reports to: Making sure you're not a bot!
Build: 12.0.4
[17:45:23.792] Command line: weston -Bdrm-backend.so -Swayland-0 --use-g2d
[17:45:23.792] OS: Linux, 6.6.84-7.2.0-g87bfb710b6f1, #1-Torizon SMP PREEMPT Mon Mar 31 08:47:48 UTC 2025, aarch64
[17:45:23.792] Flight recorder: enabled
[17:45:23.792] Using config file ‘/etc/xdg/weston/weston.ini’
[17:45:23.792] Output repaint window is 7 ms maximum.
[17:45:23.793] Loading module ‘/usr/lib/aarch64-linux-gnu/libweston-12/drm-backend.so’
[17:45:23.800] initializing drm backend
[17:45:23.800] Trying libseat launcher…
00:00:00.021 [INFO] [seatd/server.c:145] New client connected (pid: 30, uid: 1000, gid: 1000)
00:00:00.021 [INFO] [seatd/seat.c:170] Added client 7 to seat0
00:00:00.021 [INFO] [seatd/seat.c:480] Opened client 7 on seat0
[17:45:23.801] [libseat/libseat.c:73] Seat opened with backend ‘seatd’
[17:45:23.801] [libseat/backend/seatd.c:212] Enabling seat
[17:45:23.801] libseat: session control granted
[17:45:23.804] using /dev/dri/card1
[17:45:23.804] DRM: supports atomic modesetting
[17:45:23.804] DRM: does not support GBM modifiers
[17:45:23.804] DRM: does not support async page flipping
[17:45:23.804] DRM: supports picture aspect ratio
[17:45:23.805] Loading module ‘/usr/lib/aarch64-linux-gnu/libweston-12/g2d-renderer.so’
[17:45:23.949] event1 - gpio-keys: is tagged by udev as: Keyboard
[17:45:23.949] event1 - gpio-keys: device is a keyboard
[17:45:23.953] event0 - 30370000.snvs:snvs-powerkey: is tagged by udev as: Keyboard
[17:45:23.953] event0 - 30370000.snvs:snvs-powerkey: device is a keyboard
[17:45:23.958] event2 - Goodix Capacitive TouchScreen: is tagged by udev as: Keyboard Touchscreen
[17:45:23.958] event2 - Goodix Capacitive TouchScreen: device is a keyboard
[17:45:23.959] event2 - Goodix Capacitive TouchScreen: device is a touch device
[17:45:23.985] libinput: configuring device “gpio-keys”.
[17:45:23.985] libinput: configuring device “30370000.snvs:snvs-powerkey”.
[17:45:23.985] Touchscreen - Goodix Capacitive TouchScreen - /sys/devices/platform/soc@0/30800000.bus/30a50000.i2c/i2c-3/3-005d/input/input2/event2
[17:45:23.985] libinput: configuring device “Goodix Capacitive TouchScreen”.
[17:45:23.986] input device event2 has no enabled output associated (none named), skipping calibration for now.
[17:45:23.986] DRM: head ‘LVDS-1’ found, connector 35 is connected, EDID make ‘unknown’, model ‘unknown’, serial ‘unknown’
Supported EOTF modes: SDR
[17:45:23.986] Registered plugin API ‘weston_drm_output_api_v1’ of size 40
[17:45:23.987] Registered plugin API ‘weston_drm_virtual_output_api_v2’ of size 48
[17:45:23.987] Color manager: no-op
[17:45:23.987] Module ‘/usr/lib/aarch64-linux-gnu/libgbm.so’ already loaded
[17:45:23.987] Output ‘LVDS-1’ attempts EOTF mode: SDR
[17:45:23.987] Output ‘LVDS-1’ using color profile: built-in default sRGB SDR profile
[17:45:23.991] Initialized backlight for head ‘LVDS-1’, device /sys/class/backlight/backlight-lvds
[17:45:23.992] Output LVDS-1 (crtc 33) video modes:
1280x800@60.0, preferred, current, 68.2 MHz
[17:45:23.992] associating input device event1 with output LVDS-1 (none by udev)
[17:45:23.992] associating input device event0 with output LVDS-1 (none by udev)
[17:45:23.992] associating input device event2 with output LVDS-1 (none by udev)
[17:45:23.992] Output ‘LVDS-1’ enabled with head(s) LVDS-1
[17:45:23.992] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
cursor planes: yes
arbitrary resolutions: no
view mask clipping: yes
explicit sync: yes
color operations: no
presentation clock: CLOCK_MONOTONIC, id 1
presentation clock resolution: 0.000000001 s
[17:45:23.993] Loading module ‘/usr/lib/aarch64-linux-gnu/weston/desktop-shell.so’
[17:45:23.994] launching ‘/usr/lib/aarch64-linux-gnu/weston-keyboard’
[17:45:23.999] launching ‘/usr/lib/aarch64-linux-gnu/weston-desktop-shell’
could not load cursor ‘dnd-move’
could not load cursor ‘dnd-copy’
could not load cursor ‘dnd-none’
could not load cursor ‘dnd-move’
could not load cursor ‘dnd-copy’
could not load cursor ‘dnd-none’
[ 1] wl_drm_is_format_supported, format = 0x30335241
[ 2] wl_drm_is_format_supported, format = 0x30335258
[ 3] wl_drm_is_format_supported, format = 0x30334241
[ 4] wl_drm_is_format_supported, format = 0x30334258
[ 5] wl_drm_authenticate, id = 1
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:30.349] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:30.349] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:30.412] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:30.412] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:30.425] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:30.425] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:30.610] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:30.610] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:30.624] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:30.624] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:30.639] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:30.639] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:31.146] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:31.146] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:31.268] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:31.268] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:31.282] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:31.282] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:31.282] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:31.282] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:31.298] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:31.298] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:31.298] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:31.298] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:31.312] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:31.312] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:31.328] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:31.328] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:45:34.266] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:45:34.266] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4

g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.013] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.014] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.029] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.029] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.044] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.044] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.059] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.059] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.075] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.075] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.090] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.090] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.105] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.105] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.121] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.121] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.136] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.136] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.151] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.151] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.166] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.167] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.182] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.182] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.197] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.197] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.212] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.212] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.228] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.228] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.243] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.243] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.258] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.258] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.274] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.274] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.289] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.289] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.304] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.304] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.319] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.320] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.335] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.335] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.350] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.350] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.365] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.365] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.381] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.381] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.396] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.396] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.411] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.411] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.427] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.427] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.442] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.442] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.457] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.457] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.472] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.473] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.488] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.488] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.503] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.503] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.518] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.518] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.534] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.534] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.549] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.549] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.564] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.564] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.580] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.580] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.595] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.595] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.610] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.610] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.625] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.626] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.641] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.641] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.656] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.656] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.671] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.671] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.687] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.687] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.702] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.702] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.717] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.717] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.732] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.733] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.748] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.748] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.763] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.763] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.778] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.778] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.794] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.794] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.809] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.809] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.824] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.824] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.840] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.840] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.855] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.855] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.870] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.870] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.885] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.886] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.901] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.901] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.916] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.916] DST: physicAddr = b0e00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.931] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.931] DST: physicAddr = b0600000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4
g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!
[17:50:24.947] SRC: physicAddr = 0 left = 0 right = 0 top=0 bottom=0 stride= 0 tiling = 0, format=0
[17:50:24.947] DST: physicAddr = b0a00000 left = 0 right = 1280 top=0 bottom=800 stride= 1280 tiling = 1, format=4

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

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


Hello! Thank you for providing detailed logs and a description of your setup. Based on the information you shared, the issue is related to Weston’s use of the g2d renderer on your Verdin iMX8M Plus. The log messages such as:

g2d_blitEx: Invalid src rect, left 0, top 0, right 0, bottom 0, width 0, height 0, stride 0!

indicate that Weston is passing invalid source rectangles to the g2d hardware acceleration driver, which could result in the display going completely black after a while, as you’re observing.

Potential Solutions and Debug Steps:

  1. Disable the g2d Renderer
    Try running Weston without the --use-g2d argument. The g2d renderer can sometimes introduce compatibility or stability issues, depending on the graphics stack and application behaviors.

    Edit your Weston container command to remove --use-g2d. If you’re using a Docker Compose file, look for the line like:

    command: weston -Bdrm-backend.so -Swayland-0 --use-g2d
    

    and change it to:

    command: weston -Bdrm-backend.so -Swayland-0
    

    Then restart the container and check if the issue persists.

  2. Review weston.ini Configuration
    Double-check your /etc/xdg/weston/weston.ini (or /etc/xdg/weston-dev/weston.ini) for any unusual display or renderer-related settings that could be causing a conflict. You can find information on how to customize and troubleshoot weston.ini here:
    Working with Weston on Torizon OS | Toradex Developer Center

  3. Verify Display Configuration
    According to your log, your LVDS display is running at 1280x800@60Hz:

    Output LVDS-1 (crtc 33) video modes: 
    1280x800@60.0, preferred, current, 68.2 MHz
    

    Confirm that these match your physical display’s specs and that there haven’t been any recent changes to your device tree or display hardware configuration.

  4. Check DRM Device Selection
    The log shows Weston is initializing with /dev/dri/card1. Make sure this is the correct device for your display subsystem, and that no additional graphics devices have been added/removed which would change device enumeration.
    More information:
    Working with Weston on Torizon OS | Toradex Developer Center

  5. Collect Further Logs
    For more granular debugging, you can inspect complete logs with:

    docker logs weston
    

    This may help to correlate whether a specific application or process is triggering the g2d errors just before the display goes dark.

Next Steps:
Try the first step—disabling g2d—and see if the black screen issue disappears. If Weston is stable without g2d, that strongly points to a problem in the g2d rendering path, which can sometimes be bypassed on the NXP i.MX8MP SOC family by relying on the software renderer or alternate GPU hardware acceleration.

Let me know if taking these steps resolves your issue or if you need more specific guidance!

Best regards,
Toradex AI Assistant.

References:

Greetings @dTanks,

Could you share the details on how exactly you are starting these containers?

Also, does the Weston container still crash without the Chromium container also running? Or does it only crash when used with the Chromium container?

You mention the issue only occurs after you restart the system/containers. Does this mean if you start the containers fresh, the issue does not occur at all?

Since you said this setup has worked fine for weeks, can you think of anything that might have changed about your setup in this time?

For reference the last time we changed the stable version of the Weston and Chromium container images was almost a month ago. So I doubt this was the issue, unless you were using older versions of the container images until very recently.

Best Regards,
Jeremias

I have narrowed down the issue. The screen was going blank because of some screen saving / locking mechanism in weston. It comes back after touching the screen (silly I didn’t try that). I am still not sure why it is behaving that way though. Our previous hardware solution had chromium crash several times a day, which pushed me to ask a bit soon.

The board that is turning off the screen is 7.2.0 build 13, while my personal development one is on build 7. I believe they are running the same weston container thru docker compose, but my development one has been running for 5 weeks straight so that might explain the difference (though hurray, that one is still running good, just didn’t even think to look at it). The one locking the screen has been with the manufacturing team for a couple weeks to test it in production, and I just noticed it while walking by.

I assume changing something in the weston ini files will fix this. It seems not to be in kiosk mode. I will try working on it tomorrow to see if I can find out the problem, though if you have references to those resources I would appreciate being pointed in the right direction. I have included the weston portion of the docker yaml below.

weston:
image: torizon/weston-imx8:4
# EULA required to run imx8 vivante graphic drivers
# Pre-accept as we ask the user accept the EULA already.
environment:
- ACCEPT_FSL_EULA=1
# Required to get udev events from host udevd via netlink
network_mode: host
volumes:
- type: bind
source: /tmp
target: /tmp
- type: bind
source: /dev
target: /dev
- type: bind
source: /run/udev
target: /run/udev
cap_add:
- CAP_SYS_TTY_CONFIG
# Add device access rights through cgroup…
device_cgroup_rules:
# … for tty0
- ‘c 4:0 rmw’
# … for tty1
- ‘c 4:1 rmw’
# … for tty7
- ‘c 4:7 rmw’
# … for /dev/input devices
- ‘c 13:* rmw’
# … for /dev/dri devices
- ‘c 226:* rmw’
# … for /dev/galcore device
- ‘c 199:0 rmw’
# … for /dev/dma_heap device
- ‘c 253:* rmw’

Okay wait, I’m a little confused now. So nothing is actually crashing/failing then? It’s just the screen going to sleep?

And now you’re wondering how to make the screen not got to sleep?

After searching through the various options available in the ini file, it looks like this is the right one: weston.ini(5) — Arch manual pages

As per the documentation, the default timeout is 300s (5m). Which corresponds to your own observation. It seems explicitly setting a value of 0 can disable the timeout. Perhaps give this a try then.

That said, looking at your Weston container configuration, are you using your own ini file? It looks like you’re using the default ini file we ship in the container image. If that is the case then we already set the idle-time parameter to 0: torizon-containers/support-files/weston/weston.ini at stable · torizon/torizon-containers · GitHub

So unless you’re somehow using your own ini file here, I’m not sure why your setup would be putting the Weston display to sleep.

To be sure, I even double-checked. Waiting 5+ minutes and our default Weston container never went to sleep.

Best Regards,
Jeremias

Sorry for the confusion, there doesn’t seem to be any crash, just weston going into sleep mode. I have included a short video of what that looks like. Just caught me off guard since I hadn’t seen it before.

As far as the docker compose configuration, it should be the default, I haven’t done anything for my own ini file. It does mention the docker container was created 5 days ago, though not sure how to get much more info from that. Its possible it auto-downloaded a new container then? I am not 100% sure how these mechanisms are supposed to work, but its been more then 5 days since I programmed it and gave it to manufacturing.

Looking at the container itself, it seems like the ini files are completely blank, which might be causing the issue. I assume I am looking in the right locations…

$ docker exec -it torizon-weston-1 sh
# cat /etc/xdg/weston/weston.ini
# ls -l --block-size=M /etc/xdg/weston/
total 0M
-rw-rw-rw- 1 root root 0M Jun  4 14:18 weston.ini

Just for confirmation sake, here is the entire docker ls for the weston container, and the docker compose file I am using.

$ docker container ls
CONTAINER ID   IMAGE                   COMMAND               CREATED      STATUS          PORTS     NAMES
e401d54a0d73   torizon/weston-imx8:4   "/usr/bin/entry.sh"   5 days ago   Up 21 minutes             torizon-weston-1
$ cat /var/sota/storage/docker-compose/docker-compose.yml
services:
  weston:
    image: torizon/weston-imx8:4
    # EULA required to run imx8 vivante graphic drivers
    # Pre-accept as we ask the user accept the EULA already.
    environment:
      - ACCEPT_FSL_EULA=1
    # Required to get udev events from host udevd via netlink
    network_mode: host
    volumes:
      - type: bind
        source: /tmp
        target: /tmp
      - type: bind
        source: /dev
        target: /dev
      - type: bind
        source: /run/udev
        target: /run/udev
    cap_add:
      - CAP_SYS_TTY_CONFIG
    # Add device access rights through cgroup...
    device_cgroup_rules:
      # ... for tty0
      - 'c 4:0 rmw'
      # ... for tty1
      - 'c 4:1 rmw'
      # ... for tty7
      - 'c 4:7 rmw'
      # ... for /dev/input devices
      - 'c 13:* rmw'
      # ... for /dev/dri devices
      - 'c 226:* rmw'
      # ... for /dev/galcore device
      - 'c 199:0 rmw'
      # ... for /dev/dma_heap device
      - 'c 253:* rmw'
  kiosk:
    environment:
      - MACHINE
    image: torizon/chromium-imx8:4
    network_mode: host
    # Required to get udev events from host udevd via netlink
    command: --virtual-keyboard http://127.0.0.1
    security_opt:
      - seccomp:unconfined
    volumes:
      - type: bind
        source: /tmp
        target: /tmp
      - type: bind
        source: /var/run/dbus
        target: /var/run/dbus
      - type: bind
        source: /dev
        target: /dev
    depends_on:
      - weston
    shm_size: '256mb'
    # Add device access rights through cgroup...
    device_cgroup_rules:
      - 'c 81:* rmw'
      - 'c 234:* rmw'
      - 'c 253:* rmw'
      - 'c 226:* rmw'
      - 'c 235:* rmw'
      # ... for /dev/galcore device
      - 'c 199:* rmw'

Looking at the container itself, it seems like the ini files are completely blank, which might be causing the issue.

Looks like this is the crux of the issue here. If the ini file in your container is blank it would default the idle-time parameter to 300s. Now the question is, why is it blank?

Quick search seems like this could be possible: Files inside a docker image are 0 byte but docker engine still considers it being downloaded successfully - General - Docker Community Forums

But maybe let’s try to confirm it. Can you stop and remove the container, as well as remove the corresponding torizon/weston-imx8:4 container image. Then try to re-run your docker-compose that way the device will try to freshly re-download the container image. Let’s see if the issue happens to you again or if it goes away upon a re-download.

Best Regards,
Jeremias

The ini file exists after removing the container, and letting it restart. In this case deleting the image wasn’t needed (Also tested with docker from the command line creating a new container before restarting, and that was working as well).

I am not sure why it created a new container a week ago, and why during the creation the weston ini files weren’t copied right (or something), but glad we could find the issue. I will keep an eye out going forward to see if it ever happens again.

Thanks for the help.

The ini file exists after removing the container, and letting it restart. In this case deleting the image wasn’t needed

Interesting finding. So that tells me the container image is fine as expected, but somehow the container that spawned from this had a bogus ini file for some reason. I’m honestly not sure what factors could have caused this, but at least it seems the issue is easily fixed.

What might help is having a copy of the ini file on the host filesystem and then bind-mounting that into the container as a back-up. Might help reliability, but again I’m not sure of the circumstances that caused the file to be blank in the first place.

Best Regards,
Jeremias