Kiosk-mode browser: no image

We are using a Colibri iMX6 with the Viola Carrier Board and the official HDMI adapter. We have connected two different displays, a PC monitor and a 5" HDMI display, the behavior is the same in both cases.
On startup, the monitors show the Torizon boot splash, but the we do not get an image from the kiosk mode browser, the display remains dark. We have used two different docker-compose files, the demo containers that come with a fresh installation, and the grafana example (Using Multiple Containers with TorizonCore | Toradex Developer Center). In both cases, portainer and grafana are accessible via a web browser from a different PC, but fail to show up on the display connected to the module. The display remains dark, but when connecting a mouse, a mouse cursor shows up and can be moved. When stopping these containers, we see a login prompt on the local display.

Here are the logs from starting the demo-containers manually with docker-compose up:

Starting torizon_weston_1    ... done
Starting torizon_portainer_1 ... done
Starting torizon_kiosk_1     ... done
Attaching to torizon_weston_1, torizon_portainer_1, torizon_kiosk_1
weston_1     | Switching to VT 7
weston_1     | Date: 2020-08-03 UTC
weston_1     | [14:45:21.206] weston 5.0.0
weston_1     |                https://wayland.freedesktop.org
weston_1     |                Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
weston_1     |                Build: unknown (not built from git or tarball)
portainer_1  | 2020/08/03 14:45:23 Warning: the --template-file flag is deprecated and will likely be removed in a future version of Portainer.
portainer_1  | 2020/08/03 14:45:24 Portainer started with the --templates flag. Using external templates, template management will be disabled.
portainer_1  | 2020/08/03 14:45:24 Instance already has defined endpoints. Skipping the endpoint defined via CLI.
portainer_1  | 2020/08/03 14:45:24 server: Reverse tunnelling enabled
portainer_1  | 2020/08/03 14:45:24 server: Fingerprint 91:d8:81:d7:f1:bf:f7:03:c7:fd:7a:9b:98:e1:d1:96
portainer_1  | 2020/08/03 14:45:24 server: Listening on 0.0.0.0:8000...
weston_1     | [14:45:21.206] Command line: /usr/bin/weston --current-mode
weston_1     | [14:45:21.206] OS: Linux, 5.4.43-4.0.0-devel+git.ed141ad4be96, #1-TorizonCore SMP Wed Jul 1 16:19:28 UTC 2020, armv7l
weston_1     | [14:45:21.210] Using config file '/etc/xdg/weston/weston.ini'
portainer_1  | 2020/08/03 14:45:24 Starting Portainer 1.24.0 on :9000
portainer_1  | 2020/08/03 14:45:24 [DEBUG] [chisel, monitoring] [check_interval_seconds: 10.000000] [message: starting tunnel management process]
weston_1     | [14:45:21.215] Output repaint window is 7 ms maximum.
weston_1     | [14:45:21.217] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/drm-backend.so'
weston_1     | [14:45:21.246] initializing drm backend
weston_1     | [14:45:21.251] logind: not running in a systemd session
weston_1     | [14:45:21.251] logind: cannot setup systemd-logind helper (-61), using legacy fallback
weston_1     | [14:45:21.278] using /dev/dri/card1
weston_1     | [14:45:21.278] DRM: supports universal planes
weston_1     | [14:45:21.278] DRM: supports atomic modesetting
weston_1     | [14:45:21.279] DRM: supports picture aspect ratio
weston_1     | [14:45:21.280] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/gl-renderer.so'
weston_1     | [14:45:22.162] EGL client extensions: EGL_EXT_device_base
weston_1     |                EGL_EXT_device_enumeration EGL_EXT_device_query
weston_1     |                EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
weston_1     |                EGL_EXT_client_extensions EGL_KHR_debug
weston_1     |                EGL_EXT_platform_wayland EGL_EXT_platform_x11
weston_1     |                EGL_MESA_platform_gbm EGL_MESA_platform_surfaceless
weston_1     | [14:45:22.174] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
weston_1     | [14:45:22.175] EGL_KHR_surfaceless_context available
weston_1     | [14:45:22.205] EGL version: 1.4
weston_1     | [14:45:22.205] EGL vendor: Mesa Project
weston_1     | [14:45:22.205] EGL client APIs: OpenGL OpenGL_ES 
weston_1     | [14:45:22.205] EGL extensions: EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age
weston_1     |                EGL_EXT_image_dma_buf_import
weston_1     |                EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2
weston_1     |                EGL_KHR_config_attribs EGL_KHR_create_context
weston_1     |                EGL_KHR_create_context_no_error EGL_KHR_fence_sync
weston_1     |                EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
weston_1     |                EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
weston_1     |                EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
weston_1     |                EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
weston_1     |                EGL_KHR_no_config_context EGL_KHR_reusable_sync
weston_1     |                EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
weston_1     |                EGL_KHR_wait_sync EGL_MESA_configless_context
weston_1     |                EGL_MESA_drm_image EGL_MESA_image_dma_buf_export
weston_1     |                EGL_WL_bind_wayland_display
weston_1     | [14:45:22.208] GL version: OpenGL ES 2.0 Mesa 18.3.6
weston_1     | [14:45:22.208] GLSL version: OpenGL ES GLSL ES 1.0.16
weston_1     | [14:45:22.216] GL vendor: etnaviv
weston_1     | [14:45:22.216] GL renderer: Vivante GC880 rev 5106
weston_1     | [14:45:22.216] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
weston_1     |                GL_EXT_texture_filter_anisotropic
weston_1     |                GL_EXT_texture_compression_s3tc GL_EXT_occlusion_query_boolean
weston_1     |                GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888
weston_1     |                GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24
weston_1     |                GL_OES_element_index_uint GL_OES_fbo_render_mipmap
weston_1     |                GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
weston_1     |                GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_npot
weston_1     |                GL_OES_vertex_half_float GL_OES_EGL_image GL_OES_depth_texture
weston_1     |                GL_AMD_performance_monitor GL_OES_packed_depth_stencil
weston_1     |                GL_OES_get_program_binary GL_APPLE_texture_max_level
weston_1     |                GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
weston_1     |                GL_EXT_frag_depth GL_NV_fbo_color_attachments
weston_1     |                GL_OES_EGL_image_external GL_OES_EGL_sync
weston_1     |                GL_OES_vertex_array_object GL_ANGLE_texture_compression_dxt3
weston_1     |                GL_ANGLE_texture_compression_dxt5 GL_EXT_unpack_subimage
weston_1     |                GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth
weston_1     |                GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers
weston_1     |                GL_EXT_map_buffer_range GL_KHR_debug
weston_1     |                GL_OES_required_internalformat GL_OES_surfaceless_context
weston_1     |                GL_EXT_separate_shader_objects
weston_1     |                GL_EXT_compressed_ETC1_RGB8_sub_texture
weston_1     |                GL_EXT_draw_elements_base_vertex GL_EXT_texture_border_clamp
weston_1     |                GL_KHR_context_flush_control GL_OES_draw_elements_base_vertex
weston_1     |                GL_OES_texture_border_clamp GL_KHR_no_error
weston_1     |                GL_EXT_disjoint_timer_query
weston_1     | [14:45:22.217] GL ES 2 renderer features:
weston_1     |                read-back format: BGRA
weston_1     |                wl_shm sub-image to texture: yes
weston_1     |                EGL Wayland extension: yes
weston_1     | [14:45:22.285] event3  - gpio-keys: is tagged by udev as: Keyboard
weston_1     | [14:45:22.285] event3  - gpio-keys: device is a keyboard
weston_1     | [14:45:22.375] event1  - Logitech USB Receiver: is tagged by udev as: Mouse
weston_1     | [14:45:22.375] event1  - Logitech USB Receiver: device set to 1000 DPI
weston_1     | [14:45:22.376] event1  - Logitech USB Receiver: device is a pointer
weston_1     | [14:45:22.399] event2  - Logitech USB Receiver Consumer Control: is tagged by udev as: Keyboard
weston_1     | [14:45:22.399] event2  - Logitech USB Receiver Consumer Control: device is a keyboard
weston_1     | [14:45:22.418] event0  - stmpe-ts: is tagged by udev as: Touchscreen
weston_1     | [14:45:22.421] event0  - stmpe-ts: device is a touch device
weston_1     | [14:45:22.489] Touchscreen - stmpe-ts - /sys/devices/soc0/soc/2100000.aips-bus/21a4000.i2c/i2c-0/0-0041/stmpe-ts/input/input0/event0
weston_1     | [14:45:22.489] input device event0 has no enabled output associated (none named), skipping calibration for now.
weston_1     | [14:45:22.491] DRM: head 'DPI-1' found, connector 43 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
weston_1     | [14:45:22.604] DRM: head 'HDMI-A-1' found, connector 45 is connected, EDID make 'MPI', model 'MPI5008', serial 'B3432845'
weston_1     | [14:45:22.604] Registered plugin API 'weston_drm_output_api_v1' of size 12
weston_1     | [14:45:22.605] Chosen EGL config details:
weston_1     |                RGBA bits: 8 8 8 0
weston_1     |                swap interval range: 1 - 1
weston_1     | [14:45:22.605] No backlight control for output 'DPI-1'
weston_1     | [14:45:22.605] Output DPI-1 (crtc 34) video modes:
weston_1     |                640x480@59.9, preferred, current, 25.2 MHz
weston_1     | [14:45:22.606] associating input device event3 with output DPI-1 (none by udev)
weston_1     | [14:45:22.606] associating input device event1 with output DPI-1 (none by udev)
weston_1     | [14:45:22.606] associating input device event2 with output DPI-1 (none by udev)
weston_1     | [14:45:22.606] associating input device event0 with output DPI-1 (none by udev)
weston_1     | [14:45:22.607] Output 'DPI-1' enabled with head(s) DPI-1
weston_1     | [14:45:22.608] Chosen EGL config details:
weston_1     |                RGBA bits: 8 8 8 0
weston_1     |                swap interval range: 1 - 1
weston_1     | [14:45:22.608] No backlight control for output 'HDMI-A-1'
weston_1     | [14:45:22.608] Output HDMI-A-1 (crtc 41) video modes:
weston_1     |                800x480@60.0, preferred, 29.6 MHz
weston_1     |                640x480@75.0, current, 31.5 MHz
weston_1     |                640x480@72.8, 31.5 MHz
weston_1     |                640x480@60.0 4:3, 25.2 MHz
weston_1     |                640x480@59.9, 25.2 MHz
weston_1     |                720x400@70.1, 28.3 MHz
weston_1     | [14:45:22.608] Output 'HDMI-A-1' enabled with head(s) HDMI-A-1
weston_1     | [14:45:22.608] Compositor capabilities:
weston_1     |                arbitrary surface rotation: yes
weston_1     |                screen capture uses y-flip: yes
weston_1     |                presentation clock: CLOCK_MONOTONIC, id 1
weston_1     |                presentation clock resolution: 0.000000001 s
weston_1     | [14:45:22.616] Loading module '/usr/lib/arm-linux-gnueabihf/weston/desktop-shell.so'
weston_1     | [14:45:22.624] launching '/usr/lib/weston/weston-keyboard'
weston_1     | [14:45:22.639] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/xwayland.so'
weston_1     | [14:45:22.876] Registered plugin API 'weston_xwayland_v1' of size 16
weston_1     | [14:45:22.878] Registered plugin API 'weston_xwayland_surface_v1' of size 8
weston_1     | [14:45:22.880] xserver listening on display :1
weston_1     | [14:45:22.880] launching '/usr/lib/weston/weston-desktop-shell'
weston_1     | could not load cursor 'dnd-move'
weston_1     | could not load cursor 'dnd-copy'
weston_1     | could not load cursor 'dnd-none'
weston_1     | could not load cursor 'dnd-move'
weston_1     | could not load cursor 'dnd-copy'
weston_1     | could not load cursor 'dnd-none'
kiosk_1      | 
kiosk_1      | (chromium:1): Gtk-WARNING **: 14:45:29.797: cannot open display: :0
torizon_kiosk_1 exited with code 1

