QEMU 探索旅程——编译

QUMU 官方介绍

ARM System emulator

 

 1 3.5 ARM System emulator
 2 
 3 Use the executable qemu-system-arm to simulate a ARM machine. The ARM Integrator/CP board is emulated with the following devices:
 4 
 5     - ARM926E, ARM1026E, ARM946E, ARM1136 or Cortex-A8 CPU
 6     - Two PL011 UARTs
 7     - SMC 91c111 Ethernet adapter
 8     - PL110 LCD controller
 9     - PL050 KMI with PS/2 keyboard and mouse.
10     - PL181 MultiMedia Card Interface with SD card.
11 
12 The ARM Versatile baseboard is emulated with the following devices:
13 
14     - ARM926E, ARM1136 or Cortex-A8 CPU
15     - PL190 Vectored Interrupt Controller
16     - Four PL011 UARTs
17     - SMC 91c111 Ethernet adapter
18     - PL110 LCD controller
19     - PL050 KMI with PS/2 keyboard and mouse.
20     - PCI host bridge. Note the emulated PCI bridge only provides access to PCI memory space. It does not provide access to PCI IO space. This means some devices (eg. ne2k_pci NIC) are not usable, and others (eg. rtl8139 NIC) are only usable when the guest drivers use the memory mapped control registers.
21     - PCI OHCI USB controller.
22     - LSI53C895A PCI SCSI Host Bus Adapter with hard disk and CD-ROM devices.
23     - PL181 MultiMedia Card Interface with SD card.
24 
25 Several variants of the ARM RealView baseboard are emulated, including the EB, PB-A8 and PBX-A9. Due to interactions with the bootloader, only certain Linux kernel configurations work out of the box on these boards.
26 
27 Kernels for the PB-A8 board should have CONFIG_REALVIEW_HIGH_PHYS_OFFSET enabled in the kernel, and expect 512M RAM. Kernels for The PBX-A9 board should have CONFIG_SPARSEMEM enabled, CONFIG_REALVIEW_HIGH_PHYS_OFFSET disabled and expect 1024M RAM.
28 
29 The following devices are emulated:
30 
31     - ARM926E, ARM1136, ARM11MPCore, Cortex-A8 or Cortex-A9 MPCore CPU
32     - ARM AMBA Generic/Distributed Interrupt Controller
33     - Four PL011 UARTs
34     - SMC 91c111 or SMSC LAN9118 Ethernet adapter
35     - PL110 LCD controller
36     - PL050 KMI with PS/2 keyboard and mouse
37     - PCI host bridge
38     - PCI OHCI USB controller
39     - LSI53C895A PCI SCSI Host Bus Adapter with hard disk and CD-ROM devices
40     - PL181 MultiMedia Card Interface with SD card. 

ARM emulation

1 A.1.2 ARM emulation
2 
3 Full ARM 7 user emulation.
4 NWFPE FPU support included in user Linux emulation.
5 Can run most ARM Linux binaries.

 

configure

1 --prefix=/home/sun/18.04-install/qemu-3.0.0 --target-list="arm-softmmu arm-linux-user aarch64-softmmu aarch64-linux-user" --enable-libssh2 --enable-system --enable-user --enable-linux-user --enable-docs --enable-pie --enable-modules --enable-kvm --enable-libnfs --enable-gprof --enable-profiler --audio-drv-list="oss alsa"

 

错误1

提示没有ALSA库,编译安装最新ALSA库

错误2

1 ERROR: User requested feature docs
2        configure was not able to find it.
3        Install texinfo and Perl/perl-podlators
4        
5 安装 texinfo and Perl

错误3

1 ERROR: User requested feature libnfs
2        configure was not able to find it.
3        Install libnfs devel >= 1.9.3
1 $ sudo apt install libnfs-dev

错误4

1 ERROR: libssh2 >= 1.2.8 required for --enable-libssh2
sudo apt install libssh2-1-dev


