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
操作步骤:
Ctrl+Alt+F4
切换到虚拟终端;weston
weston 默认使用 drm 作为后端,因此运行时不需要附带任何参数。该模式下,Wayland 输出界面直接通过 /dev/dri/card0 节点来显示。渲染方式支持 Pixman (CPU 软绘)和 OpenGL/ES (GPU 硬件渲染)。
fbdev-backend
操作步骤:
sudo usermod -a -G video hexaolong2008
,将当前账号添加到video组(否则将提示权限错误,因为 /dev/fb0 属于 video 组)reboot
Ctrl+Alt+F4
切换到虚拟终端weston --backend=fbdev-backend.so
该模式下,Wayland 输出界面通过 /dev/fb0 节点来显示,但不支持 OpenGL 硬件加速,因此只能使用 pixman 做 CPU 纯软绘操作,界面会比较卡顿。
wayland-backend
操作步骤:
- 先启动一个 weston
- 在 Weston 终端里,输入
weston
命令再启动一个 Weston 桌面
该模式下,Weston 的输出将被作为另一个 Weston 的输入,以 Wayland Client 身份运行。
x11-backend
操作步骤:直接在 GNOME 终端里执行 weston
命令
该模式下,Weston 的界面输出,将被作为一个 X Window 送到 X Server 中去显示。
xwayland
首先,它不是一个 backend,它只是 Wayland 的一个扩展功能,可以让你在 Weston 中运行 X 的程序。
操作步骤:
sudo apt install xwayland
,安装 /usr/bin/Xwayland 可执行程序;weston --modules=xwayland.so
,随便以哪种 backend 方式启动都可以;- 启动后,可以直接在 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 指令时并没有碰到权限问题。