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 ...
随机推荐
- day4作业小代码练习
登录模块: 我们无论上那个网站,经常遇到这样的情况,让我们登录这个网站,流程图如下: 思路: 1.当我们登录网站的时候,我们首先会输入用户名,这个时候,有些网站会提醒我们用户名是否存在,如果我们输入的 ...
- Delegate(委托)
在前面lambda章节中稍微提了一下委托,今天这章就让我们来深究一下委托. 委托的本质是一种类,他是继承MulticastDelegate类的. 而声明委托的关键字的delegate,如:public ...
- Centos操作系统在虚拟机VMware上的安装
1.下载centos操作系统,提供百度云盘链接:http://pan.baidu.com/s/1pLHOR03 2.打开上篇在VMware中新建好的空白虚拟机,将centos安装在此空白虚拟机上,步骤 ...
- gulp使用流程
1.全局安装gulp $ npm install --global gulp 2.作为项目的开发依赖(devDependencies)安装 $ npm install --save-dev gulp ...
- jQuery手风琴的制作!!
jQuery手风琴的制作 首先我们先来做一个简单的jQuery的效果图 效果图 如下: css代码 如下: <style type="text/css" media=&quo ...
- 《JavaScript高级程序设计》 -- 基本概念(一)
之前看过好几遍<JavaScript高级程序设计>这一书,但是始终没有完完整整的看过一遍.从现在开始我会把它完整的啃一遍,每章节都记录笔记,自己的心得,加油! 由于前三章的内容比较简单,因 ...
- Codeforces Round #423 B. Black Square
题目网址:http://codeforces.com/contest/828/problem/B 题目: Polycarp has a checkered sheet of paper of size ...
- php利用ob缓存机制实现页面静态化方法全解
首先介绍一下php中ob缓存常用到的几个常用函数 ob_start():开启缓存机制 ob_get_contents():获取ob缓存中的内容 ob_clean()清除ob缓存中的内容,但不关闭缓存 ...
- Java Listener pattern 监听者模式
Java Listener pattern 监听者模式 2016-5-12 监听者模式(观察者模式)能降低对象之间耦合程度.为两个相互依赖调用的类进行解耦. 便于进行模块化开发工作.不同模块的开发者可 ...
- Java 多态的实现原理
一个对象变量可以指示多种实际类型的现象称为多态 允许不同类的对象对同一消息做出响应.方法的重载.类的覆盖正体现了多态. 1.多态的机制 1.1 本质上多态分两种 .编译时多态(又称静态多态) .运行时 ...