Skip to content
This repository has been archived by the owner on Oct 17, 2022. It is now read-only.

WIP: Adding Qemu VMs #39

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion hack/hack.mk
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,13 @@ kernel:
mkdir -p target/rootfs/boot
docker run -it --rm -u $${UID} -v "`pwd`:/aurae" aurae-builder bash -c "cd hack/kernel && ./mk-kernel"

qemu:
docker run -it --rm -u $${UID} -v "`pwd`:/aurae" aurae-builder bash -c "cd hack/qemu && ./mk-qemu"

menuconfig:
docker run -it --rm -u $${UID} -v "`pwd`:/aurae" aurae-builder bash -c "cd hack/kernel && ./mk-menuconfig"

initramfs: container-release
initramfs: container-release qemu
mkdir -p target/rootfs/bin
mkdir -p target/rootfs/etc/aurae
cp target/release/auraed target/rootfs/bin/auraed
Expand Down
271 changes: 271 additions & 0 deletions hack/qemu/configure-help.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,271 @@

Usage: configure [options]
Options: [defaults in brackets after descriptions]

Standard options:
--help print this message
--prefix=PREFIX install in PREFIX [/usr/local]
--target-list=LIST set target list (default: build all)
Available targets: aarch64-softmmu alpha-softmmu
arm-softmmu avr-softmmu cris-softmmu hppa-softmmu
i386-softmmu loongarch64-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 loongarch64-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
--target-list-exclude=LIST exclude a set of targets from the default target-list

Advanced options (experts only):
--cross-prefix=PREFIX use PREFIX for compile tools, PREFIX can be blank []
--cc=CC use C compiler CC [cc]
--host-cc=CC use C compiler CC [cc] for code run at
build time
--cxx=CXX use C++ compiler CXX [c++]
--objcc=OBJCC use Objective-C compiler OBJCC [cc]
--extra-cflags=CFLAGS append extra C compiler flags CFLAGS
--extra-cxxflags=CXXFLAGS append extra C++ compiler flags CXXFLAGS
--extra-objcflags=OBJCFLAGS append extra Objective C compiler flags OBJCFLAGS
--extra-ldflags=LDFLAGS append extra linker flags LDFLAGS
--cross-cc-ARCH=CC use compiler when building ARCH guest test cases
--cross-cc-cflags-ARCH= use compiler flags when building ARCH guest tests
--cross-prefix-ARCH=PREFIX cross compiler prefix when building ARCH guest test cases
--make=MAKE use specified make [make]
--python=PYTHON use specified python [/usr/bin/python3]
--meson=MESON use specified meson []
--ninja=NINJA use specified ninja []
--smbd=SMBD use specified smbd []
--with-git=GIT use specified git [git]
--with-git-submodules=update update git submodules (default if .git dir exists)
--with-git-submodules=validate fail if git submodules are not up to date
--with-git-submodules=ignore do not update or check git submodules (default if no .git dir)
--static enable static build [no]
--bindir=PATH install binaries in PATH
--with-suffix=SUFFIX suffix for QEMU data inside datadir/libdir/sysconfdir/docdir [qemu]
--without-default-features default all --enable-* options to "disabled"
--without-default-devices do not include any device that is not needed to
start the emulator (only use if you are including
desired devices in configs/devices/)
--with-devices-ARCH=NAME override default configs/devices
--enable-debug enable common debug build options
--enable-sanitizers enable default sanitizers
--enable-tsan enable thread sanitizer
--disable-werror disable compilation abort on warning
--disable-stack-protector disable compiler-provided stack protection
--cpu=CPU Build for host CPU [x86_64]
--with-coroutine=BACKEND coroutine backend. Supported options:
ucontext, sigaltstack, windows
--enable-plugins
enable plugins via shared library loading
--disable-containers don't use containers for cross-building
--gdb=GDB-path gdb to use for gdbstub tests []
--audio-drv-list=CHOICES Set audio driver list [default] (choices:
alsa/coreaudio/default/dsound/jack/oss/pa/sdl)
--block-drv-ro-whitelist=VALUE
set block driver read-only whitelist (by default
affects only QEMU, not tools like qemu-img)
--block-drv-rw-whitelist=VALUE
set block driver read-write whitelist (by default
affects only QEMU, not tools like qemu-img)
--datadir=VALUE Data file directory [share]
--disable-coroutine-pool coroutine freelist (better performance)
--disable-install-blobs install provided firmware blobs
--docdir=VALUE Base directory for documentation installation
(can be empty) [share/doc]
--enable-block-drv-whitelist-in-tools
use block whitelist also in tools instead of only
QEMU
--enable-cfi Control-Flow Integrity (CFI)
--enable-cfi-debug Verbose errors in case of CFI violation
--enable-debug-mutex mutex debugging support
--enable-debug-stack-usage
measure coroutine stack usage
--enable-fdt[=CHOICE] Whether and how to find the libfdt library
(choices: auto/disabled/enabled/internal/system)
--enable-fuzzing build fuzzing targets
--enable-gcov Enable coverage tracking.
--enable-gprof QEMU profiling with gprof
--enable-lto Use link time optimization
--enable-malloc=CHOICE choose memory allocator to use [system] (choices:
jemalloc/system/tcmalloc)
--enable-module-upgrades try to load modules from alternate paths for
upgrades
--enable-profiler profiler support
--enable-qom-cast-debug cast debugging support
--enable-rng-none dummy RNG, avoid using /dev/(u)random and
getrandom()
--enable-slirp[=CHOICE] Whether and how to find the slirp library
(choices: auto/disabled/enabled/internal/system)
--enable-strip Strip targets on install
--enable-tcg-interpreter TCG with bytecode interpreter (slow)
--enable-trace-backends=CHOICES
Set available tracing backends [log] (choices:
dtrace/ftrace/log/nop/simple/syslog/ust)
--firmwarepath=VALUES search PATH for firmware files [share/qemu-firmware]
--iasl=VALUE Path to ACPI disassembler
--includedir=VALUE Header file directory [include]
--interp-prefix=VALUE where to find shared libraries etc., use %M for
cpu name [/usr/gnemul/qemu-%M]
--libdir=VALUE Library directory [lib64]
--libexecdir=VALUE Library executable directory [libexec]
--localedir=VALUE Locale data directory [share/locale]
--localstatedir=VALUE Localstate data directory [/var/local]
--mandir=VALUE Manual page directory [share/man]
--sphinx-build=VALUE Use specified sphinx-build for building document
--sysconfdir=VALUE Sysconf data directory [etc]
--tls-priority=VALUE Default TLS protocol/cipher priority string
[NORMAL]
--with-pkgversion=VALUE use specified string as sub-version of the
package
--with-trace-file=VALUE Trace file prefix for simple backend [trace]

