安装环境:
OS: Ubuntu22.04LTS
Qemu: qemu6.0.50
1、下载qemu源码
可以通过官网提供的下载链接https://download.qemu.org/下载需要的版本,或者通过github
等途径下载均可。
imaginemiracle@:$ mkdir build
imaginemiracle@:$ ls
build qemu
imaginemiracle@:$ cd build
2、配置编译出错并解决
imaginemiracle@:build$ ../qemu/configure
ERROR: Cannot find Ninja
根据错误提示,缺少Ninja
,安装ninja
即可。
imaginemiracle@:build$ sudo apt-get install ninja-build
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
ninja-build
0 upgraded, 1 newly installed, 0 to remove and 151 not upgraded.
Need to get 107 kB of archives.
After this operation, 338 kB of additional disk space will be used.
Get:1 http://ftp.sjtu.edu.cn/ubuntu focal/universe amd64 ninja-build amd64 1.10.0-1build1 [107 kB]
Fetched 107 kB in 0s (424 kB/s)
Selecting previously unselected package ninja-build.
(Reading database ... 214209 files and directories currently installed.)
Preparing to unpack .../ninja-build_1.10.0-1build1_amd64.deb ...
Unpacking ninja-build (1.10.0-1build1) ...
Setting up ninja-build (1.10.0-1build1) ...
Processing triggers for man-db (2.9.1-1) ...
尝试编译看是否还有报错。
imaginemiracle@:build$ ../qemu/configure
ERROR: glib-2.48 gthread-2.0 is required to compile QEMU
建议这些都安装,会自动检测已安装的包,将不会重复安装。
sudo apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev
binutils-dev libboost-all-dev autoconf libtool libssl-dev
libpixman-1-dev libpython2-dev python-pip python-capstone virtualenv
再次尝试编译看是否还有报错。
imaginemiracle@:build$ ../qemu/configure
The Meson build system
Version: 0.55.3
Source dir: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/qemu
Build dir: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build
Build type: native build
Project name: qemu
Project version: 6.0.50
C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C linker for the host machine: cc ld.bfd 2.34
Host machine cpu family: x86_64
Host machine cpu: x86_64
../qemu/meson.build:10: WARNING: Module unstable-keyval has no backwards or forwards compatibility and might not exist in future releases.
Program sh found: YES
Program python3 found: YES (/usr/bin/python3)
Program bzip2 found: YES
C++ compiler for the host machine: c++ (gcc 9.3.0 "c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C++ linker for the host machine: c++ ld.bfd 2.34
Program cgcc found: NO
Library m found: YES
Library util found: YES
Run-time dependency appleframeworks found: NO (tried framework)
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Run-time dependency pixman-1 found: NO (tried pkgconfig)
../qemu/meson.build:340:2: ERROR: Dependency "pixman-1" not found, tried pkgconfig
A full log can be found at /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-logs/meson-log.txt
ERROR: meson setup failed
网上有一些关于ERROR: Dependency "pixman-1" not found
的回答是因为未安装libmount-dev
导致,但笔者经尝试,结果无效,而且当前系统已经安装过libmount-dev
。
imaginemiracle@:build$ sudo apt-get install libmount-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libmount-dev is already the newest version (2.34-0.1ubuntu9.1).
0 upgraded, 0 newly installed, 0 to remove and 151 not upgraded.
经过查找ERROR: Dependency "pixman-1" not found
该报错,通过安装libpixman-1-dev
解决。
imaginemiracle@:build$ sudo apt-get install libpixman-1-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
libpixman-1-dev
0 upgraded, 1 newly installed, 0 to remove and 151 not upgraded.
Need to get 243 kB of archives.
After this operation, 970 kB of additional disk space will be used.
Get:1 http://ftp.sjtu.edu.cn/ubuntu focal/main amd64 libpixman-1-dev amd64 0.38.4-0ubuntu1 [243 kB]
Fetched 243 kB in 0s (707 kB/s)
Selecting previously unselected package libpixman-1-dev:amd64.
(Reading database ... 214411 files and directories currently installed.)
Preparing to unpack .../libpixman-1-dev_0.38.4-0ubuntu1_amd64.deb ...
Unpacking libpixman-1-dev:amd64 (0.38.4-0ubuntu1) ...
Setting up libpixman-1-dev:amd64 (0.38.4-0ubuntu1) ...
3、再次配置编译
完整的配置编译输出
imaginemiracle@:build$ ../qemu/configure
The Meson build system
Version: 0.55.3
Source dir: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/qemu
Build dir: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build
Build type: native build
Project name: qemu
Project version: 6.0.50
C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C linker for the host machine: cc ld.bfd 2.34
Host machine cpu family: x86_64
Host machine cpu: x86_64
../qemu/meson.build:10: WARNING: Module unstable-keyval has no backwards or forwards compatibility and might not exist in future releases.
Program sh found: YES
Program python3 found: YES (/usr/bin/python3)
Program bzip2 found: YES
C++ compiler for the host machine: c++ (gcc 9.3.0 "c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C++ linker for the host machine: c++ ld.bfd 2.34
Program cgcc found: NO
Library m found: YES
Library util found: YES
Run-time dependency appleframeworks found: NO (tried framework)
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Run-time dependency pixman-1 found: YES 0.38.4
Library aio found: NO
Run-time dependency zlib found: YES 1.2.11
Run-time dependency libnfs found: NO (tried pkgconfig)
Run-time dependency appleframeworks found: NO (tried framework)
Run-time dependency libseccomp found: NO (tried pkgconfig)
Has header "cap-ng.h" : NO
Run-time dependency xkbcommon found: NO (tried pkgconfig)
Library rt found: YES
Run-time dependency libiscsi found: NO (tried pkgconfig)
Run-time dependency libzstd found: NO (tried pkgconfig)
Run-time dependency libcurl found: NO (tried pkgconfig)
Run-time dependency libudev found: NO (tried pkgconfig)
Library mpathpersist found: NO
Run-time dependency ncursesw found: YES 6.2.20200212
Has header "brlapi.h" : NO
sdl2-config found: NO
Run-time dependency sdl2 found: NO (tried pkgconfig and config-tool)
Library rados found: NO
Has header "rbd/librbd.h" : NO
Run-time dependency glusterfs-api found: NO (tried pkgconfig)
Has header "bzlib.h" : NO
Has header "lzfse.h" : NO
Run-time dependency gtk+-3.0 found: NO (tried pkgconfig)
Run-time dependency libpng found: NO (tried pkgconfig)
Run-time dependency libjpeg found: NO (tried pkgconfig)
Has header "sasl/sasl.h" : NO
Has header "snappy-c.h" : NO
Has header "lzo/lzo1x.h" : NO
Run-time dependency u2f-emu found: NO (tried pkgconfig)
Run-time dependency libkeyutils found: NO (tried pkgconfig)
Checking for function "gettid" : YES
Run-time dependency fuse3 found: NO (tried pkgconfig)
Has header "linux/btrfs.h" : YES
Has header "libdrm/drm.h" : NO
Has header "pty.h" : YES
Has header "sys/ioccom.h" : NO
Has header "sys/kcov.h" : NO
Checking for function "system" : YES
Checking for function "preadv" : YES
Program scripts/minikconf.py found: YES
Configuring aarch64-softmmu-config-target.h using configuration
Configuring aarch64-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/aarch64-softmmu-config-devices.mak.d
Configuring aarch64-softmmu-config-devices.h using configuration
Configuring alpha-softmmu-config-target.h using configuration
Configuring alpha-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/alpha-softmmu-config-devices.mak.d
Configuring alpha-softmmu-config-devices.h using configuration
Configuring arm-softmmu-config-target.h using configuration
Configuring arm-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/arm-softmmu-config-devices.mak.d
Configuring arm-softmmu-config-devices.h using configuration
Configuring avr-softmmu-config-target.h using configuration
Configuring avr-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/avr-softmmu-config-devices.mak.d
Configuring avr-softmmu-config-devices.h using configuration
Configuring cris-softmmu-config-target.h using configuration
Configuring cris-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/cris-softmmu-config-devices.mak.d
Configuring cris-softmmu-config-devices.h using configuration
Configuring hppa-softmmu-config-target.h using configuration
Configuring hppa-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/hppa-softmmu-config-devices.mak.d
Configuring hppa-softmmu-config-devices.h using configuration
Configuring i386-softmmu-config-target.h using configuration
Configuring i386-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/i386-softmmu-config-devices.mak.d
Configuring i386-softmmu-config-devices.h using configuration
Configuring m68k-softmmu-config-target.h using configuration
Configuring m68k-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/m68k-softmmu-config-devices.mak.d
Configuring m68k-softmmu-config-devices.h using configuration
Configuring microblaze-softmmu-config-target.h using configuration
Configuring microblaze-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/microblaze-softmmu-config-devices.mak.d
Configuring microblaze-softmmu-config-devices.h using configuration
Configuring microblazeel-softmmu-config-target.h using configuration
Configuring microblazeel-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/microblazeel-softmmu-config-devices.mak.d
Configuring microblazeel-softmmu-config-devices.h using configuration
Configuring mips-softmmu-config-target.h using configuration
Configuring mips-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/mips-softmmu-config-devices.mak.d
Configuring mips-softmmu-config-devices.h using configuration
Configuring mips64-softmmu-config-target.h using configuration
Configuring mips64-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/mips64-softmmu-config-devices.mak.d
Configuring mips64-softmmu-config-devices.h using configuration
Configuring mips64el-softmmu-config-target.h using configuration
Configuring mips64el-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/mips64el-softmmu-config-devices.mak.d
Configuring mips64el-softmmu-config-devices.h using configuration
Configuring mipsel-softmmu-config-target.h using configuration
Configuring mipsel-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/mipsel-softmmu-config-devices.mak.d
Configuring mipsel-softmmu-config-devices.h using configuration
Configuring nios2-softmmu-config-target.h using configuration
Configuring nios2-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/nios2-softmmu-config-devices.mak.d
Configuring nios2-softmmu-config-devices.h using configuration
Configuring or1k-softmmu-config-target.h using configuration
Configuring or1k-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/or1k-softmmu-config-devices.mak.d
Configuring or1k-softmmu-config-devices.h using configuration
Configuring ppc-softmmu-config-target.h using configuration
Configuring ppc-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/ppc-softmmu-config-devices.mak.d
Configuring ppc-softmmu-config-devices.h using configuration
Configuring ppc64-softmmu-config-target.h using configuration
Configuring ppc64-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/ppc64-softmmu-config-devices.mak.d
Configuring ppc64-softmmu-config-devices.h using configuration
Configuring riscv32-softmmu-config-target.h using configuration
Configuring riscv32-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/riscv32-softmmu-config-devices.mak.d
Configuring riscv32-softmmu-config-devices.h using configuration
Configuring riscv64-softmmu-config-target.h using configuration
Configuring riscv64-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/riscv64-softmmu-config-devices.mak.d
Configuring riscv64-softmmu-config-devices.h using configuration
Configuring rx-softmmu-config-target.h using configuration
Configuring rx-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/rx-softmmu-config-devices.mak.d
Configuring rx-softmmu-config-devices.h using configuration
Configuring s390x-softmmu-config-target.h using configuration
Configuring s390x-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/s390x-softmmu-config-devices.mak.d
Configuring s390x-softmmu-config-devices.h using configuration
Configuring sh4-softmmu-config-target.h using configuration
Configuring sh4-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/sh4-softmmu-config-devices.mak.d
Configuring sh4-softmmu-config-devices.h using configuration
Configuring sh4eb-softmmu-config-target.h using configuration
Configuring sh4eb-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/sh4eb-softmmu-config-devices.mak.d
Configuring sh4eb-softmmu-config-devices.h using configuration
Configuring sparc-softmmu-config-target.h using configuration
Configuring sparc-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/sparc-softmmu-config-devices.mak.d
Configuring sparc-softmmu-config-devices.h using configuration
Configuring sparc64-softmmu-config-target.h using configuration
Configuring sparc64-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/sparc64-softmmu-config-devices.mak.d
Configuring sparc64-softmmu-config-devices.h using configuration
Configuring tricore-softmmu-config-target.h using configuration
Configuring tricore-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/tricore-softmmu-config-devices.mak.d
Configuring tricore-softmmu-config-devices.h using configuration
Configuring x86_64-softmmu-config-target.h using configuration
Configuring x86_64-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/x86_64-softmmu-config-devices.mak.d
Configuring x86_64-softmmu-config-devices.h using configuration
Configuring xtensa-softmmu-config-target.h using configuration
Configuring xtensa-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/xtensa-softmmu-config-devices.mak.d
Configuring xtensa-softmmu-config-devices.h using configuration
Configuring xtensaeb-softmmu-config-target.h using configuration
Configuring xtensaeb-softmmu-config-devices.mak with command
Reading depfile: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build/meson-private/xtensaeb-softmmu-config-devices.mak.d
Configuring xtensaeb-softmmu-config-devices.h using configuration
Configuring aarch64-linux-user-config-target.h using configuration
Configuring aarch64_be-linux-user-config-target.h using configuration
Configuring alpha-linux-user-config-target.h using configuration
Configuring arm-linux-user-config-target.h using configuration
Configuring armeb-linux-user-config-target.h using configuration
Configuring cris-linux-user-config-target.h using configuration
Configuring hexagon-linux-user-config-target.h using configuration
Configuring hppa-linux-user-config-target.h using configuration
Configuring i386-linux-user-config-target.h using configuration
Configuring m68k-linux-user-config-target.h using configuration
Configuring microblaze-linux-user-config-target.h using configuration
Configuring microblazeel-linux-user-config-target.h using configuration
Configuring mips-linux-user-config-target.h using configuration
Configuring mips64-linux-user-config-target.h using configuration
Configuring mips64el-linux-user-config-target.h using configuration
Configuring mipsel-linux-user-config-target.h using configuration
Configuring mipsn32-linux-user-config-target.h using configuration
Configuring mipsn32el-linux-user-config-target.h using configuration
Configuring nios2-linux-user-config-target.h using configuration
Configuring or1k-linux-user-config-target.h using configuration
Configuring ppc-linux-user-config-target.h using configuration
Configuring ppc64-linux-user-config-target.h using configuration
Configuring ppc64le-linux-user-config-target.h using configuration
Configuring riscv32-linux-user-config-target.h using configuration
Configuring riscv64-linux-user-config-target.h using configuration
Configuring s390x-linux-user-config-target.h using configuration
Configuring sh4-linux-user-config-target.h using configuration
Configuring sh4eb-linux-user-config-target.h using configuration
Configuring sparc-linux-user-config-target.h using configuration
Configuring sparc32plus-linux-user-config-target.h using configuration
Configuring sparc64-linux-user-config-target.h using configuration
Configuring x86_64-linux-user-config-target.h using configuration
Configuring xtensa-linux-user-config-target.h using configuration
Configuring xtensaeb-linux-user-config-target.h using configuration
Run-time dependency capstone found: NO (tried pkgconfig)
Configuring capstone-defs.h using configuration
Run-time dependency slirp found: NO (tried pkgconfig)
Configuring libslirp-version.h using configuration
Library fdt found: NO
Configuring config-host.h using configuration
Program scripts/hxtool found: YES
Program scripts/shaderinclude.pl found: YES
Program scripts/qapi-gen.py found: YES
Program scripts/qemu-version.sh found: YES
|Executing subproject libvhost-user method meson
|
|Project name: libvhost-user
|Project version: undefined
|C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
|C linker for the host machine: cc ld.bfd 2.34
|Run-time dependency threads found: YES
|Dependency glib-2.0 found: YES 6.0.50 (overridden)
|Build targets in project: 11
|Subproject libvhost-user finished.
Dependency threads found: YES unknown (cached)
Program keycodemapdb/tools/keymap-gen found: YES
Program scripts/decodetree.py found: YES
Program ../scripts/modules/module_block.py found: YES
Program ../scripts/block-coroutine-wrapper.py found: YES
Program nm found: YES
Program scripts/undefsym.py found: YES
Program scripts/feature_to_c.sh found: YES
Library ibumad found: YES
Configuring 50-edk2-i386-secure.json using configuration
Configuring 50-edk2-x86_64-secure.json using configuration
Configuring 60-edk2-aarch64.json using configuration
Configuring 60-edk2-arm.json using configuration
Configuring 60-edk2-i386.json using configuration
Configuring 60-edk2-x86_64.json using configuration
Program qemu-keymap found: NO
Program sphinx-build-3 sphinx-build found: NO
Program python3 found: YES (/usr/bin/python3)
Program diff found: YES
Program dbus-daemon found: YES
Program initrd-stress.sh found: YES
Build targets in project: 629
qemu 6.0.50
Directories
Install prefix: /usr/local
BIOS directory: share/qemu
firmware path: /usr/local/share/qemu-firmware
binary directory: bin
library directory: lib
module directory: lib/qemu
libexec directory: libexec
include directory: include
config directory: /usr/local/etc
local state directory: /usr/local/var
Manual directory: share/man
Doc directory: /usr/local/share/doc
Build directory: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/build
Source path: /media/imaginemiracle/Disk_D/Linux_Workspace/cxl/qemu
GIT submodules: ui/keycodemapdb tests/fp/berkeley-testfloat-3 tests/fp/berkeley-softfloat-3 meson dtc capstone slirp
Host binaries
git: git
make: make
python: /usr/bin/python3 (version: 3.8)
sphinx-build: NO
gdb: /usr/bin/gdb
genisoimage: /usr/bin/genisoimage
smbd: "/usr/sbin/smbd"
Configurable features
Documentation: NO
system-mode emulation: YES
user-mode emulation: YES
block layer: YES
Install blobs: YES
module support: NO
plugin support: NO
fuzzing support: NO
Audio drivers: oss
Trace backends: log
QOM debugging: YES
vhost-kernel support: YES
vhost-net support: YES
vhost-crypto support: YES
vhost-scsi support: YES
vhost-vsock support: YES
vhost-user support: YES
vhost-user-blk server support: YES
vhost-user-fs support: YES
vhost-vdpa support: YES
build guest agent: YES
Compilation
host CPU: x86_64
host endianness: little
C compiler: cc
Host C compiler: cc
C++ compiler: c++
ARFLAGS: rv
CFLAGS: -O2 -g
CXXFLAGS: -O2 -g
QEMU_CFLAGS: -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wold-style-declaration -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wimplicit-fallthrough=2 -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-psabi -fstack-protector-strong
QEMU_LDFLAGS: -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong
profiler: NO
link-time optimization (LTO): NO
PIE: YES
static build: NO
malloc trim support: YES
membarrier: NO
preadv support: YES
fdatasync: YES
madvise: YES
posix_madvise: YES
posix_memalign: YES
debug stack usage: NO
mutex debugging: NO
memory allocator: system
avx2 optimization: YES
avx512f optimization: NO
gprof enabled: NO
gcov: NO
thread sanitizer: NO
CFI support: NO
strip binaries: YES
sparse: NO
mingw32 support: NO
x86_64 tests: cc
Targets and accelerators
KVM support: YES
HAX support: NO
HVF support: NO
WHPX support: NO
NVMM support: NO
Xen support: NO
TCG support: YES
TCG backend: native (x86_64)
TCG debug enabled: NO
target list: aarch64-softmmu alpha-softmmu arm-softmmu avr-softmmu cris-softmmu hppa-softmmu i386-softmmu m68k-softmmu microblaze-softmmu microblazeel-softmmu mips-softmmu mips64-softmmu mips64el-softmmu mipsel-softmmu nios2-softmmu or1k-softmmu ppc-softmmu ppc64-softmmu riscv32-softmmu riscv64-softmmu rx-softmmu s390x-softmmu sh4-softmmu sh4eb-softmmu sparc-softmmu sparc64-softmmu tricore-softmmu x86_64-softmmu xtensa-softmmu xtensaeb-softmmu aarch64-linux-user aarch64_be-linux-user alpha-linux-user arm-linux-user armeb-linux-user cris-linux-user hexagon-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblaze-linux-user microblazeel-linux-user mips-linux-user mips64-linux-user mips64el-linux-user mipsel-linux-user mipsn32-linux-user mipsn32el-linux-user nios2-linux-user or1k-linux-user ppc-linux-user ppc64-linux-user ppc64le-linux-user riscv32-linux-user riscv64-linux-user s390x-linux-user sh4-linux-user sh4eb-linux-user sparc-linux-user sparc32plus-linux-user sparc64-linux-user x86_64-linux-user xtensa-linux-user xtensaeb-linux-user
default devices: YES
out of process emulation: YES
Block layer support
coroutine backend: ucontext
coroutine pool: YES
Block whitelist (rw):
Block whitelist (ro):
VirtFS support: NO
build virtiofs daemon: NO
Live block migration: YES
replication support: YES
bochs support: YES
cloop support: YES
dmg support: YES
qcow v1 support: YES
vdi support: YES
vvfat support: YES
qed support: YES
parallels support: YES
FUSE exports: NO
Crypto
TLS priority: "NORMAL"
GNUTLS support: NO
libgcrypt: NO
nettle: NO
crypto afalg: NO
rng-none: NO
Linux keyring: YES
Dependencies
SDL support: NO
SDL image support: NO
GTK support: NO
pixman: YES
VTE support: NO
slirp support: internal
libtasn1: NO
PAM: NO
iconv support: YES
curses support: YES
virgl support: NO
curl support: NO
Multipath support: NO
VNC support: YES
VNC SASL support: NO
VNC JPEG support: NO
VNC PNG support: NO
brlapi support: NO
vde support: NO
netmap support: NO
Linux AIO support: NO
Linux io_uring support: NO
ATTR/XATTR support: YES
RDMA support: YES
PVRDMA support: YES
fdt support: internal
libcap-ng support: NO
spice support: NO
rbd support: NO
xfsctl support: NO
smartcard support: NO
U2F support: NO
libusb: NO
usb net redir: NO
OpenGL support: NO
GBM: NO
libiscsi support: NO
libnfs support: NO
seccomp support: NO
GlusterFS support: NO
TPM support: YES
libssh support: NO
lzo support: NO
snappy support: NO
bzip2 support: NO
lzfse support: NO
zstd support: NO
NUMA host support: NO
libxml2: NO
capstone: internal
libpmem support: NO
libdaxctl support: NO
libudev: NO
FUSE lseek: NO
Subprojects
libvhost-user: YES
Found ninja-1.10.0 at /usr/bin/ninja
4、配置成功后编译并安装
编译过程稍微有点久,需要耐心等待。
imaginemiracle@:build$ make; make install
5、验证qemu
验证Qemu
安装是否成功
imaginemiracle@:~$ qemu-riscv64 --version
qemu-riscv64 version 6.0.50 (v6.0.0-928-gec061f3ef1)
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers
测试运行其它架构程序
imaginemiracle@:test$ file helloworld
helloworld: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-riscv64-lp64d.so.1, for GNU/Linux 3.0.0, stripped
imaginemiracle@:test$ qemu-riscv64 helloworld
helloworld!
本测试用例使用的是riscv64
架构的helloword
测试程序,运行结果正常。
觉得这篇文章对你有帮助的话,就留下一个赞吧v*
请尊重作者,转载还请注明出处!感谢配合~
[作者]: Imagine Miracle
[版权]: 本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
[本文链接]: https://blog.csdn.net/qq_36393978/article/details/118086216