Wayland Weston Desktop i.MX8M

Showing results for 
Show  only  | Search instead for 
Did you mean: 

Wayland Weston Desktop i.MX8M

Contributor II


I am currently working on installing Wayland Weston Desktop Environment on Ubuntu 16.04 for the i.MX8M but have an issue. Once i install and try to run I only get a black screen. It seems like the weston is running but nothing is shown on the screen.

Is there documentation available on how to build and configure Wayland/Weston desktop on the i.MX8M? Any help is appreciated. Thank you.


Cesar Hernandez

0 Kudos
10 Replies

Contributor I

Hello there,

HAVE YOU SOLVED THE ISSUE. If you have solved it. how? I have build standalone Embedded Linux for imx8mmevk.system specs are:

U-Boot SPL 2021.04-5.10.35

U-Boot 2021.04-5.10.35

Linux version 5.10.35

(GCC) 10.2.0

RFS Debian Buster [10]

Note: i have built this things individually in standalone environment and not Yocto.

Now, i m able to boot into uboot followed by kernel successfully.

Im also able to enter into command prompt of linux. and update the packages

i.e. sudo apt update

But, after that i am trying to install some desktop environment for my Linux.

I have tried GNOME and KDE-Plasma


apt install kde-standard

apt install gnome

But after successfully installing i'm still not able to see the Desktop+login window[GUI].

After rebooting the kit a black screen is visible nothing else.

I am following wiki guide for wayland since it says only GNOME and KDE are supported. So, is it right or not?

I want know if we can use some lightweight desktop for my board. since GNOME and KDE are too heavy.


I know that we need Wayland as an desktop server but since the above given source says that, As this is the default Debian desktop environment, Wayland is used by default in Debian 10 and newer, older versions use Xorg by default. 

So, am write to simply run the command and install it or i have to do some more configuration for Desktop server.


If anyone has done something similar and found solution an  help will be greatly appreciated. I have been stuck on this since 3 days.

I also want know their approach for standalone build if anyone has done something similar.

0 Kudos

Contributor II


    Recently I am using an I.mx8m with ubuntu and I have a similiar problem with you.The backend of the Ubuntu is weston/wayland, but this backend cannot satisfy my demand, so I tried to install another kind of backend of Ubuntu such as lubuntu,xubuntu,unity,gnome and so on.However, after I installed the new backend, I found this new backend can also run but the screen become black like your situation, this depressed me a lot.So I wonder how you installed normal ubuntu on you i.mx8 board, and it's my honour to share my way to install weston/wayland with you.

    Thank you very much.Hope to hear from you.

Best wishes,


0 Kudos

Contributor III


i am encountering the same problem. i build debian 10 for the imx8mm an loaded it from an sdcard. on boot i see the logs but after he screen goes black with a blinking curser at the top. i would appreciate if someone could tell me what am i doing wronge



0 Kudos

NXP TechSupport
NXP TechSupport

what backend do you use? do you build wayland or xwayland on for your image? and send the steps you test on your board, let me double check it, imx8M can support weston successfully, you can use default dtb by HDMI

0 Kudos

Contributor II

Hi Joan,

Thank you for your reply. I followed the instructions in the wayland website here: Building Weston on Ubuntu 16.04

When i run the $ weston command the screen on the HDMI connection will just turn black with a frozen insertion point dash on the upper left hand corner and nothing will happen afterwards.

Is there anything else i would need to set in order to get the desktop environment to display? 

0 Kudos

NXP TechSupport
NXP TechSupport

currnt bsp includes weston already, if you use wayland as backend, you just use the command like:

"weston --tty=1 --device=/dev/fb0,/dev/fb2 --use-g2d=1 &"

for more detailed information, pls refer to the chapter 5.2 Wayland, the default image uses HDMI as output

0 Kudos

Contributor II

Hi Joan,

I just tried to runt the command "weston --tty=1 --device=/dev/fb0,/dev/fb2 --use-g2d=1 &" but i get these errors

