编译环境准备:
1)安装编译工具
sudo apt-get install autotools-dev devhelp doxygen pkg-config devscripts
编译安装spice-protocol
下载spice-protocol 0.12.12源代码
./configure
make
sudo make install
pkg-config –print-provides spice-protocol
安装编译spice所需要的第三方库
./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc
安装celt051
sudo apt-get install libogg-dev
wget -c http://downloads.us.xiph.org/releases/celt/celt-0.5.1.3.tar.gz
./configure
make
sudo make install
其中, asciidoc编译过程中产生问题,建议不要安装。
sudo apt-get install libglib2.0-dev libpixman-1-dev libssl-dev libjpeg-dev libgstreamer1.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libgstreamer-plugins-base1.0-dev libcacard-dev
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
sudo apt-get install liblz4-dev
sudo apt-get install libopus-dev
sudo apt-get install asciidoc(建议不要安装)
sudo apt-get install libusbredirhost-dev libusrredirparser-dev usbredirserver
编译qemu
修改configure,其中有一部分是default 的值,用来设置编译支持选项:
linux_aio=”yes”
kvm=”yes”
spice=”yes”
usb_redir=”yes”
或者直接在命令行中设置也可
qemu依赖的第三方库
sudo apt-get install device-tree-compiler texi2html texinfo libaio-dev libattr1-dev libbluetooth-dev libbrlapi-dev libcap-dev libcap-ng-dev libcurl4-gnutls-dev libfdt-dev libgnutls-dev libncurses5-dev libpulse-dev libsdl1.2-dev libseccomp-dev libxen-dev uuid-dev xfslibs-dev librados-dev librbd-dev
在configure的时候最好看下帮助,其中target system最好指定下,不然编译时间会很长。
编译libvirt
安装依赖包
sudo apt-get install cdbs libxml2-dev libreadline-dev python-all-dev lvm2 open-iscsi libparted0-dev libdevmapper-dev libudev-dev libpciaccess-dev libnl-3-dev libnl-route-3-dev libyajl-dev libpcap0.8-dev libnuma-dev radvd libnetcf-dev libaudit-dev dwarves libxml2-utils libapparmor-dev libcurl4-openssl-dev
sudo apt-get install bridge-utils cgroup-lite cgroup-bin
./configure
make
sudo make install
如果make check的时候发现有几个没有pass,跟firewall相关,就不用管了
貌似重启了一次,但是virsh –version的时候,发现找不到virsh: error while loading shared libraries: libvirt-lxc.so.0: cannot open shared object file: No such file or directory
应该是ldconf的目录没有。
在/etc/ld.so.conf.d/目录下,创建一个libvirt.conf的文件,内容:
/usr/local/lib
运行sudo ldconfig即可。
定义了xml文件后,可以使用
sudo virsh define xxx.xml来定义虚拟机
sudo virsh start xxx 启动虚拟机
sudo virsh list 检查
如果碰到这个问题:
LibvirtError: Failed to connect socket to ‘/usr/local/var/run/libvirt/libvirt-sock’: Connection refused
解决:用root权限启动libvirt。将原来的libvirt进程杀死,然后sudo libvirtd -d
检查kvm是否可用
lsmod | grep kvm
cpu是否支持
cat /proc/cpuinfo | grep ‘vmx|svm’
单纯使用qemu创建虚拟机的过程
1)创建磁盘
$ qemu-img create -f qcow2 xxx.img 10G
2)使用iso镜像启动
qemu-system-x86_64 -m 2048 -enable-kvm -hda xxx.img -cdrom xxx.iso -boot d
不过上面的命令行还缺少远程连接的命令行参数,显示的命令行参数
libvirtd 和virt-manager
安装的时候参考
http://blog.csdn.net/heybob/article/details/24481397
http://ask.xmodulo.com/compile-virt-manager-debian-ubuntu.html
还安装了sudo apt-get install gettext
才算成功
但是libvirt-bin还是出问题
virt-manager还是没有连接到libvirt
http://blog.chinaunix.net/uid-22166872-id-4155209.html
参见上面找不到libvirtd的sock,需要root权限
但是virt-manager只有lxc连接。。。,这个问题问题怎么解决
可以选择新建连接,直接加入本机的qemu连接。
创建虚拟机的是,还出现存储池的问题,直接删除原有的default存储池,新建一个就可以了
网络连接也是。
不过目前碰到问题是,virtlogd拒绝连接
http://serverfault.com/questions/677542/error-on-nova-compute-strart-libvirt-failed-to-connect-socket-to-var-run-li
修改libvirtd.conf,更改了unix socket权限也不管用。。。
还有就是libvirt-bin装不了。。。
直接删除libvirt,使用包管理的也不行。。。
重新装系统,重新编译spice之类的
更改/etc/apt/source.list,使得src生效(由于使用的清华的tuna镜像站,提供的src源一般会被注释掉,所以取消注释,重新sudo apt-get update一下)
sudo apt-get build-dep xxx
再进行编译
但是有的时候会涉及到自己想编译的包,要仔细看下
然后直接拷贝可能安装的包,去除自己想要编译的包。
$./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc
1)首先编译spice-protocol
build-dep
./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc
make
sudo make install
2)编译spice
build-dep中去掉spice-protocol中,直接install
celt051还是要单独编译安装
libogg没有sudo apt-get install libogg-dev
./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc
make
sudo make install
./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc(继续配置spice)
缺少LZ4 support和gstreamer
sudo apt-get install liblz4-dev
sudo apt-get install libgstreamer1.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install gstreamer1.0-plugins-ugly
sudo apt-get install gstreamer1.0-libav
3)编译spice gtk
build-dep 去掉spice-protocol,直接sudo apt-get install
sudo apt-get install gstreamer1.0-plugins-bad
make
sudo make install
4)安装virt-manager
直接安装apt-get install virt-manager
直接安装,但是spice相关的包没法使用apt-get单独remove,会在/usr/lib/x86_64-linux-gnu下面有几个lib,一旦运行了spicy,会出现link with no time reference的错误
将下面几个老版本的库移到别的地方,这样spicy就可以正常运行了。
lrwxrwxrwx 1 root root 33 12月 26 2015 libspice-client-glib-2.0.so.8 -> libspice-client-glib-2.0.so.8.5.0
-rw-r–r– 1 root root 1117536 12月 26 2015 libspice-client-glib-2.0.so.8.5.0
lrwxrwxrwx 1 root root 32 12月 26 2015 libspice-client-gtk-3.0.so.4 -> libspice-client-gtk-3.0.so.4.0.0
-rw-r–r– 1 root root 231440 12月 26 2015 libspice-client-gtk-3.0.so.4.0.0
lrwxrwxrwx 1 root root 28 12月 26 2015 libspice-controller.so.0 -> libspice-controller.so.0.0.0
-rw-r–r– 1 root root 63400 12月 26 2015 libspice-controller.so.0.0.0
lrwxrwxrwx 1 root root 25 2月 16 03:37 libspice-server.so.1 -> libspice-server.so.1.10.0
-rw-r–r– 1 root root 1182176 2月 16 03:37 libspice-server.so.1.10.0
git下来的spice-gtk出问题
//usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0: error adding symbols: DSO mi