39 使用 Wayland 和 Weston

Wayland 是一种计算机显示服务器 协议,使合成窗口管理器能够直接与应用程序及显示硬件通信,并要求它们通过其他 库与输入硬件通信。在支持的目标上使用 Wayland,可以比应用程序通常采用的方式 更好地控制图形帧的渲染。

Yocto Project 发行版提供 Wayland 协议库和参考合成器 Weston。这些集成软件包 位于 OpenEmbedded-Core (OE-Core) 的 meta 层,构建 Wayland 和 Weston 的配方具体位于 meta/recipes-graphics/wayland。

只有支持 Mesa 3D 和直接渲染基础设施 (也称 Mesa DRI)的目标,才能构建并使用 Wayland 和 Weston 软件包。例如, 如果目标使用替代 Mesa DRI 的 Intel Embedded Media and Graphics Driver (Intel EMGD),就无法构建和使用这些软件包。

备注

由于缺少 EGL 支持,Weston 1.0.3 无法直接运行在 QEMU 模拟硬件上, 但该版本可以在 X 模拟环境下正常运行。

本节介绍为受支持目标构建镜像时,如何实现 Wayland 并使用 Weston 合成器。

39 在镜像中启用 Wayland

启用 Wayland 需要同时启用其构建,并将其包含(安装)到镜像中。

39 构建 Wayland

要让 Mesa 构建 wayland-egl 平台,并让 Weston 构建支持内核模式设置 (KMS)的 Wayland, 请在发行版 configuration file 的 DISTRO_FEATURES 语句中 加入 "wayland" 标志:

DISTRO_FEATURES:append = " wayland"

备注

如果在其他位置启用了 X11,Weston 会构建带有 X11 支持的 Wayland。

39 安装 Wayland 和 Weston

要将 Wayland 功能安装到镜像中,必须在发行版 configuration file 中添加以下 CORE_IMAGE_EXTRA_INSTALL 语句:

CORE_IMAGE_EXTRA_INSTALL += "wayland weston"

39 运行 Weston

要在 X11 中运行 Weston,只需按前文所述启用它并构建 Sato 镜像。如果镜像运行 在 Sato 下,"Utility" 分类中会出现 Weston 启动器。

也可以通过命令行解释器(CLI)运行 Weston,这更适合开发工作。镜像构建完成后, 按以下步骤操作:

  1. 运行以下命令,导出 XDG_RUNTIME_DIR:

    mkdir -p /tmp/$USER-weston
    chmod 0700 /tmp/$USER-weston
    export XDG_RUNTIME_DIR=/tmp/$USER-weston
    
  2. 在 Shell 中启动 Weston:

    weston