[qemu-arm package document] POST SLES 15 SP2 QEMU/KVM RELATED SUPPORT STATEMENTS Overview -------- The QEMU based packages included with SLES 15 SP2 provide a large variety of features, from the very latest customer requests to features of questionable quality or value. The linux kernel includes components which contribute KVM virtualization features as well. This document was created to assist the user in deciding which features can be relied upon to build enterprise class virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64), for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered at the L3 (full support) level. The bulk of this document deals with L3 supported features and is primarily ARM64 centric. This document should be considered a companion to the standard virtualization documentation delivered with the product. KVM is implemented in linux kernel modules which enable the linux kernel to function as an integral part of the KVM hypervisor. The hypervisor-guest interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux host assists in the virtualization of storage, networking and display resources as well as allowing direct hardware passthrough of PCI and USB devices. Linux memory and cpu management features are used by QEMU/KVM to enable guests to share those host resources as efficiently as possible. QEMU is a primary component of KVM based virtualization. The QEMU emulator binary qemu-system-aarch64 is the program to use to access KVM virtualization. When using this program, the -machine option accel=kvm (or its alias -enable-kvm) or --accel kvm option must be specified for KVM acceleration to be used by the guest. Libvirt is the preferred means of accessing QEMU/KVM functionality and is documented elsewhere. This document focuses on the features and direct usage of QEMU/KVM as provided by the QEMU based packages. Major QEMU/KVM Supported Features --------------------------------- - KVM virtualization is accomplished by using the QEMU program in KVM acceleration mode. KVM acceleration requires that both guest and host have the same fundamental architecture. - Guest images created under previous QEMU versions are supported by machine version compatibilities built into more recent QEMU versions. - For ease of use, the QEMU program has defaults which represent traditional usage patterns. - Guest virtual machine characteristics are specified by a combination of internal defaults, options provided on the QEMU program command-line, runtime configurations set via the monitor interfaces and optional config files. The runtime control of a VM is effected either through the Human Monitor "Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP) interface. For QMP details, see qemu-qmp-ref man page. Since a KVM guest runs in the context of a normal linux process, some types of execution controls are managed with linux tools. - QEMU is compatible with EDK II based UEFI firmware available with SLES 15 SP2, which allow boot options common to physical systems, along with other features tailored to virtualization. Various VGABIOS ROMs, from the SEABIOS project, are also available. - Some QEMU messages have been localized to various languages. This is provided by the optional qemu-lang package. Keyboard mappings for various nationalities is also provided. - Virtual machine lifecycle controls include startup through the UEFI BIOS or kernel boot, ACPI based shutdown, execution pausing, the saving and restoring of machine state or disk state, VM migration to another host, and miscellaneous controls available through the "monitors" mentioned above. - Guest execution state may be "moved" in both time (save/restore) and space (static and live migration). These migrations or save/restore operations can take place either from certain prior SLES versioned hosts to a SLES 15 SP2 host or between hosts of the same version. Certain other restrictions also apply. - Security considerations include privileged helpers and a security model which allows running guests as a non-root user. - QEMU provides best effort reuse of existing disk images, including those with systems installed, through geometry probing. Also disk images produced by other popular virtualization technologies may be imported into QEMU supported storage formats. These QEMU formats include features which exploit the benefits of virtualization. - Memory, cpu and disk space overcommit are possible and can be beneficial when done responsibly. Additional management of these resources comes in the form of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing, trim, discard and hole punching. - Guest performance is enhanced through the use of virtio devices, various disk caching modes, network acceleration via the vhost-net kernel module, multi- queue network transmit capabilities, host transparent huge pages (THP) and direct hugetlb usage. Physical PCI and USB devices may also be passed through to the guest, including SR-IOV VF's. - The guest UI is accessable via GTK, VNC, Spice, and serial (including curses TUI) interfaces. - Guest timekeeping is supported in a variety of ways, including a paravirtual clocksource, and options for the various guest clocks for how to handle the timeslicing of the guest's execution on the host. - In addition to the para-virtualized devices already mentioned, other devices and infrastructure designed to avoid virtualization "problem areas" are available such as SPICE graphics, vmmouse emulation, tablet style pointer interfaces and virtio based UI interfaces. - A built-in user-mode network (SLIRP) stack is available. - Portions of the host file system may be shared with a guest by using virtFS. - A guest "agent" is available for SLES 15 SP2 KVM guests via the qemu-guest-agent package. This allows some introspection and control of the guest OS environment from the host. QEMU/KVM Technology Previews ---------------------------- - All features indicated as not being supported in this document fall under the Technology Preview definition contained in the main product's release notes. Noteworthy QEMU/KVM Unsupported Features ---------------------------------------- - Note that some features are unsupported simply due to lack of validation. If an existing feature is desired, but not marked supported, let SUSE know about your requirements. - The TCG "acceleration" mode may be helpful for problem isolation, but otherwise presents insufficient benefit and stability. - GlusterFS integration is not enabled. - 32 bit ARM KVM has never been supported by SUSE, but it's worth noting that this capability will cease to even be possible in a near-future QEMU/KVM (kernel) combination. Deprecated, Superseded, Modified and Dropped Features ----------------------------------------------------- - http://wiki.qemu-project.org/Features/LegacyRemoval This website tracks feature deprecation and removal at the upstream development level. Our qemu package inherits this community direction, but be aware that we can and will deviate as needed. Those deviations and additional information can be found in this section. Feature deprecation is also tracked in Appendix B of the qemu-doc.* files installed with the qemu package. - The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M", "-machine" and "-d" is now considered deprecated. Use "help" instead. - The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC machine types, as it created an obsolete SCSI controller model. - Use of aio=native without direct cache mode also being specified (cache=none, cache=directsync, or cache.direct=on) is no longer allowed. - The use of image encryption in qcow and qcow2 formats is now considered deprecated. Analysis has shown it to be weak encryption, in addition to suffering from poor design. Images can easily be converted to a non-encrypted format. - Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now considered deprecated. In the future those names will be standardized to acpitable, boot, and smp respectively. - These previously supported command line options are now considered deprecated: -device scsi-disk (use scsi-hd or scsi-cd instead) -device virtio-blk,scsi= (use virtio-scsi instead) -device virtio-blk-pci,scsi= (use virtio-scsi instead) -realtime mlock= (use -overcommit mem-lock- instead) - These previously supported command line options are no longer supported: - These previously supported command line options are no longer recognized: -balloon (use -device virtio-balloon instead) -clock -device ivshmem (use ivshmem-doorbell or ivshmem-plain instead) -device pc-sysfw (no longer needed) -device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead) -display sdl -no-frame -nodefconfig (use -no-user-config instead) -sdl -virtioconsole (use -device virtconsole instead) - The previously unsupported machine type xlnx-ep108 is no longer recognized (used xlnx-zcu102 unstead) - Specifying a cpu feature with both "+feature/-feature" and "feature=on/off" will now cause a warning. The current behavior for this combination where "+feature/-feature" wins over "feature=on/off", will be changed going forward so that "+feature" and "-feature" will be synonyms for "feature=on" and "feature=off" respectively. - The previously supported blkdev-add QMP command has been flagged as lacking and could possibly change syntax in the future. - This previously unsupported command line option is now deprecated: -soundhw (use -device ... instead) -tb-size - These previously unsupported command line options are no longer recognized: -bt -device at24c-eeprom -device mmio_interface -device ssi-sd -enable-hax -tdf -xen-create - These previously supported QMP commands are now deprecated: change (use blockdev-change-medium or change-vnc-password instead) cpu-add migrate-set-cache-size (use migrate-set-parameters instead) migrate_set_downtime (use migrate-set-parameters instead) migrate_set_speed (use migrate-set-parameters instead) query-cpus (use query-cpus-fast instead) query-events query-migrate-cache-size (use query-migrate-parameters instead) - These previously supported monitor commands are now deprecated: change cpu-add migrate_set_downtime migrate_set_speed - These previously supported monitor commands are no longer recognized: pci_add (use device_add instead) pci_del (use device_del instead) usb_add (use device_add instead) usb_del (use device_del instead) - These previously unsupported monitor command are now deprecated: acl_add ... acl_policy ... acl_remove ... acl_reset ... acl_show ... - These previously unsupported monitor commands are no longer recognized: host_net_add host_net_remove - These previously unsupported QMP commands are now supported under a new name: x-block-dirty-bitmap-disable (use block-dirty-bitmap-disable instead) x-block-dirty-bitmap-enable (use block-dirty-bitmap-enable instead) x-block-dirty-bitmap-merge (use block-dirty-bitmap-merge instead) x-block-latency-histogram-set (use block-latency-histogram-set instead) x-blockdev-create (use blockdev-create instead) - This previously unsupported QMP commands is no longer recognized: x-nbd-server-add-bitmap - Due to upstream's decision to no longer fully support the qed storage format going forward (since it really provides no benefit over qcow2 and is now no longer actively maintained upstream), creating qed storage images is no longer supported and it is highly discouraged to continue using existing qed images. They should instead be converted to another supported format. QEMU Command-Line and Monitor Syntax and Support ------------------------------------------------ - The QEMU program command-line syntax is as follows: qemu-system-aarch64 [options] Where 'options' are taken from the options listed below. The images used with -drive or -cdrom, may be in the raw (no format) or qcow2 storage formats, and may be located in files within the host filesystem, logical volumes, host physical disks, or network based storage. Read only media may also be accessed via URL style protocol specifiers. Note that as a general rule, as new command line options are added which serve to replace an older option or interface, you are strongly encouraged to adapt your usage to the new option. The new option is being introduced to provide better functionality and usability going forward. In some cases existing problems or even bugs in older interfaces cannot be fixed due to functional expectations, but are resolved in the newer interface or option. This advice includes moving to the most recent machine type (eg virt-4.2 instead of virt-3.1) if possible. - The following command line options are supported: -accel ... -add-fd ... -alt-grab -append ... -audio-help -audiodev -bios ... -blockdev ... -boot ... -cdrom ... -chardev .. -cpu host -ctrl-grab -d ... -daemonize -debugcon ... -device [VGA|rtl8139|virtio-net-pci|virtio-blk-pci|virtio-balloon-pci| virtio-9p-pci|usb-hub|usb-ehci|usb-tablet|usb-storage|usb-mouse| usb-kbd|virtserialport|virtconsole|virtio-serial-pci|i82559er| virtio-scsi-pci|scsi-cd|scsi-hd|scsi-generic|scsi-disk|scsi-block| pci-serial|pci-serial-2x|pci-serial-4x|ich9-ahci|usb-host|usb-serial| usb-wacom-tablet|usb-braille|usb-net|pci-ohci|virtio-rng-pci|i6300esb| qxl|qxl-vga|pvpanic|vfio-pci|ivshmem-doorbell|ivshmem-plain| pci-bridge|megasas-gen2|e1000e|e1000|vmcoreinfo|pcie-pci-bridge| vhost-user-blk|vhost-user-blk-pci|vhost-user-scsi|vhost-user-scsi-pci| vhost-vsock-pci|virtio-crypto-pci|virtio-vga| vhost-scsi-pci-non-transitional|vhost-scsi-pci-transitional| vhost-user-blk-pci-non-transitional|vhost-user-blk-pci-transitional| vhost-user-scsi-pci-non-transitional|vhost-user-scsi-pci-transitional| vhost-vsock-pci-non-transitional|vhost-vsock-pci-transitional| virtio-9p-pci-non-transitional|virtio-9p-pci-transitional| virtio-balloon-pci-non-transitional|virtio-balloon-pci-transitional| virtio-blk-pci-non-transitional|virtio-blk-pci-transitional| virtio-input-host-pci-non-transitional| virtio-input-host-pci-transitional|virtio-net-pci-non-transitional| virtio-net-pci-transitional|virtio-rng-pci-non-transitional| virtio-rng-pci-transitional|virtio-scsi-pci-non-transitional| virtio-scsi-pci-transitional|virtio-serial-pci-non-transitional| virtio-serial-pci-transitional|vhost-user-fs-pci|vhost-user-gpu| vhost-user-pci-pci|vhost-user-input|vhost-user-input-pci| vhost-user-vga|virtio-mmio] (the following are aliases of these supported devices: ahci| virtio-blk|virtio-net|virtio-serial|virtio-balloon| virtio-9p| virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet| virtio-gpu|virtio-scsi|virtio-rng|e1000-82540em) -dfilter range, ... -display ... -drive ... (if specified if=[virtio] and format=[qcow2|raw] and snapshot=off only) -echr ... -enable-fips -enable-kvm -fsdev ... -full-screen -fw_cfg ... -gdb ... -global ... -h -help -incoming ... -initrd ... -iscsi ... -k ... -kernel ... -loadvm ... -m ... -M [help|?|none|virt|virt-2.6|virt-2.11|virtio-3.1|virt-4.2] -machine [help|?|none|virt|virt-2.6|virt-2.11|virt-3.1|virt-4.2] -mem-path ... -mem-prealloc -mon ... -monitor ... -msg ... -name ... -net [bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139, and virtio are supported) -netdev [bridge|tap|user] ... -nic ... -no-acpi -nodefaults -nographic -no-quit -no-reboot -no-shutdown -no-user-config -object ... -only-migratable -parallel ... -pidfile ... -plugin ... -qmp ... -qmp-pretty ... -readconfig ... -realtime ... -rtc ... -runas ... -s -S -sandbox ... -seed ... -serial ... -show-cursor -smbios ... -smp ... -spice -tpmdev passthrough ... -trace ... -usb -usbdevice [braile|disk|host|mouse|net|serial|tablet] -uuid .. -version -vga [none|qxl|std|virtio] -virtfs ... -vnc ... -watchdog ... -watchdog-action ... -writeconfig ... - The following monitor commands are supported: ? announce_self ... balloon ... block_resize ... boot_set ... c change ... chardev-add ... chardev-change ... chardev-remove ... chardev-send-break ... client_migrate_info ... closefd ... cont cpu ... cpu-add ... delvm ... device_add ... device_del ... drive_add ... drive_backup ... drive_del ... dump_guest_memory ... eject ... gdbserver ... gpa2hpa ... gpa2hva ... gva2gpa ... help i ... info ... loadvm ... logfile ... logitem ... mce ... memsave ... migrate ... migrate_cancel migrate_continue ... migrate_incoming migrate_pause migrate_recover ... migrate_set_cache_size ... migrate_set_capability ... migrate_set_downtime ... migrate_set_parameter ... migrate_set_speed ... migrate_start_post_copy mouse_button ... mouse_move ... mouse_set ... nmi ... o ... object_add ... object_del ... p ... pmemsave ... print ... q qemu-io ... qom-list qom-set ringbuf_read ... ringbuf_write ... savevm ... screendump ... sendkey ... snapshot_blkdev_internal ... snapshot_delete_blkdev_internal ... stop sum ... system_powerdown system_reset system_wakeup trace-event ... watchdog_action ... x ... xp ... - The following QMP commands are supported: add_client add-fd announce-self balloon blockdev-add blockdev-backup blockdev-change-medium blockdev-close-tray blockdev-create blockdev-del blockdev-mirror blockdev-open-tray blockdev-snapshot blockdev-snapshot-delete-internal-sync blockdev-snapshot-internal-sync blockdev-snapshot-sync block-commit block-dirty-bitmap-add block-dirty-bitmap-clear block-dirty-bitmap-disable block-dirty-bitmap-enable block-dirty-bitmap-merge block-dirty-bitmap-remove block-latency-histogram-set block_passwd block_resize block_set_io_throttle block-set-write-threshold block_stream change change-vnc-password chardev-add chardev-change chardev-remove chardev-send-break client_migrate_info closefd cont cpu cpu-add device_add device_del device-list-properties dump-guest-memory eject expire_password getfd human-monitor-command inject-nmi input-send-event job-cancel job-complete job-dismiss job-finalize job-pause job-resume memsave migrate migrate_cancel migrate-continue migrate-incoming migrate-pause migrate-resume migrate-set-cache-size migrate-set-capabilities migrate_set_downtime migrate_set_speed migrate-set-parameters migrate-start-postcopy object-add object-del pmemsave qmp_capabilities qom-get qom-list qom-list-types qom-set query-acpi-ospm-status query-balloon query-block query-block-jobs query-blockstats query-chardev query-chardev-backends query-command-line-options query-commands query-cpu-definitions query-cpu-model-baseline query-cpu-model-comparison query-cpu-model-expansion query-cpus query-cpus-fast query-current-machine query-display-options query-dump query-dump-guest-memory-capability query-events query-fdsets query-gic-capabilities query-hotpluggable-cpus query-iothreads query-jobs query-kvm query-machines query-memdev query-memory-devices query-memory-size-summary query-mice query-migrate query-migrate-cache-size query-migrate-capabilities query-migrate-parameters query-name query-named-block-nodes query-pci query-pr-managers query-qmp-schema query-rocker query-rocker-of-dpa-flows query-rocker-of-dpa-groups query-rocker-ports query-rx-filter query-spice query-status query-target query-tpm query-tpm-models query-tpm-types query-uuid query-version query-vnc query-vnc-servers query-xen-replication-status quit remove-fd ringbuf-read ringbuf-write rtc-reset-reinjection screendump send-key set_link set_password stop system_powerdown system_reset system_wakeup trace-event-get-state trace-event-set-state transaction watchdog-set-action - The following command line options are unsupported: -acpitable ... -chroot ... -cpu ... (all except host) -curses -device [160s33b|320s33b|640s33b|a15mpcore_priv|a9mpcore_priv|a9-scu|adlib| ads7846|allwinner-a10|allwinner-a10-pic|allwinner-A10-timer| allwinner-emac|amd-iommu|AMDVI-PCI|arm1026-arm-cpu|arm1136-arm-cpu| arm1136-r2-arm-cpu|arm1176-arm-cpu|arm11mpcore-arm-cpu| arm11mpcore_priv|arm11-scu|arm926-arm-cpu|arm946-arm-cpu| ARMbitband-memory|arm.cortex-a9-global-timer|arm_gic|arm-gicv2m| arm_mptimer|armv7m_nvic|aspeed.timer|aspeed.vic|ast2400| at25128a-nonjedec|at25256a-nonjedec|at25df041a|at25df321a|at25df641| at25fs010|at25fs040|at26df081a|at26df161a|at26df321|at26f004| at45db081d|bcm2835-aux|bcm2835-dma|bcm2835-fb|bcm2835-ic|bcm2835-mbox| bcm2835-peripherals|bcm2835-property|bcm2836|bcm2836-control| bochs-display|cadence_gem|cadence_ttc|cadence_uart|ccid-card-emulated| ccid-card-passthru|cfi.pflash02|cirrus-vga|cmsdk-apb-dualtimer| cmsdk-apb-watchdog|corgi-ssp|cortex-a15-arm-cpu|cortex-a53-arm-cpu| cortex-a57-arm-cpu|cortex-a72-arm-cpu|cortex-a8-arm-cpu| cortex-a9-arm-cpu|cortex-m0-arm-cpu|cortex-m3-arm-cpu| cortex-m4-arm-cpu|cortex-r5-arm-cpu|cs4231a|digic|digic-timer| digic-uart|ds1338|dscm1xxxx|e1000|en25f32|en25p32|en25p64|en25q32b| en25q64|exynos4210.combiner|exynos4210-ehci-usb|exynos4210.fimd| exynos4210.gic|exynos4210.i2c|exynos4210.irq_gate|exynos4210.mct| exynos4210.pmu|exynos4210.pwm|exynos4210.rtc|exynos4210.uart|floppy| fsl,imx6ul|fslimx25|fslimx31|fusbh200-ehci-usb|fw_cfg|gd25q32|gd25q64| gpex-pcihost|gpex-root|gpio_i2c|gpio-key|gus|hyperv-testdev| highbank-regs|host-arm-cpu|*-i386-cpu|i8042|ib700|icp-ctrl-regs| igd-passthrough-isa-bridge|imx25.ccm|imx31.ccm|imx6.ccm|imx.avic| imx.epit|imx.fec|imx.gpio|imx.gpt|imx.i2c|imx.serial|imx6ul.ccm| integrator_core|integrator_debug|integrator_pic|integrator_pit| intel_iommu|iotkit-sysctl|iotkit-sysinfo|ipmi-bmc-extern|ipmi-bmc-sim| isa-applesmc|isa-cirrus-vga|isa-debugcon|isa-debug-exit|isa-fdc| isa-ide|isa-ipmi-bt|isa-ipmi-kcs|isa-parallel|isa-vga|kvaser_pci| kvm-arm-gic|kvm-arm-gicv3|l2x0|lan9118|lm8323|loader|lsi53c810a| lsi53c895a|m25p05|m25p10|m25p128|m25p16|m25p20|m25p32|m25p40|m25p64| m25p80|m25pe16|m25pe20|m25pe80|m25px32|m25px32-s0|m25px32-s1|m25px64| m45pe10|m45pe16|m45pe80|mainstone-fpga|max1110|max1111|max7310| mioe3680_pci|msf2-soc|msf2-sysreg|mss-sp1|mss-timer|musicpal_gpio| musicpal_key|musicpal_lcd|musicpal-misc|mv88w8618_audio|mv88w8618_eth| mv88w8618_flashcfg|mv88w8618_pic|mv88w8618_pit|mv88w8618_wlan| mx25l12805d|mx25l12855e|mx25l1606e|mx25l2005a|mx25l25635e|mx25l25655e| mx25l3205d|mx25l4005a|mx25l6405d|mx25l8005|n25q032|n25q032a11| n25q032a13|n25q064|n25q064a11|n25q064a13|n25q128|n25q128a11| n25q128a13|n25q256a|n25q256a11|n25q256a13|n25q512a|n25q512a11| n25q512a13|nand|ne2k_isa|nrf51-soc|nrf51_soc.uart|nvdimm|omap2-gpio| omap2-intc|omap-gpio|omap_i2c|omap-intc|onenand|pc-dimm|pc-testdev| piix3-ide|piix3-ide|piix3-ide-xen|piix3-usb-uhci|pl011|pl011_luminary| pl022|pl031|pl041|pl050_keyboard|pl050_mouse|pl061|pl061_luminary| pl080|pl081|pl110|pl110_versatile|pl111|pl181|pl190|pl330| platform-bus-device|pvrdma|pxa250-arm-cpu|pxa255-arm-cpu|pxa25x-timer| pxa260-arm-cpu|pxa261-arm-cpu|pxa262-arm-cpu|pxa270-a0-arm-cpu| pxa270-a1-arm-cpu|pxa270-arm-cpu|pxa270-b0-arm-cpu|pxa270-b1-arm-cpu| pxa270-c0-arm-cpu|pxa270-c5-arm-cpu|pxa27x-timer|pxa2xx-dma| pxa2xx-fir|pxa2xx-gpio|pxa2xx_i2c|pxa2xx-i2c-slave|pxa2xx-mmci| pxa2xx-pcmcia|pxa2xx_pic|pxa2xx_rtc|pxa2xx-ssp|ramfb|realview_gic| realview_mpcore|realview_pci|realview_sysctl|s25fl016k|s25fl064k| s25fl129p0|s25fl129p1|s25fl256s0|s25fl256s1|s25fl512s|s25sl004a| s25sl008a|s25sl016a|s25sl032a|s25sl032p|s25sl064a|s25sl064p| s25sl12800|s25sl12801|s70fl01gs|sa1100-arm-cpu|sa1110-arm-cpu|sb16| scoop|sdhci-pci|sga|sii9022|sl-nand|smbus-eeprom|smc91c111|sp804| spitz-keyboard|spitz-lcdtg|ssd0303|ssd0323|sst25vf016b|sst25vf032b| sst25vf040b|sst25vf080b|sst25wf010|sst25wf020|sst25wf040| sst25wf080| sst25wf512|stellaris-adc|stellaris_enet|stellaris-gptm|stellaris-i2c| stm32f205-soc|stm32f2xx-syscfg|stm32f2xx-timer|stm32f2xx-usart| strongarm-gpio|strongarm_pic|strongarm-ppc|strongarm-rtc| strongarm-ssp|strongarm-uart|tegra2-ehci-usb|ti925t-arm-cpu|tmp105| tosa_dac|tosa-ssp|tusb6010|twl92230|tz-msc|usb-redir|versatile_i2c| versatilepb_sic|versatile_pci|versatile_pci_host|vfio-pci-nohotplug| vfio-platform|vhost-vsock-device|virtconsole|virtio-crypto-device| vmgenid|vmware-svga|w25q256|w25q32|w25q32dw|w25q64|w25q80|w25q80bl| w25x10|w25x16|w25x20|w25x32|w25x40|w25x64|w25x80|wm8750|*-x86_64-cpu| xen-backend|xen-pci-passthrough|xen-platform|xen-pvdevice|xgmac| xilinxzynq_slcr|xlnx-versal|xlnx.ps7-qspi|xlnx.ps7-spi|xlnxzynqmp| xlnxzynq-xadc|armsse-cpuid|armsse-mhu|cpu-cluster|luminary-watchdog| microbit.i2c|nrf51_soc.gpio|nrf51_soc.nvm|nrf51_soc.rng| nrf51_soc.timer|platform-ehci-usb|sse-200|vmware-svga|vmxnet3|ati-vga| cirrus-vga|vhost-user-fs-device|tulip|ati-vga|aw-hc-ehci-usb| virtio-iommu-device|virtio-iommu-pci| virtio-iommu-pci-non-transitional|virtio-iommu-pci-transitional| cortex-m7-arm-cpu|allwinner-cpucfg|allwinner-h3|allwinner-h3-ccu| allwinner-h3-dramc|allwinner-h3-sysctrl|allwinner-rtc-sun4i| allwinner-rtc-sun6i|allwinner-rtc-sun7i|allwinner-sdhost-sun4i| allwinner-sdhost-sun5i|allwinner-sid|allwinner-sun8i-emac|imx.rngc| imx.usbphy|serial|serial-io|stm32f405-soc|stm32f4xx-exti| stm32f4xx-syscfg|tpm-tis-device|nvdimm|vhost-user-vsock-device|i vhost-user-vsock-pci|vhost-user-vsock-pci-non-transitional| vhost-user-vsock-pci-transitional] (the following are aliases of these unsupported devices: lsi| piix3-usb-uhci) (note that some of these device names represent supported devices and are used internally, but are not specifyable via -device even though they appear in the list of devices) -drive ,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or raw] -dtb file -enable-hax -enable-sync-profile -fda/-fdb ... -g ... -hda/-hdb/-hdc/-hdd ... -icount ... -L ... -M [akita|ast2500-evb|ast2600-evb|borzoi|canon-a1100|cheetah|collie|connex| cubieboard|highbank|imx25-pdk|integratorcp|kzm|lm3s6965evb|lm3s811evb| mainstone|mcimx6ul-evk|mcimx7d-sabre|microbit|midway|mps2-an385|mps2-an505| mps2-an511|mps2-an521|musca-a|musca-b1|musicpal|n800|n810|netduino2| netduinoplus2|nuri|orangepi-pc|palmetto-bmc|raspi2|raspi3|realview-eb| realview-eb-mpcore|realview-pb-a8|realview-pbx-a9|romulus-bmc|sabrelite| sbsa-ref|smdkc210|sonorapass-bmc|spitz|swift-bmc|sx1|sx1-v1|tacoma-bmc| terrier|tosa|verdex|versatileab|versatilepb|vexpress-a15|vexpress-a9| virt-2.7|virt-2.8|virt-2.12|virt-3.0|virt-4.0|virt-4.1|virt-5.0|virt-5.1| witherspoon-bmc|xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102|z2] -machine [akita|ast2500-evb|ast2600-evb|borzoi|canon-a1100|cheetah|collie| connex|cubieboard|highbank|imx25-pdk|integratorcp|kzm|lm3s6965evb| lm3s811evb|mainstone|mcimx6ul-evk|mcimx7d-sabre|microbit|midway| mps2-an385|mps2-an521|mps2-an505|mps2-an511|musca-a|musca-b1| musicpal|n800|n810|netduino2|netduinoplus2|nuri|orangepi-pc| palmetto-bmc|raspi2|raspi3|realview-eb|realview-eb-mpcore| realview-pb-a8|realview-pbx-a9|romulus-bmc|sabrelite|sbsa-ref| smdkc210|sonorapass-bmc|spitz|swift-bmc|sx1|sx1-v1|tacoma-bmc| terrier|tosa|verdex|versatileab|versatilepb|vexpress-a15|vexpress-a9| virt-2.7|virt-2.8|virt-2.12|virt-3.0|virt-4.0|virt-4.1|virt-5.0| virt-5.1|witherspoon-bmc|xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102| z2] -mtdblock file -net [dump|socket|vde] ... -netdev [dump|hubport|l2tpv3|socket|vde] ... -no-fd-bootchk -no-hpet -no-kvm -no-kvm-irqchip -no-kvm-pit -no-kvm-pit-reinjection -numa cpu ... -numa dist ... -numa node ... -option-rom ... -overcommit ... -pflash file -portrait -preconfig -prom-env ... -qtest ... -qtest-log ... -rotate -sd file -sdl -set ... -singlestep -snapshot -soundhw ... -tb-size ... -tpmdev emulator ... -vga [cg3|tcx|virtio|cirrus|xenfb] -win2k-hack -xen-attach ... -xen-domid ... -xen-domid-restrict ... - The following monitor commands are unsupported: acl_add ... acl_policy ... acl_remove ... acl_reset ... acl_show ... block_job_cancel ... block_job_complete ... block_job_pause ... block_job_resume ... block_job_set_speed ... block_passwd ... commit ... drive_mirror ... exit_preconfig expire_password ... hostfwd_add ... hostfwd_remove ... nbd_server_add ... nbd server_start ... nbd_server_stop ... netdev_add netdev_del ... pcie_aer_inject_error ... set_link ... set_password ... singlestep ... snapshot_blkdev ... stopcapture ... sync-profile ... wavcapture ... x_colo_lost_heartbeat - The following QMP commands are unsupported: block-job-cancel block-job-complete block-job-pause block-job-resume block-job-set-speed change-backing-file drive-backup drive-mirror dump-skeys netdev_add netdev_del nbd-server-add nbd-server-start nbd-server-stop query-colo-status query-sev query-sev-launch-measure x-blockdev-amend x-blockdev-change x-blockdev-insert-medium x-blockdev-remove-medium x-blockdev-reopen x-colo-lost-heartbeat x-debug-block-dirty-bitmap-sha256 x-debug-query-block-graph x-exit-preconfig xen-colo-do-checkpoint xen-load-devices-state xen-save-devices-state xen-set-global-dirty-log xen-set-replication