最终配置结果:

  1 sun@machine:~/share/build/qemu-3.0.0$ time ./configure --prefix=/home/sun/18.04-install/qemu-3.0.0 --target-list="arm-softmmu arm-linux-user aarch64-softmmu aarch64-linux-user" --enable-libssh2 --enable-system --enable-user --enable-linux-user --enable-docs --enable-pie --enable-modules --enable-kvm --enable-libnfs --enable-gprof --enable-profiler --audio-drv-list="oss alsa"
  2 Install prefix    /home/sun/18.04-install/qemu-3.0.0
  3 BIOS directory    /home/sun/18.04-install/qemu-3.0.0/share/qemu
  4 firmware path     /home/sun/18.04-install/qemu-3.0.0/share/qemu-firmware
  5 binary directory  /home/sun/18.04-install/qemu-3.0.0/bin
  6 library directory /home/sun/18.04-install/qemu-3.0.0/lib
  7 module directory  /home/sun/18.04-install/qemu-3.0.0/lib/qemu
  8 libexec directory /home/sun/18.04-install/qemu-3.0.0/libexec
  9 include directory /home/sun/18.04-install/qemu-3.0.0/include
 10 config directory  /home/sun/18.04-install/qemu-3.0.0/etc
 11 local state directory   /home/sun/18.04-install/qemu-3.0.0/var
 12 Manual directory  /home/sun/18.04-install/qemu-3.0.0/share/man
 13 ELF interp prefix /usr/gnemul/qemu-%M
 14 Source path       /home/sun/share/build/qemu-3.0.0
 15 GIT binary        git
 16 GIT submodules    
 17 C compiler        cc
 18 Host C compiler   cc
 19 C++ compiler      c++
 20 Objective-C compiler cc
 21 ARFLAGS           rv
 22 CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
 23 QEMU_CFLAGS       -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -DHAS_LIBSSH2_SFTP_FSYNC -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv  -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong  -I$(SRC_PATH)/capstone/include
 24 LDFLAGS           -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g
 25 QEMU_LDFLAGS      -L$(BUILD_DIR)/dtc/libfdt
 26 make              make
 27 install           install
 28 python            python -B
 29 smbd              /usr/sbin/smbd
 30 module support    yes
 31 host CPU          x86_64
 32 host big endian   no
 33 target list       arm-softmmu arm-linux-user aarch64-softmmu aarch64-linux-user
 34 gprof enabled     yes
 35 sparse enabled    no
 36 strip binaries    yes
 37 profiler          yes
 38 static build      no
 39 SDL support       no
 40 GTK support       no
 41 GTK GL support    no
 42 VTE support       no
 43 TLS priority      NORMAL
 44 GNUTLS support    no
 45 GNUTLS rnd        no
 46 libgcrypt         yes
 47 libgcrypt kdf     yes
 48 nettle            no
 49 nettle kdf        no
 50 libtasn1          no
 51 curses support    no
 52 virgl support     no
 53 curl support      no
 54 mingw32 support   no
 55 Audio drivers     oss alsa
 56 Block whitelist (rw)
 57 Block whitelist (ro)
 58 VirtFS support    no
 59 Multipath support no
 60 VNC support       yes
 61 VNC SASL support  no
 62 VNC JPEG support  no
 63 VNC PNG support   no
 64 xen support       no
 65 brlapi support    no
 66 bluez  support    no
 67 Documentation     yes
 68 PIE               yes
 69 vde support       no
 70 netmap support    no
 71 Linux AIO support no
 72 ATTR/XATTR support yes
 73 Install blobs     yes
 74 KVM support       yes
 75 HAX support       no
 76 HVF support       no
 77 WHPX support      no
 78 TCG support       yes
 79 TCG debug enabled no
 80 TCG interpreter   no
 81 malloc trim support yes
 82 RDMA support      no
 83 fdt support       git
 84 membarrier        no
 85 preadv support    yes
 86 fdatasync         yes
 87 madvise           yes
 88 posix_madvise     yes
 89 posix_memalign    yes
 90 libcap-ng support no
 91 vhost-net support yes
 92 vhost-crypto support yes
 93 vhost-scsi support yes
 94 vhost-vsock support yes
 95 vhost-user support yes
 96 Trace backends    log
 97 spice support     no
 98 rbd support       no
 99 xfsctl support    no
100 smartcard support no
101 libusb            no
102 usb net redir     no
103 OpenGL support    no
104 OpenGL dmabufs    no
105 libiscsi support  no
106 libnfs support    yes
107 build guest agent yes
108 QGA VSS support   no
109 QGA w32 disk info no
110 QGA MSI support   no
111 seccomp support   no
112 coroutine backend ucontext
113 coroutine pool    yes
114 debug stack usage no
115 mutex debugging   no
116 crypto afalg      no
117 GlusterFS support no
118 gco
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值