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

2023-11-17

简介

wayland官网:https://wayland.freedesktop.org/
参考教程:https://wayland.freedesktop.org/building.html
简单地说,Wayland是一套display server(Wayland compositor)与client间的通信协议,而Weston是Wayland compositor的参考实现。其官网为http://wayland.freedesktop.org/。它们定位于在Linux上替换X图形系统。X图形系统经历了30年左右的发展,其设计在今天看来已略显陈旧。在X系统中,X Server作为中心服务,连接clien和硬件以及compositor。但时至今日,原本在X Server中做的事很多已被移到kernel或者单独的库中,因此X Server就显得比较累赘了。Wayland在架构上去掉了这个中间层,将compositor作为display server,使client与compositor直接通信,从而在灵活性和性能等方面上能够比前辈更加出色。

下载工具/库

下载一些使用到的工具和库。

sudo apt install python3-pip git ninja-build cmake
pip3 install --user meson
sudo apt install libffi-dev libxml2-dev graphviz doxygen xsltproc xmlto

安装ninja

git clone https://github.com/ninja-build/ninja.git
cd ninja
./configure.py --bootstrap   
cp ./ninja  /usr/bin/

设置环境变量

如果你不想将weston安装在系统中,需要设置以下环境变量,以便让各种库进行适当的链接。

# install 可以换成自己想要的位置
export WLD=$HOME/install   
export LD_LIBRARY_PATH=$WLD/lib
export PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/
export PATH=$WLD/bin:$PATH

如果你想将weston安装在系统中。

export WLD=/usr
# 之后所有meson构建命令更改为以下命令
meson build/ --prefix=$WLD --libdir=/usr/lib --sysconfdir=/etc
ninja -C build/
sudo ninja -C build/ install

构建wayland

git clone https://gitlab.freedesktop.org/wayland/wayland.git
cd wayland
meson build/ --prefix=$WLD
ninja -C build/ install

构建wayland-protocols

git clone https://gitlab.freedesktop.org/wayland/wayland-protocols.git
cd wayland-protocols
meson build/ --prefix=$WLD
ninja -C build/ install

构建weston

git clone https://gitlab.freedesktop.org/wayland/weston.git
cd weston
meson build/ --prefix=$WLD
ninja -C build/ install

运行weston

weston

weston的一些测试程序

