我有一个嵌入式系统,我想在其中运行 weston 合成器以使用 wayland。我能够构建 weston 应用程序,当我从我的系统启动它时,我收到以下错误:
#./weston
Date: 2016-09-02 UTC
[15:08:36.341] weston 1.5.0
http://wayland.freedesktop.org/
Bug reports to: https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=weston&version=1.5.0
Build: 1.4.93 configure.ac: Bump version 1.4.93 (2014-05-12 12:51:52 -0700)
[15:08:36.342] OS: Linux, 3.10.61-ltsi-d6cx, #2 SMP PREEMPT Mon Aug 8 13:16:40 CDT 2016, x86_64
[15:08:36.342] warning: XDG_RUNTIME_DIR "/tmp" is not configured
correctly. Unix access mode must be 0700 (current mode is 777),
and must be owned by the user (current owner is UID 0).
Refer to your distribution on how to get it, or
http://www.freedesktop.org/wiki/Specifications/basedir-spec
on how to implement it.
[15:08:36.343] Starting with no config file.
[15:08:36.344] Loading module '/usr/lib/weston/x11-backend.so'
[15:08:36.344] Failed to load module: /usr/lib/weston/x11-backend.so: cannot open shared object file: No such file or directory
#
我到处寻找 x11-backend.so 库,但没找到。我使用 buildroot 构建了 weston。
任何能解决该问题的帮助都将不胜感激。
答案1
我终于找到问题所在了。在 buildroot 中设置 weston.mk 文件中的 packages 目录下的以下选项:
WESTON_CONF_OPT = \
--with-dtddir=$(STAGING_DIR)/usr/share/wayland \
--disable-egl \
--disable-simple-egl-clients \
--disable-xwayland \
--disable-x11-compositor \
--disable-drm-compositor \
--disable-wayland-compositor \
--disable-headless-compositor \
--disable-weston-launch \
--disable-colord
正如您所看到的,buildroot 已经从很多后端和 weston-launch 中移除。
然后我所做的是对该配置的一部分进行如下注释:
WESTON_CONF_OPT = \
--with-dtddir=$(STAGING_DIR)/usr/share/wayland \
# --disable-egl \
# --disable-simple-egl-clients \
# --disable-xwayland \
# --disable-x11-compositor \
# --disable-drm-compositor \
# --disable-wayland-compositor \
# --disable-headless-compositor \
# --disable-weston-launch \
--disable-colord
然后我就这么做了
make weston-reconfigure
在某些时候,由于未安装 pam 包,make 会因错误而停止,因此我安装了它:
make linux-pam
当这一切结束后我又做了一次
make weston-reconfigure
make weston
问题解决!
答案2
您正在尝试使用 X11 后端启动 Weston,但您似乎尚未编译 X11 后端。无论如何,您都不想使用 X11 后端,因为 Wayland 显示系统是旧版 Xorg 系统的替代品。您需要使用命令启动 Weston weston-launch
,该命令将使用 DRM 后端运行 Weston。请参阅部分奔跑韦斯顿在底部https://wayland.freedesktop.org/building.html更多细节。