Owner

Current status

Detailed Description

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.

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

Spice support was added in Fedora 14 (as well as dependent packages, such as spice-protocol, celt051).

Upon Spice 0.10 availability, there is some Fedora packaging work to be done:

Need to update spice-protocol package (done).

Need to update spice package (done).

How To Test

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.

To test spice:

Use virt-manager to create a VM with Spice support.

Run virt-viewer to access it via Spice, Or

Use vinagre to access your VM.

Alternatively:

Install a qemu and spice-server on the server machine (aka host), then start qemu with options something like this:

This should let you access the machine. You should now install the qxl driver and optionally the agent on the guest. If you do not do this you're running in vga mode which is quite slow and inefficient.

XSpice

XSpice is a standalone X server. To launch it without any password protection on port 9999 with display :2.0:

xspice --port 9999 --disable-ticketing :2.0

See xspice --help for other options.

In a seperate terminal you can run X clients under it:

DISPLAY=:2.0 icewm
DISPLAY=:2.0 gnome-terminal
DISPLAY=:2.0 firefox

Connect a standard spice client to the server to get the display, keyboard and mouse:

spicec -h localhost -p 9999

User Experience

Spice is already available in Fedora 15.

The new USB sharing feature enables users to share (simple, usb1) usb devices (such as usb-disk) plugged in the client machine with the guest.