在weston中的终端输入

  • ‘weston-terminal’ 是一个简单的终端仿真器,不是很兼容,但对bash来说已经足够好了
  • ‘weston-flower’ 在屏幕上画一朵花,测试框架协议
  • ‘weston-gears’ glxgears, but for wayland
  • ‘weston-smoke’ 测试SHM缓冲区共享
  • ‘weston-image’ 加载通过命令行传递的图像文件并显示它们
  • ‘weston-view’ does the same for pdf files
  • ‘weston-resizor’ 演示平滑的窗口大小调整(使用上下键)
  • ‘weston-eventdemo’ reports libtoytoolkit’s events to console (see weston-eventdemo --help)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Ubuntu上基于wayland/weston源码构建weston桌面 的相关文章

  • 减少内存分配GCC命令

    今天 在我的计算机科学课上 我被告知我可以调整程序在编译期间可以分配的内存量 使用 GCC Linux 该数量默认设置为最佳模式 这意味着尽可能多 在调试应用程序期间 我可以从这个编译器功能中受益匪浅 因为我需要正确处理分配错误 这在我的
  • 编写 AMD64 SysV 程序集时使用哪些寄存器作为临时寄存器?

    我正在使用实现一个功能cpuid根据 AMD64 SysV ABI 进行组装 我需要在函数本身中使用 2 个临时寄存器 第一个用于累积返回值 第二个用作计数器 我的功能目前如下所示 zero argument function some c
  • 如何编写写入 /var/log/myapp 目录的 C/C++ 应用程序?

    背景 在 Linux 系统上 应用程序日志 https help ubuntu com community LinuxLogFiles Application Logs存在于子目录中 var log 其所有者为root root并且在我的系
  • 如何找到某个命令的目录?

    我知道 当您使用 shell 时 唯一可以使用的命令是可以在 PATH 上设置的某些目录中找到的命令 即使我不知道如何查看 PATH 变量上的目录 这是另一个可以回答的好问题 我想知道的是 我来到 shell 并写道 lshw 我想知道 s
  • 如何在Linux中为特定程序设置进程ID

    我想知道是否有某种方法可以在运行某些应用程序之前强制使用 Linux 的某些特定进程 ID 我需要提前知道进程ID 实际上 有一种方法可以做到这一点 自内核 3 3 设置了 CONFIG CHECKPOINT RESTORE 在大多数发行版
  • php.ini 更改,但在 Ubuntu 上无效

    我想更改 PHP 上传文件大小的限制 这是我的输出的一些信息phpinfo https www php net manual en function phpinfo php Configuration File php ini Path e
  • 窗口放置:适用于 Linux (KDE) 的类似 WinSplit Revolution 的应用程序? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 适用于 Linux KDE 的类似 WinSplit Revolution 的应用程序是什么 或者也许 KDE 中有一个我缺少的功能 平铺通常是窗口管
  • 产生并处理软件中断

    有人可以告诉我如何在Linux下生成软件中断然后用request irq处理它吗 或者也许这是不可能的 您可以使用软中断来代替 您可以通过编辑 include linux interrupt h 来定义您的 sofirq 然后使用函数 ra
  • 通过 C 将线程固定到 cpuset 中的核心

    我有 cgroup cpuset set1 set1有2 5 8 我想将一个进程绑定到该 cpuset 然后将该进程中的一个线程固定到核心 4 cpuset 的名称 线程名称以及我应该将线程绑定到的核心位于 m 配置文件中 是否有任何 C
  • Bash:更新文件中的变量

    我知道这是一个简单的答案 在找到答案之前我可能可以继续在谷歌上进行挖掘 但我的日程很紧 我希望能得到一个轻松的答复 我需要在安装时更新 ifcfg eth0 中的变量 换句话说 这就是需要发生的事情 以下变量需要更改 ONBOOT no B
  • 在 docker windows 上运行 linux 容器

    我在 Windows 10 机器上安装了 Docker for Windows 它要求我启用 HyperV 功能 一切都安装正确并且运行良好 虽然有一件事让我大吃一惊 我实际上能够在 docker windows 上运行 Linux 容器
  • 如何尽可能快地输出固定缓冲区?

    示例代码 include
  • 在大型文本文件中查找重复记录

    我在一台 Linux 机器 Redhat 上 并且有一个 11GB 的文本文件 文本文件中的每一行包含单个记录的数据 并且该行的前 n 个字符包含该记录的唯一标识符 该文件包含略多于 2700 万条记录 我需要验证文件中不存在具有相同唯一标
  • Cuda 6.5 找不到 - libGLU。 (在 ubuntu 14.04 64 位上)

    我已经在我的ubuntu上安装了cuda 6 5 我的显卡是 GTX titan 当我想要制作 cuda 样本之一时 模拟 粒子 我收到这条消息 gt gt gt WARNING libGLU so not found refer to C
  • 使用 AWK 或 SED 以及以下标签以逗号分隔

    使用 AWK 或 SED 以及下面使用的标签以逗号分隔 BEGIN AccountID BEGIN CallerID BEGIN Billed Account Attributes 1111111 1111111 1111111 END B
  • 安装 Pillow 错误:安装脚本退出并出现错误:命令“x86_64-linux-gnu-gcc”失败,退出状态为 1

    当我尝试安装 Pillow 2 5 3 时 我收到错误 命令 x86 64 linux gnu gcc 失败 退出状态为 1 这是所发生事件的完整日志 http pastebin com 5k2TsyJY 我需要这个库作为另一个 pytho
  • Bash 变量:区分大小写?

    Bash shell 脚本区分大小写吗 是可变的date与DATE 是的 它区分大小写 就像 UNIX 的其余部分一样 date and DATE是两个不同的变量 makefile and Makefile是两个不同的文件 h and H是
  • POSIX:FreeBSD 与 Linux 中的管道系统调用

    在 Linux 2 6 35 22 generic 中 man pipe指出 pipeline 创建一个管道 一个可用于进程间通信的单向数据通道 在 FreeBSD 6 3 RELEASE p5 中 man pipe指出 pipeline
  • 使用Linux虚拟鼠标驱动

    我正在尝试实施一个虚拟鼠标驱动程序根据基本 Linux 设备驱动程序书 有一个用户空间应用程序 它生成坐标以及内核模块 See 虚拟鼠标驱动程序和用户空间应用程序代码 http www embeddedlinux org cn Essent
  • Kubernetes Pod 已终止 - 退出代码 137

    我需要一些关于 k8s 1 14 和在其上运行 gitlab 管道所面临的问题的建议 许多作业都会抛出退出代码 137 错误 我发现这意味着容器突然终止 集群信息 库伯内特版本 1 14 使用的云 AWS EKS 节点 C5 4xLarge

