Unable to run X-clients over Weston through XWayland

Devashish Tiwari devashish at cdot.in
Mon Dec 2 08:23:24 UTC 2019


To be honest, I am not picking parts of Weston from different sources. I have used Weston 2.0.0 official release from [LINK] https://wayland.freedesktop.org/releases.html

And regarding the missing case of xwayland.so from /usr/lib/libweston-2/ path, even I was surprised that how vendor has patched Weston and customized it with --enable-xwayland=no

I have tried contacting to vendor several times regarding xwayland/X11 support, but they don't entertain such requests/questions by claiming that they don't support X11 in their current Linux

SDK version. But I was optimistic that Weston could be run with xwayland on this EVM. And after adding some final dependencies, I think it's good now. I have attached copied logs at the end of this email.

However, I wanted to ask if there are some sample X-clients/applications which I could run to check if weston+xwayland is really working or not. I tried to cross-compile xeyes for armhf and tried to run it,

but it showed following error:

root at am57xx-evm:/mnt# ./xeyes 
Error: Can't open display:

Am I missing something else here, that is required to run X-apps? Any Environment Variable or so?

Appreciate your help.



--------------------------------WESTON LOGS START--------------------------------------------------------------------------------

Date: 2019-04-06 UTC
[02:43:02.518] weston 2.0.0
               Bug reports to: https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=weston&version=2.0.0
               Build: 1.99.94-2-g4c4f13d configure.ac: bump to version 2.0.0 for the official release (2017-02-24 16:19:03 -0800)
[02:43:02.518] Command line: weston --idle-time=0
[02:43:02.518] OS: Linux, 4.14.79-ge669d52447, #1 SMP PREEMPT Sat Apr 6 02:23:36 UTC 2019, armv7l
[02:43:02.518] Using config file '/etc//weston.ini'
[02:43:02.519] Output repaint window is 7 ms maximum.
[02:43:02.519] Loading module '/usr/lib/libweston-2/drm-backend.so'
[02:43:02.520] initializing drm backend
[02:43:02.521] using /dev/dri/card0
[02:43:02.521] Loading module '/usr/lib/libweston-2/gl-renderer.so'
failed to load module: /usr/lib/gbm/gbm_dri.so: cannot open shared object file: No such file or directory
failed to load module: /usr/lib/gbm/gbm_gallium_drm.so: cannot open shared object file: No such file or directory
loaded module : gbm_pvr.so
found valid GBM backend : gbm_pvr.so
[02:43:02.526] warning: either no EGL_EXT_platform_base support or specific platform support; falling back to eglGetDisplay.
[02:43:02.531] warning: EGL_EXT_buffer_age not supported. Performance could be affected.
[02:43:02.531] warning: neither EGL_EXT_swap_buffers_with_damage or EGL_KHR_swap_buffers_with_damage is supported. Performance could be affected.
[02:43:02.531] Retrieving EGL client extension string failed.
[02:43:02.531] EGL_KHR_surfaceless_context available
[02:43:02.535] EGL version: 1.4 build 1.14 at 3699939 (MAIN)
[02:43:02.535] EGL vendor: Imagination Technologies
[02:43:02.535] EGL client APIs: OpenGL_ES 
[02:43:02.535] EGL extensions: EGL_IMG_client_api_ogl EGL_KHR_image
               EGL_KHR_image_base EGL_KHR_gl_texture_2D_image
               EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image
               EGL_KHR_vg_parent_image EGL_IMG_cl_image EGL_KHR_fence_sync
               EGL_IMG_context_priority EGL_IMG_hibernate_process
               EGL_IMG_image_plane_attribs EGL_KHR_surfaceless_context
               EGL_KHR_wait_sync EGL_KHR_create_context
               EGL_WL_bind_wayland_display EGL_EXT_image_dma_buf_import
[02:43:02.535] GL version: OpenGL ES 2.0 build 1.14 at 3699939 (MAIN)
[02:43:02.535] GLSL version: OpenGL ES GLSL ES 1.00 build 1.14 at 3699939 (MAIN)
[02:43:02.535] GL vendor: Imagination Technologies
[02:43:02.535] GL renderer: PowerVR SGX 544MP
[02:43:02.535] GL extensions: GL_OES_rgb8_rgba8 GL_OES_depth24
               GL_OES_vertex_half_float GL_OES_texture_float
               GL_OES_texture_half_float GL_OES_element_index_uint
               GL_OES_mapbuffer GL_OES_fragment_precision_high
               GL_OES_compressed_ETC1_RGB8_texture GL_OES_EGL_image
               GL_OES_EGL_image_external GL_OES_required_internalformat
               GL_OES_depth_texture GL_OES_get_program_binary
               GL_OES_packed_depth_stencil GL_OES_standard_derivatives
               GL_OES_vertex_array_object GL_OES_egl_sync GL_OES_texture_npot
               GL_OES_surfaceless_context GL_EXT_discard_framebuffer
               GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
               GL_EXT_multisampled_render_to_texture GL_EXT_shader_texture_lod
               GL_EXT_texture_format_BGRA8888 GL_EXT_occlusion_query_boolean
               GL_EXT_texture_rg GL_EXT_draw_buffers
               GL_EXT_shader_framebuffer_fetch GL_IMG_shader_binary
               GL_IMG_texture_compression_pvrtc2 GL_IMG_texture_npot
               GL_IMG_texture_format_BGRA8888 GL_IMG_read_format
               GL_IMG_program_binary GL_IMG_uniform_buffer_object
               GL_IMG_multisampled_render_to_texture GL_KHR_debug
