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 ...
随机推荐
- Mathematica 10 Mac 设置默认工作目录
用SetDirectory命令设置
- Spring 学习一
Spring工作机制及为什么要用? 1.springmvc将所有的请求都提交给DispacherServlet,他会委托应用系统的其他模块负责对请求进行真正的处理工作. 2.DispacherServ ...
- a bad dream
最近在恶补 数据结构,网络,操作系统.有关技术实践(项目)的博客基本会停一停. 4月18号早上,我做了一个梦.6点左右就醒了,醒来后马上趁着记忆"热乎乎"写下来.大概在手机上写了一 ...
- CSS样式表之background背景
[CSS常用背景属性]:background (缩写形式) background-color:背景色 background-image:背景图 url中放图片地址,背景图和背景色同时存在时,背景图覆 ...
- 百万级数据mysql分区
1. 什么是表分区? 表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分.从逻辑上看,只有一张表,但是底层却是由多个物理分区组成. 2. 表分区与分表的区别 分表:指的是通过 ...
- Bootstrap提示信息(标签、徽章、巨幕和页头)
前面的话 在Bootstrap中,有一些组件用于提示信息,如 标签.徽章.巨幕和页头.本文将详细介绍Bootstrap提示信息 标签 在一些Web页面中常常会添加一个标签用来告诉用户一些额外的信息,比 ...
- Oracle的用户、角色以及权限相关操作
1.创建用户create user KD identified by 123456;2.授予连接数据库的权限grant connect to KD;3.将Scott用户的emp表授权给KD可以查询gr ...
- Java IO学习笔记(五)对象流
1.Object流:直接将Object写入或读出. 2.序列化:将Object直接转化成字节流写到硬盘或网络上. 3.如果想把一个对象转化成字节流,该对象的实体类必须得实现Serializable接口 ...
- vijos1056题解
题目: 桌面上放了N个平行于坐标轴的矩形,这N个矩形可能有互相覆盖的部分,求它们组成的图形的面积. 在翻题目时,偶然发现了这道标号为WA的题目. 原来,以前我把一中培训的代码发了上去,却WA了4个点, ...
- Memcached的安装与使用
这一段折腾了下Memcached,有所收获吧,记录一下. 1.什么是Memcached memcached是一种缓存技术, 他可以把你的数据放入内存,从而通过内存访问提速,因为内存最快的, memca ...