QEMU 2.10.1 编译安装【转】

摘要:
本文记录了在新安装的Ubuntu 17.10桌面上安装QEMU的过程。安装和下载源代码包$wgethttps://download.qemu.org/qemu-2.10.1.tar.xz1因为我是一个新安装的系统,所以我没有编译和构建工具。在编译QEMU之前,让我们看看我们可以配置哪些编译参数:$cdqemu-210.1$/配置-h.…--target-list=LISTsettargetlist可用目标:aarch64 softmmualpha softmmu cris-linux用户hppa-linux-useri386-linux-user。。。选项功能,通过--enable FEATURE启用,通过--disable FEATTURE禁用,默认启用不可用:。。。sdlSDLUI——具有sdlabiselecturepreferredDLABI1.2或2.0gtkgtkUI——具有-gtkabiselectedpreferredGTKABI2.0或3.0vtevtesupport,用于支持VNCservervnc-jpegJPEGlossycompressionforVNCservervnc-pngPNG压缩VNCservercocoaCocaUIvirtfsVirtFSxenxenddriverssupportxen-pci-passthroughbrlapiBrlAPI curlculconnectivityfdtfdtdevicetreebluezbluezstaccessconnectivitykvmKVM加速支持。。。1234567891011121314151617181920212223242526272829303132我只发布了部分输出信息。我大致可以知道,我们可以指定生成QEMU的平台版本,例如x86和arm。默认情况下,配置编译选项QEMU以生成所有平台的版本。为了加快编译速度,我只选择可能使用的版本。

转自:https://blog.csdn.net/candcplusplus/article/details/78320602

QEMU 2.10.1 编译安装
原本在 Ubuntu 上可以直接通过apt install qemu-km可以直接安装 QEMU,但是这样安装的版本太低。想用官方的最新版本还得自己编译源码安装。

本文记录了我在新安装的 Ubuntu 17.10 desktop 安装 QEMU 的过程。

源码包安装
下载源码包
$ wget https://download.qemu.org/qemu-2.10.1.tar.xz
1
安装编译工具
由于我是新安装的系统,所以编译和构建工具都没有。所以先安装一下常用的编译构建工具:

$ sudo apt install gcc
$ sudo apt install build-essential
1
2
我还安装了automake,不知需不需要。

$ sudo apt install automake
1
查看 QEMU 的编译信息
#### 题外话:一般源码的编译过程

在编译之前先来说明一下编译相关的背景知识。一般通过源码编译安装软件包都要运行下面三条命令:

shell
$ ./configure
$ make
$ make install

./configure是一个脚本会自动检查系统环境,比如编译构建工具是否齐全,源码目录,依赖库目录,安装目录等,系统平台和架构信息,其他编译选项等。这些信息可以保持默认或通过参数传递给 configure。然后configure会根据这些信息生成一个 Makefile文件。./configure -h可以查看它的帮助文档。

make命令会根据Makefile中的信息真正开始编译过程。make有一个重要的参数-j可以用来指定编译过程可以同时并行多少任务,一般多核 CPU 可以将该参数指定为 CPU 核数来加快编译。

make install是将编译好的二进制文件安装到系统上。

在编译 QEMU 之前我们先看一下我们可以配置哪些编译参数:

$ cd qemu-2.10.1
$ ./configure -h
...
--target-list=LIST set target list (default: build everything)
Available targets: aarch64-softmmu alpha-softmmu
...
cris-linux-user hppa-linux-user i386-linux-user ...

Optional features, enabled with --enable-FEATURE and
disabled with --disable-FEATURE, default is enabled if available:
...
sdl SDL UI
--with-sdlabi select preferred SDL ABI 1.2 or 2.0
gtk gtk UI
--with-gtkabi select preferred GTK ABI 2.0 or 3.0
vte vte support for the gtk UI
curses curses UI
vnc VNC UI support
vnc-sasl SASL encryption for VNC server
vnc-jpeg JPEG lossy compression for VNC server
vnc-png PNG compression for VNC server
cocoa Cocoa UI (Mac OS X only)
virtfs VirtFS
xen xen backend driver support
xen-pci-passthrough
brlapi BrlAPI (Braile)
curl curl connectivity
fdt fdt device tree
bluez bluez stack connectivity
kvm KVM acceleration support
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
上面我只贴出了部分输出信息。我大致可以知道我们能指定要生成 QEMU 的平台版本,比如 x86 和 arm。还可以指定需要附加功能,其中比较重要的是 sdl、vnc。

配置编译选项
QEMU 默认编译生成所有平台的版本,为了加快编译速度,这里我只选择了我可能会用到的版本。在./configure的--target-list的参数中指定。还选择了 sdl、vnc 的等附加功能。

由于这些参数太多,我决定把它们写到一个脚本文件 myconfig 中。

#!/bin/sh
./configure --target-list="arm-softmmu,i386-softmmu,x86_64-softmmu,arm-linux-user,i386-linux-user,x86_64-linux-user" --enable-debug --enable-sdl --enable-gtk --enable-vnc --enable-vnc-jpeg --enable-vnc-png --enable-kvm --enable-spice --enable-curl --enable-snappy --enable-tools
1
2
–enable-sdl 是必须的,否则用生成的 QEMU 创建的虚拟机没有画面。启动虚拟机时只会显示一行

VNC server running on127.0.0.1:5900,这样你就只能通过 VNC 访问虚拟机了。

如果需要用 VNC 访问虚拟机,可以安装 gvncviewer。

shell
$ sudo apt install gvncviewer

然后

