KVM - The Linux Kernel-Based Virtual Machine
News, Blogs and Resources on the Linux (KVM) Kernel-Based Virtual Machine

RHEV SPICE guest drivers released for Windows

Red Hat has released the SPICE guest drivers for Windows. In this post I’ll walk through installing and using these drivers on a Windows XP guest. You should be aware that although the documentation states that these drivers are only supported on Windows XP, they have been known to work on other versions of Windows . You can download these drivers at the url http://www.spice-space.org/download.html . The windows binaries downloads contain the drivers that I’ll be talking about here. Also available is a spice client for windows as well which I haven’t played with yet. At the end of this post I’ve also provided a CDROM iso containing these very same binaries just for convenience.




Launch KVM with SPICE virtual devices

Assuming you have spice client and qemu-spice installed the first step is to launch kvm with the qxl devices using the –qxl option. You can refer to an earlier post written here on preparations to get spice installed here. Sorry that I don’t have procedure for manually building spice for other distros as I do most of my testing using the latest Fedora. Similarly to that post start your kvm windows xp guest with a command line like the following to include qxl devices. You must use the qemu compiled with spice for these options to work.

/usr/libexec/qemu-spice \
-hda /var/lib/libvirt/images/Centos4-Devel.qcow2 \
-m 512 \
-vga qxl \
-spice port=5930,disable-ticketing &

Once kvm is lauched, the next step is to begin installation of your SPICE drivers.


Install SPICE qxl drivers

Once your windows guest has finished boot it will autodetect new virtual hardware devices and will prompt you to install appropriate drivers. You’ll get the usual dialog asking you if you want to automatically download drivers or if you want to specify your drivers.

Choose “No, not at this time” and click next

Choose “Install from a list or specific location”


If you’re using the iso image provided with in this post select qxl directory as shown and select Next.


You’ll get a prompt similar to above. Just click “Continue Anyway”.

The drivers will begin installation.

The prompt you get after successful installation of the Red Hat’s qxl driver.


Install SPICE VDI port drivers

After your qxl driver has been installed you’ll be prompted again for another driver installation. Similar to above, choose your driver location and navigate to the vdi_port directory on the provided iso as shown below.


The driver will begin installation as shown below.

You should see your vdi driver installing as shown above

Your VDI driver install is now complete.


Install SPICE agent

Last thing you need to do is install the virtual desktop agent for your windows xp guest. To do this, copy the two executable files from the vdagent directory on the cdrom iso provided in this post into a directory on your guest.

Now go to the directory where these executables are located and type “vdservice install”. This will install and start the guest agent service as shown below.


You can will now see the RHEV spice agent listed in your system services on your windows xp guest.

Your hardware device manager will also show your spice devices as shown below.

The VDI driver is shown below.


This completes all software installation.


Connect to Guest with SPICE client

Now you can connect to your guest using the spice client with a command like the following

/usr/bin/spicec –h localhost –p  5930

You should notice much improved video display performance. The mouse and keyboard response really does feel a lot better. You can test a multimedia performance by playing a youtube video for example to compare the experience with a guest without the spice drivers. Give it a try and feel free to post comments.

spice-windows.iso6.5 MB

See Also


The driver does work for other windows guests

The driver maybe not supported by other windows versions (like windows 2003, vista, windows 7) but the last time i checked it ran fine on this windows versions.

Re: The driver does work for other windows guests

Thanks. I've updated the post to show this. 

how to use network


I have an XP machine which I've manage trough the virt-manager.

when running it I got:
/usr/bin/qemu-kvm -S -M pc-0.11 -cpu qemu32 -enable-kvm -m 543 -smp 1 -name xp-kvm-f11 -uuid 97d6f09b-975a-8a5e-3e1e-ef57641b3445 -monitor unix:/var/lib/libvirt/qemu/xp-kvm-f11.monitor,server,nowait -localtime -boot c -drive file=/var/lib/libvirt/images/xp-kvm-f11.img,if=ide,index=0,boot=on -drive if=ide,media=cdrom,index=2 -net nic,macaddr=52:54:00:68:ce:10,vlan=0,name=nic.0 -net tap,fd=25,vlan=0,name=tap.0 -serial none -parallel none -usb -usbdevice tablet -vnc -k en-us -vga cirrus -soundhw es1370

So How to I get my network (and sound) to work?
I've tried:
/usr/libexec/qemu-spice -drive file=/var/lib/libvirt/images/xp-kvm-f11.img -net nic,macaddr=52:54:00:68:ce:10,vlan=0,name=nic.0 -net tap,fd=22,vlan=0,name=tap.0 -m 543 -smp 1 -name xp-kvm-f11 -M pc -cpu qemu32 -qxl 1 -spice port=5930,disable-ticketing



Is there a software Broker plan ?

HI Guys,

This solution seems very efficient, instead, is there a plan to have a software connection broker in top of that ?
Like VMWare with VIEW or Leostream.

Also, are you willing to support VT-D VGA PAssthrough on this qemu extension ?

Thanks a lot , and great job !

Shift+F12 releases the mouse from the Spice client

... just a small piece of handy information. Not Ctrl-Alt and not right Ctrl.