Optional features, enabled with --enable-FEATURE and
disabled with --disable-FEATURE, default is enabled if available
(unless built with --without-default-features):

alsa ALSA sound support
attr attr/xattr support
auth-pam PAM access control
avx2 AVX2 optimizations
avx512f AVX512F optimizations
bochs bochs image format support
bpf eBPF support
brlapi brlapi character device driver
bzip2 bzip2 support for DMG images
canokey CanoKey support
cap-ng cap_ng support
capstone Whether and how to find the capstone library
cloop cloop image format support
cocoa Cocoa user interface (macOS only)
coreaudio CoreAudio sound support
crypto-afalg Linux AF_ALG crypto backend driver
curl CURL block device driver
curses curses UI
dbus-display -display dbus support
dmg dmg image format support
docs Documentations build support
dsound DirectSound sound support
fuse FUSE block device export
fuse-lseek SEEK_HOLE/SEEK_DATA support for FUSE exports
gcrypt libgcrypt cryptography support
gettext Localization of the GTK+ user interface
gio use libgio for D-Bus support
glusterfs Glusterfs block device driver
gnutls GNUTLS cryptography support
gtk GTK+ user interface
guest-agent Build QEMU Guest Agent
guest-agent-msi Build MSI package for the QEMU Guest Agent
hax HAX acceleration support
hvf HVF acceleration support
iconv Font glyph conversion support
jack JACK sound support
keyring Linux keyring support
kvm KVM acceleration support
l2tpv3 l2tpv3 network backend support
libdaxctl libdaxctl support
libiscsi libiscsi userspace initiator
libnfs libnfs block device driver
libpmem libpmem support
libssh ssh block device support
libudev Use libudev to enumerate host devices
libusb libusb support for USB passthrough
libvduse build VDUSE Library
linux-aio Linux AIO support
linux-io-uring Linux io_uring support
live-block-migration
block migration in the main migration stream
lzfse lzfse support for DMG images
lzo lzo compression support
malloc-trim enable libc malloc_trim() for memory optimization
membarrier membarrier system call (for Linux 4.14+ or Windows
mpath Multipath persistent reservation passthrough
multiprocess Out of process device emulation support
netmap netmap network backend support
nettle nettle cryptography support
numa libnuma support
nvmm NVMM acceleration support
opengl OpenGL support
oss OSS sound support
pa PulseAudio sound support
parallels parallels image format support
png PNG support with libpng
pvrdma Enable PVRDMA support
qcow1 qcow1 image format support
qed qed image format support
qga-vss build QGA VSS support (broken with MinGW)
rbd Ceph block device driver
rdma Enable RDMA-based migration
replication replication support
sdl SDL user interface
sdl-image SDL Image support for icons
seccomp seccomp support
selinux SELinux support in qemu-nbd
slirp-smbd use smbd (at path --smbd=*) in slirp networking
smartcard CA smartcard emulation support
snappy snappy compression support
sparse sparse checker
spice Spice server support
spice-protocol Spice protocol support
tcg TCG support
tools build support utilities that come with QEMU
tpm TPM support
u2f U2F emulation support
usb-redir libusbredir support
vde vde network backend support
vdi vdi image format support
vfio-user-server
vfio-user server support
vhost-crypto vhost-user crypto backend support
vhost-kernel vhost kernel backend support
vhost-net vhost-net kernel acceleration support
vhost-user vhost-user backend support
vhost-user-blk-server
build vhost-user-blk server
vduse-blk-export
VDUSE block export support
vhost-vdpa vhost-vdpa kernel backend support
virglrenderer virgl rendering support
virtfs virtio-9p support
virtiofsd build virtiofs daemon (virtiofsd)
vmnet vmnet.framework network backend support
vnc VNC server
vnc-jpeg JPEG lossy compression for VNC server
vnc-sasl SASL authentication for VNC server
vte vte support for the gtk UI
vvfat vvfat image format support
whpx WHPX acceleration support
xen Xen backend support
xen-pci-passthrough
Xen PCI passthrough support
xkbcommon xkbcommon support
zstd zstd compression support
system all system emulation targets
user supported user emulation targets
linux-user all linux usermode emulation targets
bsd-user all BSD usermode emulation targets
pie Position Independent Executables
modules modules support (non-Windows)
debug-tcg TCG debugging (default is disabled)
debug-info debugging information
safe-stack SafeStack Stack Smash Protection. Depends on
clang/llvm >= 3.7 and requires coroutine backend ucontext.

NOTE: The object files are built at the place where configure is launched
Loading