zoukankan      html  css  js  c++  java
  • QEMU 2.10.1 编译安装【转】

    转自: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

    【作者】张昺华
    【大饼教你学系列】https://edu.csdn.net/course/detail/10393
    【新浪微博】 张昺华--sky
    【twitter】 @sky2030_
    【微信公众号】 张昺华
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    基于Andoird 4.2.2的同步框架源代码学习——同步发起端
    C#MD5为密码加密
    YOUYOU深入学习Ganglia之三(gmetad的软件架构)
    js原生appendChild的bug
    Spring MVC 教程,快速入门,深入分析
    Centos 6.4 Linux 相关问题总结
    jQuery插件之-瀑布流插件
    编辑简单的 shell程序
    Qt国际化相关类
    三层架构与MVC
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/15123910.html
Copyright © 2011-2022 走看看