Wayland/Weston 启动方式简介

前言

本文简单介绍 Weston 常用的几种 backend 启动方式。目前最新的 Weston 8.0.0 支持如下几种 backend:

  • drm-backend
  • fbdev-backend
  • headless-backend
  • rdp-backend
  • wayland-backend
  • x11-backend

其中 headless-backend 不带任何 UI 界面,主要用于 weston 自测试,rdp-backend 则用于远程桌面。这两个 backend 本文不做介绍。

运行环境:

  • Ubuntu: 16.04
  • Weston: 1.9.0

操作提示:

  • Ctrl+Alt+F2 返回图形界面(GDM3,Ubuntu18.04)
  • Ctrl+Alt+F7 返回图形界面(lightDM, Ubuntu16.04)
  • Ctrl+Alt+Backspace 退出Weston界面

drm-backend

操作步骤:

  1. Ctrl+Alt+F4 切换到虚拟终端;
  2. weston

在这里插入图片描述
weston 默认使用 drm 作为后端,因此运行时不需要附带任何参数。该模式下,Wayland 输出界面直接通过 /dev/dri/card0 节点来显示。渲染方式支持 Pixman (CPU 软绘)和 OpenGL/ES (GPU 硬件渲染)。

fbdev-backend

操作步骤:

  1. sudo usermod -a -G video hexaolong2008,将当前账号添加到video组(否则将提示权限错误,因为 /dev/fb0 属于 video 组)
  2. reboot
  3. Ctrl+Alt+F4 切换到虚拟终端
  4. weston --backend=fbdev-backend.so

在这里插入图片描述
该模式下,Wayland 输出界面通过 /dev/fb0 节点来显示,但不支持 OpenGL 硬件加速,因此只能使用 pixman 做 CPU 纯软绘操作,界面会比较卡顿。

wayland-backend

操作步骤:

  1. 先启动一个 weston
  2. 在 Weston 终端里,输入 weston 命令再启动一个 Weston 桌面

在这里插入图片描述
该模式下,Weston 的输出将被作为另一个 Weston 的输入,以 Wayland Client 身份运行。

x11-backend

操作步骤:直接在 GNOME 终端里执行 weston 命令
在这里插入图片描述
该模式下,Weston 的界面输出,将被作为一个 X Window 送到 X Server 中去显示。

xwayland

首先,它不是一个 backend,它只是 Wayland 的一个扩展功能,可以让你在 Weston 中运行 X 的程序。
操作步骤:

  1. sudo apt install xwayland,安装 /usr/bin/Xwayland 可执行程序;
  2. weston --modules=xwayland.so,随便以哪种 backend 方式启动都可以;
  3. 启动后,可以直接在 Weston 终端中运行 X 程序,如 x-terminal-emulator

在这里插入图片描述
该模式下,会启动 /usr/bin/Xwayland 程序,它会提供一个 X Server,用来运行 X 程序。而这个 X Server 又是运行在 Wayland Server 上的,所以 X Server 的界面输出,最终是作为一个 Wayland Client 而送去显示的。

SSH远程启动

$ weston --tty=1

ssh 启动方式需要明确指定使用哪个终端来显示。

串口启动

$ sudo -E weston --tty=1

串口启动同样需要明确指定使用哪个VT来显示。

weston-launch

官方的说明是,weston-launch 可以为 weston 提供更高级的访问权限,如 input 设备、drm master 访问权限等,但我实际使用 weston 指令时并没有碰到权限问题。