ubuntu15.04下编译 libvirt
很久没有编译 libvirt了。
工作需要,重新编译。
[org_ref]: http://libvirt.org/compiling.html 很简单。 编译过程, 还是很多问题。
依赖包(给懒人参考):
$ sudo apt-get install libtool libxml-xpath-perl libxml2 libxml2-utils python-dev automake autopoint xsltproc libxml++2.6-dev libdevmapper-dev libpciaccess-dev libnl-3-dev libnl-route-3-dev imagemagick libyajl-dev xmllint uniconvertor
勤快的家伙们,可以自己编译,自己查看,缺了每个包的功能。
libnl-route-3-200 - library for dealing with netlink sockets - route interface
libnl-3-200: library for dealing with netlink sockets
rpcgen: 这个包不需要安装,但是可以man一下。 之前在公司的wiki中,介绍过rpcgen。 可惜...
$ git grep RPCGEN
在libvirt中,src/remote/remote_protocol.x 产生:
$ tree -f |grep remote_protocol
$ git show eb826444f90c2563dadf148630b0cd6a9b41ba1e
查看详细过程。
编译
https://libvirt.org/compiling.html
编译完成,启动远程链接注意问题。
http://libvirt.org/remote.html#Remote_certificates
http://www.vmware.com/pdf/vsphere4/r40/vsp_40_esx_server_config.pdf
http://libvirt.org/drvesx.html#connproblems
可以不启用用tls,config中修改一下,就可以了。
diff --git a/daemon/libvirtd.conf b/daemon/libvirtd.conf
index d2c439c..aa547bd
--- a/daemon/libvirtd.conf
+++ b/daemon/libvirtd.conf
@@ -, +, @@
# using this capability.
#
# This is enabled by default, uncomment this to disable it
-#listen_tls =
+listen_tls = # Listen for unencrypted TCP connections on the public TCP/IP port.
# NB, must pass the --listen flag to the libvirtd process for this to
@@ -, +, @@
#
# It is possible to make use of any SASL authentication
# mechanism as well, by using 'sasl' for this option
-#auth_tls = "none"
+auth_tls = "none" # Change the API access control scheme
@@ -, +, @@
#
# Default is to always run sanity checks. Uncommenting this
# will disable sanity checks which is not a good idea
-#tls_no_sanity_certificate =
+tls_no_sanity_certificate = # Flag to disable verification of client certificates
#
@@ -, +, @@
#
# Default is to always verify. Uncommenting this will disable
# verification - make sure an IP whitelist is set
-#tls_no_verify_certificate =
+tls_no_verify_certificate = # A whitelist of allowed x509 Distinguished Names
启动libvirt调试:
编译
https://libvirt.org/compiling.html
$ cat /usr/bin/gdb-libvirt
# ps -ef |grep lt-libvirtd |grep -v grep | awk '{print $2}' | xargs gdb -p
LIBVIRT_PID=`ps -ef |grep lt-libvirtd |grep -v grep | grep -v gdb-libvirt | awk '{print $2}'`
echo $LIBVIRT_PID
LIBVIRT_PID=`cut -d " " -f1 <<< $LIBVIRT_PID`
if [ x$LIBVIRT_PID != x"" ]; then
echo "=================================================="
echo "attach libvirt-d"
echo "sudo gdb -p $LIBVIRT_PID"
sudo gdb -p $LIBVIRT_PID
else
echo "***************************************************"
echo "start libvirt-d"
# sudo ./daemon/libvirtd --listen --verbose -f ./daemon/libvirtd.conf
sudo ./daemon/libvirtd --listen -f ./daemon/libvirtd.conf
fi
# ps -ef |grep lt-libvirtd |grep -v grep | awk '{print $2}' | xargs gdb -p
LIBVIRT_PID=`ps -ef |grep lt-libvirtd |grep -v grep | grep -v gdb-libvirt | awk '{print $2}'`
echo $LIBVIRT_PID
LIBVIRT_PID=`cut -d " " -f1 <<< $LIBVIRT_PID`
if [ x$LIBVIRT_PID != x"" ]; then
echo "=================================================="
echo "attach libvirt-d"
echo "sudo gdb -p $LIBVIRT_PID"
if [ -f "br" ]; then
sudo gdb -p $LIBVIRT_PID -x br
else
sudo gdb -p $LIBVIRT_PID
fi
else
echo "***************************************************"
echo "start libvirt-d"
# sudo /home/ubuntu/libvirt/daemon/libvirtd --listen --verbose
sudo /home/ubuntu/libvirt/daemon/libvirtd -f /home/ubuntu/libvirt/daemon/libvirtd.conf --listen
fi
$ cat /usr/bin/gdb-virsh
if [ x$ = "x-g" ]; then
sudo /home/shaohe/libvirt/run gdb /home/shaohe/libvirt/tools/virsh
else
sudo /home/shaohe/libvirt/run /home/shaohe/libvirt/tools/virsh
fi
if [ x$ = "x-g" ]; then
sudo ./run gdb ./tools/virsh
else
sudo ./run ./tools/virsh
fi
ubuntu15.04下编译 libvirt的更多相关文章
- ubuntu-15.04 下编译 ijkplayer 安卓版
我的环境: 1.win7 主系统 2.VirtualBox 5.1.2 虚拟机 3.ubuntu-15.04-desktop-amd64.iso 镜像文件 4.android-ndk-r10e-lin ...
- ubuntu15.10下编译安装wine1.8 rc4
ubuntu15.10下编译安装wine1.8rc4 Wine (“Wine Is Not an Emulator” 的递归缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Li ...
- 在ubuntu12.04下编译android4.1.2添加JNI层出现问题
tiny4412学习者,在ubuntu12.04下编译android4.1.2添加JNI层出现问题: (虚心请教解决方法) trouble writing output: Too many metho ...
- [置顶] ubuntu12.04下编译opencv程序
ubuntu12.04下编译opencv程序 1.在ubuntu下安装好 opencv后(建议使用apt-get install 来安装) 2.使用程序FaceExaple.c来进行测试程序 #inc ...
- ubuntu14.04下编译安装ambari-2.4.2.0
ubuntu14.04下编译安装ambari-2.4.2.0 编译前的准备工作 准备工作有: 系统参数 系统依赖(编译环境) 离线安装包 java环境 maven环境 Nodejs环境 git环境 a ...
- Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)
Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...
- Ubuntu16.04下编译OpenCV2.4.13静态库(.a文件)
Ubuntu16.04下编译OpenCV2.4.13静态库(.a文件) https://blog.csdn.net/woainishifu/article/details/79712110 我们在做项 ...
- Ubuntu 16.04下编译安装Apache2.4和PHP7结合
Ubuntu 16.04下编译安装Apache2.4和PHP7结合,并安装PDOmysql扩展. 1.编译安装apache2.4.20 1 第一步: ./configure --prefix=/usr ...
- VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了. 它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...
随机推荐
- Oracle EBS-SQL (WIP-14):检查车间需求与BOM差异对照.sql
select a.*, b.BOM定额, a.WIP定额 - b.BOM定额 差异 from (select WE.WIP_ENTITY_NAME ...
- ORACLE RAC中一个实例不能随crs自动启动的解决
现象:在两个节点上做CRS的重启,这个实例都不能随CRS的启动而启动.CRS启动后做crs_start -all可以把没启动的资源起来,而且无报错. 分析:去crsd.log中找原因,发现CRS根本就 ...
- Linux学习笔记4-三种不同类型的软件的安装(绿色软件、rpm软件、源代码软件)
在Linux下软件分三种: 1.绿色软件:即不用安装直接就能用的软件 2.rpm安装包:以rpm结尾的可执行文件 3.源码文件:没有进行过编译和打包的文件,需要编译后再进行安装 一.绿色软件的安装 ...
- Android UI SurfaceView的使用-绘制组合图型,并使其移动
绘制容器类: //图形绘制容器 public class Contanier { private List<Contanier> list; private float x=0,y=0; ...
- wx.BookCtrlBase
wx.BookCtrlBase A book control is a convenient way of displaying multiple pages of information, disp ...
- hdu 3068 最长回文(manachar求最长回文子串)
题目连接:hdu 3068 最长回文 解题思路:通过manachar算法求最长回文子串,如果用遍历的话绝对超时. #include <stdio.h> #include <strin ...
- Swfit中视图跳转
.跳转到任一UIViewController var sb = UIStoryboard(name: "Main", bundle:nil) var vc = sb.instant ...
- HTML5表单增强
感觉最大的改变就是表单元素可以不写在form标签中.写在其他地方,加个form属性就能提交了别的嘛感觉没什么,表单验证也不能提示信息,感觉不实用 <!DOCTYPE html> <h ...
- #import和#include的区别 关键字@class的作用
一.#import和#include的区别当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,所以会报重复定义的错误但是使用两次#import的话,不 ...
- C++中,new/delete和malloc/free的区别
1.new/delete是C++的操作符,而malloc/free是C中的函数. 2.new做两件事,一是分配内存,二是调用类的构造函数:同样,delete会调用类的析构函数和释放内存.而malloc ...