[02:43:02.535] GL ES 2 renderer features:
               read-back format: RGBA
               wl_shm sub-image to texture: no
               EGL Wayland extension: yes
[02:43:02.545] event1  - [02:43:02.545] pixcir_tangoc: [02:43:02.545] is tagged by udev as: Touchscreen
[02:43:02.545] event1  - [02:43:02.546] pixcir_tangoc: [02:43:02.546] device is a touch device
[02:43:02.547] event2  - [02:43:02.547] UVC Camera (046d:081b): [02:43:02.547] is tagged by udev as: Keyboard
[02:43:02.547] event2  - [02:43:02.547] UVC Camera (046d:081b): [02:43:02.547] device is a keyboard
[02:43:02.548] event0  - [02:43:02.548] gpio_keys: [02:43:02.548] is tagged by udev as: Keyboard
[02:43:02.548] event0  - [02:43:02.548] gpio_keys: [02:43:02.548] device is a keyboard
[02:43:02.563] Registered plugin API 'weston_drm_output_api_v1' of size 12
[02:43:02.563] Chosen EGL config details:
               RGBA bits: 8 8 8 8
               swap interval range: 1 - 1
[02:43:02.569] cursor buffers unavailable, using gl cursors
[02:43:02.569] Failed to initialize backlight
[02:43:02.569] Output UNNAMED-1, (connector 35, crtc 39)
               mode 800x480 at 59.5, preferred, current
[02:43:02.570] Applying calibration: 240.000000 -9.638554 -187104.578125 48.000000 -1.445783 -37293.683594 (normalized -233.880722 -77.695175)
[02:43:02.570] Compositor capabilities:
               arbitrary surface rotation: yes
               screen capture uses y-flip: yes
               presentation clock: CLOCK_MONOTONIC, id 1
               presentation clock resolution: 0.000000001 s
[02:43:02.570] Loading module '/usr/lib/weston/desktop-shell.so'
[02:43:02.571] launching '/usr/libexec/weston-keyboard'
[02:43:02.573] Loading module '/usr/lib/libweston-2/xwayland.so'
[02:43:02.587] Registered plugin API 'weston_xwayland_v1' of size 16
[02:43:02.587] Registered plugin API 'weston_xwayland_surface_v1' of size 8
[02:43:02.587] xserver listening on display :0
[02:43:02.587] launching '/usr/libexec/weston-desktop-shell'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
could not load cursor 'dnd-move'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
xkbcommon: ERROR: couldn't find a Compose file for locale "C"

------------------------------------WESTON LOG END----------------------------------------------------------------

On Fri, 29 Nov 2019 14:09:23 +0200, Pekka Paalanen wrote

On Fri, 29 Nov 2019 16:25:34 +0530 
 "Devashish Tiwari" <devashish at cdot.in> wrote:

 > Hello, 
 > Thanks for the lead regarding LD_LIBRARY_PATH. It seemed like EGL 
 > libraries were missing when I did /etc/init.d/weston restart. 
 > I modified the LD_LIBRARY_PATH in /etc/environment file and EGL 
 > errors were gone. 
 > Next there was an error regarding /usr/lib/libweston-2/xwayland.so 
 > was missing. The weston provided in my linux-SDK by the vendor was 
 > not compiled with --enable-xwayland and therefore this library was 
 > missing. 
 > I had to download weston-2.0.0 and recompile it with 
 > --enable-xwayland flag just to get xwayland.so, and copied it 
 > to /usr/lib/libweston-2/ path.


 please do not pick parts of Weston from here and there, there is no 
 stable ABI for in-tree plugins. Make sure to use *all* components of 
 Weston from the same build. Even differing build options might cause 
 things to not work, since we don't deliberately ensure it works.

 We have no idea of knowing how much some vendor has been patching 
 Weston for their own needs.

 Use either the vendor sources, or upstream sources, but don't mix.

 > I also copied some X11 based dependencies (libXau, libxcb-composite, 
 > libxcb-X11 etc.) required by xwayland.so to /usr/lib/ path. 
 > After doing all this, when I do /etc/init.d/weston restart, I am 
 > getting error regarding some cairo-xcb function, which I think is 
 > present in libcairo.so file. I tried to cross-compile libcairo.so for 
 > armhf architecture but there were some errors. 
 > All these compilation processes takes a lot of time, so I just want 
 > to know if I'm on the right path to get the weston working 
 > successfully with xwayland. 

 I suppose you are, but I don't know how you are doing your 
 cross-building, so a lot could go wrong. It is also something I cannot 
 help with. Just make sure you build everything you need in the correct 
 order and do not mix-and-match host and target libraries, software 
 versions between cross-build and installed ones, or anything. And don't 
 leave stale binaries laying around in the installed system, you might 
 accidentally load one of them.

 If the vendor is using Yocto or something like that, then I suggest you 
 do too and reconfigure the build or modify the recipes as you need.

 I would also recommend using a more recent Weston if possible.



Thanks & Regards,

Devashish Tiwari 
Fault Tolerance 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20191202/f7ba4613/attachment.html>

More information about the wayland-devel mailing list