1@node Deprecated features 2@appendix Deprecated features 3 4In general features are intended to be supported indefinitely once 5introduced into QEMU. In the event that a feature needs to be removed, 6it will be listed in this appendix. The feature will remain functional 7for 2 releases prior to actual removal. Deprecated features may also 8generate warnings on the console when QEMU starts up, or if activated 9via a monitor command, however, this is not a mandatory requirement. 10 11Prior to the 2.10.0 release there was no official policy on how 12long features would be deprecated prior to their removal, nor 13any documented list of which features were deprecated. Thus 14any features deprecated prior to 2.10.0 will be treated as if 15they were first deprecated in the 2.10.0 release. 16 17What follows is a list of all features currently marked as 18deprecated. 19 20@section Build options 21 22@subsection GTK 2.x 23 24Previously QEMU has supported building against both GTK 2.x 25and 3.x series APIs. Support for the GTK 2.x builds will be 26discontinued, so maintainers should switch to using GTK 3.x, 27which is the default. 28 29@subsection SDL 1.2 30 31Previously QEMU has supported building against both SDL 1.2 32and 2.0 series APIs. Support for the SDL 1.2 builds will be 33discontinued, so maintainers should switch to using SDL 2.0, 34which is the default. 35 36@section System emulator command line arguments 37 38@subsection -no-kvm (since 1.3.0) 39 40The ``-no-kvm'' argument is now a synonym for setting 41``-machine accel=tcg''. 42 43@subsection -vnc tls (since 2.5.0) 44 45The ``-vnc tls'' argument is now a synonym for setting 46``-object tls-creds-anon,id=tls0'' combined with 47``-vnc tls-creds=tls0' 48 49@subsection -vnc x509 (since 2.5.0) 50 51The ``-vnc x509=/path/to/certs'' argument is now a 52synonym for setting 53``-object tls-creds-x509,dir=/path/to/certs,id=tls0,verify-peer=no'' 54combined with ``-vnc tls-creds=tls0' 55 56@subsection -vnc x509verify (since 2.5.0) 57 58The ``-vnc x509verify=/path/to/certs'' argument is now a 59synonym for setting 60``-object tls-creds-x509,dir=/path/to/certs,id=tls0,verify-peer=yes'' 61combined with ``-vnc tls-creds=tls0' 62 63@subsection -tftp (since 2.6.0) 64 65The ``-tftp /some/dir'' argument is replaced by either 66``-netdev user,id=x,tftp=/some/dir '' (for pluggable NICs, accompanied 67with ``-device ...,netdev=x''), or ``-nic user,tftp=/some/dir'' 68(for embedded NICs). The new syntax allows different settings to be 69provided per NIC. 70 71@subsection -bootp (since 2.6.0) 72 73The ``-bootp /some/file'' argument is replaced by either 74``-netdev user,id=x,bootp=/some/file '' (for pluggable NICs, accompanied 75with ``-device ...,netdev=x''), or ``-nic user,bootp=/some/file'' 76(for embedded NICs). The new syntax allows different settings to be 77provided per NIC. 78 79@subsection -redir (since 2.6.0) 80 81The ``-redir [tcp|udp]:hostport:[guestaddr]:guestport'' argument is 82replaced by either 83``-netdev user,id=x,hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport'' 84(for pluggable NICs, accompanied with ``-device ...,netdev=x'') or 85``-nic user,hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport'' 86(for embedded NICs). The new syntax allows different settings to be 87provided per NIC. 88 89@subsection -smb (since 2.6.0) 90 91The ``-smb /some/dir'' argument is replaced by either 92``-netdev user,id=x,smb=/some/dir '' (for pluggable NICs, accompanied 93with ``-device ...,netdev=x''), or ``-nic user,smb=/some/dir'' 94(for embedded NICs). The new syntax allows different settings to be 95provided per NIC. 96 97@subsection -drive cyls=...,heads=...,secs=...,trans=... (since 2.10.0) 98 99The drive geometry arguments are replaced by the the geometry arguments 100that can be specified with the ``-device'' parameter. 101 102@subsection -drive serial=... (since 2.10.0) 103 104The drive serial argument is replaced by the the serial argument 105that can be specified with the ``-device'' parameter. 106 107@subsection -drive addr=... (since 2.10.0) 108 109The drive addr argument is replaced by the the addr argument 110that can be specified with the ``-device'' parameter. 111 112@subsection -usbdevice (since 2.10.0) 113 114The ``-usbdevice DEV'' argument is now a synonym for setting 115the ``-device usb-DEV'' argument instead. The deprecated syntax 116would automatically enable USB support on the machine type. 117If using the new syntax, USB support must be explicitly 118enabled via the ``-machine usb=on'' argument. 119 120@subsection -nodefconfig (since 2.11.0) 121 122The ``-nodefconfig`` argument is a synonym for ``-no-user-config``. 123 124@subsection -balloon (since 2.12.0) 125 126The @option{--balloon virtio} argument has been superseded by 127@option{--device virtio-balloon}. 128 129@subsection -machine s390-squash-mcss=on|off (since 2.12.0) 130 131The ``s390-squash-mcss=on`` property has been obsoleted by allowing the 132cssid to be chosen freely. Instead of squashing subchannels into the 133default channel subsystem image for guests that do not support multiple 134channel subsystems, all devices can be put into the default channel 135subsystem image. 136 137@subsection -fsdev handle (since 2.12.0) 138 139The ``handle'' fsdev backend does not support symlinks and causes the 9p 140filesystem in the guest to fail a fair amount of tests from the PJD POSIX 141filesystem test suite. Also it requires the CAP_DAC_READ_SEARCH capability, 142which is not the recommended way to run QEMU. This backend should not be 143used and it will be removed with no replacement. 144 145@subsection -no-frame (since 2.12.0) 146 147The @code{--no-frame} argument works with SDL 1.2 only. The other user 148interfaces never implemented this in the first place. So this will be 149removed together with SDL 1.2 support. 150 151@subsection -rtc-td-hack (since 2.12.0) 152 153The @code{-rtc-td-hack} option has been replaced by 154@code{-rtc driftfix=slew}. 155 156@subsection -localtime (since 2.12.0) 157 158The @code{-localtime} option has been replaced by @code{-rtc base=localtime}. 159 160@subsection -startdate (since 2.12.0) 161 162The @code{-startdate} option has been replaced by @code{-rtc base=@var{date}}. 163 164@subsection -virtioconsole (since 3.0.0) 165 166Option @option{-virtioconsole} has been replaced by 167@option{-device virtconsole}. 168 169@subsection -clock (since 3.0.0) 170 171The @code{-clock} option is ignored since QEMU version 1.7.0. There is no 172replacement since it is not needed anymore. 173 174@subsection -enable-hax (since 3.0.0) 175 176The @option{-enable-hax} option has been replaced by @option{-accel hax}. 177Both options have been introduced in QEMU version 2.9.0. 178 179@subsection -drive file=json:@{...@{'driver':'file'@}@} (since 3.0) 180 181The 'file' driver for drives is no longer appropriate for character or host 182devices and will only accept regular files (S_IFREG). The correct driver 183for these file types is 'host_cdrom' or 'host_device' as appropriate. 184 185@section QEMU Machine Protocol (QMP) commands 186 187@subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0) 188 189"autoload" parameter is now ignored. All bitmaps are automatically loaded 190from qcow2 images. 191 192@subsection query-cpus (since 2.12.0) 193 194The ``query-cpus'' command is replaced by the ``query-cpus-fast'' command. 195 196@subsection query-cpus-fast "arch" output member (since 3.0.0) 197 198The ``arch'' output member of the ``query-cpus-fast'' command is 199replaced by the ``target'' output member. 200 201@section System emulator devices 202 203@subsection ivshmem (since 2.6.0) 204 205The ``ivshmem'' device type is replaced by either the ``ivshmem-plain'' 206or ``ivshmem-doorbell`` device types. 207 208@subsection Page size support < 4k for embedded PowerPC CPUs (since 2.12.0) 209 210qemu-system-ppcemb will be removed. qemu-system-ppc (or qemu-system-ppc64) 211should be used instead. That means that embedded 4xx PowerPC CPUs will not 212support page sizes < 4096 any longer. 213 214@section System emulator machines 215 216@subsection pc-0.10 and pc-0.11 (since 3.0) 217 218These machine types are very old and likely can not be used for live migration 219from old QEMU versions anymore. A newer machine type should be used instead. 220 221@section Device options 222 223@subsection Block device options 224 225@subsubsection "backing": "" (since 2.12.0) 226 227In order to prevent QEMU from automatically opening an image's backing 228chain, use ``"backing": null'' instead. 229 230@subsection vio-spapr-device device options 231 232@subsubsection "irq": "" (since 3.0.0) 233 234The ``irq'' property is obsoleted. 235