And here is the same output for the grafana example:

Starting influxdb ... done
Starting collectd ... done
Starting weston   ... done
Starting grafana  ... done
Starting kiosk    ... done
Attaching to weston, influxdb, collectd, grafana, kiosk
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Starting Grafana" logger=server version=6.7.1 commit=ca6d08d5cb branch=HEAD compiled=2020-03-20T13:13:09+0000
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config loaded from" logger=settings file=/usr/share/grafana/conf/defaults.ini
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config loaded from" logger=settings file=/etc/grafana/grafana.ini
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.data=/var/lib/grafana"
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.logs=/var/log/grafana"
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.plugins=/var/lib/grafana/plugins"
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.provisioning=/etc/grafana/provisioning"
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.log.mode=console"
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_DATA=/var/lib/grafana"
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_LOGS=/var/log/grafana"
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_PLUGINS=/var/lib/grafana/plugins"
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_PROVISIONING=/etc/grafana/provisioning"
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Path Home" logger=settings path=/usr/share/grafana
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Path Data" logger=settings path=/var/lib/grafana
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Path Logs" logger=settings path=/var/log/grafana
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Path Plugins" logger=settings path=/var/lib/grafana/plugins
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Path Provisioning" logger=settings path=/etc/grafana/provisioning
weston      | Switching to VT 7
weston      | Date: 2020-08-03 UTC
weston      | [15:01:58.040] weston 5.0.0
weston      |                https://wayland.freedesktop.org
weston      |                Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
weston      |                Build: unknown (not built from git or tarball)
weston      | [15:01:58.041] Command line: /usr/bin/weston --current-mode
weston      | [15:01:58.041] OS: Linux, 5.4.43-4.0.0-devel+git.ed141ad4be96, #1-TorizonCore SMP Wed Jul 1 16:19:28 UTC 2020, armv7l
weston      | [15:01:58.045] Using config file '/etc/xdg/weston/weston.ini'
weston      | [15:01:58.052] Output repaint window is 7 ms maximum.
weston      | [15:01:58.052] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/drm-backend.so'
weston      | [15:01:58.077] initializing drm backend
weston      | [15:01:58.083] logind: not running in a systemd session
weston      | [15:01:58.083] logind: cannot setup systemd-logind helper (-61), using legacy fallback
weston      | [15:01:58.125] using /dev/dri/card1
weston      | [15:01:58.126] DRM: supports universal planes
weston      | [15:01:58.126] DRM: supports atomic modesetting
weston      | [15:01:58.126] DRM: supports picture aspect ratio
weston      | [15:01:58.128] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/gl-renderer.so'
weston      | [15:01:59.007] 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
weston      |                EGL_EXT_platform_wayland EGL_EXT_platform_x11
weston      |                EGL_MESA_platform_gbm EGL_MESA_platform_surfaceless
weston      | [15:01:59.012] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
weston      | [15:01:59.012] EGL_KHR_surfaceless_context available
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="App mode production" logger=settings
weston      | [15:01:59.037] EGL version: 1.4
weston      | [15:01:59.037] EGL vendor: Mesa Project
weston      | [15:01:59.037] EGL client APIs: OpenGL OpenGL_ES 
weston      | [15:01:59.037] EGL extensions: EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age
weston      |                EGL_EXT_image_dma_buf_import
weston      |                EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2
weston      |                EGL_KHR_config_attribs 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_image_dma_buf_export
weston      |                EGL_WL_bind_wayland_display
weston      | [15:01:59.038] GL version: OpenGL ES 2.0 Mesa 18.3.6
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Initializing SqlStore" logger=server
weston      | [15:01:59.038] GLSL version: OpenGL ES GLSL ES 1.0.16
weston      | [15:01:59.038] GL vendor: etnaviv
weston      | [15:01:59.038] GL renderer: Vivante GC880 rev 5106
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Connecting to DB" logger=sqlstore dbtype=sqlite3
weston      | [15:01:59.038] 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_occlusion_query_boolean
weston      |                GL_EXT_texture_compression_dxt1 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_npot
weston      |                GL_OES_vertex_half_float GL_OES_EGL_image GL_OES_depth_texture
weston      |                GL_AMD_performance_monitor GL_OES_packed_depth_stencil
weston      |                GL_OES_get_program_binary GL_APPLE_texture_max_level
weston      |                GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
weston      |                GL_EXT_frag_depth GL_NV_fbo_color_attachments
weston      |                GL_OES_EGL_image_external GL_OES_EGL_sync
weston      |                GL_OES_vertex_array_object GL_ANGLE_texture_compression_dxt3
weston      |                GL_ANGLE_texture_compression_dxt5 GL_EXT_unpack_subimage
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Starting DB migration" logger=migrator
weston      |                GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth
weston      |                GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers
weston      |                GL_EXT_map_buffer_range GL_KHR_debug
weston      |                GL_OES_required_internalformat GL_OES_surfaceless_context
weston      |                GL_EXT_separate_shader_objects
weston      |                GL_EXT_compressed_ETC1_RGB8_sub_texture
weston      |                GL_EXT_draw_elements_base_vertex GL_EXT_texture_border_clamp
weston      |                GL_KHR_context_flush_control GL_OES_draw_elements_base_vertex
weston      |                GL_OES_texture_border_clamp GL_KHR_no_error
weston      |                GL_EXT_disjoint_timer_query
weston      | [15:01:59.039] GL ES 2 renderer features:
weston      |                read-back format: BGRA
weston      |                wl_shm sub-image to texture: yes
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Initializing HTTPServer" logger=server
weston      |                EGL Wayland extension: yes
weston      | [15:01:59.101] event3  - gpio-keys: is tagged by udev as: Keyboard
weston      | [15:01:59.102] event3  - gpio-keys: device is a keyboard
weston      | [15:01:59.185] event1  - Logitech USB Receiver: is tagged by udev as: Mouse
weston      | [15:01:59.185] event1  - Logitech USB Receiver: device set to 1000 DPI
weston      | [15:01:59.188] event1  - Logitech USB Receiver: device is a pointer
weston      | [15:01:59.209] event2  - Logitech USB Receiver Consumer Control: is tagged by udev as: Keyboard
weston      | [15:01:59.209] event2  - Logitech USB Receiver Consumer Control: device is a keyboard
weston      | [15:01:59.238] event0  - stmpe-ts: is tagged by udev as: Touchscreen
weston      | [15:01:59.241] event0  - stmpe-ts: device is a touch device
weston      | [15:01:59.311] Touchscreen - stmpe-ts - /sys/devices/soc0/soc/2100000.aips-bus/21a4000.i2c/i2c-0/0-0041/stmpe-ts/input/input0/event0
weston      | [15:01:59.313] input device event0 has no enabled output associated (none named), skipping calibration for now.
weston      | [15:01:59.314] DRM: head 'DPI-1' found, connector 43 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
weston      | [15:01:59.434] DRM: head 'HDMI-A-1' found, connector 45 is connected, EDID make 'MPI', model 'MPI5008', serial 'B3432845'
weston      | [15:01:59.434] Registered plugin API 'weston_drm_output_api_v1' of size 12
weston      | [15:01:59.435] Chosen EGL config details:
weston      |                RGBA bits: 8 8 8 0
weston      |                swap interval range: 1 - 1
weston      | [15:01:59.435] No backlight control for output 'DPI-1'
weston      | [15:01:59.435] Output DPI-1 (crtc 34) video modes:
weston      |                640x480@59.9, preferred, current, 25.2 MHz
weston      | [15:01:59.436] associating input device event3 with output DPI-1 (none by udev)
weston      | [15:01:59.437] associating input device event1 with output DPI-1 (none by udev)
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Initializing BackendPluginManager" logger=server
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Initializing PluginManager" logger=server
grafana     | t=2020-08-03T15:02:06+0000 lvl=info msg="Starting plugin search" logger=plugins
weston      | [15:01:59.438] associating input device event2 with output DPI-1 (none by udev)
weston      | [15:01:59.438] associating input device event0 with output DPI-1 (none by udev)
weston      | [15:01:59.440] Output 'DPI-1' enabled with head(s) DPI-1
weston      | [15:01:59.440] Chosen EGL config details:
weston      |                RGBA bits: 8 8 8 0
weston      |                swap interval range: 1 - 1
weston      | [15:01:59.441] No backlight control for output 'HDMI-A-1'
weston      | [15:01:59.441] Output HDMI-A-1 (crtc 41) video modes:
weston      |                800x480@60.0, preferred, 29.6 MHz
weston      |                640x480@75.0, current, 31.5 MHz
weston      |                640x480@72.8, 31.5 MHz
weston      |                640x480@60.0 4:3, 25.2 MHz
weston      |                640x480@59.9, 25.2 MHz
weston      |                720x400@70.1, 28.3 MHz
weston      | [15:01:59.441] Output 'HDMI-A-1' enabled with head(s) HDMI-A-1
weston      | [15:01:59.441] Compositor capabilities:
weston      |                arbitrary surface rotation: yes
weston      |                screen capture uses y-flip: yes
weston      |                presentation clock: CLOCK_MONOTONIC, id 1
weston      |                presentation clock resolution: 0.000000001 s
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing HooksService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing OSSLicensingService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing InternalMetricsService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing RemoteCache" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing RenderingService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing AlertEngine" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing QuotaService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing ServerLockService" logger=server
weston      | [15:01:59.447] Loading module '/usr/lib/arm-linux-gnueabihf/weston/desktop-shell.so'
weston      | [15:01:59.453] launching '/usr/lib/weston/weston-keyboard'
weston      | [15:01:59.459] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/xwayland.so'
weston      | [15:01:59.633] Registered plugin API 'weston_xwayland_v1' of size 16
weston      | [15:01:59.633] Registered plugin API 'weston_xwayland_surface_v1' of size 8
weston      | [15:01:59.641] xserver listening on display :1
weston      | [15:01:59.641] launching '/usr/lib/weston/weston-desktop-shell'
weston      | could not load cursor 'dnd-move'
weston      | could not load cursor 'dnd-copy'
weston      | could not load cursor 'dnd-none'
weston      | could not load cursor 'dnd-move'
weston      | could not load cursor 'dnd-copy'
weston      | could not load cursor 'dnd-none'
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing UserAuthTokenService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing DatasourceCacheService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing LoginService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing SearchService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing TracingService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing UsageStatsService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing CleanUpService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing NotificationService" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing provisioningServiceImpl" logger=server
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Backend rendering via phantomJS" logger=rendering renderer=phantomJS
grafana     | t=2020-08-03T15:02:07+0000 lvl=warn msg="phantomJS is deprecated and will be removed in a future release. You should consider migrating from phantomJS to grafana-image-renderer plugin. Read more at https://grafana.com/docs/grafana/latest/administration/image_rendering/" logger=rendering renderer=phantomJS
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="Initializing Stream Manager"
grafana     | t=2020-08-03T15:02:07+0000 lvl=info msg="HTTP Server Listen" logger=http.server address=[::]:3000 protocol=http subUrl= socket=
kiosk       | 
kiosk       | (chromium:1): Gtk-WARNING **: 15:02:15.076: cannot open display: :0
kiosk exited with code 1

