[Eisfair] FYI: qemu auf eisx64, q.e.d.
D. Oezbilen
oezbilen at gmx.net
Do Feb 6 17:15:44 CET 2020
Hallo @all,
oft lese ich im Forum, dass manche Proxmox/VBox einsetzen. Warum nicht
direkt qemu (mit kvm) auf eisx64? In diesem Posting beschreibe ich die
Machbarkeit, es funkt. Wer es angeht, wird es sicher auch so oder
aehnlich umsetzen koennen. Viel Erfolg.
Es ist *moeglich* nativ auf eisx64 (und mit paar :-) dev-Paketen) qemu
zu kompilieren und mit der kvm-Option VMs zu starten.
Sicher, Vbox und Proxmox bieten eine GUI an, machen es in der Anwendung
etwas einfacher. Auch unter deb (und anderen linuces) kann man mit vmm
sich in weniger als 20s eine virt. Maschine zusammen klicken, egal
welche Netzwerkonfig man haben will, s.u.
eis ist eine wunderbare Plattform, die vieles ermoeglicht, Olaf hat es
neulich sehr treffend beschrieben. Vieles gibt es schon fertig als
Sorglospaket, doch man hat auch die Freiheit sich eine blutige Nase ;-)
zu holen.
Auf der anderen Seite, der Lerneffekt -wenn auch manchmal steil- ist
nicht zu unterschaetzen.
Ich will auch nicht das Rad neu erfinden, doch ich denke qemu macht
einen eisx64 irgendwie komplett, auch, wenn es wohl aufgrund der
komplexen, mannigfaltigen Syntax (ob der Moeglichkeiten) der bin ein
eis-Paket schwer aufsetzbar sein wird. Wie will man da die Uebersicht
ueber die Parameter halten um diese in der eis-setup-Schicht zu
praesentieren? Das Mail-Paket (exim) hat schon viele; qemu s. Anhang.
Ich wollte es fuer mich wissen und habe mich dran gesetzt qemu zu
kompilieren. factum ist, es funkt einwandfrei. Yessss.
Hier paar Schreenshots, die ersten vms auf eis.
<https://ibb.co/M2W0hJm>
<https://ibb.co/4ZNZyV0>
<https://ibb.co/XDqrVLm>
<https://ibb.co/Z2kYnS8>
Die qemu-SW gibt es hier:
git clone https://github.com/qemu/qemu
linuxsrv 2.8.23 # git clone https://github.com/qemu/qemu
Cloning into 'qemu'...
remote: Enumerating objects: 473976, done.
remote: Total 473976 (delta 0), reused 0 (delta 0), pack-reused 473976
Receiving objects: 100% (473976/473976), 261.74 MiB | 5.63 MiB/s, done.
Resolving deltas: 100% (383004/383004), done.
Anzahl der Dateien = 7159 -- Gesamtgroesse= 390498488 / 373M
Wenn man ./configure/make wie nachfolgend laufen laesst, ist der Lauf in
1h6min beendet.
./configure --sysconfdir=/etc --includedir=/usr/include
--libdir=/usr/lib64 $1 $2 $3
(so kompiliere ich auf eisx64 alle sourcen)
Wie o.a. wird dann qemu (ohne Plattform-Spez.) fuer *alle* Plattformen
kompiliert. dg. :-( ;-)
Trotzdem sind die Fehler in der config.log stark ueberschaubar. Am Ende
sind es dann 4.9 GB im Verzeichnis, wenn man undiff. configure
anstoesst. ;-)
Anzahl der Dateien = 23944 -- Gesamtgroesse= 5168786692 / 4.9G
v. 373M auf 4,9G, cool. ;-) Das alles muss so nicht sein.
Deswegen ist es *folgendermassen besser/zielfuehrender*:
./configure \
--sysconfdir=/etc \
--includedir=/usr/include \
--libdir=/usr/lib64 \
--target-list=x86_64-softmmu \ x86_64bit Plattform
--enable-spice \ hierzu muessen die Spice server/client sourcen
vorliegen, s.u.
--enable-tcmalloc \ dazu werden sourcen gperftools (Google-Ent.) benoetigt
--enable-libusb \ usb passthrough
--enable-linux-aio \ parallele I/O auf HDs, sehr sinnvoll
--enable-vde \ verteiltes Ethernet im Rahmen SDN
--enable-cap-ng \ um Pakete mitschneiden zu koennen
--enable-gnutls \ Crypto-Lib mit FIPS 1.40 (nettle kann das nicht, s.u.)
--enable-gcrypt \ Crypto-Lib, libgcrypt-1.8.5.tar.bz2
--enable-guest-agent \ klar, sollte sein, Kommunikation mit dem Gast
ueber --moniitor od. --chardev (s.u.)
--enable-usb-redir \ USB-Umleitung, bin nicht sicher, ob erst
usbredir-0.7.1
was auf der Einheit ist die usb-Redir ermoglicht.
usbredir-0.7.1 ist felerhaft, doch der Kompiler gibt aus, wie man es
doch sauber kompilieren kann.
--enable-malloc-trim \ Speicheroptimierung, funkt/funkt nicht?
--enable-sdl-image \
--enable-sdl \ Simple DirectMedia Layer, alte Technik(?),
-------------------------------------------------------------------------------------------------------------
Diese u.a. features versuchte ich mit einzuabeun, NT. :-)
--enable-mpath \ Multipath, funkte nicht, weil dazu libudev.h benoetigt
wird,
diese kommt aber ueber systemd. s.o.
Anmerkung:
systemd konnte ich mit den paar Abhaengigkeiten (Meson/ninja)
konfigurieren, doch make lief trotzdem nicht durch. Doch, wollte ich
systemd auf eis haben? :-)
--enable-lzfse \ Schnelle Kompression, aber leider nogo, da die
sourcen *nur*
statische libs *.a erzeugen, keine dynamischen *.so; keine Ahnung,
wie ich das haette aufloesen koennen.
--enable-nettle \ Crypto-Lib, ist aehnlich wie gcrypt. GnuTLS,
libgcrypt koennen
FIPS140, nettle nicht. Ebenso kann libsodium (fuer ntopng) kein
FIPS140.
--enable-membarrier \ nicht klar, ob es einen Zugewinn im Specherzugriff
bringt, schadet
aber nicht heisst es. s. Link
<http://man7.org/linux/man-pages/man2/membarrier.2.html>
Auf eis/kernel gibt es kein linux/membarrier.h. dg.
Nur ein sys_membarrier.h.
--enable-libpmem \ irgendwas Abgefahrenes, NVDIMM (vNVDIMM)
fuer Speicher/Intel funkt nicht, da auch eine spez. HW benoetigt(?)
--enable-guest-agent-msi \ die MSI-Datei EXE fuer den Gust-Agent soll
mitentstehen;
nur mingw32-Umgebungn.
--enable-libiscsi \ diese Funktion binde ich spaeter ein, wenn ich
iscsi auf eis habe
,kompilieren konnte ich es. Kann/muss nicht sein.
--enable-libnfs nicht mit eis-dev-Paketen, leider nicht
Install libnfs devel >= 1.9.3, nur wie ...
=> Ausgabe des o.a. configure-Laufs:
-------------------------------------------------------------------------------------------------------------
linuxsrv 2.8.23 # ./cfgqemuall
Disabling malloc_trim with non-libc memory allocator
Install prefix /usr/local
BIOS directory /usr/local/share/qemu
firmware path /usr/local/share/qemu-firmware
binary directory /usr/local/bin
library directory /usr/lib64
module directory /usr/lib64/qemu
libexec directory /usr/local/libexec
include directory /usr/include
config directory /etc
local state directory /usr/local/var
Manual directory /usr/local/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Build directory /home/opt/qemu.kvm/qemu
Source path /home/opt/qemu.kvm/qemu
GIT binary git
GIT submodules ui/keycodemapdb tests/fp/berkeley-testfloat-3
tests/fp/berkeley-softfloat-3 capstone slirp
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/usr/include/pixman-1 -Werror -pthread
-I/usr/include/glib-2.0 -I/usr/lib64/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 -std=gnu99
-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/usr/include/p11-kit-1
-I/usr/include/libpng16 -pthread -DOPENSSL_LOAD_CONF
-I/usr/include/spice-1 -I/usr/include/spice-server
-I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0
-I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1
-I$(SRC_PATH)/capstone/include
QEMU_LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64
-fstack-protector-strong
make make
install install
python /usr/bin/python3 -B (3.6.5)
slirp support git
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list x86_64-softmmu
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (2.0.9)
SDL image support yes
GTK support no
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support yes
libgcrypt yes
hmac yes
XTS yes
nettle no
libtasn1 yes
PAM yes
iconv support yes
curses support yes
virgl support no
curl support yes
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support yes
Multipath support no
VNC support yes
VNC SASL support yes
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support yes
Documentation no
PIE yes
vde support yes
netmap support no
Linux AIO support yes
Linux io_uring support no
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
HVF support no
WHPX support no
TCG support yes
TCG debug enabled no
TCG interpreter no
malloc trim support no
RDMA support no
PVRDMA support no
fdt support no
membarrier no
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
posix_memalign yes
libcap-ng support yes
vhost-net support yes
vhost-crypto support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
vhost-user-fs support yes
Trace backends log
spice support yes (0.12.15/0.14.1)
rbd support no
xfsctl support yes
smartcard support no
libusb yes
usb net redir yes
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
mutex debugging no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh support yes
QOM debugging yes
Live block migration yes
lzo support yes
snappy support no
bzip2 support yes
lzfse support no
NUMA host support yes
libxml2 yes
tcmalloc support yes
jemalloc support no
avx2 optimization yes
replication support yes
VxHS block device no
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
sheepdog support yes
capstone git
libpmem support no
libudev no
default devices yes
plugin support no
cross containers no
NOTE: guest cross-compilers enabled: cc
-------------------------------------------------------------------------------------------------------------
Am Ende ist unter ../x86_64-softmmu eine 67782K grosse
qemu-system-x86_64.
Gesrtipped faellt sie auf 15233K. Das war es dann. Doch, das ist
nur/nicht mal die 1/2 Miete. ;-)
#######################################################
Damit alles ohne Haenger durchlaeuft, habe ich folgende Pakete, zum
groesstenteil per
git clone xyz
v. github geholt, selten eine .gz.tar-Version.
SDL2_image-2.0.5/
SDL2_image-2.0.5.tar.gz
automake-1.16/
automake-1.16.tar.gz
gperftools/
ipmctl/ nicht eingesetzt
jemalloc/ talloc-gperftools ist schneller
libgcrypt-1.8.5/
libgcrypt-1.8.5.tar.bz2
libibverbs-1.2.0/
libibverbs-1.2.0.tar.gz
librdmacm/
libunwind/
lzfse/
ndctl/
netmap/
numactl/
pmdk/
rdma-core/ nciht eingesetzt
snappy/
spice-protocol/
spice-protocol-0.12.15/
spice-protocol-0.12.15.tar.bz2
spice-protocol-0.12.3/
spice-protocol-0.12.3.tar.bz2
spice-streaming-agent-0.3/
spice-streaming-agent-0.3.tar
usbredir-0.7.1/
usbredir-0.7.1.tar.bz2
vde-2/
Manche waren nur ein Versuch wie ipmctl, lzfse, rdms-core, ndctl, andere
fuehrten zum Erfolg, wie spice/usb-redir/vde-2/gperftools/libcrypt.
Libunwind erfolgreich kompiliert, doch am Ende funkt rdma (fuer Rados
Block Device (rbd)) nicht.
jemalloc vs. tcmalloc
jemaloc war wohl lange Zeit vor tcmalloc (ich mein Google-Entwicklung),
doch die letzten talloc Versionen sind, was den Speicherdurchfluss
betriff gleichauf, oder gar besser.
#######################################################
Was ist nun mit derm Kompilat auf eisx64 moeglich? Virtualisierung. ;-)
mit qemu mit/ohne kvm. Natuerlich mit kvm, sonst wird es halt etwas traeger.
./qemu-system-x86_64 \
-accel kvm \
-cdrom DD11Home.iso \
-m 512
-boot d
-vnc :1
-spice port=5902,disable-ticketing
bekommt diese VM im Netz per
vncviewer mit der IP-eisx64:5901
oder
per virt.-viewer IP-eisx64:5902 (mit Ton).
Erster schneller Entwurf aus eisx64, ob die bin irgendwas macht. Sie
macht. Virtio funkt, USB redir auch, Monitorfunktionen der VM per
-chardev socket,path=
-monitor unix:
-monitor telnet::[Port]
ebenso. Dies ist insofern wichtig, weil es keine virsh-Shell gibt, sprich
virsh start VM
virsh destroy VM
virsh shutdown VM (und andere Ops)
sind nicht moeglich. Wenn die VM runtergefahren muss, kann man ueber
nc/telnet/socat gepiped den Status der VM veraendern.
Z.B. kommt man mit
minicom -D unix\#monitor.sock
auf
-------------------------------------------------------------------------------------------------------------
Welcome to minicom 2.7.1
OPTIONS:
Port unix#monitor.sock
Press CTRL-A Z for help on special keys
QEMU 4.2.50 monitor - type 'help' for more information
(qemu)
-------------------------------------------------------------------------------------------------------------
help gibt dann eine LIste raus:
=>
acl_add aclname match allow|deny [index] -- add a match rule to the
access control list
acl_policy aclname allow|deny -- set default access control list policy
acl_remove aclname match -- remove a match rule from the access control list
...
watchdog_action [reset|shutdown|poweroff|pause|debug|none] -- change
watchdog action
wavcapture path audiodev [frequency [bits [channels]]] -- capture audio
to a wave file (default frequency=44100 bits=16 chann)
x /fmt addr -- virtual memory dump starting at 'addr'
x_colo_lost_heartbeat -- Tell COLO that heartbeat is lost,
a failover or takeover is needed.
xp /fmt addr -- physical memory dump starting at 'addr'
-------------------------------------------------------------------------------------------------------------
Das alles ist irgendwie beherrschbar, und sicherlich mit paar Klicks
auch nicht gesetzt aber doch manuell erreichbar, was andere GUIs
huebsch, klickbar praesentieren.
___Aber___ die Netzwerkconfig manuell _unter_auf_eis ist doch eine
leichte Herausforderung gewesen. Nicht nur, dass qemu X-fache Optionen
zur Netzwerkconfig mitbringt, leider hat die Setup-Schicht unter eis
paar Beschraenkungen, die nur manuell zu loesen sind.
Ich bin es gewohnt unter Debian sowohl das Bonding v. x-fachen NICs als
auch direkte Bridges, wie auch Bridges, die auf das gebondete device
aufsetzen __ohne__ IP zu konfigurieren. Das geht rel. transparent. Der
Betrieb auf den Servern belegt auch, dass die Config dem Alltag gerecht
wird. Diese synthetischen devices/Konstrukte werden v. den VMs
herangezogen, auf diese Einheiten wird per vnetX eine Netzwerkverbindung
aufgebaut.
Das ist leider unter eis *nicht* moeglich, da das Bridge-Paket ohne IP
nicht abschliesst. dg. Ich gehe davon aus, dass eine Einschraenkung auch
(?) fuer das Bonding-Paket vorhanden sein koennte.
Mein Netzwerksetup ist folgendermassen (in Anlehnung an die
Debian-Einheiten):
onboard - eisx64-dev mit IP, fuer ds BS an sich.
Erster Port der Quad-NIC mit IP, wird (z.Z. auf dem eis noch) nicht
verwendet ist konfiguriert, hat mit den VMs nicht durch, ich nutze die
eis als LAN-LAN Router, deswegen zwei NICs.
Zweiter Port der Quad-NIC ohne IP wird fuer die VMs benutzt/Konfiguriert.
Dieser zweiter Port soll konfiguriert und gestartet werden *OHNE*, dass
er eine IP-Adresse hat. Das ist bei Debian moeglich, unter eis manuell auch.
Dieses Bild zeigt gut eine Uebersicht, wie man die Begriffe einparken kann.
<https://wiki.gentoo.org/images/b/ba/Qemu_network_diag.png>
Das NAT wischen br0 und eth1 habe ich nicht, brauche ich nicht. Wozu
auch. Alter bloeder Spruch, aber passt: Wo man routen kann, routet man,
wenn man nicht routen kann, NATtet man.
brctl show zeigt im Betrieb dies:
-------------------------------------------------------------------------------------------------------------
bridge name bridge id STP enabled interfaces
br7 8000.001b21692233 no enx001b21692233
tap0
tap1
Kurze Beschreibung, br7 setzt auf die NIC enx000... auf, auf dieser br
sitzen zwei taps auf.
Wie kommt man zu dieser Konfig?
Anlage der Bridge br7:
brctl addbr br7
---------
zu dieser Bridge wird das Interface enx001b21692233 dazugenommen:
brctl addif br7 enx001b21692233
=>
br7 8000.001b21692233 no enx001b21692233
noch keine tapX-devs Vorhanden.
---------
tap0 wird angelegt; der Benutzer ist erstmal root, es sollte spaeter ein
Benutzer fuer die VMs defniert werden, z.B. kvmusr etc, der darf die
Bridges hoch- und runterfahren.
ip tuntap add dev tap0 mode tap user $(whoami)
---------
tap0 wird Br7 zugeschlagen
ip link set tap0 master br7
---------
br7 wird gestartet
ip link set dev br7 up
---------
tap0 auch.
ip link set dev tap0 up
---------
Selbiges gilt fuer tap1.
-------------------------------------------------------------------------------------------------------------
Diese tapX werde in der Config so angegeben.
-device virtio-net-pci,netdev=network0,mac=52:55:00:d1:55:01 \
-netdev tap,id=network0,ifname=tap0,script=no,downscript=no \
In der zweiten Zeile wird ein netdev mit dem Namen (id) network0
definiert, das auf (ifname) tap0 aufsetzt. Das ist der Backendbereich,
es ist die hostseitige Sicht/Schicht. Die erste Zeile fuehrt hingegen
den guest-Bereich/Sicht auf, also, das, was der Gast v. oben sieht, z.B.
die MAC oder den Typ der Netzwerkkarte hier virtio-net-pci oder eine
e1000 etc.
Mir war es wichtig, dass virtioXYZ zum Einsatz kommt, die Bridge ohne IP
ist und ohne das NAT-Geraffel etc. Die VM _direkt_ ueber die
verschlungenen Pfade ins LAN kommt und eben dort eine dhcp-IP ziehen
kann. Es funkt. q.e.d.
VirtioXYZ / Ballon-Treiber werden v. den mir vorleigenden
win32-Einheiten erkannt und nachgezogen.
Die anderen Netzwerkkonfigurationen sind auch moeglich, doch ich habe
bisher diese nicht gebraucht. Diese zweiseitige Def. zum Host/Guest ist
auch beim Parameter -monitor gegeben.
Am Ende sollte man sowas haben Kommentare mit #
------------------------------------------------------------------------------------------------------------------
./qemu-system-x86_64 \
-cdrom /home/CD_Images/knoppix77.iso \
# HW Boost ueber die CPU Flags
-accel kvm \
# q35 ist OK duer W7, nicht fuer XP, pc ist fuer XP gut. q35 ist Stand
ICH6, etwas moderner Chip, als pc-i440fx-2.1 Boards (der legendaere
HX-Chipsatz fuer 5/486?)
-machine q35 \
# die Vorbereitung um HW durchzureichen, sofern die HW, das Bios, die
CPU (vt-d) dies unterstuetzt
-device intel-iommu \
# Sound hda ist im Allg. gut, ac97 fuer xp
-soundhw hda \
-smp cpus=4 \
# Tastatur
-k de \
-enable-fips \
-usb \
# ist sehr empfehlenswerf, Mauseinstellung
-device usb-tablet \
# das ist nur ein test, hier reiche ich einen BT Stick in die VM durch,
kommt an.
-device usb-host,hostbus=4,hostaddr=5 \
# Speicher
-m 4096 \
# ... Netzwerk um auf dem Host per umgeleitetem Port ssh auf den guest
zu ermoeglichen
# also ssh -p 7777 benutzer at localhost kommt im guest an, sofern ssh
vorhanden.
-device e1000,netdev=net0 \
-netdev user,id=net0,hostfwd=tcp::7777-:22 \
# ... Netzwerk LAN
-device virtio-net-pci,netdev=network0,mac=52:55:00:d1:55:01 \
-netdev tap,id=network0,ifname=tap0,script=no,downscript=no \
# Boot CDROM, c ist HD, n ist Netzwerk oder menu
-boot d \
# Boost beim Zugriff auf die festplatten, nicht fuer LVM tauglich, nur
fuer file-based-HD
-object iothread,id=io1 \
-device virtio-blk-pci,drive=disk0,iothread=io1 \
# das ist die virt. HD
-drive
if=none,id=disk0,cache=writeback,format=raw,aio=threads,file=/media/sdb1/tmp/W7Pvirtio
\
# VNC 5901
-vnc :1 \
# Monitor fuer qemu, die naechsten drei Zeilen
# monitor kann per telnet/unix-socket als auch mit qmp(JSON, wer es
kann) erfolgen.
-monitor telnet::55555,server,nowait -serial mon:stdio \
-chardev socket,id=monitor,path=./monitor.sock,server,nowait \
-monitor chardev:monitor \
# spice *ohne* Passwort
-spice port=5902,disable-ticketing \
# Speichertreiber
-device virtio-balloon \
# Videokarte, koennte auch -vga qxl sein
# -vga none -device qxl-vga,vgamem_mb=32 ginge auch
# aber auch -device virtio-vga,max_outputs=2
-vga virtio
------------------------------------------------------------------------------------------------------------------
Resultat/extract:
Sicher, es ist im ersten Entwurf *nicht* einfacher; aber es ist nativ
und mit paar Parametern auf der cli kann man eine virt. Einheit starten,
wenn man die Syntax der cli genauer angeschaut hat. Es ist
beeindruckend, was qemu kann. Viele Schichten (auch virsh) isolieren die
Vielfalt qemus auf der cli (und bringen mehr mit, einfacher?)
@Anmerkung zu meinem eisx64
Auf meiner Einheit sind andere Pakete integriert/installiert, die andere
libs erforderten z.B. libdnet fuer snorf, suricata, libsodium fuer
ntop/ng etc. Evtl. deswegen lief configure sauber durch(?). Nur
pixman-dev musste ich nachziehen.
Das ist jedoch auf jeder anderen eisx64 Einheit ebenso moeglich. Wenn
configure moniert, dass ihm diese und jene Abhaengigkeit fehle, aus dem
Inet holen, kompilieren, configure/make+install etc.
Beeindruckend war, dass so wenige Fehler (config.log) in einer Stunde
(s.o. 1h6min) gemeldet wurden, die Log ist gerade mal 165k gewesen.
libmicrohttpd-0.9.69 (fuer motion benoetigt) hat ca. 167k. Die Fehler
habe ich versucht alle rueckzuverfolgen; manche Fehler sind, weil die
Plattform nicht passt und voellig was anderes gesucht wurde, was nicht
alltaeglich ist.
Akt. ist die config.log 192792 gross. Darin sind elf Vorfaelle, die ich
alle im Detail geklaert habe, s.o. teilweise systemd, teilweise
scheiterte es an statischen libs oder teilweise ist/hat der akt Kernel
nicht diese Headerdateien *.h (z.B. endian, vm_sockets, kcov). Oder
valgrind, die Umgebung zum Debuggen wird moniert, ich brauchte, brauche
es nicht/nie, ;-)
qnio_api.h fuehrt zu
libvxhs is a storage connector library for accessing vdisks on Veritas
HyperScale storage.
Oder rbd/librbd.h fuehrt zu ceph.io, RADOS-Devices, Rados Block Device
(rbd).
brlapi.h hingegen fuehrt zu
https://github.com/brltty/brltty/blob/master/Programs/brlapi.h.in
BRLTTY is a background process (daemon) providing access to the Linux/Unix
console (when in text mode) for a blind person using a refreshable braille
display
Dies konnte ich erfolgreich integrieren.
xenctrl.h kommt mit xen, ohne die tools konnte ich xen (fast)
kompilieren, doch xen liess sich wg. segm. fault nicht ausgefuehrt.
Leider war hier der Lauf nur ohne die Tools moeglich, da Python.h
moniert wird, obwohl eine im System vorlag. Keine Ahnung, wie ich das
haette aufloesen koennen. Doch, xen wollte ich auch nicht. :-) qemu. sic.
xenctrl ist auch dafuer, dass man mit qemu xen steuern kann.
Aber, leider auch, dass z.B. random.h nicht gefunden wurde, obwohl diese
vorhanden war, ein ln -s brachte hier die Loesung.
Sprich, am Ende funkt es. Es ist natives qemu (mit kvm), und bringt
alles mit, was man braucht.
q.e.d. ;-)
sapere aude.
Danke @eis-Team fuer die Basis.
Gruss
Oezbilen
#######################################################
-------------------------------------------------------------------------------------------------------------
#######################################################
Parameter der bin:
QEMU emulator version 4.2.50 (v4.2.0-1209-gf31160c7d1)
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
usage: qemu-system-x86_64 [options] [disk_image]
'disk_image' is a raw hard disk image for IDE hard disk 0
Standard options:
-h or -help display this help and exit
-version display version information and exit
-machine [type=]name[,prop[=value][,...]]
selects emulated machine ('-machine help' for list)
property accel=accel1[:accel2[:...]] selects accelerator
supported accelerators are kvm, xen, hax, hvf, whpx or
tcg (default: tcg)
vmport=on|off|auto controls emulation of vmport
(default: auto)
dump-guest-core=on|off include guest memory in a core
dump (default=on)
mem-merge=on|off controls memory merge support
(default: on)
aes-key-wrap=on|off controls support for AES key
wrapping (default=on)
dea-key-wrap=on|off controls support for DEA key
wrapping (default=on)
suppress-vmdesc=on|off disables self-describing
migration (default=off)
nvdimm=on|off controls NVDIMM support (default=off)
enforce-config-section=on|off enforce configuration
section migration (default=off)
memory-encryption=@var{} memory encryption object to
use (default=none)
hmat=on|off controls ACPI HMAT support (default=off)
-cpu cpu select CPU ('-cpu help' for list)
-accel [accel=]accelerator[,prop[=value][,...]]
select accelerator (kvm, xen, hax, hvf, whpx or tcg;
use 'help' for a list)
igd-passthru=on|off (enable Xen integrated Intel
graphics passthrough, default=off)
kernel-irqchip=on|off|split controls accelerated
irqchip support (default=on)
kvm-shadow-mem=size of KVM shadow MMU in bytes
tb-size=n (TCG translation block cache size)
thread=single|multi (enable multi-threaded TCG)
-smp
[cpus=]n[,maxcpus=cpus][,cores=cores][,threads=threads][,dies=dies][,sockets=sockets]
set the number of CPUs to 'n' [default=1]
maxcpus= maximum number of total cpus, including
offline CPUs for hotplug, etc
cores= number of CPU cores on one socket (for PC, it's
on one die)
threads= number of threads on one CPU core
dies= number of CPU dies on one socket (for PC only)
sockets= number of discrete sockets in the system
-numa
node[,mem=size][,cpus=firstcpu[-lastcpu]][,nodeid=node][,initiator=node]
-numa
node[,memdev=id][,cpus=firstcpu[-lastcpu]][,nodeid=node][,initiator=node]
-numa dist,src=source,dst=destination,val=distance
-numa cpu,node-id=node[,socket-id=x][,core-id=y][,thread-id=z]
-numa
hmat-lb,initiator=node,target=node,hierarchy=memory|first-level|second-level|third-level,data-type=access-latency|read-latency|write-latency[,latency=lat][,bandwidth=bw]
-numa
hmat-cache,node-id=node,size=size,level=level[,associativity=none|direct|complex][,policy=none|write-back|write-through][,line=size]
-add-fd fd=fd,set=set[,opaque=opaque]
Add 'fd' to fd 'set'
-set group.id.arg=value
set <arg> parameter for item <id> of type <group>
i.e. -set drive.$id.file=/path/to/image
-global driver.property=value
-global driver=driver,property=property,value=value
set a global default for a driver property
-boot [order=drives][,once=drives][,menu=on|off]
[,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time][,strict=on|off]
'drives': floppy (a), hard disk (c), CD-ROM (d),
network (n)
'sp_name': the file's name that would be passed to bios
as logo picture, if menu=on
'sp_time': the period that splash picture last if
menu=on, unit is ms
'rb_timeout': the timeout before guest reboot when boot
failed, unit is ms
-m [size=]megs[,slots=n,maxmem=size]
configure guest RAM
size: initial amount of guest memory
slots: number of hotplug slots (default: none)
maxmem: maximum amount of guest memory (default: none)
NOTE: Some architectures might enforce a specific granularity
-mem-path FILE provide backing storage for guest RAM
-mem-prealloc preallocate guest memory (use with -mem-path)
-k language use keyboard layout (for example 'fr' for French)
-audio-help show -audiodev equivalent of the currently specified
audio settings
-audiodev [driver=]driver,id=id[,prop[=value][,...]]
specifies the audio backend to use
id= identifier of the backend
timer-period= timer period in microseconds
in|out.mixing-engine= use mixing engine to mix streams
inside QEMU
in|out.fixed-settings= use fixed settings for host audio
in|out.frequency= frequency to use with fixed settings
in|out.channels= number of channels to use with fixed
settings
in|out.format= sample format to use with fixed settings
valid values: s8, s16, s32, u8, u16, u32
in|out.voices= number of voices to use
in|out.buffer-length= length of buffer in microseconds
-audiodev none,id=id,[,prop[=value][,...]]
dummy driver that discards all output
-audiodev oss,id=id[,prop[=value][,...]]
in|out.dev= path of the audio device to use
in|out.buffer-count= number of buffers
in|out.try-poll= attempt to use poll mode
try-mmap= try using memory mapped access
exclusive= open device in exclusive mode
dsp-policy= set timing policy (0..10), -1 to use
fragment mode
-audiodev wav,id=id[,prop[=value][,...]]
path= path of wav file to record
-soundhw c1,... enable audio support
and only specified sound cards (comma separated list)
use '-soundhw help' to get the list of supported cards
use '-soundhw all' to enable all of them
-device driver[,prop[=value][,...]]
add device (based on driver)
prop=value,... sets driver properties
use '-device help' to print all possible drivers
use '-device driver,help' to print all possible properties
-name string1[,process=string2][,debug-threads=on|off]
set the name of the guest
string1 sets the window title and string2 the process name
When debug-threads is enabled, individual threads are
given a separate name
NOTE: The thread names are for debugging and not a
stable API.
-uuid %08x-%04x-%04x-%04x-%012x
specify machine UUID
Block device options:
-fda/-fdb file use 'file' as floppy disk 0/1 image
-hda/-hdb file use 'file' as IDE hard disk 0/1 image
-hdc/-hdd file use 'file' as IDE hard disk 2/3 image
-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)
-blockdev [driver=]driver[,node-name=N][,discard=ignore|unmap]
[,cache.direct=on|off][,cache.no-flush=on|off]
[,read-only=on|off][,auto-read-only=on|off]
[,force-share=on|off][,detect-zeroes=on|off|unmap]
[,driver specific parameters...]
configure a block backend
-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]
[,cache=writethrough|writeback|none|directsync|unsafe][,format=f]
[,snapshot=on|off][,rerror=ignore|stop|report]
[,werror=ignore|stop|report|enospc][,id=name][,aio=threads|native]
[,readonly=on|off][,copy-on-read=on|off]
[,discard=ignore|unmap][,detect-zeroes=on|off|unmap]
[[,bps=b]|[[,bps_rd=r][,bps_wr=w]]]
[[,iops=i]|[[,iops_rd=r][,iops_wr=w]]]
[[,bps_max=bm]|[[,bps_rd_max=rm][,bps_wr_max=wm]]]
[[,iops_max=im]|[[,iops_rd_max=irm][,iops_wr_max=iwm]]]
[[,iops_size=is]]
[[,group=g]]
use 'file' as a drive image
-mtdblock file use 'file' as on-board Flash memory image
-sd file use 'file' as SecureDigital card image
-pflash file use 'file' as a parallel flash image
-snapshot write to temporary files instead of disk image files
-fsdev
local,id=id,path=path,security_model=mapped-xattr|mapped-file|passthrough|none
[,writeout=immediate][,readonly][,fmode=fmode][,dmode=dmode]
[[,throttling.bps-total=b]|[[,throttling.bps-read=r][,throttling.bps-write=w]]]
[[,throttling.iops-total=i]|[[,throttling.iops-read=r][,throttling.iops-write=w]]]
[[,throttling.bps-total-max=bm]|[[,throttling.bps-read-max=rm][,throttling.bps-write-max=wm]]]
[[,throttling.iops-total-max=im]|[[,throttling.iops-read-max=irm][,throttling.iops-write-max=iwm]]]
[[,throttling.iops-size=is]]
-fsdev proxy,id=id,socket=socket[,writeout=immediate][,readonly]
-fsdev proxy,id=id,sock_fd=sock_fd[,writeout=immediate][,readonly]
-fsdev synth,id=id
-virtfs
local,path=path,mount_tag=tag,security_model=mapped-xattr|mapped-file|passthrough|none
[,id=id][,writeout=immediate][,readonly][,fmode=fmode][,dmode=dmode][,multidevs=remap|forbid|warn]
-virtfs
proxy,mount_tag=tag,socket=socket[,id=id][,writeout=immediate][,readonly]
-virtfs
proxy,mount_tag=tag,sock_fd=sock_fd[,id=id][,writeout=immediate][,readonly]
-virtfs synth,mount_tag=tag[,id=id][,readonly]
-iscsi [user=user][,password=password]
[,header-digest=CRC32C|CR32C-NONE|NONE-CRC32C|NONE
[,initiator-name=initiator-iqn][,id=target-iqn]
[,timeout=timeout]
iSCSI session parameters
USB options:
-usb enable on-board USB host controller (if not enabled by
default)
-usbdevice name add the host or guest USB device 'name'
Display options:
-display vnc=<display>[,<optargs>]
-display curses[,charset=<encoding>]
-display none
select display backend type
The default display is equivalent to
"-vnc localhost:0,to=99,id=default"
-nographic disable graphical output and redirect serial I/Os to console
-curses shorthand for -display curses
-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)
-ctrl-grab use Right-Ctrl to grab mouse (instead of Ctrl-Alt)
-no-quit disable SDL window close capability
-sdl shorthand for -display sdl
-spice [port=port][,tls-port=secured-port][,x509-dir=<dir>]
[,x509-key-file=<file>][,x509-key-password=<file>]
[,x509-cert-file=<file>][,x509-cacert-file=<file>]
[,x509-dh-key-file=<file>][,addr=addr][,ipv4|ipv6|unix]
[,tls-ciphers=<list>]
[,tls-channel=[main|display|cursor|inputs|record|playback]]
[,plaintext-channel=[main|display|cursor|inputs|record|playback]]
[,sasl][,password=<secret>][,disable-ticketing]
[,image-compression=[auto_glz|auto_lz|quic|glz|lz|off]]
[,jpeg-wan-compression=[auto|never|always]]
[,zlib-glz-wan-compression=[auto|never|always]]
[,streaming-video=[off|all|filter]][,disable-copy-paste]
[,disable-agent-file-xfer][,agent-mouse=[on|off]]
[,playback-compression=[on|off]][,seamless-migration=[on|off]]
[,gl=[on|off]][,rendernode=<file>]
enable spice
at least one of {port, tls-port} is mandatory
-portrait rotate graphical output 90 deg left (only PXA LCD)
-rotate <deg> rotate graphical output some deg left (only PXA LCD)
-vga [std|cirrus|vmware|qxl|xenfb|tcx|cg3|virtio|none]
select video card type
-full-screen start in full screen
-vnc <display> shorthand for -display vnc=<display>
i386 target only:
-win2k-hack use it when installing Windows 2000 to avoid a disk full bug
-no-fd-bootchk disable boot signature checking for floppy disks
-no-acpi disable ACPI
-no-hpet disable HPET
-acpitable
[sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,{data|file}=file1[:file2]...]
ACPI table description
-smbios file=binary
load SMBIOS entry from binary file
-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]
[,uefi=on|off]
specify SMBIOS type 0 fields
-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]
[,uuid=uuid][,sku=str][,family=str]
specify SMBIOS type 1 fields
-smbios type=2[,manufacturer=str][,product=str][,version=str][,serial=str]
[,asset=str][,location=str]
specify SMBIOS type 2 fields
-smbios type=3[,manufacturer=str][,version=str][,serial=str][,asset=str]
[,sku=str]
specify SMBIOS type 3 fields
-smbios type=4[,sock_pfx=str][,manufacturer=str][,version=str][,serial=str]
[,asset=str][,part=str]
specify SMBIOS type 4 fields
-smbios type=17[,loc_pfx=str][,bank=str][,manufacturer=str][,serial=str]
[,asset=str][,part=str][,speed=%d]
specify SMBIOS type 17 fields
Network options:
-netdev user,id=str[,ipv4[=on|off]][,net=addr[/mask]][,host=addr]
[,ipv6[=on|off]][,ipv6-net=addr[/int]][,ipv6-host=addr]
[,restrict=on|off][,hostname=host][,dhcpstart=addr]
[,dns=addr][,ipv6-dns=addr][,dnssearch=domain][,domainname=domain]
[,tftp=dir][,tftp-server-name=name][,bootfile=f][,hostfwd=rule][,guestfwd=rule][,smb=dir[,smbserver=addr]]
configure a user mode network backend with ID 'str',
its DHCP server and optional services
-netdev
tap,id=str[,fd=h][,fds=x:y:...:z][,ifname=name][,script=file][,downscript=dfile]
[,br=bridge][,helper=helper][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off]
[,vhostfd=h][,vhostfds=x:y:...:z][,vhostforce=on|off][,queues=n]
[,poll-us=n]
configure a host TAP network backend with ID 'str'
connected to a bridge (default=br0)
use network scripts 'file' (default=/etc/qemu-ifup)
to configure it and 'dfile' (default=/etc/qemu-ifdown)
to deconfigure it
use '[down]script=no' to disable script execution
use network helper 'helper'
(default=/usr/local/libexec/qemu-bridge-helper) to
configure it
use 'fd=h' to connect to an already opened TAP interface
use 'fds=x:y:...:z' to connect to already opened
multiqueue capable TAP interfaces
use 'sndbuf=nbytes' to limit the size of the send
buffer (the
default is disabled 'sndbuf=0' to enable flow control
set 'sndbuf=1048576')
use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap
flag
use vnet_hdr=on to make the lack of IFF_VNET_HDR
support an error condition
use vhost=on to enable experimental in kernel accelerator
(only has effect for virtio guests which use MSIX)
use vhostforce=on to force vhost on for non-MSIX virtio
guests
use 'vhostfd=h' to connect to an already opened vhost
net device
use 'vhostfds=x:y:...:z to connect to multiple already
opened vhost net devices
use 'queues=n' to specify the number of queues to be
created for multiqueue TAP
use 'poll-us=n' to speciy the maximum number of
microseconds that could be
spent on busy polling for vhost net
-netdev bridge,id=str[,br=bridge][,helper=helper]
configure a host TAP network backend with ID 'str' that is
connected to a bridge (default=br0)
using the program 'helper
(default=/usr/local/libexec/qemu-bridge-helper)
-netdev
l2tpv3,id=str,src=srcaddr,dst=dstaddr[,srcport=srcport][,dstport=dstport]
[,rxsession=rxsession],txsession=txsession[,ipv6=on/off][,udp=on/off]
[,cookie64=on/off][,counter][,pincounter][,txcookie=txcookie]
[,rxcookie=rxcookie][,offset=offset]
configure a network backend with ID 'str' connected to
an Ethernet over L2TPv3 pseudowire.
Linux kernel 3.3+ as well as most routers can talk
L2TPv3. This transport allows connecting a VM to a VM,
VM to a router and even VM to Host. It is a
nearly-universal
standard (RFC3391). Note - this implementation uses static
pre-configured tunnels (same as the Linux kernel).
use 'src=' to specify source address
use 'dst=' to specify destination address
use 'udp=on' to specify udp encapsulation
use 'srcport=' to specify source udp port
use 'dstport=' to specify destination udp port
use 'ipv6=on' to force v6
L2TPv3 uses cookies to prevent misconfiguration as
well as a weak security measure
use 'rxcookie=0x012345678' to specify a rxcookie
use 'txcookie=0x012345678' to specify a txcookie
use 'cookie64=on' to set cookie size to 64 bit,
otherwise 32
use 'counter=off' to force a 'cut-down' L2TPv3 with no
counter
use 'pincounter=on' to work around broken counter
handling in peer
use 'offset=X' to add an extra offset between header
and data
-netdev socket,id=str[,fd=h][,listen=[host]:port][,connect=host:port]
configure a network backend to connect to another network
using a socket connection
-netdev socket,id=str[,fd=h][,mcast=maddr:port[,localaddr=addr]]
configure a network backend to connect to a multicast
maddr and port
use 'localaddr=addr' to specify the host address to
send packets from
-netdev socket,id=str[,fd=h][,udp=host:port][,localaddr=host:port]
configure a network backend to connect to another network
using an UDP tunnel
-netdev vhost-user,id=str,chardev=dev[,vhostforce=on|off]
configure a vhost-user network, backed by a chardev 'dev'
-netdev hubport,id=str,hubid=n[,netdev=nd]
configure a hub port on the hub with ID 'n'
-nic [tap|bridge|user|l2tpv3|vhost-user|socket][,option][,...][mac=macaddr]
initialize an on-board / default host NIC (using MAC
address
macaddr) and connect it to the given host network backend
-nic none use it alone to have zero network devices (the default is to
provided a 'user' network connection)
-net nic[,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]
configure or create an on-board (or machine default)
NIC and
connect it to hub 0 (please use -nic unless you need a hub)
-net [user|tap|bridge|socket][,option][,option][,...]
old way to initialize a host network interface
(use the -netdev option if possible instead)
Character device options:
-chardev help
-chardev null,id=id[,mux=on|off][,logfile=PATH][,logappend=on|off]
-chardev
socket,id=id[,host=host],port=port[,to=to][,ipv4][,ipv6][,nodelay][,reconnect=seconds]
[,server][,nowait][,telnet][,websocket][,reconnect=seconds][,mux=on|off]
[,logfile=PATH][,logappend=on|off][,tls-creds=ID][,tls-authz=ID] (tcp)
-chardev
socket,id=id,path=path[,server][,nowait][,telnet][,websocket][,reconnect=seconds]
[,mux=on|off][,logfile=PATH][,logappend=on|off] (unix)
-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]
[,localport=localport][,ipv4][,ipv6][,mux=on|off]
[,logfile=PATH][,logappend=on|off]
-chardev msmouse,id=id[,mux=on|off][,logfile=PATH][,logappend=on|off]
-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]
[,mux=on|off][,logfile=PATH][,logappend=on|off]
-chardev ringbuf,id=id[,size=size][,logfile=PATH][,logappend=on|off]
-chardev file,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]
-chardev pipe,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]
-chardev pty,id=id[,mux=on|off][,logfile=PATH][,logappend=on|off]
-chardev
stdio,id=id[,mux=on|off][,signal=on|off][,logfile=PATH][,logappend=on|off]
-chardev
serial,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]
-chardev tty,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]
-chardev
parallel,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]
-chardev
parport,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]
TPM device options:
-tpmdev passthrough,id=id[,path=path][,cancel-path=path]
use path to provide path to a character device; default
is /dev/tpm0
use cancel-path to provide path to TPM's cancel sysfs
entry; if
not provided it will be searched for in
/sys/class/misc/tpm?/device
-tpmdev emulator,id=id,chardev=dev
configure the TPM device using chardev backend
Linux/Multiboot boot specific:
-kernel bzImage use 'bzImage' as kernel image
-append cmdline use 'cmdline' as kernel command line
-initrd file use 'file' as initial ram disk
-dtb file use 'file' as device tree image
Debug/Expert options:
-fw_cfg [name=]<name>,file=<file>
add named fw_cfg entry with contents from file
-fw_cfg [name=]<name>,string=<str>
add named fw_cfg entry with contents from string
-serial dev redirect the serial port to char device 'dev'
-parallel dev redirect the parallel port to char device 'dev'
-monitor dev redirect the monitor to char device 'dev'
-qmp dev like -monitor but opens in 'control' mode
-qmp-pretty dev like -qmp but uses pretty JSON formatting
-mon [chardev=]name[,mode=readline|control][,pretty[=on|off]]
-debugcon dev redirect the debug console to char device 'dev'
-pidfile file write PID to 'file'
-singlestep always run in singlestep mode
--preconfig pause QEMU before machine is initialized (experimental)
-S freeze CPU at startup (use 'c' to start execution)
-realtime [mlock=on|off]
run qemu with realtime features
mlock=on|off controls mlock support (default: on)
-overcommit [mem-lock=on|off][cpu-pm=on|off]
run qemu with overcommit hints
mem-lock=on|off controls memory lock support (default: off)
cpu-pm=on|off controls cpu power management (default: off)
-gdb dev wait for gdb connection on 'dev'
-s shorthand for -gdb tcp::1234
-d item1,... enable logging of specified items (use '-d help' for a
list of log items)
-D logfile output log to logfile (default stderr)
-dfilter range,.. filter debug output to range of addresses (useful for
-d cpu,exec,etc..)
-seed number seed the pseudo-random number generator
-L path set the directory for the BIOS, VGA BIOS and keymaps
-bios file set the filename for the BIOS
-enable-kvm enable KVM full virtualization support
-xen-domid id specify xen guest domain id
-xen-attach attach to existing xen domain
libxl will use this when starting QEMU
-xen-domid-restrict restrict set of available xen operations
to specified domain id. (Does not affect
xenpv machine type).
-no-reboot exit instead of rebooting
-no-shutdown stop before shutdown
-loadvm [tag|id]
start right away with a saved state (loadvm in monitor)
-daemonize daemonize QEMU after initializing
-option-rom rom load a file, rom, into the option ROM space
-rtc [base=utc|localtime|<datetime>][,clock=host|rt|vm][,driftfix=none|slew]
set the RTC base and clock, enable drift fix for clock
ticks (x86 only)
-icount
[shift=N|auto][,align=on|off][,sleep=on|off,rr=record|replay,rrfile=<filename>,rrsnapshot=<snapshot>]
enable virtual instruction counter with 2^N clock ticks per
instruction, enable aligning the host and virtual clocks
or disable real time cpu sleeping
-watchdog model
enable virtual hardware watchdog [default=none]
-watchdog-action reset|shutdown|poweroff|inject-nmi|pause|debug|none
action when watchdog fires [default=reset]
-echr chr set terminal escape character instead of ctrl-a
-show-cursor show cursor
-tb-size n set TB size
-incoming tcp:[host]:port[,to=maxport][,ipv4][,ipv6]
-incoming rdma:host:port[,ipv4][,ipv6]
-incoming unix:socketpath
prepare for incoming migration, listen on
specified protocol and socket address
-incoming fd:fd
-incoming exec:cmdline
accept incoming migration on given file descriptor
or from given external command
-incoming defer
wait for the URI to be specified via migrate_incoming
-only-migratable allow only migratable devices
-nodefaults don't create default devices
-chroot dir chroot to dir just before starting the VM
-runas user change to user id user just before starting the VM
user can be numeric uid:gid instead
-sandbox on[,obsolete=allow|deny][,elevateprivileges=allow|deny|children]
[,spawn=allow|deny][,resourcecontrol=allow|deny]
Enable seccomp mode 2 system call filter (default 'off').
use 'obsolete' to allow obsolete system calls that are
provided
by the kernel, but typically no longer used by modern
C library implementations.
use 'elevateprivileges' to allow or deny QEMU process
to elevate
its privileges by blacklisting all set*uid|gid
system calls.
The value 'children' will deny set*uid|gid system
calls for
main QEMU process but will allow forks and execves
to run unprivileged
use 'spawn' to avoid QEMU to spawn new threads or
processes by
blacklisting *fork and execve
use 'resourcecontrol' to disable process affinity and
schedular priority
-readconfig <file>
-writeconfig <file>
read/write config file
-no-user-config
do not load default user-provided config files at startup
-trace [[enable=]<pattern>][,events=<file>][,file=<file>]
specify tracing options
-plugin [file=]<file>[,arg=<string>]
load a plugin
-enable-fips enable FIPS 140-2 compliance
-msg timestamp[=on|off]
control error message format
timestamp=on enables timestamps (default: off)
-dump-vmstate <file>
Output vmstate information in JSON format to file.
Use the scripts/vmstate-static-checker.py file to
check for possible regressions in migration code
by comparing two such vmstate dumps.
-enable-sync-profile
enable synchronization profiling
Generic object creation:
-object TYPENAME[,PROP1=VALUE1,...]
create a new object of type TYPENAME setting properties
in the order they are specified. Note that the 'id'
property must be set. These objects are placed in the
'/objects' path.
During emulation, the following keys are useful:
ctrl-alt-f toggle full screen
ctrl-alt-n switch to virtual console 'n'
ctrl-alt toggle mouse and keyboard grab
When using -nographic, press 'ctrl-a h' to get some help.
See <https://qemu.org/contribute/report-a-bug> for how to report bugs.
More information on the QEMU project at <https://qemu.org>.
#######################################################
Ende des Beitrages. :-)
Mehr Informationen über die Mailingliste Eisfair