Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!
Did you like my answer?
Hello,
The error message you’re encountering, “Permission denied” for the device files /dev/dma_heap/linux,cma and /dev/dma_heap/linux,cma-uncached, indicates a permissions issue when the Weston container attempts to access these resources. This is likely causing the container to exit with code 139.
Here are some steps you can take to resolve this issue:
Check User Permissions: Ensure that the user running the Docker container has the necessary permissions to access these device files. You might need to add the user to the appropriate group that has access to these devices. Typically, this involves adding the user to the video or render group, depending on your system configuration.
sudo usermod -aG video <your-username>
sudo usermod -aG render <your-username>
After modifying group memberships, log out and back in for the changes to take effect.
Adjust Docker Permissions: You can modify the Docker Compose file to run the container with elevated privileges, which might be necessary for accessing certain hardware resources.
In your docker-compose.yml, add the following under the specific service:
services:
test-weston:
...
privileged: true
Note that using privileged: true grants the container extended privileges, which should be used cautiously.
Verify Device File Access: Ensure that the device files /dev/dma_heap/linux,cma and /dev/dma_heap/linux,cma-uncached exist and have the correct permissions set. You can check this with:
ls -l /dev/dma_heap/
If the files do not exist or have incorrect permissions, you may need to adjust them or ensure the necessary kernel modules are loaded.
By following these steps, you should be able to resolve the permission issues and successfully run the Weston container on your Colibri iMX8X module.
Best regards,
Toradex AI Assistant.
Please, also check if these links can help you solve your problem:
Neither Check User Permissions nor Adjust Docker Permissions seem to be relevant.
However, if I use torizon/weston:oldstable-rc, the abnormal termination is no longer occurring, but a blue screen appears.
Switching to VT 7
SoC is: 'i.MX8QXP'
SoC has GPU: true
SoC has DPU: true
g2d implementation: dpu
Removing previously created '.X*-lock' entries under /tmp before starting Weston. Pass 'IGNORE_X_LOCKS=1' environment variable to Weston container to disable this behavior.
dos2unix: converting file /etc/xdg/weston/weston.ini to Unix format...
dos2unix: converting file /etc/xdg/weston-dev/weston.ini to Unix format...
00:00:00.000 [seatd/seat.c:39] Created VT-bound seat seat0
00:00:00.000 [seatd/seatd.c:194] seatd started
Date: 2024-12-25 UTC
[05:06:13.083] weston 10.0.1
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: lf-5.15.52-2.1.0-10-g9452feba
[05:06:13.084] Command line: weston -Bdrm-backend.so --current-mode -Swayland-0
[05:06:13.084] OS: Linux, 5.15.148-6.8.0+git.8c5c2dcbf6ba, #1-TorizonCore SMP PREEMPT Tue Aug 6 10:01:59 UTC 2024, aarch64
[05:06:13.084] Flight recorder: enabled
[05:06:13.085] Using config file '/etc/xdg/weston/weston.ini'
[05:06:13.085] Output repaint window is 7 ms maximum.
[05:06:13.086] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/drm-backend.so'
[05:06:13.100] initializing drm backend
[05:06:13.100] Trying libseat launcher...
00:00:00.067 [seatd/server.c:145] New client connected (pid: 28, uid: 1000, gid: 1000)
00:00:00.068 [seatd/seat.c:170] Added client 7 to seat0
00:00:00.068 [seatd/seat.c:480] Opened client 7 on seat0
[05:06:13.102] libseat: session control granted
[05:06:13.112] using /dev/dri/card1
[05:06:13.113] DRM: supports atomic modesetting
[05:06:13.113] DRM: supports GBM modifiers
[05:06:13.113] DRM: supports picture aspect ratio
[05:06:13.113] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/gl-renderer.so'
[05:06:13.129] EGL client extensions: EGL_EXT_client_extensions
EGL_EXT_platform_base EGL_KHR_platform_wayland
EGL_EXT_platform_wayland EGL_EXT_device_query
EGL_EXT_device_drm EGL_EXT_device_drm_render_node
EGL_KHR_platform_gbm
[05:06:13.134] EGL device extensions: EGL_EXT_client_extensions
EGL_EXT_platform_base EGL_KHR_platform_wayland
EGL_EXT_platform_wayland EGL_EXT_device_query
EGL_EXT_device_drm EGL_EXT_device_drm_render_node
EGL_KHR_platform_gbm
[05:06:13.135] EGL version: 1.5
[05:06:13.135] EGL vendor: Vivante Corporation
[05:06:13.135] EGL client APIs: OpenGL_ES OpenVG
[05:06:13.135] EGL extensions: EGL_KHR_fence_sync EGL_KHR_reusable_sync
EGL_KHR_wait_sync EGL_KHR_image EGL_KHR_image_base
EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image
EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image
EGL_EXT_image_dma_buf_import
EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_lock_surface
EGL_KHR_create_context EGL_KHR_no_config_context
EGL_KHR_surfaceless_context EGL_KHR_get_all_proc_addresses
EGL_EXT_create_context_robustness EGL_EXT_protected_surface
EGL_EXT_protected_content EGL_EXT_buffer_age
EGL_ANDROID_native_fence_sync EGL_WL_bind_wayland_display
EGL_WL_create_wayland_buffer_from_image EGL_KHR_partial_update
EGL_EXT_swap_buffers_with_damage
EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float
[05:06:13.136] EGL_KHR_surfaceless_context available
[05:06:13.143] GL version: OpenGL ES 3.1 V6.4.3.p4.398061
[05:06:13.143] GLSL version: OpenGL ES GLSL ES 3.10
[05:06:13.143] GL vendor: Vivante Corporation
[05:06:13.143] GL renderer: Vivante GC7000L
[05:06:13.143] GL extensions: GL_OES_vertex_type_10_10_10_2
GL_OES_vertex_half_float GL_OES_element_index_uint
GL_OES_mapbuffer GL_OES_vertex_array_object
GL_OES_compressed_ETC1_RGB8_texture
GL_OES_compressed_paletted_texture GL_OES_texture_npot
GL_OES_rgb8_rgba8 GL_OES_depth_texture
GL_OES_depth_texture_cube_map GL_OES_depth24 GL_OES_depth32
GL_OES_packed_depth_stencil GL_OES_fbo_render_mipmap
GL_OES_get_program_binary GL_OES_fragment_precision_high
GL_OES_standard_derivatives GL_OES_EGL_image
GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3
GL_OES_EGL_sync GL_OES_texture_stencil8
GL_OES_shader_image_atomic
GL_OES_texture_storage_multisample_2d_array
GL_OES_required_internalformat GL_OES_surfaceless_context
GL_OES_copy_image GL_OES_draw_buffers_indexed
GL_OES_texture_border_clamp GL_OES_texture_buffer
GL_OES_texture_cube_map_array GL_OES_draw_elements_base_vertex
GL_OES_texture_half_float GL_OES_texture_float
GL_KHR_blend_equation_advanced GL_KHR_debug GL_KHR_robustness
GL_KHR_robust_buffer_access_behavior
GL_EXT_texture_type_2_10_10_10_REV
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888
GL_EXT_texture_compression_s3tc GL_EXT_read_format_bgra
GL_EXT_multi_draw_arrays GL_EXT_frag_depth
GL_EXT_discard_framebuffer GL_EXT_blend_minmax
GL_EXT_multisampled_render_to_texture
GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float
GL_EXT_robustness GL_EXT_texture_sRGB_decode
GL_EXT_draw_buffers_indexed GL_EXT_texture_border_clamp
GL_EXT_texture_buffer GL_EXT_copy_image
GL_EXT_texture_cube_map_array GL_EXT_multi_draw_indirect
GL_EXT_draw_elements_base_vertex GL_EXT_texture_rg
GL_EXT_protected_textures GL_EXT_sRGB GL_EXT_unpack_subimage
GL_VIV_direct_texture
[05:06:13.222] GL ES 3.1 - renderer features:
read-back format: BGRA
EGL Wayland extension: yes
[05:06:13.239] event1 - gpio-keys: is tagged by udev as: Keyboard
[05:06:13.240] event1 - gpio-keys: device is a keyboard
[05:06:13.244] event0 - sc-powerkey: is tagged by udev as: Keyboard
[05:06:13.244] event0 - sc-powerkey: device is a keyboard
[05:06:13.283] libinput: configuring device "gpio-keys".
[05:06:13.284] libinput: configuring device "sc-powerkey".
[05:06:13.284] DRM: head 'DPI-1' updated, connector 35 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[05:06:13.285] DRM: head 'DPI-1' found, connector 35 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[05:06:13.285] Registered plugin API 'weston_drm_output_api_v1' of size 24
[05:06:13.286] Registered plugin API 'weston_drm_virtual_output_api_v1' of size 48
[05:06:13.286] Color manager: no-op
[05:06:13.286] Loading module '/usr/lib/libgbm.so'
[05:06:13.286] Failed to load module: /usr/lib/libgbm.so: cannot open shared object file: No such file or directory
[05:06:13.286] Output 'DPI-1' using color profile: built-in default sRGB SDR profile
[05:06:13.289] Chosen EGL config details: id: 21 rgba: 8 8 8 0 buf: 24 dep: 0 stcl: 0 int: 1-60 type: win|pix|pbf|swap_preserved vis_id: XRGB8888 (0x34325258)
[05:06:13.289] Output DPI-1 (crtc 33) video modes:
800x480@60.1, preferred, current, 33.2 MHz
[05:06:13.289] associating input device event1 with output DPI-1 (none by udev)
[05:06:13.289] associating input device event0 with output DPI-1 (none by udev)
[05:06:13.289] Output 'DPI-1' enabled with head(s) DPI-1
[05:06:13.289] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
cursor planes: yes
arbitrary resolutions: no
view mask clipping: yes
explicit sync: yes
color operations: no
presentation clock: CLOCK_MONOTONIC, id 1
presentation clock resolution: 0.000000001 s
[05:06:13.290] Loading module '/usr/lib/aarch64-linux-gnu/weston/desktop-shell.so'
[05:06:13.292] launching '/usr/lib/aarch64-linux-gnu/weston-keyboard'
[05:06:13.301] Note: support for the deprecated wl_shell interface is disabled. If a legacy client still needs it, it can be re-enabled by passing -Ddeprecated-wl-shell=true to Meson when building Weston.
[05:06:13.302] Loading module '/usr/lib/aarch64-linux-gnu/weston/screen-share.so'
[05:06:13.304] Loading module '/usr/lib/aarch64-linux-gnu/libweston-10/xwayland.so'
[05:06:13.343] Registered plugin API 'weston_xwayland_v1' of size 32
[05:06:13.343] Registered plugin API 'weston_xwayland_surface_v1' of size 16
[05:06:13.343] xserver listening on display :0
[05:06:13.344] launching '/usr/lib/aarch64-linux-gnu/weston-desktop-shell'
could not load cursor 'dnd-move'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
could not load cursor 'dnd-none'
^C[05:06:21.198] caught signal 2
00:00:08.167 [seatd/seat.c:418] No clients on seat0 to activate
00:00:08.168 [seatd/seat.c:524] Closed client 7 on seat0
00:00:08.168 [seatd/seat.c:192] Removed client 7 from seat0
00:00:08.168 [seatd/seatd.c:218] seatd stopped
[05:06:21.205] output for input device event1 removed
[05:06:21.205] output for input device event0 remo
Those samples files have been updated for Torizon OS 7 which uses our major 4 containers. For Torizon 6, one needs to use the major 3 containers which had a bit different naming scheme, basically you want to use image: torizon/weston-vivante:3 in the compose file.