No edit summary |
|||
Line 9: | Line 9: | ||
== Current status == | == Current status == | ||
* Last updated: 2013-05-07 | |||
* Last updated: | |||
* Percentage of completion: 100% | * Percentage of completion: 100% | ||
== Detailed Description == | == Detailed Description == | ||
The Spice project deals with all of the infrastructure involved in connecting to and operating desktop environments remotely. It's main focus is on virtualized devices | The Spice project deals with all of the infrastructure involved in connecting to and operating desktop environments remotely. It's main focus is on virtualized devices within qemu virtual machines, but it also provides a pure X frame buffer solution known as XSpice. | ||
The Simple Protocol for Independent Computing Environments (SPICE) is used for client-server communication. Spice adds a QXL display device to QEMU and provides drivers for this device for both X and Windows. It also provides a Spice server and VDAgent to handle connections and transmit the information via the SPICE protocol to clients. The Spice project provides a Linux, Windows, and HTML5 client. There are experimental Mac OS X and Android clients as well. | The Simple Protocol for Independent Computing Environments (SPICE) is used for client-server communication. Spice adds a QXL display device to QEMU and provides drivers for this device for both X and Windows. It also provides a Spice server and VDAgent to handle connections and transmit the information via the SPICE protocol to clients. The Spice project provides a Linux, Windows, and HTML5 client. There are experimental Mac OS X and Android clients as well. | ||
Line 39: | Line 36: | ||
== Scope == | == Scope == | ||
<!-- What work do the developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do the developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
Other (non-mandatory) spice-related bits useful to have in Fedora: | Other (non-mandatory) spice-related bits useful to have in Fedora: | ||
* | * gdm does not supply xdmcp any longer [[https://bugzilla.gnome.org/show_bug.cgi?id=690926]] | ||
* | This would be useful for creating an Xspice server to generate session logins | ||
* Return of pipe sink modules for sound for XSpice [[https://bugzilla.redhat.com/show_bug.cgi?id=958949]] | |||
A common use for spice is to run windows client, and spice ships with several windows parts: | A common use for spice is to run windows client, and spice ships with several windows parts: | ||
Line 73: | Line 63: | ||
3. What are the expected results of those actions? | 3. What are the expected results of those actions? | ||
--> | --> | ||
=== QEMU === | |||
The server part of Spice requires a x86-64 machine, and ideally should have hardware virtualization support (kvm) although this is not strictly required. | The server part of Spice requires a x86-64 machine, and ideally should have hardware virtualization support (kvm) although this is not strictly required. | ||
Line 78: | Line 70: | ||
The client currently works on x86-64 and x86, but we're working on porting it to more architectures. | The client currently works on x86-64 and x86, but we're working on porting it to more architectures. | ||
To test spice, install a qemu with spice support and spice-server on the | You will need a host system, guest system, and client system. The host system runs qemu to launch the guest VM. You connect from the client system to view the guest VM. Often, the client system is the same as the host system, at least for simple testing. | ||
To test spice, install a qemu with spice support and spice-server on the host machine, then start qemu with options something like this: | |||
qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,disable-ticketing -enable-kvm | qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,disable-ticketing -enable-kvm | ||
or with passwords: | or with passwords: | ||
qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,password=<secret> -enable-kvm | qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,password=<secret> -enable-kvm | ||
On the client, | In the guest, you will need to install xorg-x11-drv-qxl and you will want to install spice-vdagent. | ||
On the client, you will need a spice client. Modern use suggests that you use remote-viewer, which requires the virt-viewer and spice-gtk3 packages on Fedora. (Old clients include spice-client, which provides spicec, and spice-gtk-tools, which provides spicy). | |||
To run, invoke as follows: | |||
remote-viewer spice://localhost:1234 | |||
This should let you access the machine | This should let you access the machine. | ||
== User Experience == | == User Experience == | ||
<!-- If this feature is noticeable by its target audience, how will their experiences change as a result? Describe what they will see or notice. --> | <!-- If this feature is noticeable by its target audience, how will their experiences change as a result? Describe what they will see or notice. --> | ||
== Dependencies == | == Dependencies == | ||
Line 96: | Line 93: | ||
* qemu | * qemu | ||
== Documentation == | == Documentation == |
Revision as of 19:35, 7 May 2013
Spice
Summary
Spice aims to provide a complete open source solution for interaction with virtualized desktops
Owner
- Name: Alexander Larsson
- Email: alexl@redhat.com
Current status
- Last updated: 2013-05-07
- Percentage of completion: 100%
Detailed Description
The Spice project deals with all of the infrastructure involved in connecting to and operating desktop environments remotely. It's main focus is on virtualized devices within qemu virtual machines, but it also provides a pure X frame buffer solution known as XSpice.
The Simple Protocol for Independent Computing Environments (SPICE) is used for client-server communication. Spice adds a QXL display device to QEMU and provides drivers for this device for both X and Windows. It also provides a Spice server and VDAgent to handle connections and transmit the information via the SPICE protocol to clients. The Spice project provides a Linux, Windows, and HTML5 client. There are experimental Mac OS X and Android clients as well.
Features supported in the protocol are:
- Accelerated 2D graphics
- "Hardware" cursor support
- Audio playing
- Audio recording
- Image compression, both lossless and lossy (for WAN support)
- Video detection with MJpeg streaming
- Encryption
- Client side mouse pointer support
- Drivers for: X, Windows (xp, vista, win7)
Red Hat acquired Spice together with kvm when it aqcuired Qumranet, and has invested significant effort into opening it up, cleaning up dependencies, etc.
Benefit to Fedora
In the long term, Spice will let Fedora provide a better user experience in desktop virtualization. In the short term, Fedora gains an interesting new open-source technology that many people want to try out.
Scope
Other (non-mandatory) spice-related bits useful to have in Fedora:
- gdm does not supply xdmcp any longer [[1]]
This would be useful for creating an Xspice server to generate session logins
- Return of pipe sink modules for sound for XSpice [[2]]
A common use for spice is to run windows client, and spice ships with several windows parts:
- A video driver.
- An agent for doing operations inside the guest.
- virtio serial driver for talking to the agent.
It might be interesting to package these in fedora somehow so that its easy to deploy them. Note that the fedora package guidelines don't allow shipping pre-compiled blobs. Which implies we must build the windows binaries in mock/koji. Which implies we must be able to cross-build all bits using the mingw compiler.
How To Test
QEMU
The server part of Spice requires a x86-64 machine, and ideally should have hardware virtualization support (kvm) although this is not strictly required.
The client currently works on x86-64 and x86, but we're working on porting it to more architectures.
You will need a host system, guest system, and client system. The host system runs qemu to launch the guest VM. You connect from the client system to view the guest VM. Often, the client system is the same as the host system, at least for simple testing.
To test spice, install a qemu with spice support and spice-server on the host machine, then start qemu with options something like this:
qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,disable-ticketing -enable-kvm
or with passwords:
qemu <disk-image> -usbdevice tablet -soundhw ac97 -vga qxl -spice port=5930,password=<secret> -enable-kvm
In the guest, you will need to install xorg-x11-drv-qxl and you will want to install spice-vdagent.
On the client, you will need a spice client. Modern use suggests that you use remote-viewer, which requires the virt-viewer and spice-gtk3 packages on Fedora. (Old clients include spice-client, which provides spicec, and spice-gtk-tools, which provides spicy).
To run, invoke as follows:
remote-viewer spice://localhost:1234
This should let you access the machine.
User Experience
Dependencies
- qemu
Documentation
Note that most of the official documentation is generally badly out of date.
Release Notes
- Fedora 14 introduces the Spice framework for desktop virtualization.