mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2026-01-09 05:51:00 +00:00
This manual documents how to enable/use various SPICE features when creating a VM by running QEMU directly, or when using libvirt, or when using virt-manager. This is based on work by Lubos Kocman
200 lines
9.4 KiB
XML
200 lines
9.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
|
|
|
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
|
<title>Installation</title>
|
|
|
|
<section xml:id="rhel_fedora">
|
|
<title>Installing Spice on RHEL or Fedora </title>
|
|
<para>
|
|
Be aware that RHEL has no builds of qemu/spice-server for i386, only x86_64 builds are available.
|
|
</para>
|
|
<section>
|
|
<title>RHEL >=6 and Fedora >=13</title>
|
|
<para>
|
|
<screen>yum install qemu-kvm virt-viewer</screen>
|
|
</para>
|
|
<para>
|
|
The package spice-protocol will be downloaded automatically as a dependency of package kvm.
|
|
</para>
|
|
</section>
|
|
<section><title>RHEVM Users</title>
|
|
<para>
|
|
<emphasis role="bold">
|
|
<link xlink:href="http://www.ovirt.org">oVirt</link>/RHEVM users
|
|
could be also interested in the spice-xpi package as it allows you
|
|
to execute spice-client directly from the oVirt/RHEVM UserPortal.
|
|
</emphasis>
|
|
<screen>yum install spice-xpi</screen>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
|
|
<section xml:id="linux_generic">
|
|
<title>Generic Build Instructions</title>
|
|
|
|
<para>
|
|
This section is for distributions that don't have *spice* packages in their repositories.
|
|
It will show you step by step how to build the required spice components.
|
|
</para>
|
|
|
|
<section xml:id="req_client">
|
|
<title>Client requirements</title>
|
|
|
|
<orderedlist>
|
|
<listitem><para><emphasis role="bold">autotools</emphasis></para></listitem>
|
|
<listitem><para><emphasis role="bold">gtk+2 > 2.18 or gtk+3</emphasis></para></listitem>
|
|
<listitem><para><emphasis role="bold">celt = 0.5.1.3</emphasis> The exact version is required due to the lack of backwards compatibility in newer celt releases.</para></listitem>
|
|
<listitem><para><emphasis role="bold">cyrus-sasl</emphasis></para></listitem>
|
|
<listitem><para><emphasis role="bold">pixman</emphasis></para></listitem>
|
|
<listitem><para><emphasis role="bold">openssl</emphasis></para></listitem>
|
|
<listitem><para><emphasis role="bold">pyparsing</emphasis></para></listitem>
|
|
<listitem><para><emphasis role="bold">usbredir</emphasis></para></listitem>
|
|
<listitem><para><emphasis role="bold">PolicyKit</emphasis></para></listitem>
|
|
</orderedlist>
|
|
</section>
|
|
|
|
<section xml:id="req_host">
|
|
<title>Host requirements</title>
|
|
<orderedlist>
|
|
<listitem><para><emphasis role="bold">KVM supported by kernel</emphasis> (It should work also without KVM, but
|
|
it's not being tested as most Linux distrubitions already support
|
|
KVM.)</para></listitem>
|
|
</orderedlist>
|
|
|
|
</section>
|
|
|
|
<section>
|
|
<title>Guest requirements</title>
|
|
<section>
|
|
<title>Linux Guest</title>
|
|
<para>
|
|
spice-vdagent requires virtio-serial support to be enabled. This is described in the <link xlink:href="SpiceUserManual-Basics.xml#basics">chapter Spice basics</link>.
|
|
Guest should have installed qxl driver (xorg-x11-drv-qxl on Fedora and RHEL).
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title>Windows Guest</title>
|
|
<para>
|
|
Drivers for QXL and drivers for virtio-serial require Win XP SP3 and Win 7.
|
|
</para>
|
|
</section>
|
|
|
|
<section xml:id="setting_be">
|
|
<title>Setting up the build environment</title>
|
|
|
|
<para>
|
|
<emphasis role="bold">This is a list of prerequisites on RHEL or Fedora. Install
|
|
equivalent packages for your distribution in case that you're not using RHEL
|
|
or Fedora.</emphasis>
|
|
</para>
|
|
<para>
|
|
<emphasis role="bold">All prerequisites for Windows are available in one big package which is available
|
|
at <link xlink:href="http://spice-space.org/download.html">http://spice-space.org/download.html</link>.</emphasis>
|
|
</para>
|
|
<screen>yum install git pixman-devel celt051-devel cegui-devel libjpeg-devel alsa-lib-devel log4cpp-devel \
|
|
openssl-devel libXrandr-devel libgcrypt-devel SDL-devel nss-devel dev86 iasl pyparsing</screen>
|
|
|
|
<para>
|
|
<emphasis role="bold">Package prerequisites for Ubuntu</emphasis>
|
|
</para>
|
|
<screen>apt-get install build-essential autoconf git-core libtool liblog4cpp5-dev libavcodec-dev \
|
|
libssl-dev xlibmesa-glu-dev libasound-dev libpng12-dev libfreetype6-dev libfontconfig1-dev \
|
|
libogg-dev libxrandr-dev kvm libgcrypt-dev libsdl-dev</screen>
|
|
|
|
</section>
|
|
|
|
<section xml:id="building_libcacard">
|
|
<title>Building libcacard</title>
|
|
<para>Fedora >=14 RHEL >=6.1 has libcacard already available. So you can install it directly trough yum.</para>
|
|
<screen>yum install libcacard</screen>
|
|
<para>Otherwise follow these instructions. <emphasis role="bold">The environment
|
|
variable $BUILD_ROOT will point to a directory with stored sources and will
|
|
be used during the whole build process. The variable $INST_ROOT will point to a
|
|
directory in which Spice will be installed.</emphasis></para>
|
|
<screen>export BUILD_ROOT=/tmp/spice; mkdir $BUILD_ROOT; cd $BUILD_ROOT;
|
|
export INST_ROOT="/opt/spice"; mkdir $INST_ROOT
|
|
git clone git://anongit.freedesktop.org/~alon/libcacard
|
|
cd libcacard
|
|
./configure --prefix=/usr --libdir=/usr/lib64 # Ignore --libdir at Ubuntu
|
|
make
|
|
make install</screen>
|
|
|
|
</section>
|
|
|
|
<section xml:id="getting_client">
|
|
<title>Getting client sources</title>
|
|
|
|
<screen>cd $BUILD_ROOT
|
|
git clone git://cgit.freedesktop.org/spice/spice-protocol
|
|
git clone git://cgit.freedesktop.org/spice/spice
|
|
wget http://downloads.us.xiph.org/releases/celt/celt-0.5.1.3.tar.gz
|
|
tar xvzf celt-0.5.1.3.tar.gz
|
|
</screen>
|
|
</section>
|
|
|
|
<section xml:id="getting_server">
|
|
<title>Getting client/server sources</title>
|
|
<para>Skip this section if you don't want to build server side.</para>
|
|
<screen>cd $BUILD_ROOT
|
|
git clone git://cgit.freedesktop.org/spice/qemu
|
|
cd qemu; git checkout -b spice.v13 origin/spice.v13; cd ..
|
|
git clone git://cgit.freedesktop.org/spice/spice-protocol
|
|
git clone git://cgit.freedesktop.org/spice/spice
|
|
git clone git://cgit.freedesktop.org/spice/win32/vd_agent
|
|
git clone git://cgit.freedesktop.org/spice/win32/qxl
|
|
git clone git://cgit.freedesktop.org/spice/slirp
|
|
wget http://downloads.us.xiph.org/releases/celt/celt-0.5.1.3.tar.gz
|
|
tar xvzf celt-0.5.1.3.tar.gz</screen>
|
|
|
|
</section>
|
|
|
|
<section xml:id="building_common">
|
|
<title>Building common sources.</title>
|
|
<para>This part applies to both server and client build process.</para>
|
|
<screen>cd $BUILD_ROOT/spice-protocol
|
|
mkdir m4
|
|
./autogen.sh --prefix=$INST_ROOT
|
|
sudo make install
|
|
cd $BUILD_ROOT/celt-0.5.1.3
|
|
./configure --prefix=$INST_ROOT
|
|
sudo make install
|
|
</screen>
|
|
|
|
</section>
|
|
<section>
|
|
<title>Building client side tools</title>
|
|
<screen>cd $BUILD_ROOT/spice
|
|
./autogen.sh --prefix=$INST_ROOT --enable-smartcard
|
|
cd client
|
|
sudo make install</screen>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Building server side tools</title>
|
|
<para>These instructions contain flags for a minimal working build of qemu with Spice support enabled.
|
|
You might want to build qemu with the --enable-io-thread option</para>
|
|
<screen>cd $SRC_ROOT/qemu
|
|
./configure --prefix=$INST_ROOT --target-list=x86_64-softmmu --enable-spice
|
|
make</screen>
|
|
</section>
|
|
|
|
</section>
|
|
|
|
<section>
|
|
<title>Setting up PATH</title>
|
|
<para>Last steps before starting with Spice are to set proper PATH variable.
|
|
For example RHEL is using /usr/libexec as directory for spicec and qemu-kvm binaries.
|
|
The following setup should be suitable for qemu and Spice built according to the instructions in
|
|
this chapter.</para>
|
|
|
|
|
|
<screen>echo "export PATH=$PATH:$INST_ROOT/bin:$BUILD_ROOT/x86_64-softmmu >> ~/.bashrc
|
|
source ~/.bashrc</screen>
|
|
|
|
<para>You should now be able to access the qemu-system-x86_64 and spicec binaries.</para>
|
|
</section>
|
|
</section>
|
|
|
|
</chapter>
|