spice-gtk简介

背景

spice-gtk是一个大的项目,还是比较复杂的。
首先要提的是spice项目,SPICE 项目旨在提供一个完整的开源解决方案,以实现无缝远程访问虚拟机,从而让您可以轻松地播放视频、录制音频、共享 USB 设备以及共享文件夹。
SPICE 可以分为四个不同的组件:协议、客户端、服务器 和 Guest(虚拟机端)。

  • 协议 是其他三个组件之间通信的规范;
  • 客户端(例如 remote-viewer)负责发送数据并翻译来自虚拟机(VM)的数据,以便您可以与其交互;
  • SPICE 服务器 是虚拟机管理程序(hypervisor)使用的库,用于通过 SPICE 协议共享虚拟机;
  • 最后,Guest 端 是必须在虚拟机中运行的所有软件,以使 SPICE 完全功能化,例如 QXL 驱动 和 SPICE VDAgent。

spice-gtk项目提供基于GTK的客户端和库,用于 SPICE 远程桌面服务器。
该项目主要由以下几个部分组成:

  1. libspice-client-glib-2.0库
    提供基于 glib 的对象,用于 SPICE 协议解码 和 画面渲染。
    • SpiceSession(参见 spice-session.h)。
    • SpiceChannel(参见 spice-channel.h)。
    • SpiceAudio(参见 spice-audio.h)。
    • 各种 Spice<Type>Channel(参见 channel-<type>.h)。
  2. libspice-client-gtk-3.0库
    提供 gtk 控件,用于显示 SPICE 界面并接收用户输入。
    • SpiceDisplay (参见 spice-widget.h)
  3. spicy工具
    一个 gtk 测试客户端。
  4. spicy-screenshot工具
    命令行工具,连接到 SPICE 服务器并输出屏幕截图。
  5. spicy-stats工具
    命令行工具,用于展示SPICE连接状态。

构建

  1. 下载源码
$ git clone https://gitlab.freedesktop.org/spice/spice-gtk.git
$ cd spice-gtk
$ git submodule update --init --recursive
#或者
$ wget https://www.spice-space.org/download/gtk/spice-gtk-0.41.tar.xz
  1. 编译
    安装依赖
$ sudo apt build-dep spice-gtk 
Installing:                     
  gnome-pkg-tools  libcacard-dev         libgstreamer-plugins-base1.0-dev  liblz4-dev   libphodav-3.0-dev      libpolkit-gobject-1-dev  libtext-csv-perl  python3-six
  gtk-doc-tools    libgdk-pixbuf2.0-doc  libgstreamer1.0-dev               libopus-dev  libpolkit-agent-1-dev  libsasl2-dev             libva-dev

Installing dependencies:
  docbook                      gir1.2-gudev-1.0   libgbm-dev        libnss3-dev         libpciaccess-dev    libsoup-3.0-dev  libxxhash-dev
  docbook-to-man               gir1.2-polkit-1.0  libgudev-1.0-dev  liborc-0.4-dev      libpcsclite-dev     libva-glx2       xsltproc
  gir1.2-gst-plugins-base-1.0  libdrm-dev         libnspr4-dev      liborc-0.4-dev-bin  libset-scalar-perl  libx11-xcb-dev

Suggested packages:
  docbook-defguide  docbook-dsssl  psgml  dblatex  gstreamer1.0-doc  liborc-0.4-doc  libsoup-3.0-doc

Recommended packages:
  git-buildpackage  libtext-csv-xs-perl

Summary:
  Upgrading: 0, Installing: 35, Removing: 0, Not Upgrading: 0
  Download size: 7,359 kB
  Space needed: 36.1 MB / 404 GB available

编译

$ meson --buildtype=release build-default --werror
$ ninja -C build-default

编译完成后的产物都在meson配置的build-default目录下。

使用

如何使用spice-gtk实现一个spice客户端,可以直接参考他的spicy工具的实现。
spicy的效果如下,总的来说该有的功能基本都有,完全可以作为一个VDI 桌面客户端使用。
在这里插入图片描述
在这里插入图片描述

参考

spice-gtk API documentation
spice-gtk
Create a Virtual Machine viewer with Spice-GTK
SPICE-GTK源码初解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值