Torizon: Kiosk container not working in Colibri iMX8X

Hi team,

I’m trying to get the kiosk container working but I’m always getting an exception (I’d say from Chromium).

I’m using this sample as basis: torizon-samples/docker-compose.yml at bullseye · toradex/torizon-samples · GitHub

This is my docker-compose. Weston seems to work (I get a working cursor in the screen):

version: "2.4"
services:
  bme280-influxdb:
    build:
      context: bme280-influxdb
    container_name: bme280-influxdb
    devices:
      - "/dev/i2c-18"
    networks:
      - backend
    command:
      [
        "wait-for-it",
        "influxdb:8086",
        "-t",
        "60",
        "--",
        "python3",
        "/usr/bin/bme280-influxdb.py",
        "18",
        "0x77" 
      ]

  flaskapp:
    build:
      context: flaskapp
    tty: true
    container_name: flaskapp
    depends_on:
      - bme280-influxdb
    networks:
      - backend
      - frontend
    ports:
      - 5000:5000
    working_dir: /flaskapp
    command:
      [
        "wait-for-it",
        "influxdb:8086",
        "-t",
        "60",
        "--",
        "python3",
        "flaskapp.py",
      ]
  weston:
    environment:
      - ACCEPT_FSL_EULA=1
    container_name: weston
    image: torizon/arm64v8-debian-weston-vivante:latest
    # For Apalis iMX8 use this image
    # image: torizon/arm64v8-debian-weston-vivante:latest
    # 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 tty7
      - "c 4:7 rmw"
      # ... for /dev/input devices
      - "c 13:* rmw"
      - "c 199:* rmw"
      # ... for /dev/dri devices
      - "c 226:* rmw"

  kiosk:
    build:
      context: kiosk
    container_name: kiosk
    entrypoint: []
    command:
      [
        "wait-for-it",
        "flaskapp:5000",
        "-t",
        "60",
        "--",
        "/usr/bin/start-browser",
        "--window-mode",
        "http://flaskapp:5000",
      ]
    networks:
      - frontend
    volumes:
      - type: bind
        source: /tmp
        target: /tmp
      - type: bind
        source: /var/run/dbus
        target: /var/run/dbus
      - type: bind
        source: /dev/dri
        target: /dev/dri
    depends_on:
      - weston
      - flaskapp
    shm_size: "256mb"
    device_cgroup_rules:
      # ... for /dev/dri devices
      - "c 226:* rmw"     

          
networks:
  frontend:
    internal: false
  backend:
     external: 
      name: backend

And this is my log (influxdb is launched separately for easier debugging):

