Ubuntu16.04LTS 环境下编译安装Xen
一、编译安装xen4.6过程
操作系统使用ubuntu16.04,通过下载xen4.6的源代码并编译安装来创建xen4.6环境。
一、依赖包的安装
sudo apt-get install gcc make binutils zlib1g-dev python-dev
sudo apt-get install libncurses5-dev libcurl4-openssl-dev libx11-dev
sudo apt-get install uuid-dev libyajl-dev libaio-dev libglib2.0-dev libpixman-1-dev
sudo apt-get install pkg-config bridge-utils iproute udev bison flex gettext
sudo apt-get install bin86 bcc iasl ocaml-nox ocaml-findlib cmake markdown figlet git libc6-dev-i386
sudo apt-get install texinfo texlive-latex-base texlive-latex-recommended texlive-fonts-extra
sudo apt-get install texlive-fonts-recommended pciutils-dev mercurial
若安装依赖包的时候出现问题可执行sudo apt-get update来解决;
二、xen源码的下载
xen源码地址https://github.com/lightningkay/xen/releases/tag/RELEASE-4.6.6;
注:要选用xen-RELEASE-4.6.6.tar.gz,不要使用xen-RELEASE-4.6.6.zip;
下载完之后把压缩包拷贝到ubuntu下进行解压,若是在Windows环境下进行解压可能会造成某些文件的丢失;
三、xen源文件编译
首先,将源文件解压到某个目录下,然后cd到该目录下源码文件所在目录,开始进行编译;
第一步:执行sudo ./configure
可能的错误1:执行完该步可能会显示缺少某些python的头包,可执行sudo apt-get install python-dev 解决;
可能的错误2:
解决方法:
然后再执行./configure就不在 错误:
第二步:执行 make world 命令
此处可能会出现错误,需要修改源码树的某些地方;
错误示例:
准备工作:
来到http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=stubdom/Makefile;h=39067c8aa0030f2833dd1b757be9b0e1c1a53002;hb=6e2a4c73564ab907b732059adb317d6ca2d138a2
把181行的源码拷贝下来:
cd $@; CPPFLAGS="-isystem $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include $(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" CC=$(CC) $(GMPEXT) ./configure --disable-shared --enable-static --disable-fft --without-readline --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf --libdir=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib --build=`gcc -dumpmachine` --host=$(GNU_TARGET_ARCH)-xen-elf
cd stubdom;
vi Makefile 进入Makefile文件,找到第174(对,你没有看错 在Makefile文件中就是174行)行 把刚才从官网拷贝下来的那一行代码替换该行;
第三步:make install
可能还会有一个错误:
解决方法:cd /boot;找到xen.gz文件 然后执行命令sudo rm xen.gz 把该文件删除即可;
第四步:
sudo update-grub
sudo update-rc.d xencommons defaults 19 18
sudo update-rc.d xendomains defaults 21 20
sudo update-rc.d xen-watchdog defaults 22 23
第五步:重启
Sudo reboot;
重启之后 执行命令 sudo xl list可以查看是否编译安装成功;
如果出现错误:可能是由于sudo update-grub命令没有作用,导致启动的时候没有加载xen- hypervisor ;
解决方法:执行命令 sudo apt-get install xen-hypervisor,然后再重启,问题得到解决;
Name ID Mem VCPUs State Time(s)
Domain-0 0 7897 4 r----- 3937.0
参考资料:
1、 官方文档编译安装https://wiki.xenproject.org/wiki/Compiling_Xen_From_Source
2、http://www.cnblogs.com/liuyikang/p/3891878.html
Ubuntu16.04LTS 环境下编译安装Xen的更多相关文章
- libCURL开源库在VS2010环境下编译安装,配置详解
libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...
- Redhat环境下编译安装Google Bazel
Redhat环境下编译安装bazel 作者:Jack47 目前Google Bazel没有提供各个操作系统下的二进制安装包,只提供源代码,需要我们自己编译安装,详情可以见我翻译的中文版Google B ...
- centos7.6环境下编译安装tengine-2.2.2的编译安装
centos7.6环境下编译安装tengine-2.2.2的编译安装 .获取tengine2..2的源码包 http://tengine.taobao.org/download/tengine-2.2 ...
- Ubuntu1604环境下编译安装mariadb10.2.26
环境准备:阿里云ecs Ubuntu1604下,编译安装mariadb10-2.26 1.先安装一些初试环境所需要的工具软件包 apt install -y iproute2 ntpdate tcpd ...
- 在centos环境下编译安装myrocksdb
rocksdb(https://rocksdb.org.cn/)是脸书(facebook)公司开源的一个key-value存储引擎,基于leveldb开发.rocksdb使用的是LSM存储引擎,纯c+ ...
- Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务
系统环境: $ cat /etc/issueRed Hat Enterprise Linux Server release 5.8 (Tikanga)Kernel \r on an \m 1. 下载安 ...
- centos7.5环境下编译安装php7.0.30并安装redis和mongo扩展
.安装php7..30的脚本 # vim install_php.sh #!/bin/bash # 安装基本依赖 yum install -y gcc gcc-c++ htop telnet ioto ...
- Apache-rhel5.8环境下编译安装
Apache安装过程 Step 1:安装包gcc或gcc-c++# yum install gcc#yum install gcc-c++ Step 2:安装包APR和APR-Utilapr-1.4. ...
- Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)
Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...
随机推荐
- MyEclipse 2014 破解补丁及激活步骤
针对 MyEclipse Trail Expired 问题的解决方法 我用网上找的注册类生成注册码的方式注册了一下,重启MyEclipse仍然会有提示弹窗,不过剩余时间由 4 days变成了 5 da ...
- java程序员常见面试题目
答:每当程序出现异常之后,如果程序没有进行相应的处理,则程序会出现中断现象.实际上,产生了异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句捕获的话,则可以进行异常的处理,否则 ...
- Hibernate框架 主配置文件(Hibernate.cfg.xml) 映射配置 说明
Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final\project ...
- 参数错误。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))
异常来自 HRESULT:0x80070057 (E_INVALIDARG)未能加载程序集.......几次删除引用然后重新引用程序集还是报错 奔溃中....网上搜索还真有解决办法:解决方法 是 删除 ...
- Apple使用Apache Mesos重建Siri后端服务
苹果公司宣布,将使用开源的集群管理软件Apache Mesos,作为该公司广受欢迎的.基于iOS的智能个人助理软件Siri的后端服务.Mesosphere的博客指出,苹果已经创建了一个命名为J.A.R ...
- PHP面向对象 ——多态
接口 接口(interface)是抽象方法和静态常量定义的集合. 接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量. 接口中没有其它类型的内容 接口的定义 /** * 接口可以认为是特殊的 ...
- ZooKeeper快速学习
"一入Java深似海",过去自身对于分布式的接触,始终处于使用别人构建的框架的水平,最多就是在nginx配置一下第4层的负载均衡(最后有介绍).随着java使用深入,本文将重点理解 ...
- 漫谈格兰杰因果关系(Granger Causality)——第一章 野火烧不尽,春风吹又生
2017年7月9日上午6点10分,先师胡三清同志--新因果关系的提出者.植入式脑部电极癫痫治疗法的提出者.IEEE高级会员,因肺癌医治无效于杭州肿瘤医院去世,享年50岁.余蒙先师厚恩数载,一朝忽闻先师 ...
- JavaScript中的几种继承方式对比
转自:http://blog.csdn.net/kkkkkxiaofei/article/details/46474069 从’严格’意义上说,JavaScript并不是一门真正的面向对象语言.这种说 ...
- 聊聊synchronized的锁问题
本文不会特别深入细致地讨论synchronized,只是做一个通俗易懂的说明,以及看清一类问题的本质,希望能给大家一点启发. 问题描述 有一个类A,提供了三个方法.分别是静态同步方法,非静态同步方法, ...