Host Ubuntu18 (the default qemu is too old)
Target Qemu 2.9.1 (Built OK on RHEL7.x)
1. Support lib install for qemu build
sudo apt-get install autoconf automake libtool
2. Download
wget http://download.qemu-project.org/qemu-2.9.1.tar.xz
tar Jxf qemu-2.9.1.tar.xz
4. configure for ARM only
lake@lake-Latitude-5491:~/Documents/qemu-2.9.1$ ./configure --prefix=/usr --target-list=aarch64-softmmu,arm-softmmu
Install prefix /usr
BIOS directory /usr/share/qemu
binary directory /usr/bin
library directory /usr/lib
module directory /usr/lib/qemu
libexec directory /usr/libexec
include directory /usr/include
config directory /usr/etc
local state directory /usr/var
Manual directory /usr/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /home/lake/Documents/qemu-2.9.1
C compiler cc
Host C compiler cc
C++ compiler c++
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I$(SRC_PATH)/pixman/pixman -I$(BUILD_DIR)/pixman/pixman -I$(SRC_PATH)/dtc/libfdt -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 -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/usr/include/libpng16
LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list aarch64-softmmu arm-softmmu
tcg debug enabled no
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
pixman internal
SDL support yes (1.2.15)
GTK support no
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support no
GNUTLS rnd no
libgcrypt no
libgcrypt kdf no
nettle no
nettle kdf no
libtasn1 no
curses support no
virgl support no
curl support no
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
VNC support yes
VNC SASL support no
VNC JPEG support no
VNC PNG support yes
xen support no
brlapi support no
bluez support no
Documentation no
PIE yes
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
RDMA support no
TCG interpreter no
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
Trace backends log
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb no
usb net redir no
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
debug stack usage no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough yes
QOM debugging yes
lzo support no
snappy support no
bzip2 support no
NUMA host support no
tcmalloc support no
jemalloc support no
avx2 optimization yes
replication support yes
lake@lake-Latitude-5491:~/Documents/qemu-2.9.1$
5. Patch util/memfd.c
-static int memfd_create(const char *name, unsigned int flags)
+static int qemu_memfd_create(const char *name, unsigned int flags)
6. make & make install
lake@lake-Latitude-5491:~/Documents/qemu-2.9.1$ qemu-system-a
qemu-system-aarch64 qemu-system-arm
lake@lake-Latitude-5491:~/Documents/qemu-2.9.1$ qemu-system-arm --version
QEMU emulator version 2.9.1
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
lake@lake-Latitude-5491:~/Documents/qemu-2.9.1$