Thank you for your help. If you need any additional information, please let me know!

Greetings @amueller,

So by default all graphical containers provided by us are designed to run using the system’s “default” display interface. For Colibri modules the default is parallel RGB/VGA. We make this distinction in the Dockerfile of our wayland container which our kiosk container builds on top of. You can see this here: debian-docker-images/Dockerfile at buster · toradex/debian-docker-images · GitHub

This explains why you see a black screen/mouse cursor only. This is actually the weston container doing that. Based off your logs we can see that weston grabs the correct HDMI display, display 1. But the kiosk container tries to grab display 0, which is the parallel RGB/VGA interface. This is probably due to us explicitly defining the display in wayland as I said above.

As for fixing this, you’ll need to rebuild the kiosk container and change the display variable to use display 1. I already linked the Dockerfile source for our wayland container above so here’s our Dockerfile for the kiosk container:

# First stage download virtual keyboard
ARG BASE_IMAGE=torizon/arm32v7-debian-wayland-base

FROM $BASE_IMAGE:latest
RUN apt-get -y update && \
    apt-get install -y --no-install-recommends wget

WORKDIR /extension

# Download the virtual keyboard from gitlab
RUN wget --no-check-certificate https://gitlab.int.toradex.com/rd/torizon-core/chrome-virtual-keyboard/-/archive/master/chrome-virtual-keyboard-master.tar.gz && tar -xf chrome-virtual-keyboard-master.tar.gz

# Second stage build final container
FROM $BASE_IMAGE:latest

# Needs to come after FROM!
ARG BUILD_TYPE=wayland

RUN test "$BUILD_TYPE" = "x11" && \
        sed -i '/feeds.toradex.com/d' /etc/apt/sources.list || true

