Last edited 4 months ago

Wayland Weston troubleshooting grid

Applicable for STM32MP13x lines, STM32MP15x lines, STM32MP25x lines


Some typical issues related to the Wayland / Weston framework are listed below. Solutions or debugging methods are proposed for these issues.

If your issue is not listed, try also looking in the articles in the Wayland/Weston or troubleshooting grids categories.



Symptom Resolution
 glmark2-es2-wayland 
[11380.091100] reserved_mem_unmap_user: vm_munmap failed
eglCreateWindowSurface failed with error: 0x3003
Error: eglCreateWindowSurface failed with error: 0x3003
Error: CanvasGeneric: Invalid EGL state
Error: main: Could not initialize canvas
 weston-simple-egl
[11380.091100] reserved_mem_unmap_user: vm_munmap failed
has EGL_EXT_buffer_age and EGL_EXT_swap_buffers_with_damage
weston-simple-egl: ../git/clients/simple-egl.c:440: create_surface: 
  Assertion `ret == EGL_TRUE' failed.
Aborted (core dumped)
 weston-simple-egl
has EGL_EXT_buffer_age and EGL_EXT_swap_buffers_with_damage
Segmentation fault (core dumped) 

Weston is using pixman software composition instead of GPU hardware composition. This may be because you have not accepted the EULA at the beginning of the build...

 cat /etc/default/weston
WESTON_USER=weston
#Autogenerated
OPTARGS=--use-pixman

Please comment the "pixman" line in the file "/etc/default/weston"

 cat /etc/default/weston
WESTON_USER=weston
#Autogenerated
#OPTARGS=--use-pixman
 systemctl stop Weston-launch
Failed to stop Weston-launch.service: Unit Weston-launch.service not loaded.
 systemctl stop Weston-graphical-session
Failed to stop Weston-graphical-session.service: Unit Weston-graphical-session.service not loaded.

Please remove the capital letter in the word Weston. The correct command is:

 systemctl restart weston-graphical-session
 weston-simple-egl
weston-simple-egl: ../weston-10.0.0/clients/simple-egl.c:852: 
main: Assertion `display.display' failed.
Aborted (core dumped)
 glmark2-es2-wayland
Error: main: Could not initialize canvas

Weston is probably started with the "weston" user. The correct commands are:

 su -l "weston" -c "weston-simple-egl"
 su -l "weston" -c "glmark2-es2-wayland"
 systemctl stop Weston@root.service
Failed to stop Weston.service: Unit Weston.service not loaded.
 systemctl stop weston
Failed to stop weston.service: Unit weston.service not loaded.
 systemctl stop weston-launch
Failed to stop weston-launch.service: Unit weston-launch.service not loaded.

Please use the full Weston service named "weston-graphical-session". The correct command is:

 systemctl stop weston-graphical-session

Note: You can list all systemctl services with the following command:

 systemctl list-units | grep -i weston 
 weston-image mypicture.bmp
mypicture.bmp: unrecognized file header 0x42 0x4d 0x1e 0x51

"weston-image" small application supports only jpeg, png and webp image files. Please convert your ".bmp" image file into one of these supported image file formats.

Note: The official source code of "weston-image" is in the file image.c and the related error message is in image-loader.c.

 su -l weston -c weston-screenshooter
weston_screenshooter@5: error 0: screenshooter failed: permission denied. Debug protocol must be enabled

The Weston debug tool weston-screenshooter works only with Weston in debug mode. Add the following line to the file named "/etc/default/weston" to enable the Weston debug mode:

OPTARGS=--debug

Find more details in How to make a screen capture in Weston article.

Note: The Weston debug mode will be taken into account after a stop/start of the Wayland Weston service, please refer to How to stop and start Weston article.