shell
$ gvncviewer 127.0.0.1::5900

就可以看到虚拟机的画面了。

然后给该脚本文件可执行权限:

$ sudo chmod +x myconfig
1
执行

$ sudo ./myconfig
target list arm-softmmu i386-softmmu x86_64-softmmu arm-linux-user i386-linux-user x86_64-linux-user
pixman system
SDL support yes (2.0.6)
GTK support yes (3.22.24)
curl support yes
VNC support yes
VNC SASL support no
VNC JPEG support yes
VNC PNG support yes
...
1
2
3
4
5
6
7
8
9
10
11
上面的输出信息表明我们的配置生效了。

安装编译依赖库
这些库是根据前面的configure的配置参数,以及我后面运行./configure时缺失提示总结的。

$ sudo apt install -y pkg-config
$ sudo apt install -y libpixman-1-dev
$ sudo apt install -y libfdt-dev
$ sudo apt install libsdl2-dev # 这个是必须的,否则QEMU无法为虚拟机提供图形界面
$ sudo apt install libsnappy-dev
$ sudo apt install libgtk-3-dev
$ sudo apt install libjpeg-turbo8-dev
$ sudo apt install libcurl4-openssl-dev
$ sudo apt install libspice-server-dev
1
2
3
4
5
6
7
8
9
编译
$ make -j8
1
由于我电脑是 8 核,所以用-j8加快编译。大概一分钟就编译好了。

我前几天没有通过configure指定要生成的目标平台,也没有给make用-j参数。结果编译了二十多分钟。

编译完后可以在当前目录看可以执行文件qemu-img,在子目录x86_64-softmm看到qemu-system-x86_64可执行文件,在子目录i386-softmmu看到可执行文件qemu-system-i386。

安装
$ sudo make install
1
验证一下
$ qemu-x86_64 --version
qemu-x86_64 version 2.10.1
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

$ qemu-system-i386 --version
QEMU emulator version 2.10.1
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

1$ qemu-img --version
qemu-img version 2.10.1
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
1
2
3
4
5
6
7
8
9
10
11
用 git clone 源码仓库安装
这种方式我没试过,不知道能不能自动解决依赖问题。

clone 源码仓库
官方的 git 代码仓库

$ git clone git://git.qemu.org/qemu.git
1
或者 GitHub 上的镜像源:

$ git clone git@github.com:qemu/qemu.git
1
解决依赖子项目
$ git submodule init
$ git submodule update --recursive
1
2
编译安装
$ ./configure
$ make
1
2
参考
https://www.qemu.org/download/#source
————————————————
版权声明:本文为CSDN博主「流沙的刺客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/candcplusplus/article/details/78320602

免责声明:文章转载自《QEMU 2.10.1 编译安装【转】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇git上传超过100m大文件python print %s 号格式化输出下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

虚拟机服务器经典应用配置方案(一)

一.虚拟主机介绍 虚拟机是用软件方式创建一个虚拟的计算机硬件系统环境,可以让你在当前真实系统环境下再虚拟的创建一个或多个硬件系统环境并可以在这个虚拟环境下安装各种常见的操作系统及各种软件。    二.虚拟主机在应用中对服务器硬件配置要求 采用虚拟系统的好处,帮助提升服务器使用效率和整体系统安全,反过来对服务器配置要求也很高,一个好的服务器的性能涉及到CPU...

kettle系列1.kettle源码获取与运行

  第一次写博客,心里有点小激动,肯定有很多需要改进的地方,望海涵。   kettle算是我相对较为深入研究过的开源软件了,也是我最喜欢的开源软件之一,它可以完成工作中很多体力劳动,在ETL数据抽取方面得到了广泛的使用。我本身对kettle的各个控件使用也不是很熟悉,只会使用最常见的部分控件,就是这样简单的使用也被它的美深深的吸引住了。   好了,进入正题...

ResouceUtils.getFile()取不到Jar中资源文件源码

项目写完了,自己也简单的测试了一下没问题,但打成Jar包之后就出现问题了,没有办法加载配置文件,具体的问题是这样的:在代码中用Spring的ResourceUtils.getFile()得到某一配置文件,代码具体如下 File abcXml= org.springframework.util.ResourceUtils.getFile("classpath...

如何在Windows下使用LAPACK和ARPACK [转]

我最近打算开始学写Fortran程序和使用LAPACK和ARPACK。在学校的Linux上,一个make就搞定了。但是我自己的电脑是 Windows 7系统,什么cmake, nmake的我都试过了,没有一个能够make出来的。网上也有很多Windows下怎么用LAPACK的资料,有的直接给我一个编好的 LAPACK.lib,结果发现不能在gfortran...

Node.js入门:Node.js&NPM的安装与配置

Node.js安装与配置      Node.js已经诞生两年有余,由于一直处于快速开发中,过去的一些安装配置介绍多数针对0.4.x版本而言的,并非适合最新的0.6.x的版本情况了,对此,我们将在0.6.x的版本上介绍Node.js的安装和配置。(本文一律以0.6.1为例,0.6的其余版本,只需替换版本号即可。从http://nodejs.org/#dow...

Tomcat8源码编译及导入Eclipse中研究

最近因为需求需要修改Tomcat中的某些功能,无奈只能研究那部分源码然后稍作修改。 目前Tomcat最新版是8.0,下载了源码包,编译并导入Eclipse中研究比较方便。 1. Tomcat8源码编译步骤 1.1 先到Apache Tomcat 8.0官网下载最新版Source Code Distributions,解压到某个目录下,如D:apache-t...