RUN apt-get -y update && \
    apt-get install -y --no-install-recommends chromium chromium-sandbox && \
    apt-get clean && apt-get autoremove && \
    update-mime-database /usr/share/mime && \
    rm -rf /var/lib/apt/lists/*

# Copy the virtual keyboard extension from the first stage
COPY --from=0 /extension/chrome-virtual-keyboard-master /chrome-extensions/chrome-virtual-keyboard

COPY start-browser.sh /usr/bin/start-browser

USER torizon

ENV LIBGL_ALWAYS_SOFTWARE=1
ENV DISPLAY=:0

ENTRYPOINT ["/usr/bin/start-browser"]
CMD ["http://www.toradex.com"]

Unfortunately I can’t verify this solution for you ahead of time as I don’t have the HDMI adapter available. But I’m fairly confident it should work since as we can see Weston used display 1 just fine. But please let me know if there are any issues/questions about this solution.

Best Regards,
Jeremias

Hello Jeremias,

unfortunately, I am struggling with building the containers. I got the Dockerfiles from above (for kiosk) and from github (weston) and copied them onto the imx6. However, the builds abort when calling apt-get:

colibri-imx6-10654357:~/my-kiosk$ docker build -t my-kiosk .
Sending build context to Docker daemon  3.072kB
Step 1/16 : ARG BASE_IMAGE=torizon/arm32v7-debian-wayland-base
Step 2/16 : FROM $BASE_IMAGE:latest
 ---> b8420cd28778
Step 3/16 : RUN apt-get -y update &&          apt-get install -y --no-install-recommends wget
 ---> Running in 426beab05f4e
Killed
colibri-imx6-10654357:~/my-kiosk$ cd ../my-weston/
colibri-imx6-10654357:~/my-weston$ docker build -t my-weston .
Sending build context to Docker daemon   2.56kB
Step 1/9 : ARG IMAGE_ARCH=arm32v7
Step 2/9 : FROM torizon/$IMAGE_ARCH-debian-base:buster
# Executing 1 build trigger
 ---> Using cache
 ---> cef884bf841f
Step 3/9 : RUN apt-get -y update && apt-get install -y --no-install-recommends     apt-utils     && apt-mark hold dash && apt-get -y upgrade && apt-mark unhold dash     && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*
 ---> Running in 2698682a1da8
Killed
colibri-imx6-10654357:~/my-weston$ 

Is this a ressource issue? I currently only have the 256MB single core available.

Building the weston image on my development PC works. The Dockerfile for kiosk fails since it cannot reach the gitlab server: https://gitlab.int.toradex.com Is this possibly an internal one?
Also, the start-browser.sh is missing but I was able to extract that from a running container:
#!/bin/sh

# default url
url="www.toradex.com"

# default parms for kiosk mode
chromium_parms_base="--test-type --allow-insecure-localhost --disable-notifications --check-for-update-interval=315360000 "
chromium_parms="--kiosk "

for arg in "$@"
do
    case $arg in
    --window-mode)
        chromium_parms="--start-maximized --app="
        shift
        ;;
    --browser-mode)
        chromium_parms="--start-maximized "
        shift
    esac
done

if [ ! -z "$1" ]; then
    url=$1
fi

exec chromium $chromium_parms_base $chromium_parms$url

Unfortunately, the contaier fail to start: weston comes up briefly, but shuts down again without an error message. kiosk reports a permission error for the start-browser script. I tried adding a line
RUN chown torizon:torizon /usr/bin/start-browser or uncommenting the USER torizon line in the Dockerfile, but the result is the same:

colibri-imx6-10654357:~$ docker-compose up
torizon_portainer_1 is up-to-date
Creating torizon_weston_1 ... done
Creating torizon_kiosk_1  ... error

ERROR: for torizon_kiosk_1  Cannot start service kiosk: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"/usr/bin/start-browser\": permission denied": unknown

ERROR: for kiosk  Cannot start service kiosk: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"/usr/bin/start-browser\": permission denied": unknown
ERROR: Encountered errors while bringing up the project.
colibri-imx6-10654357:~$ docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
ce00afbb08d1        portainer/portainer   "/portainer --templa…"   25 minutes ago      Up About a minute   0.0.0.0:9000->9000/tcp   torizon_portainer_1

Apologies the Kiosk container source hasn’t been fully published to the public yet, we intend to do this though which is why I have to share the source with you directly rather than pointing to a github repo.

Anyways as for the permission error with the script I think you’re missing the shebang at the top of the script. Here’s the full script from the source:

#!/bin/sh

# default url
url="www.toradex.com"

# default parms for kiosk mode
chromium_parms_base="--test-type --allow-insecure-localhost --disable-notifications --check-for-update-interval=315360000 "
chromium_parms="--kiosk "
# Additional params should be stacked chromium_parms_extended="$chromium_params_extended ..."
chromium_parms_extended=""

for arg in "$@"
do
    case $arg in
    --window-mode)
        chromium_parms="--start-maximized --app="
        shift
        ;;
    --browser-mode)
        chromium_parms="--start-maximized "
        shift
        ;;
    --virtual-keyboard)
        # Load the virtual keyboard
        chromium_parms_extended="$chromium_parms_extended --load-extension=/chrome-extensions/chrome-virtual-keyboard"
        shift
        ;;
    esac
done

if [ ! -z "$1" ]; then
    url=$1
fi

exec chromium $chromium_parms_base $chromium_parms_extended $chromium_parms$url

As for the apt error, I’ve never seen it just abort like that before, but then again I typically build my Dockerfiles off the device and transfer them later. Perhaps it might be a performance issue on our lower-end modules. I may need to perform further testing on my side to confirm.

Best Regards,
Jeremias

Jeremias,

thanks again for the quick reply! I will be out of office next week but I will test it as soon as I’m back! Unfortunately, I have to order some extra hardware. I bought the imx6 Solo and Duo, and the Viola Carrier Board. Unfortunately, the lack of space between the pin header on the Viola Carrier and the module put a lot of strain on the foil cable, which causesd the X2 connector to break off from the Duo Module - so I’m left with the Solo only and do not want to repeat that experiment!
I will get back to you a soon as I have some more results.
Andreas

Jeremias,

I was able to build my own kiosk container, but I had no luck getting the browser window on the HDMI output. Here are the steps starting with a fresh Colibri i.MX6 Dual and the Colibri Development board:

• Toradex easy-installer shows up on HDMI and VGA
• Installing Torizon Core with Evaluation Containers
• Boot-Splash shows up on HDMI and VGA
• After booting, the display is extended. The portainer window is displayed 80% on VGA, 20% on HDMI
• After another reboot, portainer window shows up on vga only. Display is extended to HDMI, I can move the mouse cursor from one to another.
• Build my-kiosk container from torizon/arm32v7-debian-wayland-base with  ENV DISPLAY=:0
• Replace image in /var/sota/storage/docker-compose/docker-compose.yml with my-kiosk
• Reboot: Again, portainer is split over both displays
• Reboot: portainer on VGA only, display is extended to hdmi
• rebuild my-kiosk with ENV DISPLAY=:0 and load it onto the module
• Reboot: black screen on both displays, I can move the mouse cursor between both, but no portainer window
• Docker ps on the module shows the kiosk-container is not running
• Bringing the docker-compose file up manually shows that my-kiosk crashes when trying to connect to display 1:


colibri-imx6-10659541:/var/sota/storage/docker-compose$ docker-compose up
Creating network "docker-compose_default" with the default driver
Creating docker-compose_portainer_1 ... done
Creating docker-compose_weston_1    ... done
Creating docker-compose_kiosk_1     ... done
Attaching to docker-compose_weston_1, docker-compose_portainer_1, docker-compose_kiosk_1
portainer_1  | 2020/08/19 09:48:57 Warning: the --template-file flag is deprecated and will likely be removed in a future version of Portainer.
portainer_1  | 2020/08/19 09:48:58 Portainer started with the --templates flag. Using external templates, template management will be disabled.
portainer_1  | 2020/08/19 09:48:59 server: Reverse tunnelling enabled
portainer_1  | 2020/08/19 09:48:59 server: Fingerprint 80:8a:fc:a1:d8:39:c4:45:87:2e:20:72:d3:c7:e1:38
portainer_1  | 2020/08/19 09:48:59 server: Listening on 0.0.0.0:8000...
weston_1     | Switching to VT 7
weston_1     | Date: 2020-08-19 UTC
weston_1     | [09:48:55.239] weston 5.0.0
weston_1     |                https://wayland.freedesktop.org
weston_1     |                Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
weston_1     |                Build: unknown (not built from git or tarball)
weston_1     | [09:48:55.239] Command line: /usr/bin/weston --current-mode
portainer_1  | 2020/08/19 09:48:59 Starting Portainer 1.24.0 on :9000
weston_1     | [09:48:55.240] OS: Linux, 5.4.43-4.0.0-devel+git.ed141ad4be96, #1-TorizonCore SMP Wed Jul 1 16:19:28 UTC 2020, armv7l
weston_1     | [09:48:55.240] Using config file '/etc/xdg/weston/weston.ini'
weston_1     | [09:48:55.241] Output repaint window is 7 ms maximum.
weston_1     | [09:48:55.242] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/drm-backend.so'
portainer_1  | 2020/08/19 09:48:59 [DEBUG] [chisel, monitoring] [check_interval_seconds: 10.000000] [message: starting tunnel management process]
weston_1     | [09:48:55.261] initializing drm backend
weston_1     | [09:48:55.269] logind: not running in a systemd session
weston_1     | [09:48:55.269] logind: cannot setup systemd-logind helper (-61), using legacy fallback
weston_1     | [09:48:55.297] using /dev/dri/card1
weston_1     | [09:48:55.300] DRM: supports universal planes
weston_1     | [09:48:55.300] DRM: supports atomic modesetting
weston_1     | [09:48:55.300] DRM: supports picture aspect ratio
weston_1     | [09:48:55.301] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/gl-renderer.so'
weston_1     | [09:48:55.764] EGL client extensions: EGL_EXT_device_base
weston_1     |                EGL_EXT_device_enumeration EGL_EXT_device_query
weston_1     |                EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
weston_1     |                EGL_EXT_client_extensions EGL_KHR_debug
weston_1     |                EGL_EXT_platform_wayland EGL_EXT_platform_x11
weston_1     |                EGL_MESA_platform_gbm EGL_MESA_platform_surfaceless
weston_1     | [09:48:55.769] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
weston_1     | [09:48:55.769] EGL_KHR_surfaceless_context available
weston_1     | [09:48:55.786] EGL version: 1.4
weston_1     | [09:48:55.787] EGL vendor: Mesa Project
weston_1     | [09:48:55.787] EGL client APIs: OpenGL OpenGL_ES 
weston_1     | [09:48:55.787] EGL extensions: EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age
weston_1     |                EGL_EXT_image_dma_buf_import
weston_1     |                EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2
weston_1     |                EGL_KHR_config_attribs EGL_KHR_create_context
weston_1     |                EGL_KHR_create_context_no_error EGL_KHR_fence_sync
weston_1     |                EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
weston_1     |                EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
weston_1     |                EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
weston_1     |                EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
weston_1     |                EGL_KHR_no_config_context EGL_KHR_reusable_sync
weston_1     |                EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
weston_1     |                EGL_KHR_wait_sync EGL_MESA_configless_context
weston_1     |                EGL_MESA_drm_image EGL_MESA_image_dma_buf_export
weston_1     |                EGL_WL_bind_wayland_display
weston_1     | [09:48:55.787] GL version: OpenGL ES 2.0 Mesa 18.3.6
weston_1     | [09:48:55.788] GLSL version: OpenGL ES GLSL ES 1.0.16
weston_1     | [09:48:55.788] GL vendor: etnaviv
weston_1     | [09:48:55.788] GL renderer: Vivante GC880 rev 5106
weston_1     | [09:48:55.788] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
weston_1     |                GL_EXT_texture_filter_anisotropic
weston_1     |                GL_EXT_texture_compression_s3tc GL_EXT_occlusion_query_boolean
weston_1     |                GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888
weston_1     |                GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24
weston_1     |                GL_OES_element_index_uint GL_OES_fbo_render_mipmap
weston_1     |                GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
weston_1     |                GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_npot
weston_1     |                GL_OES_vertex_half_float GL_OES_EGL_image GL_OES_depth_texture
weston_1     |                GL_AMD_performance_monitor GL_OES_packed_depth_stencil
weston_1     |                GL_OES_get_program_binary GL_APPLE_texture_max_level
weston_1     |                GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
weston_1     |                GL_EXT_frag_depth GL_NV_fbo_color_attachments
weston_1     |                GL_OES_EGL_image_external GL_OES_EGL_sync
weston_1     |                GL_OES_vertex_array_object GL_ANGLE_texture_compression_dxt3
weston_1     |                GL_ANGLE_texture_compression_dxt5 GL_EXT_unpack_subimage
weston_1     |                GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth
weston_1     |                GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers
weston_1     |                GL_EXT_map_buffer_range GL_KHR_debug
weston_1     |                GL_OES_required_internalformat GL_OES_surfaceless_context
weston_1     |                GL_EXT_separate_shader_objects
weston_1     |                GL_EXT_compressed_ETC1_RGB8_sub_texture
weston_1     |                GL_EXT_draw_elements_base_vertex GL_EXT_texture_border_clamp
weston_1     |                GL_KHR_context_flush_control GL_OES_draw_elements_base_vertex
weston_1     |                GL_OES_texture_border_clamp GL_KHR_no_error
weston_1     |                GL_EXT_disjoint_timer_query
weston_1     | [09:48:55.788] GL ES 2 renderer features:
weston_1     |                read-back format: BGRA
weston_1     |                wl_shm sub-image to texture: yes
weston_1     |                EGL Wayland extension: yes
weston_1     | [09:48:55.834] event1  - gpio-keys: is tagged by udev as: Keyboard
weston_1     | [09:48:55.834] event1  - gpio-keys: device is a keyboard
weston_1     | [09:48:55.931] event2  - Logitech USB Receiver: is tagged by udev as: Mouse
weston_1     | [09:48:55.931] event2  - Logitech USB Receiver: device set to 1000 DPI
weston_1     | [09:48:55.934] event2  - Logitech USB Receiver: device is a pointer
weston_1     | [09:48:55.952] event3  - Logitech USB Receiver Consumer Control: is tagged by udev as: Keyboard
weston_1     | [09:48:55.952] event3  - Logitech USB Receiver Consumer Control: device is a keyboard
weston_1     | [09:48:55.977] event0  - stmpe-ts: is tagged by udev as: Touchscreen
weston_1     | [09:48:55.989] event0  - stmpe-ts: device is a touch device
weston_1     | [09:48:56.040] Touchscreen - stmpe-ts - /sys/devices/soc0/soc/2100000.aips-bus/21a4000.i2c/i2c-0/0-0041/stmpe-ts/input/input0/event0
weston_1     | [09:48:56.040] input device event0 has no enabled output associated (none named), skipping calibration for now.
weston_1     | [09:48:56.043] DRM: head 'DPI-1' found, connector 43 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
weston_1     | [09:48:56.154] DRM: head 'HDMI-A-1' found, connector 45 is connected, EDID make 'MPI', model 'MPI5008', serial 'B3432845'
weston_1     | [09:48:56.155] Registered plugin API 'weston_drm_output_api_v1' of size 12
weston_1     | [09:48:56.155] Chosen EGL config details:
weston_1     |                RGBA bits: 8 8 8 0
weston_1     |                swap interval range: 1 - 1
weston_1     | [09:48:56.156] No backlight control for output 'DPI-1'
weston_1     | [09:48:56.156] Output DPI-1 (crtc 34) video modes:
weston_1     |                640x480@59.9, preferred, current, 25.2 MHz
weston_1     | [09:48:56.156] associating input device event1 with output DPI-1 (none by udev)
weston_1     | [09:48:56.156] associating input device event2 with output DPI-1 (none by udev)
weston_1     | [09:48:56.156] associating input device event3 with output DPI-1 (none by udev)
weston_1     | [09:48:56.156] associating input device event0 with output DPI-1 (none by udev)
weston_1     | [09:48:56.158] Output 'DPI-1' enabled with head(s) DPI-1
weston_1     | [09:48:56.158] Chosen EGL config details:
weston_1     |                RGBA bits: 8 8 8 0
weston_1     |                swap interval range: 1 - 1
weston_1     | [09:48:56.159] No backlight control for output 'HDMI-A-1'
weston_1     | [09:48:56.159] Output HDMI-A-1 (crtc 41) video modes:
weston_1     |                800x480@60.0, preferred, current, 29.6 MHz
weston_1     |                640x480@75.0, 31.5 MHz
weston_1     |                640x480@72.8, 31.5 MHz
weston_1     |                640x480@60.0 4:3, 25.2 MHz
weston_1     |                640x480@59.9, 25.2 MHz
weston_1     |                720x400@70.1, 28.3 MHz
weston_1     | [09:48:56.159] Output 'HDMI-A-1' enabled with head(s) HDMI-A-1
weston_1     | [09:48:56.159] Compositor capabilities:
weston_1     |                arbitrary surface rotation: yes
weston_1     |                screen capture uses y-flip: yes
weston_1     |                presentation clock: CLOCK_MONOTONIC, id 1
weston_1     |                presentation clock resolution: 0.000000001 s
weston_1     | [09:48:56.160] Loading module '/usr/lib/arm-linux-gnueabihf/weston/desktop-shell.so'
weston_1     | [09:48:56.173] launching '/usr/lib/weston/weston-keyboard'
weston_1     | [09:48:56.177] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/xwayland.so'
weston_1     | [09:48:56.286] Registered plugin API 'weston_xwayland_v1' of size 16
weston_1     | [09:48:56.286] Registered plugin API 'weston_xwayland_surface_v1' of size 8
weston_1     | [09:48:56.287] xserver listening on display :0
weston_1     | [09:48:56.287] launching '/usr/lib/weston/weston-desktop-shell'
weston_1     | could not load cursor 'dnd-move'
weston_1     | could not load cursor 'dnd-copy'
weston_1     | could not load cursor 'dnd-none'
weston_1     | could not load cursor 'dnd-move'
weston_1     | could not load cursor 'dnd-copy'
weston_1     | could not load cursor 'dnd-none'
kiosk_1      | 
kiosk_1      | (chromium:1): Gtk-WARNING **: 09:49:04.259: cannot open display: :1
docker-compose_kiosk_1 exited with code 1

Hi @amueller,

Just to clarify so I understand correctly, in the cases where you say the display was extended. Did the Portainer UI extend at all into the HDMI screen or was the HDMI screen just black with a mouse cursor the entire time? It would appear that Wayland in the Kiosk container has issues with trying to grab display 1/the HDMI display. What happens if you disconnect the VGA display then don’t define the “DISPLAY” variable in the Dockerfile at all?

By the way do you require both VGA and HDMI interfaces or just HDMI? Because another option possibly would be to disable the VGA interface completely then see if that let’s us use HDMI more easily.

Best Regards,
Jeremias

Hi Jeremia,
the system behaved like a dual monitor setup with the VGA being the primary screen. After the first start, the portainer ui extended about 20% into the hdmi screen, but after a reboot, the system seemed to recognize the correct boundaries and displayed the portainer ui on the VGA screen only. However, it was clearly still a multi-monitor setup since I could move the mouse cursor from one screen to the other.

When omitting the DISPLAY variable in the kiosk container, it again tries to grab display 1 and fails. Whether VGA is connected doesn’t matter.

kiosk_1 |
kiosk_1 | (chromium:1): Gtk-WARNING **: 19:26:52.554: cannot open display: :1
torizon_kiosk_1 exited with code 1

We do not need the VGA, so if you could tell me how to disable it, I’'ll give this a try!
Andreas

This is interesting behavior, seems like even with no VGA the system still defaults to that as display 0. I’ll see if I can find out more about this display behavior.

In the meantime I guess we can give disabling the VGA interface a try and see if that changes anything.

So to properly disable the VGA interface requires some changes to the device tree. The device tree that the i.MX6DL uses for the Torizon kernel is here: imx6dl-colibri-eval-v3.dts « dts « boot « arm « arch - linux-toradex.git - Linux kernel for Apalis, Colibri and Verdin modules

The timings resolution for the VGA/parallel RGB are controlled by the panel_dpi node. What we can try first is disabling this node. Luckily we have a tool in Torizon that should allow for a small device tree change such as this. See here for more info: Device Tree Overlays on Torizon | Toradex Developer Center

Currently we don’t have a pre-made overlay that disables the parallel RGB interface but it shouldn’t be too hard to make one. See here for an overlay that changes the timing and resolution of this interface: device-tree-overlays/display-edt5.7-overlay.dts at toradex_5.4.y · toradex/device-tree-overlays · GitHub

We need just set the status field to disabled so an overlay like this should work:

/dts-v1/;
/plugin/;

/ {
	compatible = "toradex,colibri-imx7d-emmc","toradex,apalis_imx6q", "toradex,colibri_imx6dl";
	fragment@0 {
		target-path = "/panel-dpi";
		__overlay__ {
			status = "disabled";			
		};
	};
};

You can use the overlay tool I linked earlier to try this out.

I’m not sure what all the effects of this will be honestly but we can disable the overlay at anytime if things get too weird.

Best Regards,
Jeremias

Ok, so I disabled the VGA output as follows:

  • Start the development container
  • save the above overly as disable-vga.dts in /device-tree-overlays/overlays
  • run dtconf activate disable-vga.dts

After reboot, the torizon splash screen shows up on the hdmi screen only (used to be hdmi and vga), so it seems that worked correctly.
However, weston doesn’t come up and kiosk also fails when trying to connect to display:0

Attaching to torizon_weston_1, torizon_mosquitto_1, torizon_portainer_1, torizon_dataprovider_1, torizon_kiosk_1, torizon_node-red_1
weston_1        | Switching to VT 7
weston_1        | Date: 2020-08-20 UTC
weston_1        | [10:13:05.780] weston 5.0.0
weston_1        |                https://wayland.freedesktop.org
weston_1        |                Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
weston_1        |                Build: unknown (not built from git or tarball)
weston_1        | [10:13:05.780] Command line: /usr/bin/weston --current-mode
portainer_1     | 2020/08/20 10:13:09 Warning: the --template-file flag is deprecated and will likely be removed in a future version of Portainer.
weston_1        | [10:13:05.780] OS: Linux, 5.4.43-4.0.0-devel+git.ed141ad4be96, #1-TorizonCore SMP Wed Jul 1 16:19:28 UTC 2020, armv7l
weston_1        | [10:13:05.783] Using config file '/etc/xdg/weston/weston.ini'
weston_1        | [10:13:05.785] Output repaint window is 7 ms maximum.
weston_1        | [10:13:05.787] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/drm-backend.so'
portainer_1     | 2020/08/20 10:13:11 Templates already registered inside the database. Skipping template import.
portainer_1     | 2020/08/20 10:13:11 Instance already has defined endpoints. Skipping the endpoint defined via CLI.
portainer_1     | 2020/08/20 10:13:11 Instance already has an administrator user defined. Skipping admin password related flags.
portainer_1     | 2020/08/20 10:13:11 Starting Portainer 1.24.1 on :9000
portainer_1     | 2020/08/20 10:13:11 [DEBUG] [chisel, monitoring] [check_interval_seconds: 10.000000] [message: starting tunnel management process]
portainer_1     | 2020/08/20 10:13:11 server: Reverse tunnelling enabled
portainer_1     | 2020/08/20 10:13:11 server: Fingerprint 42:d3:63:e0:67:10:a0:ae:d1:9f:2f:22:2b:cf:22:bc
portainer_1     | 2020/08/20 10:13:11 server: Listening on 0.0.0.0:8000...
weston_1        | [10:13:05.811] initializing drm backend
weston_1        | [10:13:05.822] logind: not running in a systemd session
weston_1        | [10:13:05.823] logind: cannot setup systemd-logind helper (-61), using legacy fallback
weston_1        | [10:13:05.867] using /dev/dri/card1
weston_1        | [10:13:05.881] DRM: supports universal planes
weston_1        | [10:13:05.881] DRM: supports atomic modesetting
weston_1        | [10:13:05.881] DRM: supports picture aspect ratio
weston_1        | [10:13:05.883] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/gl-renderer.so'
weston_1        | [10:13:06.975] EGL client extensions: EGL_EXT_device_base
weston_1        |                EGL_EXT_device_enumeration EGL_EXT_device_query
weston_1        |                EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
weston_1        |                EGL_EXT_client_extensions EGL_KHR_debug
weston_1        |                EGL_EXT_platform_wayland EGL_EXT_platform_x11
weston_1        |                EGL_MESA_platform_gbm EGL_MESA_platform_surfaceless
weston_1        | [10:13:06.979] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
weston_1        | [10:13:06.979] EGL_KHR_surfaceless_context available
weston_1        | [10:13:07.017] EGL version: 1.4
weston_1        | [10:13:07.018] EGL vendor: Mesa Project
weston_1        | [10:13:07.018] EGL client APIs: OpenGL OpenGL_ES 
weston_1        | [10:13:07.018] EGL extensions: EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age
weston_1        |                EGL_EXT_image_dma_buf_import
weston_1        |                EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2
weston_1        |                EGL_KHR_config_attribs EGL_KHR_create_context
weston_1        |                EGL_KHR_create_context_no_error EGL_KHR_fence_sync
weston_1        |                EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
weston_1        |                EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
weston_1        |                EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
weston_1        |                EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
weston_1        |                EGL_KHR_no_config_context EGL_KHR_reusable_sync
weston_1        |                EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
weston_1        |                EGL_KHR_wait_sync EGL_MESA_configless_context
weston_1        |                EGL_MESA_drm_image EGL_MESA_image_dma_buf_export
weston_1        |                EGL_WL_bind_wayland_display
weston_1        | [10:13:07.018] GL version: OpenGL ES 2.0 Mesa 18.3.6
weston_1        | [10:13:07.018] GLSL version: OpenGL ES GLSL ES 1.0.16
weston_1        | [10:13:07.018] GL vendor: etnaviv
weston_1        | [10:13:07.018] GL renderer: Vivante GC880 rev 5106
weston_1        | [10:13:07.018] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
weston_1        |                GL_EXT_texture_filter_anisotropic
weston_1        |                GL_EXT_texture_compression_s3tc GL_EXT_occlusion_query_boolean
weston_1        |                GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888
weston_1        |                GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24
weston_1        |                GL_OES_element_index_uint GL_OES_fbo_render_mipmap
weston_1        |                GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
weston_1        |                GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_npot
weston_1        |                GL_OES_vertex_half_float GL_OES_EGL_image GL_OES_depth_texture
weston_1        |                GL_AMD_performance_monitor GL_OES_packed_depth_stencil
weston_1        |                GL_OES_get_program_binary GL_APPLE_texture_max_level
weston_1        |                GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
weston_1        |                GL_EXT_frag_depth GL_NV_fbo_color_attachments
weston_1        |                GL_OES_EGL_image_external GL_OES_EGL_sync
weston_1        |                GL_OES_vertex_array_object GL_ANGLE_texture_compression_dxt3
weston_1        |                GL_ANGLE_texture_compression_dxt5 GL_EXT_unpack_subimage
weston_1        |                GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth
weston_1        |                GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers
weston_1        |                GL_EXT_map_buffer_range GL_KHR_debug
weston_1        |                GL_OES_required_internalformat GL_OES_surfaceless_context
weston_1        |                GL_EXT_separate_shader_objects
weston_1        |                GL_EXT_compressed_ETC1_RGB8_sub_texture
weston_1        |                GL_EXT_draw_elements_base_vertex GL_EXT_texture_border_clamp
weston_1        |                GL_KHR_context_flush_control GL_OES_draw_elements_base_vertex
weston_1        |                GL_OES_texture_border_clamp GL_KHR_no_error
weston_1        |                GL_EXT_disjoint_timer_query
weston_1        | [10:13:07.019] GL ES 2 renderer features:
weston_1        |                read-back format: BGRA
weston_1        |                wl_shm sub-image to texture: yes
weston_1        |                EGL Wayland extension: yes
weston_1        | [10:13:07.076] event1  - gpio-keys: is tagged by udev as: Keyboard
weston_1        | [10:13:07.077] event1  - gpio-keys: device is a keyboard
weston_1        | [10:13:07.157] event2  - Logitech USB Receiver: is tagged by udev as: Mouse
weston_1        | [10:13:07.157] event2  - Logitech USB Receiver: device set to 1000 DPI
weston_1        | [10:13:07.159] event2  - Logitech USB Receiver: device is a pointer
weston_1        | [10:13:07.184] event3  - Logitech USB Receiver Consumer Control: is tagged by udev as: Keyboard
weston_1        | [10:13:07.185] event3  - Logitech USB Receiver Consumer Control: device is a keyboard
weston_1        | [10:13:07.204] event0  - stmpe-ts: is tagged by udev as: Touchscreen
weston_1        | [10:13:07.207] event0  - stmpe-ts: device is a touch device
weston_1        | [10:13:07.277] Touchscreen - stmpe-ts - /sys/devices/soc0/soc/2100000.aips-bus/21a4000.i2c/i2c-0/0-0041/stmpe-ts/input/input0/event0
weston_1        | [10:13:07.277] input device event0 has no enabled output associated (none named), skipping calibration for now.
weston_1        | [10:13:07.298] DRM: head 'DPI-1' found, connector 43 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
weston_1        | [10:13:07.420] DRM: head 'HDMI-A-1' found, connector 45 is connected, EDID make 'MPI', model 'MPI5008', serial 'B3432845'
weston_1        | [10:13:07.421] Registered plugin API 'weston_drm_output_api_v1' of size 12
weston_1        | [10:13:07.421] no available modes for DPI-1
weston_1        | [10:13:07.421] Cannot configure an output using weston_drm_output_api.
weston_1        | [10:13:07.422] Chosen EGL config details:
weston_1        |                RGBA bits: 8 8 8 0
weston_1        |                swap interval range: 1 - 1
weston_1        | [10:13:07.422] No backlight control for output 'HDMI-A-1'
weston_1        | [10:13:07.422] Output HDMI-A-1 (crtc 34) video modes:
weston_1        |                800x480@60.0, preferred, current, 29.6 MHz
weston_1        |                640x480@75.0, 31.5 MHz
weston_1        |                640x480@72.8, 31.5 MHz
weston_1        |                640x480@60.0 4:3, 25.2 MHz
weston_1        |                640x480@59.9, 25.2 MHz
weston_1        |                720x400@70.1, 28.3 MHz
weston_1        | [10:13:07.423] associating input device event1 with output HDMI-A-1 (none by udev)
weston_1        | [10:13:07.423] associating input device event2 with output HDMI-A-1 (none by udev)
weston_1        | [10:13:07.423] associating input device event3 with output HDMI-A-1 (none by udev)
weston_1        | [10:13:07.423] associating input device event0 with output HDMI-A-1 (none by udev)
weston_1        | [10:13:07.424] Output 'HDMI-A-1' enabled with head(s) HDMI-A-1
weston_1        | [10:13:07.424] output for input device event1 removed
weston_1        | [10:13:07.425] output for input device event2 removed
weston_1        | [10:13:07.425] output for input device event3 removed
weston_1        | [10:13:07.425] output for input device event0 removed
weston_1        | [10:13:07.425] event1  - gpio-keys: device removed
weston_1        | [10:13:07.426] event2  - Logitech USB Receiver: device removed
weston_1        | [10:13:07.426] event3  - Logitech USB Receiver Consumer Control: device removed
weston_1        | [10:13:07.426] event0  - stmpe-ts: device removed
weston_1        | failed to restore keyboard mode: No such file or directory
weston_1        | failed to set KD_TEXT mode on tty: Operation not supported
torizon_weston_1 exited with code 1

Alright then, this definitely falls under effects that I didn’t expect would happen when disabling VGA. So as you said the boot-splash and all that was now on HDMI (I assumed it was framed correctly and sized). Which means the base system recognizes that HDMI is now the default/only display option.

But now it seems the issue is in the container. Based on the logs it seems Weston registers the HDMI interface as input device events, which it did for the DPI/VGA interface previously. However where it differs seems to be that Weston thinks the interface is being removed(?) Or something similarly strange.

I’m going to need to check this with our team that works on these containers. Perhaps there’s some extra configuration I’m missing. Or possibly perhaps we need to add the functionality/feature here since I don’t think anyone’s actually tried this exact use-case yet.

In any case let me check with the team and get back to you.

Best Regards,
Jeremias

Ok, thank you for your efforts so far! Let me know, if there is anything else I can try. Unfortunately, I have a deadline coming up.
Andreas

Not sure if the helps, but here is a quick update from my end:
I experimented with additional command line parameters for chromium. Since the system seems to behave like a multi-monitor setup (I can move the mouse pointer from one display to the other), I thought it should be possible to move the browser window as well. The commandline argument is --window-position=x_offs,y_offs, which I added to the “command” argument in the docker-compose file.
While this works on Windows with a multimonitor setup, unfortunately it had no effect on the i.MX6. The window showed up fullscreen on the VGA display, as before.

I got some feedback from the team and according to them disabling the panel_dpi node via overlay should have worked. Based on the last logs you provided the team things it’s a problem with the system touching/configuring the correct tty.

So here’s what I think we should try. First of all stop and remove all other containers on the system. Next stop Portainer from auto-starting on boot via sudo systemctl disable docker-compose. You can re-enable this later at any time.

Ok now all other containers have been cleaned up and disabled, let’s take a step back and do some tests with simple containers. Also make sure you have the overlay applied that disabled panel_dpi.

Try following the article here: Debian Containers for Torizon | Toradex Developer Center

Follow up to the first 2 docker run commands. This will have you launch a simple weston and wayland container stack with some basic graphical elements. If the weston container fails to start try using different ttys in the docker run command. i.e. by default we use --tty=/dev/tty7 but if it doesn’t work try tty6 or something. Also if it still doesn’t work try reading out the individual container logs.

Best Regards,
Jeremias

Ok, I tried this, but still no success bringing up weston. I tried /dev/tty1 to /dev/tty10.
For /dev/tty1 to /dev/tty6, the tty is in use:

colibri-imx6-10659541:~$ docker run --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 226:* rmw' torizon/arm32v7-debian-weston:buster --developer weston-launch --tty=/dev/tty6 --user=torizon
Switching to VT 6
/usr/bin/weston-launch: TIOCSCTTY failed - tty is in use: Operation not permitted
failed to restore keyboard mode: Bad file descriptor
failed to set KD_TEXT mode on tty: Bad file descriptor
could not reset vt handling

For /dev/tty7 and up, I seem to get the same error message as before:

colibri-imx6-10659541:~$ docker run --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 226:* rmw' torizon/arm32v7-debian-weston:buster --developer weston-launch --tty=/dev/tty7 --user=torizon
Switching to VT 7
Date: 2020-08-26 UTC
[12:02:57.037] weston 5.0.0
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: unknown (not built from git or tarball)
[12:02:57.037] Command line: /usr/bin/weston
[12:02:57.037] OS: Linux, 5.4.43-4.0.0-devel+git.ed141ad4be96, #1-TorizonCore SMP Wed Jul 1 16:19:28 UTC 2020, armv7l
[12:02:57.040] Using config file '/etc/xdg/weston-dev//weston.ini'
[12:02:57.041] Output repaint window is 7 ms maximum.
[12:02:57.042] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/drm-backend.so'
[12:02:57.058] initializing drm backend
[12:02:57.060] logind: not running in a systemd session
[12:02:57.061] logind: cannot setup systemd-logind helper (-61), using legacy fallback
[12:02:57.079] using /dev/dri/card1
[12:02:57.080] DRM: supports universal planes
[12:02:57.081] DRM: supports atomic modesetting
[12:02:57.082] DRM: supports picture aspect ratio
[12:02:57.083] Loading module '/usr/lib/arm-linux-gnueabihf/libweston-5/gl-renderer.so'
[12:02:57.402] EGL client extensions: EGL_EXT_device_base
               EGL_EXT_device_enumeration EGL_EXT_device_query
               EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
               EGL_EXT_client_extensions EGL_KHR_debug
               EGL_EXT_platform_wayland EGL_EXT_platform_x11
               EGL_MESA_platform_gbm EGL_MESA_platform_surfaceless
[12:02:57.407] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
[12:02:57.407] EGL_KHR_surfaceless_context available
[12:02:57.417] EGL version: 1.4
[12:02:57.417] EGL vendor: Mesa Project
[12:02:57.417] EGL client APIs: OpenGL OpenGL_ES 
[12:02:57.417] EGL extensions: EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age
               EGL_EXT_image_dma_buf_import
               EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2
               EGL_KHR_config_attribs EGL_KHR_create_context
               EGL_KHR_create_context_no_error EGL_KHR_fence_sync
               EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
               EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
               EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
               EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
               EGL_KHR_no_config_context EGL_KHR_reusable_sync
               EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
               EGL_KHR_wait_sync EGL_MESA_configless_context
               EGL_MESA_drm_image EGL_MESA_image_dma_buf_export
               EGL_WL_bind_wayland_display
[12:02:57.417] GL version: OpenGL ES 2.0 Mesa 18.3.6
[12:02:57.418] GLSL version: OpenGL ES GLSL ES 1.0.16
[12:02:57.418] GL vendor: etnaviv
[12:02:57.418] GL renderer: Vivante GC880 rev 5106
[12:02:57.418] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
               GL_EXT_texture_filter_anisotropic
               GL_EXT_texture_compression_s3tc GL_EXT_occlusion_query_boolean
               GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888
               GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24
               GL_OES_element_index_uint GL_OES_fbo_render_mipmap
               GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
               GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_npot
               GL_OES_vertex_half_float GL_OES_EGL_image GL_OES_depth_texture
               GL_AMD_performance_monitor GL_OES_packed_depth_stencil
               GL_OES_get_program_binary GL_APPLE_texture_max_level
               GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
               GL_EXT_frag_depth GL_NV_fbo_color_attachments
               GL_OES_EGL_image_external GL_OES_EGL_sync
               GL_OES_vertex_array_object GL_ANGLE_texture_compression_dxt3
               GL_ANGLE_texture_compression_dxt5 GL_EXT_unpack_subimage
               GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth
               GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers
               GL_EXT_map_buffer_range GL_KHR_debug
               GL_OES_required_internalformat GL_OES_surfaceless_context
               GL_EXT_separate_shader_objects
               GL_EXT_compressed_ETC1_RGB8_sub_texture
               GL_EXT_draw_elements_base_vertex GL_EXT_texture_border_clamp
               GL_KHR_context_flush_control GL_OES_draw_elements_base_vertex
               GL_OES_texture_border_clamp GL_KHR_no_error
               GL_EXT_disjoint_timer_query
[12:02:57.419] GL ES 2 renderer features:
               read-back format: BGRA
               wl_shm sub-image to texture: yes
               EGL Wayland extension: yes
[12:02:57.444] event1  - gpio-keys: is tagged by udev as: Keyboard
[12:02:57.445] event1  - gpio-keys: device is a keyboard
[12:02:57.542] event2  - Logitech USB Receiver: is tagged by udev as: Mouse
[12:02:57.543] event2  - Logitech USB Receiver: device set to 1000 DPI
[12:02:57.544] event2  - Logitech USB Receiver: device is a pointer
[12:02:57.561] event3  - Logitech USB Receiver Consumer Control: is tagged by udev as: Keyboard
[12:02:57.561] event3  - Logitech USB Receiver Consumer Control: device is a keyboard
[12:02:57.579] event0  - stmpe-ts: is tagged by udev as: Touchscreen
[12:02:57.581] event0  - stmpe-ts: device is a touch device
[12:02:57.612] Touchscreen - stmpe-ts - /sys/devices/soc0/soc/2100000.aips-bus/21a4000.i2c/i2c-0/0-0041/stmpe-ts/input/input0/event0
[12:02:57.612] input device event0 has no enabled output associated (none named), skipping calibration for now.
[12:02:57.622] DRM: head 'DPI-1' found, connector 43 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[12:02:57.726] DRM: head 'HDMI-A-1' found, connector 45 is connected, EDID make 'MPI', model 'MPI5008', serial 'B3432845'
[12:02:57.729] Registered plugin API 'weston_drm_output_api_v1' of size 12
[12:02:57.729] no available modes for DPI-1
[12:02:57.729] Cannot configure an output using weston_drm_output_api.
[12:02:57.731] Chosen EGL config details:
               RGBA bits: 8 8 8 0
               swap interval range: 1 - 1
[12:02:57.731] No backlight control for output 'HDMI-A-1'
[12:02:57.731] Output HDMI-A-1 (crtc 34) video modes:
               800x480@60.0, preferred, current, 29.6 MHz
               640x480@75.0, 31.5 MHz
               640x480@72.8, 31.5 MHz
               640x480@60.0 4:3, 25.2 MHz
               640x480@59.9, 25.2 MHz
               720x400@70.1, 28.3 MHz
[12:02:57.732] associating input device event1 with output HDMI-A-1 (none by udev)
[12:02:57.733] associating input device event2 with output HDMI-A-1 (none by udev)
[12:02:57.734] associating input device event3 with output HDMI-A-1 (none by udev)
[12:02:57.734] associating input device event0 with output HDMI-A-1 (none by udev)
[12:02:57.736] Output 'HDMI-A-1' enabled with head(s) HDMI-A-1
[12:02:57.736] output for input device event1 removed
[12:02:57.737] output for input device event2 removed
[12:02:57.737] output for input device event3 removed
[12:02:57.737] output for input device event0 removed
[12:02:57.738] event1  - gpio-keys: device removed
[12:02:57.738] event2  - Logitech USB Receiver: device removed
[12:02:57.738] event3  - Logitech USB Receiver Consumer Control: device removed
[12:02:57.738] event0  - stmpe-ts: device removed
failed to restore keyboard mode: No such file or directory
failed to set KD_TEXT mode on tty: Operation not supported

docker ps shows no running container

Additionally, I noticed the following:

  • atfer disabling the VGA output, the HDMI screen doesn’t show a boot splash any more but the dmesg log
  • after boot, I first see a terminal login prompt on the HDMI display. When executing the first docker run as above, that is replaced by a black screen and doesn’t return even after the container terminates.

Jeremias,
do you have an update on this topic? If it helps, we could set up an online meeting with your dev team to show a live demo.
Regards,
Andreas

The team is still looking into this. This may require a change to our base containers, we’re also in the process of updating our Debian containers from buster to bullseye so there’s some churn going on there. I can try and elevate this issue with the team.

For the time being are you able to test your application/system with the VGA interface? I can assure you that it’s possible to get HDMI working in the container but to get this change may require some time.

Best Regards,
Jeremias

Thank you for the update! I have done as much as I can with the VGA display, but the demonstrator unit for our customer includes the Viola Baseboard and a display which only has an HDMI connector.
So if you could elevate the issue, I would be much obliged!
Thanks,
Andreas

Quick follow up question: I am thinking about ordering an Iris carrier board for the demonstrator. If I read the datasheet correctly, the DVI-I connector should act the same as the VGA connector on the Colibri evaluation board. And the DVI-I can easily be adapted to HDMI. Can you confirm this?
Thank You,
Andreas

Alright just to update I was able to get this priortized by the team, so they’ll begin working on this in our next sprint ASAP.

As for your other question in short yes the DVI-I is fed by the parallel RGB interface similar to how the VGA interface on the evaluation board is. Except as the datasheet says DVI-I interface is easier to adapt to HDMI.

Best Regards,
Jeremias