IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> wayland学习 -> 正文阅读

[系统运维]wayland学习

The Wayland Protocol(自译中文版)这本书能快速深入理解Wayland的概念、设计和实现,并为您提供构建自行构建Wayland客户端和服务端所需的工具。通过简单的例子,快速去理解wayland的设计和原理。

下面是从第四节开始的wayland和server的例子。

编译

例子链接

# ubuntu编译用到的命令
cc -o server server.c -lwayland-server
cc -o client client.c -lwayland-client
cc -o client client.c xdg-shell-protocol.c -lwayland-client -lrt
cc -o globals  globals.c -lwayland-client
cc -o draw-blank-rect draw-blank-rect.c  -lwayland-client 
cc -o  draw-grid  draw-grid.c xdg-shell-protocol.c -lwayland-client -lrt

ubuntu上wayland server使用这个简单的例子还不能绘制,不能输出interface,这个在安装weston后,在tty(ctrl+alt+[f2-f7])环境下执行globals就能输出interface的打印和绘制窗口了。

使用weston

Wayland是一套display server(Wayland compositor)与client间的通信协议,而Weston是Wayland compositor的参考实现。

安装运行weston

sudo apt install weston

# ctl+alt+f4切换到tty4,也可以用`sudo chvt 4`来切换,数字4代表tty4
weston-launch

执行weston-launch后,切换到tty4,可以看到weston完整的桌面,点击左上角的按钮后会出现新终端界面。这时候执行前面编译的globals程序,就会输出interface的打印,在ubuntu上没有输出,是因为我们的server代码还很简单,没有注册这些interface,而使用weston server就能得到了完整的输出了。

interface: 'wl_compositor', version: 4, name: 1
interface: 'wl_subcompositor', version: 1, name: 2
interface: 'wp_viewporter', version: 1, name: 3
interface: 'zxdg_output_manager_v1', version: 2, name: 4
interface: 'wp_presentation', version: 1, name: 5
interface: 'zwp_relative_pointer_manager_v1', version: 1, name: 6
interface: 'zwp_pointer_constraints_v1', version: 1, name: 7
interface: 'zwp_input_timestamps_manager_v1', version: 1, name: 8
interface: 'wl_data_device_manager', version: 3, name: 9
interface: 'wl_shm', version: 1, name: 10
interface: 'wl_drm', version: 2, name: 11
interface: 'wl_seat', version: 7, name: 12
interface: 'zwp_linux_dmabuf_v1', version: 3, name: 13
interface: 'weston_direct_display_v1', version: 1, name: 14
interface: 'zwp_linux_explicit_synchronization_v1', version: 2, name: 15
interface: 'weston_content_protection', version: 1, name: 16
interface: 'wl_output', version: 3, name: 17
interface: 'wl_output', version: 3, name: 18
interface: 'zwp_input_panel_v1', version: 1, name: 19
interface: 'zwp_input_method_v1', version: 1, name: 20
interface: 'zwp_text_input_manager_v1', version: 1, name: 21
interface: 'xdg_wm_base', version: 1, name: 22
interface: 'zxdg_shell_v6', version: 1, name: 23
interface: 'wl_shell', version: 1, name: 24
interface: 'weston_desktop_shell', version: 1, name: 25
interface: 'weston_screenshooter', version: 1, name: 26

生成xdg-shell-protocol代码

显示640x480 像素的棋盘格

$ sudo apt install wayland-protocols
$ wayland-scanner private-code   < /usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml   > xdg-shell-protocol.c
$ wayland-scanner client-header   < /usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml   > xdg-shell-client-protocol.h

cc -o  draw-grid  draw-grid.c xdg-shell-protocol.c -lwayland-client -lrt

关于tty

TTY来源于Teletypewriter,翻译过来就是电传打字机。Teletypewriter和普通打字机的区别在于,Teletypewriter连接到通信设备以发送所打印的文字信息,电传打字机使人类能够通过电线更快地通信,这就是“TTY”这个词最初产生的时间。

随着技术的进一步发展,实体的电传打字机进行了“虚拟化”。因此不再需要物理、机械的TTY,而是虚拟的电子TTY。早期的计算机甚至没有视频屏幕,东西印在纸上,而不是显示在屏幕上。因此,你会看到“打印”一词的使用,而不是“显示”。随着技术的进步,显示器才被添加到终端中,可以称它们为“物理”终端。然后,这些演变成软件模拟终端,并具有增强的能力和功能。这就是所谓的“终端模拟器”。

Linux中的TTY是一个抽象设备。有时它指的是物理输入设备,如串行端口,有时它指的是允许用户与系统交互的虚拟TTY。

可以在大多数发行版上使用以下键盘快捷键来获取TTY屏幕:

CTRL + ALT + F1 – 锁定屏幕
CTRL + ALT + F2 – 桌面环境
CTRL + ALT + F3 – TTY3
CTRL + ALT + F4 – TTY4
CTRL + ALT + F5 – TT5
CTRL + ALT + F6 – TTY6

参考链接

The Wayland Protocol(自译中文版)

第一个黑框框

Wayland入门1:运行测试程序

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:32:30  更:2022-04-01 00:36:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:56:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码