Hi, I've got spice working

I've got spice working locally but how do I connect from a windows workstation?
Local, if I start the guest I can do:
spicec -h -p 5930 and it works.
On a remote windows workstation I do
spicec -h ip_of_guest -p 5930, spicec tries to connect for some time and dies. I ao tried
spicec -h ip_of_host -p 5930
and nothing.
How do I connect? The host and guest both have network connectivity, i can ping them both from anywhere in my LAN.

WAN network and optimize ping time


first thank you for this perfect howto! My spice server on Fedora 12 is running fine and the performance of the virtual running XP in the lan is incredible. All drivers working properly fine.
My only problem is, that the networking speed over WAN connections is much more slower than an WAN RDP connection. Is there any possibility to optimize the network driver for wan connections?

The NIC is bridged and the virtual machine is starting with this params:
/usr/libexec/qemu-spice -drive file=/harddisk3/virt-machines/spice_xppro.img,if=virtio,boot=on -smp 1 -m 512 -net nic,macaddr=53:54:00:1e:f2:37,model=virtio -net tap,ifname=tap2,script=/etc/libvirt/scripts/lan-ifup.sh -usb -usbdevice tablet -localtime -soundhw all -serial none -parallel none -monitor tcp:,server,nowait -pidfile /var/run/kvm/spice_xppro.img.pid -qxl 1 -spice port=5940,disable-ticketing -daemonize

LAN connections respond this RTT:
rtt=273us, min/max/avg=273/106336/23289us
rtt=854us, min/max/avg=273/106336/23135us
rtt=1434us, min/max/avg=273/106336/22987us
rtt=1063us, min/max/avg=273/106336/22838us
rtt=724us, min/max/avg=273/106336/22689us
rtt=463us, min/max/avg=273/106336/22540us

WAN connections respond this RTT:
rtt=59843us, min/max/avg=282/106336/17989us
rtt=82620us, min/max/avg=282/106336/18593us
rtt=81068us, min/max/avg=282/106336/19171us
rtt=59129us, min/max/avg=282/106336/19537us
rtt=83079us, min/max/avg=282/106336/20114us
rtt=69381us, min/max/avg=282/106336/20557us
rtt=66162us, min/max/avg=282/106336/20964us

The WAN connection is over 2 NAT Routers (one to internet and one from internet)
Any idea?

Thanks a lot, and great job!

Using windows client

Make sure your Linux server has port 5930 open the firewall, or disable it, and if going through WAN make sure your router also has this port open. Another common mistake is on windows you sometimes need to specify the file format, ie: spicec.exe -h ip_of_host(spice server) -p 5930

Spice is not geared for WAN connectivity for the moment...


From what i heard over a couple of videos of brian madden and others... the spice protocol... is not geared for WAN environments... as of now...

but not to worry... at many companies in US... 100 mbps WAN connections are starting to become the norm... @ the 2000$/month levels...

Kind Regards,

Spice is not geared for WAN connectivity for the moment...

Then it will be better to spend that money for the proprietary Graphon RXP protocol solution - not that I am promoting proprietary software it just could turn out cheaper every month. With for instance $300/month shared 100MB FTTH business internet access here in Japan ;)

from the FAQ, I find the

from the FAQ, I find the spice server must dependent on 64-bit os. is that means that if I want to run windows xp guest os on 32-bit ubuntu 10.04 with kvm, the spice components will not be suitable for my requirement?

re: from the FAQ, I find the

Yes, there is no 32-bits package, not because of no compiled, x86_64 platform is necessity.

where is vdi driver?

On spice space download I see:

Windows binaries:

Windows client - spice-client-win32-0.6.3.zip
old: spice-client-win32-0.6.1.zip, spice-client-win32-0.6.0.zip
Windows qxl driver - qxl-win32-0.6.1.zip
old: qxl-win32-0.6.0.zip
Windows virtio-serial driver - vioserial-win-1.1.16.zip
Windows guest agent - vdagent-win32-0.6.3.zip
old: vdagent-win32-0.6.0.zip
Windows libraries
32 bit <=0.6.3: spice_libs_win32_063_and_earlier.zip
32 bit upstream: wspice-unstable-x86.zip
64 bit (all): wspice-unstable-x64.zip

BTW, I don't know if you can edit this blog, but it'd be great if you could update the command switch for qxl.


Re: vdi driver


I've updated the blog post to reflect the most recent qxl command line switch.  What vdi driver are you referring to?

spice usb streaming support(?)

Im trying to put together a "thin" client using spice.

server in machine room, with qemu/kvm windows guest running spice server.
laptop in office running spice client. Im using Fedora 15.. and with libvirt, I have windows guest, running great, I even have audio out, although i think it is mono but i just tested youtube, and it seems fairly smooth audio is a little scratchy but not terrible.

I still need audio and USB IN to my virtual machine.. So how do i get a usb device plugged into my laptop to show up on my kvm guest?


You make sure you have usbredir included in your distribution with KVM. That permits usb redirection from view client host into the VM guest OS.

Post new comment

The content of this field is kept private and will not be shown publicly.
Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.