今天要编译的是Spice,Spice是一个类似RDP的远程连接协议,它基于网络连接,适用于本地、局域网或广域网(说实在的,以目前中国广域网的带宽和延迟,如果没有很好的优化,还是不太适合的)。与RDP的相对独立性不同,Spice并不能独立工作,它需要与Qemu-KVM等结合使用。
Spice是一种Client——Server的架构,虚拟化主机这端驻留SpiceServer,要使用远程桌面的终端这边运行Spice Client,两者通过一系列的通道来进行显示、声音、输入输出等的交互,最终给客户端用户呈现类似于PC的效果。Spice的开销比RDP要大很多,但是显示效果也比RDP要好,特别是在视频方面。如果再结合之前文章提及的Usbredir功能,那么基于USB的外设也能重定向到虚拟机,更加满足普通用户的需求。Spice的官方网站是:,有兴趣的可以从上面下载各类文档进行学习。
同样,我们首先从https://launchpad.net/Ubuntu/+source/spice/0.12.3-0nocelt1ubuntu1 获得源码包:
spice_0.12.3.orig.tar.bz2,spice_0.12.3-0nocelt1ubuntu1.debian.tar.gz,spice_0.12.3-0nocelt1ubuntu1.dsc
下载以后将上述三个文件上传至编译目录: ~/workroom/spice/。
另外从https://launchpad.net/ubuntu/+source/spice-protocol/0.12.3-1获得协议包:
spice-protocol_0.12.3-1.dsc,spice-protocol_0.12.3.orig.tar.bz2,spice-protocol_0.12.3-1.debian.tar.gz
下载以后将上述三个文件上传至编译目录: ~/workroom/spice-protocol/。
首先需要编译和安装spice-protocol,用下面的命令解开源码:
@linux:~/workroom/ spice-protocol $ sudo dpkg-source –x spice-protocol_0.12.3-1.dsc
进入新生成的目录spice-protocol-0.12.3进行编译:
@linux:~/workroom/ spice-protocol / spice-protocol-0.12.3$ sudo debuild
编译完成以后到上一层目录安装刚编译出来的协议包:
@linux:~/workroom/ spice-protocol / $ sudo dpkg –i libspice-protocol-dev_0.12.3-1_all.deb
然后,开始回到spice目录,解开源码:
@linux:~/workroom/ spice / $ sudo dpkg-source –x spice_0.12.3-0nocelt1.dsc
Spice 还用到了很多第三方库,如用于图形图像处理的libpixman,libjpeg,用于声音处理的libasound等等,这些库我们直接从网上下载安装:
@linux:~/workroom/ spice /spice-0.12.3 $ sudo apt-get install dh-autoreconf libpixman-1-dev libxrandr-dev libasound2-dev libssl-dev libxfixes-dev libsasl2-dev libjpeg-dev libxinerama-dev Python-pyparsing libglib2.0-dev
依赖包安装完成后开始编译:
@linux:~/workroom/ spice /spice-0.12.3 $ sudo debuild
如无意外,编译完成,照理编译完的spice 安装包在上一层目录下:
Libspice-server1_0.12.3-0nocelt1_amd64.deb,libspice-server-dev_0.12.3-0nocelt1_amd64.deb和spice-client_0.12.3-0nocelt1_amd64.deb。
先装上这些deb,下面的qemu编译中需要它们。
@linux:~/workroom/ spice $ sudo dpkg –i *.deb