| @node Deprecated features |
| @appendix Deprecated features |
| |
| In general features are intended to be supported indefinitely once |
| introduced into QEMU. In the event that a feature needs to be removed, |
| it will be listed in this appendix. The feature will remain functional |
| for 2 releases prior to actual removal. Deprecated features may also |
| generate warnings on the console when QEMU starts up, or if activated |
| via a monitor command, however, this is not a mandatory requirement. |
| |
| Prior to the 2.10.0 release there was no official policy on how |
| long features would be deprecated prior to their removal, nor |
| any documented list of which features were deprecated. Thus |
| any features deprecated prior to 2.10.0 will be treated as if |
| they were first deprecated in the 2.10.0 release. |
| |
| What follows is a list of all features currently marked as |
| deprecated. |
| |
| @section Build options |
| |
| @subsection SDL 1.2 |
| |
| Previously QEMU has supported building against both SDL 1.2 |
| and 2.0 series APIs. Support for the SDL 1.2 builds will be |
| discontinued, so maintainers should switch to using SDL 2.0, |
| which is the default. |
| |
| @section System emulator command line arguments |
| |
| @subsection -machine enforce-config-section=on|off (since 3.1) |
| |
| The @option{enforce-config-section} parameter is replaced by the |
| @option{-global migration.send-configuration=@var{on|off}} option. |
| |
| @subsection -no-kvm (since 1.3.0) |
| |
| The ``-no-kvm'' argument is now a synonym for setting |
| ``-machine accel=tcg''. |
| |
| @subsection -usbdevice (since 2.10.0) |
| |
| The ``-usbdevice DEV'' argument is now a synonym for setting |
| the ``-device usb-DEV'' argument instead. The deprecated syntax |
| would automatically enable USB support on the machine type. |
| If using the new syntax, USB support must be explicitly |
| enabled via the ``-machine usb=on'' argument. |
| |
| @subsection -no-frame (since 2.12.0) |
| |
| The @code{--no-frame} argument works with SDL 1.2 only. The other user |
| interfaces never implemented this in the first place. So this will be |
| removed together with SDL 1.2 support. |
| |
| @subsection -virtioconsole (since 3.0.0) |
| |
| Option @option{-virtioconsole} has been replaced by |
| @option{-device virtconsole}. |
| |
| @subsection -clock (since 3.0.0) |
| |
| The @code{-clock} option is ignored since QEMU version 1.7.0. There is no |
| replacement since it is not needed anymore. |
| |
| @subsection -enable-hax (since 3.0.0) |
| |
| The @option{-enable-hax} option has been replaced by @option{-accel hax}. |
| Both options have been introduced in QEMU version 2.9.0. |
| |
| @subsection -drive file=json:@{...@{'driver':'file'@}@} (since 3.0) |
| |
| The 'file' driver for drives is no longer appropriate for character or host |
| devices and will only accept regular files (S_IFREG). The correct driver |
| for these file types is 'host_cdrom' or 'host_device' as appropriate. |
| |
| @subsection -net ...,name=@var{name} (since 3.1) |
| |
| The @option{name} parameter of the @option{-net} option is a synonym |
| for the @option{id} parameter, which should now be used instead. |
| |
| @subsection -smp (invalid topologies) (since 3.1) |
| |
| CPU topology properties should describe whole machine topology including |
| possible CPUs. |
| |
| However, historically it was possible to start QEMU with an incorrect topology |
| where @math{@var{n} <= @var{sockets} * @var{cores} * @var{threads} < @var{maxcpus}}, |
| which could lead to an incorrect topology enumeration by the guest. |
| Support for invalid topologies will be removed, the user must ensure |
| topologies described with -smp include all possible cpus, i.e. |
| @math{@var{sockets} * @var{cores} * @var{threads} = @var{maxcpus}}. |
| |
| @section QEMU Machine Protocol (QMP) commands |
| |
| @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0) |
| |
| "autoload" parameter is now ignored. All bitmaps are automatically loaded |
| from qcow2 images. |
| |
| @subsection query-cpus (since 2.12.0) |
| |
| The ``query-cpus'' command is replaced by the ``query-cpus-fast'' command. |
| |
| @subsection query-cpus-fast "arch" output member (since 3.0.0) |
| |
| The ``arch'' output member of the ``query-cpus-fast'' command is |
| replaced by the ``target'' output member. |
| |
| @section System emulator human monitor commands |
| |
| @subsection The hub_id parameter of 'hostfwd_add' / 'hostfwd_remove' (since 3.1) |
| |
| The @option{[hub_id name]} parameter tuple of the 'hostfwd_add' and |
| 'hostfwd_remove' HMP commands has been replaced by @option{netdev_id}. |
| |
| @subsection cpu-add (since 3.1) |
| |
| Use ``device_add'' for hotplugging vCPUs instead of ``cpu-add''. See |
| documentation of ``query-hotpluggable-cpus'' for additional details. |
| |
| @section System emulator devices |
| |
| @subsection ivshmem (since 2.6.0) |
| |
| The ``ivshmem'' device type is replaced by either the ``ivshmem-plain'' |
| or ``ivshmem-doorbell`` device types. |
| |
| @subsection bluetooth (since 3.1) |
| |
| The bluetooth subsystem is unmaintained since many years and likely bitrotten |
| quite a bit. It will be removed without replacement unless some users speaks |
| up at the @email{qemu-devel@@nongnu.org} mailing list with information about |
| their usecases. |
| |
| @section System emulator machines |
| |
| @subsection pc-0.10 and pc-0.11 (since 3.0) |
| |
| These machine types are very old and likely can not be used for live migration |
| from old QEMU versions anymore. A newer machine type should be used instead. |
| |
| @subsection prep (PowerPC) (since 3.1) |
| |
| This machine type uses an unmaintained firmware, broken in lots of ways, |
| and unable to start post-2004 operating systems. 40p machine type should be |
| used instead. |
| |
| @section Device options |
| |
| @subsection Block device options |
| |
| @subsubsection "backing": "" (since 2.12.0) |
| |
| In order to prevent QEMU from automatically opening an image's backing |
| chain, use ``"backing": null'' instead. |
| |
| @subsubsection rbd keyvalue pair encoded filenames: "" (since 3.1.0) |
| |
| Options for ``rbd'' should be specified according to its runtime options, |
| like other block drivers. Legacy parsing of keyvalue pair encoded |
| filenames is useful to open images with the old format for backing files; |
| These image files should be updated to use the current format. |
| |
| Example of legacy encoding: |
| |
| @code{json:@{"file.driver":"rbd", "file.filename":"rbd:rbd/name"@}} |
| |
| The above, converted to the current supported format: |
| |
| @code{json:@{"file.driver":"rbd", "file.pool":"rbd", "file.image":"name"@}} |
| |
| @subsection vio-spapr-device device options |
| |
| @subsubsection "irq": "" (since 3.0.0) |
| |
| The ``irq'' property is obsoleted. |