|Not Supported by Joyent|
This is an experimental feature.
It is not supported by Joyent, or anyone else for that matter.
Also note that work on this project has mostly stopped.
If anything bad happens to you from following any of the instructions on this page, it is your own fault.
The best reference is the spice project website, but the easy way to think about it is like this:
Spice is like VNC, but with better performance (like streaming video) and with sound.
To run spice enabled VMs you need to be running the SmartOS release from 20120504 or later (using the latest release is generally recommended.)
You can either download the sample dataset, or build your own.
QEMU images are available in the http://datasets.shalman.org/datasets repository.
The latest QEMU image was uploaded on May 26, 2014. It can be imported like so:
Build last tested on the base64-13.3.0 image.
- Automatic build tools (with some instructions)
- Import base64-13.3.0 dataset
- Create a zone with the base64-13.3.0 dataset with "delegate_dataset" set to true
- zlogin into the zone
- curl https://raw.github.com/nshalman/qemu-smartos-build/master/full-build | bash
From the global zone you can then install your freshly built image for use:
Linux and Windows client software can be found in the "Client" section of this page: SPICE - Download
I've heard that it's decent on recent versions of MacOS (it won't run on my old snow leopard machine).
|A word about "spice_port"s|
Make sure to use a different port for each VM. Otherwise vmadmd will crash.
If that happens, delete the conflicting VM and then run:
Note the "image_uuid", "spice_port", "vga", and "qemu_extra_opts" properties:
For Windows you'll need to refer back to the Spice website for spice drivers.
For Fedora you'll need to make sure that your vm has the "xorg-x11-drv-qxl" and "spice-vdagent" packages installed.
- Create the VM as above
- vmadm stop <uuid>
- cd /zones/<uuid>/root
- wget http://mirror.pnl.gov/fedora/linux/releases/20/Fedora/x86_64/os/images/boot.iso
- vmadm boot <uuid> order=cd,once=d cdrom=/boot.iso,ide
- Use your spice client to connect to the VM
- When the CD boots, hit tab, and type append (without quotation marks) "ks=http://www.shalman.org/spice/fedora20.ks"
- choose your timezone
- let Fedora install
- click through the firstboot stuff
- log in with your user
- click the Fedora icon and start typing google-chrome so that you can launch chrome
- go to youtube and watch a video on your VM with sound and what is currently almost acceptable performance (I'm not sure why there has been a degradation lately)
Windows (and presumably MacOS as well):
Launch remote viewer, enter the spice URI:
- Windows XP (tested by Nahum)
- Windows 7 (tested by Nahum)
- Fedora 16, 17, 18, 19, 20 (tested by Nahum)
- Windows 7 (tested by Nahum using Remote Viewer from the virt-viewer-x64-0.5.6.msi installer)
- Fedora 18 (tested by Nahum using remote-viewer from virt-viewer 0.5.4-3.fc18.x86_64)
Current state: Better-than-Beta Quality (running in production by experts)
- SmartOS has native support in vmadm(d) for spice-enabled VMs.
- Possible to build a version of qemu (currently based on QEMU 1.1.2) patched to compile on illumos/smartos
- usbredir support added to the qemu build
- spice dependencies packaged by pkgsrc and integrated into joyent pkgsrc tree, and regularly updated.
- QEMU-KVM improvements merged into QEMU tree
- qxl-4 virtual hardware backported from a newer QEMU [https://github.com/nshalman/qemu/commit/3c33a8883bb9d870202113afeb43096872a0e1d8]
- bardiche patches applied
- Rebase to latest QEMU
- When spice-html5 is good enough, integrate Spice features into Project FiFo
- When Xorg packages in pkgsrc get good enough, get Xspice into pkgsrc and document usage.
- Get illumos patches into upstream qemu mainline tree
- SmartOS switches to a stable qemu build (post 1.0) based on upstream that includes illumos support
- Add dtrace probes to the spice codebase
- Test the MacOS client and update this page with your results.
Please put your questions in this section for now.
I will try to address them and update this page to answer them.
- Your Question Here
- If the 3ff5a554-e4ed-11e3-820d-33b5e236480b image is used without setting "vga":"qxl", qemu will fail to boot. This is probably a bug in some of the assumptions my startvm.zone script makes... (Reported on IRC by "GS" and confirmed by Nahum)