gdm: failed to open any driver (search paths /usr/lib/aarch64-linux-gnu/dri:${ORIGIN}/dri:/usr/lib/dri)

gbm: Last dlopen error: /usr/lib/dri/imx-drm-dri.so: cannot open shared object file: No such file or directory

failed to load driver: imx-drm

Failed to process Wayland connection: Broken pipe

failed to create display: Broken pipe

Also, here  is the log output for weston. Thank you.

Date: 2019-06-27 PDT
[11:45:07.746] weston 3.0.0
Bug reports to: https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=weston&version=3.0.0
Build: unknown (not built from git or tarball)
[11:45:07.746] Command line: weston --log=/weston.log --tty=1 --device=/dev/fb0,/dev/fb2 --use-g2d=1
[11:45:07.746] OS: Linux, 4.9.51-g138b60cb2440, #2 SMP PREEMPT Mon Feb 11 18:42:51 PST 2019, aarch64
[11:45:07.747] Starting with no config file.
[11:45:07.757] Output repaint window is 7 ms maximum.
[11:45:07.760] Loading module '/usr/lib/aarch64-linux-gnu/libweston-3/drm-backend.so'
[11:45:07.778] initializing drm backend
[11:45:07.788] logind: session control granted
[11:45:07.795] using /dev/dri/card0
[11:45:07.797] Loading module '/usr/lib/aarch64-linux-gnu/libweston-3/gl-renderer.so'
[11:45:09.564] EGL client extensions: 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
[11:45:09.565] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
[11:45:09.565] EGL_KHR_surfaceless_context available
[11:45:09.668] EGL version: 1.4 (DRI2)
[11:45:09.668] EGL vendor: Mesa Project
[11:45:09.668] EGL client APIs: OpenGL OpenGL_ES
[11:45:09.668] EGL extensions: 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
[11:45:09.668] GL version: OpenGL ES 3.0 Mesa 18.0.0-rc5
[11:45:09.668] GLSL version: OpenGL ES GLSL ES 3.00
[11:45:09.668] GL vendor: VMware, Inc.
[11:45:09.668] GL renderer: llvmpipe (LLVM 6.0, 128 bits)
[11:45:09.668] GL extensions: GL_ANGLE_texture_compression_dxt3
GL_ANGLE_texture_compression_dxt5 GL_APPLE_texture_max_level
GL_EXT_base_instance GL_EXT_blend_func_extended
GL_EXT_blend_minmax GL_EXT_clip_cull_distance
GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_copy_image
GL_EXT_discard_framebuffer GL_EXT_draw_buffers
GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex
GL_EXT_frag_depth GL_EXT_map_buffer_range
GL_EXT_multi_draw_arrays GL_EXT_occlusion_query_boolean
GL_EXT_polygon_offset_clamp GL_EXT_read_format_bgra
GL_EXT_separate_shader_objects GL_EXT_shader_integer_mix
GL_EXT_texture_border_clamp GL_EXT_texture_compression_dxt1
GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg
GL_EXT_texture_sRGB_decode GL_EXT_texture_type_2_10_10_10_REV
GL_EXT_unpack_subimage GL_KHR_context_flush_control
GL_KHR_debug GL_KHR_no_error GL_MESA_shader_integer_functions
GL_NV_draw_buffers GL_NV_fbo_color_attachments
GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil
GL_NV_read_stencil GL_OES_EGL_image GL_OES_EGL_image_external
GL_OES_EGL_sync GL_OES_compressed_ETC1_RGB8_texture
GL_OES_copy_image GL_OES_depth24 GL_OES_depth_texture
GL_OES_depth_texture_cube_map GL_OES_draw_buffers_indexed
GL_OES_draw_elements_base_vertex GL_OES_element_index_uint
GL_OES_fbo_render_mipmap GL_OES_get_program_binary
GL_OES_mapbuffer GL_OES_packed_depth_stencil
GL_OES_required_internalformat GL_OES_rgb8_rgba8
GL_OES_standard_derivatives GL_OES_stencil8
GL_OES_surfaceless_context GL_OES_texture_3D
GL_OES_texture_border_clamp GL_OES_texture_float
GL_OES_texture_float_linear GL_OES_texture_half_float
GL_OES_texture_half_float_linear GL_OES_texture_npot
GL_OES_texture_stencil8 GL_OES_vertex_array_object
[11:45:09.669] GL ES 2 renderer features:
read-back format: BGRA
wl_shm sub-image to texture: yes
EGL Wayland extension: no
[11:45:09.679] event0 - 30370000.snvs:snvs-powerkey: is tagged by udev as: Keyboard
[11:45:09.679] event0 - 30370000.snvs:snvs-powerkey: device is a keyboard
[11:45:09.683] event1 - Microsoft Microsoft® 2.4GHz Transceiver v8.0: is tagged by udev as: Keyboard
[11:45:09.683] event1 - Microsoft Microsoft® 2.4GHz Transceiver v8.0: device is a keyboard
[11:45:09.688] event2 - Microsoft Microsoft® 2.4GHz Transceiver v8.0: is tagged by udev as: Keyboard Mouse
[11:45:09.688] event2 - Microsoft Microsoft® 2.4GHz Transceiver v8.0: device is a pointer
[11:45:09.688] event2 - Microsoft Microsoft® 2.4GHz Transceiver v8.0: device is a keyboard
[11:45:09.693] event3 - Microsoft Microsoft® 2.4GHz Transceiver v8.0: is tagged by udev as: Keyboard
[11:45:09.693] event3 - Microsoft Microsoft® 2.4GHz Transceiver v8.0: device is a keyboard
[11:45:09.787] Registered plugin API 'weston_drm_output_api_v1' of size 24
[11:45:09.787] Chosen EGL config details:
RGBA bits: 8 8 8 0
swap interval range: 1 - 1
[11:45:09.788] Failed to initialize backlight
[11:45:09.788] EDID data 'ACR', 'H213H', 'LF80D0028500'
[11:45:09.788] Output HDMI-A-1, (connector 40, crtc 29)
mode 1920x1080@60.0, current
mode 1280x720@60.0
mode 1280x720@50.0
mode 720x480@59.9
[11:45:09.788] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
presentation clock: CLOCK_MONOTONIC, id 1
presentation clock resolution: 0.000000001 s
[11:45:09.792] Loading module '/usr/lib/aarch64-linux-gnu/weston/desktop-shell.so'
[11:45:09.800] launching '/usr/lib/weston/weston-keyboard'
[11:45:09.801] fatal: unhandled option: --device=/dev/fb0,/dev/fb2
[11:45:09.801] fatal: unhandled option: --use-g2d=1
[11:45:09.802] event0 - 30370000.snvs:snvs-powerkey: device removed
[11:45:09.803] event1 - Microsoft Microsoft® 2.4GHz Transceiver v8.0: device removed
[11:45:09.803] event2 - Microsoft Microsoft® 2.4GHz Transceiver v8.0: device removed
[11:45:09.803] event3 - Microsoft Microsoft® 2.4GHz Transceiver v8.0: device removed

0 Kudos

NXP TechSupport
NXP TechSupport

what image do you use? try to use wayland or xwayland as backend

0 Kudos

Contributor II


I am using an Ubuntu 18.04 image.

I installed weston and xwayland like steps below.

# sudo apt-get install weston xwayland

- I tried to run using this command

# weston-launch

- I also tried the command you send me with same result (black screen)


Cesar Hernandez

0 Kudos

NXP TechSupport
NXP TechSupport

current bsp has already supported westion, you don't need built by yourself, firstly, you try to download the demo image to your imx8M board, then use the command I sent to you, if you want to use the image you built, try to use wayland or xwayland as backend

0 Kudos