Download
Client
To connect to a virtual machine using SPICE, you need a client application.
GTK+ widget
spice-gtk is a GTK+3 SPICE widget. It features glib-based objects for SPICE protocol parsing and a gtk widget for embedding the SPICE display into other applications such as virt-manager or Boxes. Python and Vala bindings are available too.
The recommended client application is virt-viewer.
Windows installers
- virt-viewer Windows installer — can be downloaded from virt-manager download page
- UsbDk — A Windows filter driver developed for Spice USB redirection (windows client side) — UsbDk_1.0.22_x64.msi, UsbDk_1.0.22_x86.msi, (source code)
- https://gitlab.freedesktop.org/spice/win32/usbdk
Other clients
- Android client — aSPICE is a secure, SSH capable, open source SPICE protocol client that makes use of the LGPL licensed native libspice library. You can find and install aSPICE from play.google.com.
- Web client — a simple javascript client
- https://gitlab.freedesktop.org/spice/spice-html5
- Experimental OS X client
- launcher-mobile — A GPLv2 licensed cross-platform mobile client for both iOS and Android. Though mainly intended to be used as a client for flexVDI, it can also connect to conventional SPICE sessions.
- It is also avaiable in binary form: flexVDI Client at App Store, flexVDI Client at Play Store
Guest
This section contains various optional drivers and daemons that can be installed on the guest to provide enhanced SPICE integration and performance.
Linux sources
Windows binaries
This installer contains some optional drivers and services that can be installed in Windows guest to improve SPICE performance and integration. This includes the qxl video driver and the SPICE guest agent (for copy and paste, automatic resolution switching, . )
Windows QXL driver is not needed if you are using the Windows guest tools installer above.
This is not needed if you are using the Windows guest tools installer above.
To enable the folder sharing in the Windows guest you need:
Server
The SPICE server code is needed when building SPICE support into QEMU. It should be available as a package in your favourite Linux distribution, which is the preferred way of getting it.
0.14.3 — stable release
0.12.8 — previous stable series
Xspice server
Xspice — an X and Spice server. Requires Xorg. See README.xspice.
- The latest sources are xf86-video-qxl. Xspice is mostly reusing that driver and linking directly with spice-server.
x11spice
- x11spice — A utility to allow a user to share a current running X session via a Spice server.
- https://gitlab.freedesktop.org/spice/x11spice
Streaming agent (experimental)
Guest-side daemon which captures the guest video output, encodes it to a video stream and forwards the resulting stream to the host to be sent through SPICE.
Older releases
Older source releases can be found here. Old versions of spice-gtk can be found here.
Nightly Builds
Nightly builds are generated from upstream git master.
SPICE – протокол доставки виртуального рабочего стола
SPICE (от англ.: Simple Protocol for Independent Computing Environments, то есть «Простой протокол для независимой вычислительной среды») — открытый протокол доставки виртуального рабочего стола, изначально разрабатываемый компанией Qumranet и в дальнейшем купленный компанией Red hat. О нем и пойдет речь в данной статье.
Изначально протокол разрабатывался в рамках проекта с аналогичным названием (но пишется строчными буквами Spice), представляющего собой систему отображения удаленного дисплея, построенную для виртуальной среды, которая позволяет просматривать виртуальный «рабочий стол» вычислительной среды не только на машине, на которой он запущен, но и откуда угодно через Интернет, причем для просмотра можно использовать широкий спектр машинных архитектур.
Базовые блоки Spice это:
- Собственно протокол (SPICE)
- Spice сервер
- Spice клиент
- Spice агент
Кроме того, стоит выделить непосредственно не входящие в состав драйвера для виртуальной видеокарты QXL и некоторые другие вспомогательные компоненты. Ниже будет представлена основная информация обо всех компонентах и возможностях.
Отличительные особенности:
- Многоканальность. Сервер и клиент сообщаются посредством каналов. Каждый канал определяет свой тип данных. Доступны каналы: управления и конфигурации, изображения, устройств ввода, курсора, аудипоток с сервера, аудиопоток с клиента.
- Сжатие изображений. Spice позволяет сжимать передаваемые изображения различными алгоритмами: quic,lempel-ziv, giz.
- Определение и компрессия видеопотока. Spice способен определять регионы, в которых производится передача видеопотока и использовать для этих регионов другие алгоритмы, синхронизацию звука, и т.п.
- Различные режимы работы с указывающими устройствами. В зависимости от скорости передачи данных и требований пользователя положение указателя мышии может обрабатываться как сервером, так и клиентом.
- Поддержка нескольких мониторов.
- Двусторонняя передача звука. Полезна для участия в аудиоконференциях, презентациях и пр.
- Миграция. Поддерживается набор команд, позволяющих прозрачно для пользователя переключать клиента на другой хост.
- Синхронизация звука. При передаче видеопотока звук постоянно сихронизируется с изображением, независимо от скорости соединения.
- Подключение осуществляется к хост-системе (а не к виртуальной машине). Возможна работа с виртуальными машинами, на которых нет поддержки сети.
Установка
В настоящий момент поддержка Spice включена в дистрибутив Fedora 14, RHEL6. Есть пакеты для Gentoo и Arch Linux, Если в дистрибутиве нет пакетов для SPICE и qemu с поддержкой SPICE, их всегда можно собрать из исходных кодов:
1) SPICE — downloads.spice-space.org (исходные коды spice, spice-protocol, spice-agent для Linux и бинарные сборки для Windows)
2) qemu — git.freedesktop.org/git/spice/qemu — GIT репозиторий qemu с поддержкой SPICE
3) libvirt — http://libvirt.org/sources/libvirt-git-snapshot.tar.gz — ежечасные (автоматические) сборки libvirt (с поддержкой spice).
Установка из исходных текстов вполне стандартна
(./configure —help для списка опций).
Настройка и использование
Для работы со SPICE достаточно на сервере запустить qemu с дополнительными опциями:
для доступа без пароля, или
для защиты соединения паролем. И с клиента подключиться к spice-серверу:
Для включения/выключения опций сжатия каналов, шифрования и пр. следует ознакомиться с man-станицей qemu.
