前言

本文简单介绍 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 指令时并没有碰到权限问题。

Wayland/Weston 启动方式简介相关推荐

  1. Windows 8.1新型启动方式“WIMBoot”基础简介以及初步探索

    Windows Image File Boot简称"WIMBoot",是Windows 8.1的一项新型启动方式.这种启动方式让电脑从一个高度压缩的文件启动,大大减少了磁盘空间的占 ...

  2. Linux启动跟windows启动,Windows,Linux启动机制简介

    前言 本文内容只集中在操作系统启动原理的讲解上,不涉及启动的技术细节,因为这些细节都可以通过网络或者相关代码了解.只有了解了启动原理,才能在分析和解决有关启动的问题时具有针对性,不会有无从下手的感觉. ...

  3. MDM9x35MDM9x35启动流程简介

    1.前言.... 3 1.1编写背景... 3 1.2概述... 3 1.3定义与缩写... 3 1.4参考资料... 4 2.启动流程.... 4 2.1子系统.处理器及启动地址... 4 2.2启 ...

  4. java linux 服务_java项目部署Linux服务器几种启动方式总结经验

    一:两种部署包: 部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是ja ...

  5. # android开发:4-1、Activity启动方式、生命周期、不同activity的数据传递

    4.Activity活动简介 什么是Activity: 如何创建Activity: Activity启动方式: Activity的生命周期: 不同Activity之间数据的传递: 什么是Activit ...

  6. 在Ubuntu上基于wayland/weston源码构建weston桌面

    Ubuntu构建weston桌面 简介 下载工具/库 安装ninja 设置环境变量 构建wayland 构建wayland-protocols 构建weston 运行weston weston的一些测 ...

  7. i.MX RT开发笔记-03 | i.MX RT1062地址空间映射及启动方式

    系列文章目录 i.MX RT开发笔记-01 | 初识 i.MX RT1062 跨界MCU i.MX RT开发笔记-02 | i.MX RT1062开发环境搭建(MDK芯片包.NXP SDK详解) 文章 ...

  8. Mac创建Jmeter桌面快捷启动方式

    一 验证终端命令启动Jmeter 1 找到Jmeter可执行文件路径 ~/apache-jmeter-5.4.1/bin/jmeter 打开[终端]命令行工具,输入以下命令即可启动Jmeter sh ...

  9. 启动ipython_iPython pylab模式启动方式

    iPython pylab模式启动方式 在命令行窗口(CMD窗口)输入 ipython --pylab 或者在ipython 环境下输入%pylab 补充知识:%matplotlib inline 被 ...

最新文章

  1. Cell Reports:中大骆观正+上科大季泉江-CRISPR引导的细菌靶向遗传筛选系统
  2. MATLAB 与Modelsim之间通过Linker的联合仿真
  3. java高并发(二)并发与高并发基本概念
  4. 什么是随机存取_SRAM存储器是什么存储器
  5. python实现高效率的排列组合算法
  6. 一文讲透大型网站架构模式核心原理与案例分析
  7. linux 挂载有数据硬盘分区,linux下磁盘分区、挂载知多少
  8. 2018-2019-1 20165205 20165233 实验二 固件程序设计
  9. JS箭头函数的优势在哪里
  10. Springboot自定义注解实现用户登录状态校验(一)
  11. vsftp虚拟帐户配置
  12. clickhouse SummingMergeTree表引擎
  13. 计算机的品牌和发展历程,世界著名电脑品牌苹果的发展历程
  14. 深度学习模块介绍 —— Hourglass Module
  15. 怎么训练神经网络模型,神经网络模型训练过程
  16. WebRTC -- 添加选择音频输入输出设备功能
  17. PTA乙级题解(110题全)
  18. 重定向和转发的区别(redirect和forward)
  19. Atmel推出业内首款面向智能能源和自动化应用的IEEE 802.15.4g-2012双频段收发器
  20. 计算机科学和python编程导论答案_2020年计算机科学与Python编程导论答案(智慧树)...

热门文章

  1. getchar()函数的使用方法
  2. 极速办公(PPT)如何设置幻灯片大小
  3. 面试最常被问的 Java 后端题目及参考答案
  4. Flink Kafka Doris实战demo
  5. 1135:配对碱基链
  6. 【附源码】计算机毕业设计SSM人力资源管理系统
  7. 建设GSM900/1800双频网应考虑的几个问题(转)
  8. ENVI遥感图像几何精校正
  9. 手把手教你使用热敏电阻NTC,产品级精度±0.1℃以内,简单明了,内附源码详解,方便移植
  10. Python Environment Interpreter