随机推荐

  • bootstrap使用之stickUp(固定导航栏)

    1 stickUp是jQuery下的一个导航栏插件 当界面较长时 导航栏会固定在顶部 不会移动 如下图 2 废话少说 下载http www bootcss com p stickup 在里面有示例文档 只是注意看index的时候js写在下面
  • 2 QT—资料文件管理 动作使用设置快捷键

    图标文件下载 https wwa lanzoui com iiZODwjcsbc 项目文件下载 https wwa lanzoui com is9N5wjct3a 1 创建主窗口菜单 1 新建 Qt Widgets 应用 项目名称为 myM
  • JAVA读取USB扫描枪

    利用JAVA程序获取扫描枪的数据 package barcode import java util concurrent BlockingQueue import java util concurrent LinkedBlockingQue
  • Vue实战项目开发--Vue中的动画特效

    项目的源代码在GitHub上 点击查看 目录 vue中的css动画原理 在Vue中使用Animate css库 在Vue中同时使用过渡属性和动画 Vue中的Js动画与Velocity js的结合 Vue中多个元素或组件的过渡 vue中的列表
  • 基于深度学习的高精度人体摔倒行为检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要 基于深度学习的高精度人体摔倒行为检测识别系统可用于日常生活中或野外来检测与定位人体摔倒行为目标 利用深度学习算法可实现图片 视频 摄像头等方式的人体摔倒行为目标检测识别 另外支持结果可视化与图片或视频检测结果的导出 本系统采用YOLO
  • android 对话框学习

    首先需要创建ProgressDialog对象 然后使用线程控制进度条显示 具体源代码 view source print 001 package com yarin android TestOnPDialog 002 003 import
  • hdu 1080 Human Gene Functions

    Problem acm hdu edu cn showproblem php pid 1080 Meaning 给出一个二维表 similarity 表示对应核苷酸配对时的相似度值 横杠 表示用空格代替一个核苷酸 给出两个DNA序列 a 和
  • PCB添加图片或logo的方法

    系列文章目录 1 元件基础 2 电路设计 3 PCB设计 4 元件焊接 6 程序设计 文章目录 前言 一 图片预处理 转为 BMP格式 二 给Altium designer安装PCB LOGO Creator脚本插件 三 给PCB添加图片或
  • 【读书笔记->数据分析】BDA教材《数据分析》书籍介绍

    BDA教材 数据分析 书籍介绍 BDA BDA数据分析职业技能等级 旨在培养基于数据分析理论 计算机技术以及行业案例应用 三维一体 的大数据分析人才 培养数据管理 数据分析 数据挖掘 数据洞察方面的复合型和应用型专业人才 BDA数据分析师证
  • stm32霍尔编码器电机测速原理

    本次选用的编码器电机为13线的霍尔编码器电机 电机减速比为30 1 转动一圈输出13 30 390个脉冲 轮胎直径为75mm 轮胎周长为pi d 3 75 225mm 定时器采用四倍频计数 则一圈输出390 4 1560个脉冲 具体编码器知
  • Python基础 第3课

    Python基础 3 函数 独立定义 独立调用 def foo pass foo 方法 依赖定义 依赖调用 方法存在于类的内部 1 变量作用域 全局 本地 闭包 局部 全局 global一般在函数体外定义的变量成为全局变量 在函数内部定义的
  • QT笔记- QString字符串左右截取——left() 和 right()

    left int n 从左向右截取n个字符串 right int n 从右向左截取n个字符串 注 第二个参数是一个索引 表示函数的目标字符串是该索引之前的字符串
  • VUE(未写完)

    文章目录 一 如何学习VUE 二 VUE的概念 三 MVVM MV 四 如何使用VUE Vue的指令的操作 v 都是代表指令 回忆 filter 五 json server 六 生命周期 8个 七 watch 监听 八 computed 计
  • Opening a specific View directly from the SiteMap in Dynamics

    Opening a specific View directly from the SiteMap in Dynamics CRM Consultancy Blog Dynamics 365 Unified User Interface D
  • 2022蓝桥杯A组Python

    更新 江苏赛区省一 昨天特别高兴 今天有点高兴 后续会继续更新动态规划的部分 国赛最近也在刷题但有点懒得写博客了 事情有点多 2022 04 29 蓝桥杯开始啦 还有七分钟就到九点了 心情有点激动 复习不进去 发个博客吧 2022 04 0
  • 应用使用Druid连接池经常性断链问题分析

    前段时间有应用使用Druid连接池经常的提示断链报错 整个问题排查分析过程很有意思 这里将Druid连接池 数据库层以及负载均衡层的配置分析下 记录整个问题的分析过程 同时梳理下Druid连接池的配置和连接保活及回收机制 1 问题背景 应用
  • 离散数据:析取范式与合取范式

    一 前言 析取范式和合取范式是命题逻辑等值演算中的重要内容 其目的是为了标准化命题公式 下面我将给出析取范式和合取范式的计算步骤 又由于析取范式和合取范式的形式不唯一 为了便于比较命题公式之间的关系 因此衍生出了主析取范式和主合取范式 所以
  • linux漏洞处理(更新中)

    1 Diffie Hellman Key Agreement Protocol 资源管理错误漏洞 CVE 2002 20001 vim etc ssh sshd config 在文件中加入下方配置 KexAlgorithms diffie
  • 【C++入门到精通】C++入门 —— 内存管理(new函数的讲解)

    目录 一 C C 内存分布 1 栈 Stack 2 堆 Heap 3 全局区 静态区 Global Area Static Area 4 常量区 Constant Area 5 代码区 Code Area 二 C语言中动态内存管理方式 1
  • 在Ubuntu上基于wayland/weston源码构建weston桌面

    Ubuntu构建weston桌面 简介 下载工具 库 安装ninja 设置环境变量 构建wayland 构建wayland protocols 构建weston 运行weston weston的一些测试程序 简介 wayland官网 htt