colibri-imx8x-v10b-06410677:~/sample-bme280$ docker-compose up --build
WARNING: Found orphan containers (sample-bme280_portainer_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Building bme280-influxdb
Step 1/6 : ARG IMAGE_ARCH=arm64v8
Step 2/6 : FROM torizon/$IMAGE_ARCH-debian-base:buster
# Executing 1 build trigger
 ---> Using cache
 ---> abf3bcbfd237
Step 3/6 : RUN apt-get update     && apt-get install -y --no-install-recommends python3     python3-setuptools     python3-influxdb     wait-for-it     python3-pip     && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 287a2726e95f
Step 4/6 : RUN apt-get update && apt-get install -y procps
 ---> Using cache
 ---> d246a933b8be
Step 5/6 : RUN pip3 install smbus2 RPi.bme280
 ---> Using cache
 ---> b1026cceb776
Step 6/6 : COPY bme280-influxdb.py /usr/bin
 ---> Using cache
 ---> 40e9b8b2d30f

Successfully built 40e9b8b2d30f
Successfully tagged sample-bme280_bme280-influxdb:latest
Building flaskapp
Step 1/7 : ARG IMAGE_ARCH=arm64v8
Step 2/7 : FROM torizon/$IMAGE_ARCH-debian-base:buster
# Executing 1 build trigger
 ---> Using cache
 ---> abf3bcbfd237
Step 3/7 : RUN apt-get update     && apt-get install -y --no-install-recommends python3     python3-setuptools     python3-flask     python3-influxdb     wait-for-it     && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> c2d03cd7f7b2
Step 4/7 : RUN mkdir flaskapp
 ---> Using cache
 ---> d8bd1724eb6d
Step 5/7 : COPY flaskapp.py flaskapp/
 ---> Using cache
 ---> 1628e892ca71
Step 6/7 : COPY templates/ flaskapp/templates/
 ---> Using cache
 ---> be28161bddb7
Step 7/7 : COPY static/ flaskapp/static/
 ---> Using cache
 ---> 695ab259adb2

Successfully built 695ab259adb2
Successfully tagged sample-bme280_flaskapp:latest
Building kiosk
Step 1/5 : ARG IMAGE_ARCH=arm64v8
Step 2/5 : FROM torizon/$IMAGE_ARCH-debian-kiosk-mode-browser:latest
 ---> 1e63910b22cc
Step 3/5 : USER root
 ---> Using cache
 ---> aaa1d9da143d
Step 4/5 : RUN sudo apt-get update     && apt-get install -y --no-install-recommends     wait-for-it     && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> ffbe3dd1202f
Step 5/5 : USER torizon
 ---> Using cache
 ---> e985315c068e

Successfully built e985315c068e
Successfully tagged sample-bme280_kiosk:latest
Starting bme280-influxdb ... done
Creating weston          ... done
Starting flaskapp        ... done
Recreating kiosk         ... done
Attaching to weston, bme280-influxdb, flaskapp, kiosk
flaskapp           | wait-for-it: waiting 60 seconds for influxdb:8086
bme280-influxdb    | wait-for-it: waiting 60 seconds for influxdb:8086
weston             | NXP EULA has already been accepted.
weston             | Switching to VT 7
kiosk              | wait-for-it: waiting 60 seconds for flaskapp:5000
weston             | NXP EULA has already been accepted.
weston             | touch: cannot touch '/tmp/nxp-eula-accepted': Permission denied
weston             | Date: 2020-07-02 UTC
weston             | [10:15:44.724] 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             | [10:15:44.724] Command line: /usr/bin/weston --current-mode
weston             | [10:15:44.724] OS: Linux, 4.14.170-4.0.0-devel+git.60f8ee9af1da, #1-TorizonCore SMP PREEMPT Wed Jun 24 11:43:05 UTC 2020, aarch64
weston             | [10:15:44.725] Using config file '/etc/xdg/weston/weston.ini'
weston             | [10:15:44.726] Output repaint window is 16 ms maximum.
weston             | [10:15:44.726] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/drm-backend.so'
weston             | [10:15:44.729] initializing drm backend
weston             | [10:15:44.735] using /dev/dri/card1
weston             | [10:15:44.735] DRM: supports universal planes
weston             | [10:15:44.735] DRM: supports atomic modesetting
weston             | [10:15:44.735] DRM: does not support picture aspect ratio
weston             | [10:15:44.735] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/gl-renderer.so'
weston             | [10:15:44.751] EGL client extensions: EGL_EXT_client_extensions
weston             |                EGL_EXT_platform_base EGL_KHR_platform_wayland
weston             |                EGL_EXT_platform_wayland EGL_KHR_platform_gbm
weston             | [10:15:44.757] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
weston             | [10:15:44.757] EGL_KHR_surfaceless_context available
weston             | [10:15:44.764] EGL version: 1.5
weston             | [10:15:44.764] EGL vendor: Vivante Corporation
weston             | [10:15:44.765] EGL client APIs: OpenGL_ES
weston             | [10:15:44.765] EGL extensions: EGL_KHR_fence_sync EGL_KHR_reusable_sync
weston             |                EGL_KHR_wait_sync EGL_KHR_image EGL_KHR_image_base
weston             |                EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image
weston             |                EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image
weston             |                EGL_EXT_image_dma_buf_import
weston             |                EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_lock_surface
weston             |                EGL_KHR_create_context EGL_KHR_surfaceless_context
weston             |                EGL_EXT_create_context_robustness EGL_EXT_protected_surface
weston             |                EGL_EXT_protected_content EGL_EXT_buffer_age
weston             |                EGL_ANDROID_native_fence_sync EGL_WL_bind_wayland_display
weston             |                EGL_WL_create_wayland_buffer_from_image EGL_KHR_partial_update
weston             | [10:15:44.766] GL version: OpenGL ES 3.1 V6.2.4.p4.190076
weston             | [10:15:44.766] GLSL version: OpenGL ES GLSL ES 3.10
weston             | [10:15:44.766] GL vendor: Vivante Corporation
weston             | [10:15:44.766] GL renderer: Vivante GC7000L
weston             | [10:15:44.766] GL extensions: GL_OES_vertex_type_10_10_10_2
weston             |                GL_OES_vertex_half_float GL_OES_element_index_uint
weston             |                GL_OES_mapbuffer GL_OES_vertex_array_object
weston             |                GL_OES_compressed_ETC1_RGB8_texture
weston             |                GL_OES_compressed_paletted_texture GL_OES_texture_npot
weston             |                GL_OES_rgb8_rgba8 GL_OES_depth_texture
weston             |                GL_OES_depth_texture_cube_map GL_OES_depth24 GL_OES_depth32
weston             |                GL_OES_packed_depth_stencil GL_OES_fbo_render_mipmap
weston             |                GL_OES_get_program_binary GL_OES_fragment_precision_high
weston             |                GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_sync
weston             |                GL_OES_texture_stencil8 GL_OES_shader_image_atomic
weston             |                GL_OES_texture_storage_multisample_2d_array
weston             |                GL_OES_required_internalformat GL_OES_surfaceless_context
weston             |                GL_OES_copy_image GL_OES_draw_buffers_indexed
weston             |                GL_OES_texture_border_clamp GL_OES_texture_buffer
weston             |                GL_OES_texture_cube_map_array GL_OES_draw_elements_base_vertex
weston             |                GL_OES_texture_half_float GL_OES_texture_float
weston             |                GL_KHR_blend_equation_advanced GL_KHR_debug GL_KHR_robustness
weston             |                GL_KHR_robust_buffer_access_behavior
weston             |                GL_EXT_texture_type_2_10_10_10_REV
weston             |                GL_EXT_texture_filter_anisotropic
weston             |                GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888
weston             |                GL_EXT_texture_compression_s3tc GL_EXT_read_format_bgra
weston             |                GL_EXT_multi_draw_arrays GL_EXT_frag_depth
weston             |                GL_EXT_discard_framebuffer GL_EXT_blend_minmax
weston             |                GL_EXT_multisampled_render_to_texture
weston             |                GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float
weston             |                GL_EXT_robustness GL_EXT_texture_sRGB_decode
weston             |                GL_EXT_draw_buffers_indexed GL_EXT_texture_border_clamp
weston             |                GL_EXT_texture_buffer GL_EXT_copy_image
weston             |                GL_EXT_texture_cube_map_array GL_EXT_multi_draw_indirect
weston             |                GL_EXT_draw_elements_base_vertex GL_EXT_texture_rg
weston             |                GL_EXT_protected_textures GL_EXT_sRGB GL_VIV_direct_texture
weston             | [10:15:44.767] GL ES 2 renderer features:
weston             |                read-back format: BGRA
weston             |                wl_shm sub-image to texture: yes
weston             |                EGL Wayland extension: yes
weston             | [10:15:44.794] event1  - AD7879 Touchscreen: is tagged by udev as: Touchscreen
weston             | [10:15:44.795] event1  - AD7879 Touchscreen: device is a touch device
weston             | [10:15:44.796] event1  - AD7879 Touchscreen: applying calibration: 1.063229 0.002205 -0.034633 -0.016840 -1.106605 1.051992
weston             | [10:15:44.864] event3  - ELECOM ELECOM BlueLED Mouse: is tagged by udev as: Mouse
weston             | [10:15:44.865] event3  - ELECOM ELECOM BlueLED Mouse: device is a pointer
weston             | [10:15:44.877] event4  - ELECOM ELECOM BlueLED Mouse: is tagged by udev as: Keyboard
weston             | [10:15:44.877] event4  - ELECOM ELECOM BlueLED Mouse: device is a keyboard
weston             | [10:15:44.881] event2  - gpio-keys: is tagged by udev as: Keyboard
weston             | [10:15:44.882] event2  - gpio-keys: device is a keyboard
weston             | [10:15:44.885] event0  - sc-powerkey: is tagged by udev as: Keyboard
weston             | [10:15:44.885] event0  - sc-powerkey: device is a keyboard
weston             | [10:15:44.886] Touchscreen - AD7879 Touchscreen - /sys/devices/platform/5a800000.i2c/i2c-17/17-002c/input/input1/event1
weston             | [10:15:44.921] DRM: head 'DPI-1' found, connector 29 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
weston             | [10:15:44.921] Registered plugin API 'weston_drm_output_api_v1' of size 24
weston             | [10:15:44.923] Chosen EGL config details:
weston             |                RGBA bits: 8 8 8 0
weston             |                swap interval range: 1 - 60
weston             | [10:15:44.924] No backlight control for output 'DPI-1'
weston             | [10:15:44.924] Output DPI-1 (crtc 31) video modes:
weston             |                800x480@64.5, preferred, current, 33.3 MHz
weston             | [10:15:44.924] associating input device event1 with output DPI-1 (none by udev)
weston             | [10:15:44.924] associating input device event3 with output DPI-1 (none by udev)
weston             | [10:15:44.924] associating input device event4 with output DPI-1 (none by udev)
weston             | [10:15:44.924] associating input device event2 with output DPI-1 (none by udev)
weston             | [10:15:44.924] associating input device event0 with output DPI-1 (none by udev)
weston             | [10:15:44.924] Output 'DPI-1' enabled with head(s) DPI-1
weston             | [10:15:44.924] 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
weston             | [10:15:44.925] Loading module '/usr/lib/aarch64-linux-gnu/weston/desktop-shell.so'
weston             | [10:15:44.927] launching '/usr/lib/aarch64-linux-gnu/weston-keyboard'
weston             | [10:15:44.935] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/xwayland.so'
weston             | [10:15:44.986] Registered plugin API 'weston_xwayland_v1' of size 32
weston             | [10:15:44.986] Registered plugin API 'weston_xwayland_surface_v1' of size 16
weston             | [10:15:44.987] xserver listening on display :0
weston             | [10:15:44.987] launching '/usr/lib/aarch64-linux-gnu/weston-desktop-shell'
weston             | could not load cursor 'dnd-move'
weston             | could not load cursor 'dnd-move'
weston             | could not load cursor 'dnd-copy'
weston             | could not load cursor 'dnd-copy'
weston             | could not load cursor 'dnd-none'
weston             | could not load cursor 'dnd-none'
flaskapp           | wait-for-it: influxdb:8086 is available after 27 seconds
bme280-influxdb    | wait-for-it: influxdb:8086 is available after 30 seconds
flaskapp           |  * Serving Flask app "flaskapp" (lazy loading)
flaskapp           |  * Environment: production
flaskapp           |    WARNING: Do not use the development server in a production environment.
flaskapp           |    Use a production WSGI server instead.
flaskapp           |  * Debug mode: on
flaskapp           |  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
flaskapp           |  * Restarting with stat
kiosk              | wait-for-it: flaskapp:5000 is available after 27 seconds
flaskapp           |  * Debugger is active!
flaskapp           |  * Debugger PIN: 101-624-054
kiosk              | Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted
kiosk              | [1:1:0702/101618.588723:FATAL:zygote_host_impl_linux.cc(186)] Check failed: ReceiveFixedMessage(fds[0], kZygoteBootMessage, sizeof(kZygoteBootMessage), &boot_pid). 
kiosk              | #0 0xaaaae2f3db24 <unknown>
kiosk              | #1 0xaaaae2ea79f0 <unknown>
kiosk              | #2 0xaaaae2ebb114 <unknown>
kiosk              | #3 0xaaaae3f0ecf8 <unknown>
kiosk              | #4 0xaaaae2a998a8 <unknown>
kiosk              | #5 0xaaaae3f0dd8c <unknown>
kiosk              | #6 0xaaaae3f0fe40 <unknown>
kiosk              | #7 0xaaaae2a9a7e4 <unknown>
kiosk              | #8 0xaaaae2abd6cc <unknown>
kiosk              | #9 0xaaaae2a9885c <unknown>
kiosk              | #10 0xaaaae0a11bc0 ChromeMain
kiosk              | #11 0xffff9f654d24 __libc_start_main
kiosk              | #12 0xaaaae0a11a10 <unknown>
kiosk              | 
kiosk              | Received signal 6
kiosk              | #0 0xaaaae2f3db24 <unknown>
kiosk              | #1 0xaaaae2ea79f0 <unknown>
kiosk              | #2 0xaaaae2f3c85c <unknown>
kiosk              | #3 0xaaaae2f3daac <unknown>
kiosk              | #4 0xffffa4eba648 ([vdso]+0x647)
kiosk              | #5 0xffff9f666714 gsignal
kiosk              | #6 0xffff9f6548e8 abort
kiosk              | #7 0xaaaae2f3da58 <unknown>
kiosk              | #8 0xaaaae2ebb4d4 <unknown>
kiosk              | #9 0xaaaae3f0ecf8 <unknown>
kiosk              | #10 0xaaaae2a998a8 <unknown>
kiosk              | #11 0xaaaae3f0dd8c <unknown>
kiosk              | #12 0xaaaae3f0fe40 <unknown>
kiosk              | #13 0xaaaae2a9a7e4 <unknown>
kiosk              | #14 0xaaaae2abd6cc <unknown>
kiosk              | #15 0xaaaae2a9885c <unknown>
kiosk              | #16 0xaaaae0a11bc0 ChromeMain
kiosk              | #17 0xffff9f654d24 __libc_start_main
kiosk              | #18 0xaaaae0a11a10 <unknown>
kiosk              | [end of stack trace]
kiosk              | Calling _exit(1). Core file will not be generated.
kiosk exited with code 1

Flask is also working (I can access it from my PC).

Any idea? Thanks!

Hi @alvaro.tx,

Just to eliminate other possibilities could you run a quick test on your setup. Try just running the kiosk container plain, with no other extra containers (besides weston of course). Something like this compose file should do:

version: "2.4"
 services:
   weston:
     image: torizon/arm64v8-debian-weston-vivante:latest
     network_mode: host
     environment:
       - ACCEPT_FSL_EULA=1
     volumes:
       - type: bind
         source: /tmp
         target: /tmp
       - type: bind
         source: /run/udev
         target: /run/udev
       - type: bind
         source: /dev
         target: /dev
     cap_add:
       - CAP_SYS_TTY_CONFIG
     # Add device access rights through cgroup...
     device_cgroup_rules:
       # ... for tty0
       - 'c 4:0 rmw'
       # ... for tty7
       - 'c 4:7 rmw'
       # ... for /dev/input devices
       - 'c 13:* rmw'
       - 'c 199:* rmw'
       # ... for /dev/dri devices
       - 'c 226:* rmw'
       - 'c 81:* rmw'
   browser:
     image: torizon/arm64v8-debian-kiosk-mode-browser:latest
     security_opt:
       - seccomp:unconfined
     command: --browser-mode https://www.google.com
     shm_size: 256mb
     volumes:
       - /tmp:/tmp
       - /var/run/dbus:/var/run/dbus
       - type: bind
         source: /dev/dri
         target: /dev/dri
     depends_on:
       - weston

Let me know your results, between this and your other issue I’m starting to think there is a i.MX8X specific issue(s) going on here.

Best Regards,
Jeremias

Hi Jeremias, this actually worked!

colibri-imx8x-v10b-06410677:~/Weston$ docker-compose up
Creating network "weston_default" with the default driver
Creating weston_weston_1 ... done
Creating weston_browser_1 ... done
Attaching to weston_weston_1, weston_browser_1
weston_1   | Switching to VT 7
weston_1   | NXP EULA has already been accepted.
weston_1   | touch: cannot touch '/tmp/nxp-eula-accepted': Permission denied
weston_1   | Date: 2020-07-02 UTC
weston_1   | [22:56:44.962] 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   | [22:56:44.962] Command line: /usr/bin/weston --current-mode
weston_1   | [22:56:44.962] OS: Linux, 4.14.170-4.0.0-devel+git.60f8ee9af1da, #1-TorizonCore SMP PREEMPT Wed Jun 24 11:43:05 UTC 2020, aarch64
weston_1   | [22:56:44.966] Using config file '/etc/xdg/weston/weston.ini'
weston_1   | [22:56:44.968] Output repaint window is 16 ms maximum.
weston_1   | [22:56:44.989] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/drm-backend.so'
weston_1   | [22:56:45.266] initializing drm backend
weston_1   | [22:56:45.273] using /dev/dri/card1
weston_1   | [22:56:45.273] DRM: supports universal planes
weston_1   | [22:56:45.273] DRM: supports atomic modesetting
weston_1   | [22:56:45.273] DRM: does not support picture aspect ratio
weston_1   | [22:56:45.312] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/gl-renderer.so'
weston_1   | [22:56:45.599] EGL client extensions: EGL_EXT_client_extensions
weston_1   |                EGL_EXT_platform_base EGL_KHR_platform_wayland
weston_1   |                EGL_EXT_platform_wayland EGL_KHR_platform_gbm
weston_1   | [22:56:45.614] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
weston_1   | [22:56:45.614] EGL_KHR_surfaceless_context available
weston_1   | [22:56:45.664] EGL version: 1.5
weston_1   | [22:56:45.665] EGL vendor: Vivante Corporation
weston_1   | [22:56:45.665] EGL client APIs: OpenGL_ES
weston_1   | [22:56:45.665] EGL extensions: EGL_KHR_fence_sync EGL_KHR_reusable_sync
weston_1   |                EGL_KHR_wait_sync EGL_KHR_image EGL_KHR_image_base
weston_1   |                EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image
weston_1   |                EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image
weston_1   |                EGL_EXT_image_dma_buf_import
weston_1   |                EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_lock_surface
weston_1   |                EGL_KHR_create_context EGL_KHR_surfaceless_context
weston_1   |                EGL_EXT_create_context_robustness EGL_EXT_protected_surface
weston_1   |                EGL_EXT_protected_content EGL_EXT_buffer_age
weston_1   |                EGL_ANDROID_native_fence_sync EGL_WL_bind_wayland_display
weston_1   |                EGL_WL_create_wayland_buffer_from_image EGL_KHR_partial_update
weston_1   | [22:56:45.665] GL version: OpenGL ES 3.1 V6.2.4.p4.190076
weston_1   | [22:56:45.665] GLSL version: OpenGL ES GLSL ES 3.10
weston_1   | [22:56:45.665] GL vendor: Vivante Corporation
weston_1   | [22:56:45.665] GL renderer: Vivante GC7000L
weston_1   | [22:56:45.665] GL extensions: GL_OES_vertex_type_10_10_10_2
weston_1   |                GL_OES_vertex_half_float GL_OES_element_index_uint
weston_1   |                GL_OES_mapbuffer GL_OES_vertex_array_object
weston_1   |                GL_OES_compressed_ETC1_RGB8_texture
weston_1   |                GL_OES_compressed_paletted_texture GL_OES_texture_npot
weston_1   |                GL_OES_rgb8_rgba8 GL_OES_depth_texture
weston_1   |                GL_OES_depth_texture_cube_map GL_OES_depth24 GL_OES_depth32
weston_1   |                GL_OES_packed_depth_stencil GL_OES_fbo_render_mipmap
weston_1   |                GL_OES_get_program_binary GL_OES_fragment_precision_high
weston_1   |                GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_sync
weston_1   |                GL_OES_texture_stencil8 GL_OES_shader_image_atomic
weston_1   |                GL_OES_texture_storage_multisample_2d_array
weston_1   |                GL_OES_required_internalformat GL_OES_surfaceless_context
weston_1   |                GL_OES_copy_image GL_OES_draw_buffers_indexed
weston_1   |                GL_OES_texture_border_clamp GL_OES_texture_buffer
weston_1   |                GL_OES_texture_cube_map_array GL_OES_draw_elements_base_vertex
weston_1   |                GL_OES_texture_half_float GL_OES_texture_float
weston_1   |                GL_KHR_blend_equation_advanced GL_KHR_debug GL_KHR_robustness
weston_1   |                GL_KHR_robust_buffer_access_behavior
weston_1   |                GL_EXT_texture_type_2_10_10_10_REV
weston_1   |                GL_EXT_texture_filter_anisotropic
weston_1   |                GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888
weston_1   |                GL_EXT_texture_compression_s3tc GL_EXT_read_format_bgra
weston_1   |                GL_EXT_multi_draw_arrays GL_EXT_frag_depth
weston_1   |                GL_EXT_discard_framebuffer GL_EXT_blend_minmax
weston_1   |                GL_EXT_multisampled_render_to_texture
weston_1   |                GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float
weston_1   |                GL_EXT_robustness GL_EXT_texture_sRGB_decode
weston_1   |                GL_EXT_draw_buffers_indexed GL_EXT_texture_border_clamp
weston_1   |                GL_EXT_texture_buffer GL_EXT_copy_image
weston_1   |                GL_EXT_texture_cube_map_array GL_EXT_multi_draw_indirect
weston_1   |                GL_EXT_draw_elements_base_vertex GL_EXT_texture_rg
weston_1   |                GL_EXT_protected_textures GL_EXT_sRGB GL_VIV_direct_texture
weston_1   | [22:56:45.666] 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   | [22:56:45.762] event1  - AD7879 Touchscreen: is tagged by udev as: Touchscreen
weston_1   | [22:56:45.763] event1  - AD7879 Touchscreen: device is a touch device
weston_1   | [22:56:45.764] event1  - AD7879 Touchscreen: applying calibration: 1.063229 0.002205 -0.034633 -0.016840 -1.106605 1.051992
weston_1   | [22:56:45.833] event3  - ELECOM ELECOM BlueLED Mouse: is tagged by udev as: Mouse
weston_1   | [22:56:45.834] event3  - ELECOM ELECOM BlueLED Mouse: device is a pointer
weston_1   | [22:56:45.845] event4  - ELECOM ELECOM BlueLED Mouse: is tagged by udev as: Keyboard
weston_1   | [22:56:45.845] event4  - ELECOM ELECOM BlueLED Mouse: device is a keyboard
weston_1   | [22:56:45.849] event2  - gpio-keys: is tagged by udev as: Keyboard
weston_1   | [22:56:45.849] event2  - gpio-keys: device is a keyboard
weston_1   | [22:56:45.853] event0  - sc-powerkey: is tagged by udev as: Keyboard
weston_1   | [22:56:45.854] event0  - sc-powerkey: device is a keyboard
weston_1   | [22:56:45.855] Touchscreen - AD7879 Touchscreen - /sys/devices/platform/5a800000.i2c/i2c-17/17-002c/input/input1/event1
weston_1   | [22:56:45.911] DRM: head 'DPI-1' found, connector 29 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
weston_1   | [22:56:45.912] Registered plugin API 'weston_drm_output_api_v1' of size 24
weston_1   | [22:56:45.913] Chosen EGL config details:
weston_1   |                RGBA bits: 8 8 8 0
weston_1   |                swap interval range: 1 - 60
weston_1   | [22:56:45.914] No backlight control for output 'DPI-1'
weston_1   | [22:56:45.914] Output DPI-1 (crtc 31) video modes:
weston_1   |                800x480@64.5, preferred, current, 33.3 MHz
weston_1   | [22:56:45.914] associating input device event1 with output DPI-1 (none by udev)
weston_1   | [22:56:45.914] associating input device event3 with output DPI-1 (none by udev)
weston_1   | [22:56:45.914] associating input device event4 with output DPI-1 (none by udev)
weston_1   | [22:56:45.914] associating input device event2 with output DPI-1 (none by udev)
weston_1   | [22:56:45.914] associating input device event0 with output DPI-1 (none by udev)
weston_1   | [22:56:45.914] Output 'DPI-1' enabled with head(s) DPI-1
weston_1   | [22:56:45.914] 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   | [22:56:45.918] Loading module '/usr/lib/aarch64-linux-gnu/weston/desktop-shell.so'
weston_1   | [22:56:45.924] launching '/usr/lib/aarch64-linux-gnu/weston-keyboard'
weston_1   | [22:56:45.933] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/xwayland.so'
weston_1   | [22:56:45.991] Registered plugin API 'weston_xwayland_v1' of size 32
weston_1   | [22:56:45.991] Registered plugin API 'weston_xwayland_surface_v1' of size 16
weston_1   | [22:56:45.991] xserver listening on display :0
weston_1   | [22:56:45.992] launching '/usr/lib/aarch64-linux-gnu/weston-desktop-shell'
weston_1   | could not load cursor 'dnd-move'
weston_1   | could not load cursor 'dnd-move'
weston_1   | could not load cursor 'dnd-copy'
weston_1   | could not load cursor 'dnd-copy'
weston_1   | could not load cursor 'dnd-none'
weston_1   | could not load cursor 'dnd-none'
weston_1   | [22:56:49.910] Spawned Xwayland server, pid 27
weston_1   | glamor: 'wl_drm' not supported
weston_1   | Missing Wayland requirements for glamor GBM backend
weston_1   | Failed to initialize glamor, falling back to sw
weston_1   | [22:56:50.623] xfixes version: 5.0
weston_1   | [22:56:50.664] created wm, root 908
browser_1  | [1:33:0702/225652.726936:ERROR:bus.cc(393)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
browser_1  | [1:218:0702/225653.751289:ERROR:bus.cc(393)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
browser_1  | [1:230:0702/225653.911624:ERROR:bus.cc(393)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
browser_1  | [1:230:0702/225653.921540:ERROR:bus.cc(393)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
browser_1  | [1:230:0702/225653.926430:ERROR:bus.cc(393)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
browser_1  | [1:230:0702/225653.930484:ERROR:bus.cc(393)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
browser_1  | [1:230:0702/225653.935863:ERROR:bus.cc(393)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
browser_1  | [41:41:0702/225655.040079:ERROR:sandbox_linux.cc(369)] InitializeSandbox() called with multiple threads in process gpu-process.

I also tested this in my docker-compose and it also worked. Could it be the binary I’m using? ("/usr/bin/start-browser").

BTW, this is my kiosk dockerfile, in case you see something strange:

ARG IMAGE_ARCH=arm64v8
# For Apalis iMX8 use IMAGE_ARCH=arm64v8

FROM torizon/$IMAGE_ARCH-debian-kiosk-mode-browser:latest

# Switch to root user to install additional packages
USER root

RUN sudo apt-get update \
    && apt-get install -y --no-install-recommends \
    wait-for-it \
    && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*

USER torizon

Hi @jeremias.tx , I think found the culprit :

security_opt:
    - seccomp:unconfined

If I add this to my kiosk node, it works. We should probably take it a further look (not pretty), not sure if it is Colibri iMX8X / Parallel screen issue.

Kind regards,
Alvaro.