]>
Commit | Line | Data |
---|---|---|
44c67847 MA |
1 | @node Deprecated features |
2 | @appendix Deprecated features | |
3 | ||
4 | In general features are intended to be supported indefinitely once | |
5 | introduced into QEMU. In the event that a feature needs to be removed, | |
6 | it will be listed in this appendix. The feature will remain functional | |
7 | for 2 releases prior to actual removal. Deprecated features may also | |
8 | generate warnings on the console when QEMU starts up, or if activated | |
9 | via a monitor command, however, this is not a mandatory requirement. | |
10 | ||
11 | Prior to the 2.10.0 release there was no official policy on how | |
12 | long features would be deprecated prior to their removal, nor | |
13 | any documented list of which features were deprecated. Thus | |
14 | any features deprecated prior to 2.10.0 will be treated as if | |
15 | they were first deprecated in the 2.10.0 release. | |
16 | ||
17 | What follows is a list of all features currently marked as | |
18 | deprecated. | |
19 | ||
44c67847 MA |
20 | @section System emulator command line arguments |
21 | ||
91c082ad TH |
22 | @subsection -machine enforce-config-section=on|off (since 3.1) |
23 | ||
24 | The @option{enforce-config-section} parameter is replaced by the | |
25 | @option{-global migration.send-configuration=@var{on|off}} option. | |
26 | ||
44c67847 MA |
27 | @subsection -no-kvm (since 1.3.0) |
28 | ||
29 | The ``-no-kvm'' argument is now a synonym for setting | |
30 | ``-machine accel=tcg''. | |
31 | ||
44c67847 MA |
32 | @subsection -usbdevice (since 2.10.0) |
33 | ||
34 | The ``-usbdevice DEV'' argument is now a synonym for setting | |
35 | the ``-device usb-DEV'' argument instead. The deprecated syntax | |
36 | would automatically enable USB support on the machine type. | |
37 | If using the new syntax, USB support must be explicitly | |
38 | enabled via the ``-machine usb=on'' argument. | |
39 | ||
44c67847 MA |
40 | @subsection -drive file=json:@{...@{'driver':'file'@}@} (since 3.0) |
41 | ||
42 | The 'file' driver for drives is no longer appropriate for character or host | |
43 | devices and will only accept regular files (S_IFREG). The correct driver | |
44 | for these file types is 'host_cdrom' or 'host_device' as appropriate. | |
45 | ||
101625a4 TH |
46 | @subsection -net ...,name=@var{name} (since 3.1) |
47 | ||
48 | The @option{name} parameter of the @option{-net} option is a synonym | |
49 | for the @option{id} parameter, which should now be used instead. | |
50 | ||
bc1fb850 IM |
51 | @subsection -smp (invalid topologies) (since 3.1) |
52 | ||
53 | CPU topology properties should describe whole machine topology including | |
54 | possible CPUs. | |
55 | ||
56 | However, historically it was possible to start QEMU with an incorrect topology | |
57 | where @math{@var{n} <= @var{sockets} * @var{cores} * @var{threads} < @var{maxcpus}}, | |
58 | which could lead to an incorrect topology enumeration by the guest. | |
59 | Support for invalid topologies will be removed, the user must ensure | |
60 | topologies described with -smp include all possible cpus, i.e. | |
61 | @math{@var{sockets} * @var{cores} * @var{threads} = @var{maxcpus}}. | |
62 | ||
55cf09a0 DB |
63 | @subsection -vnc acl (since 4.0.0) |
64 | ||
65 | The @code{acl} option to the @code{-vnc} argument has been replaced | |
66 | by the @code{tls-authz} and @code{sasl-authz} options. | |
67 | ||
f0b3d811 KZ |
68 | @subsection QEMU_AUDIO_ environment variables and -audio-help (since 4.0) |
69 | ||
70 | The ``-audiodev'' argument is now the preferred way to specify audio | |
71 | backend settings instead of environment variables. To ease migration to | |
72 | the new format, the ``-audiodev-help'' option can be used to convert | |
73 | the current values of the environment variables to ``-audiodev'' options. | |
74 | ||
3c45f625 KW |
75 | @subsection -mon ...,control=readline,pretty=on|off (since 4.1) |
76 | ||
77 | The @code{pretty=on|off} switch has no effect for HMP monitors, but is | |
78 | silently ignored. Using the switch with HMP monitors will become an | |
79 | error in the future. | |
80 | ||
583f34c4 TH |
81 | @subsection -realtime (since 4.1) |
82 | ||
83 | The @code{-realtime mlock=on|off} argument has been replaced by the | |
84 | @code{-overcommit mem-lock=on|off} argument. | |
85 | ||
6e4199af GK |
86 | @subsection -virtfs_synth (since 4.1) |
87 | ||
88 | The ``-virtfs_synth'' argument is now deprecated. Please use ``-fsdev synth'' | |
89 | and ``-device virtio-9p-...'' instead. | |
90 | ||
44c67847 MA |
91 | @section QEMU Machine Protocol (QMP) commands |
92 | ||
93 | @subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0) | |
94 | ||
95 | "autoload" parameter is now ignored. All bitmaps are automatically loaded | |
96 | from qcow2 images. | |
97 | ||
4db6ceb0 JS |
98 | @subsection query-block result field dirty-bitmaps[i].status (since 4.0) |
99 | ||
100 | The ``status'' field of the ``BlockDirtyInfo'' structure, returned by | |
101 | the query-block command is deprecated. Two new boolean fields, | |
102 | ``recording'' and ``busy'' effectively replace it. | |
103 | ||
44c67847 MA |
104 | @subsection query-cpus (since 2.12.0) |
105 | ||
106 | The ``query-cpus'' command is replaced by the ``query-cpus-fast'' command. | |
107 | ||
108 | @subsection query-cpus-fast "arch" output member (since 3.0.0) | |
109 | ||
110 | The ``arch'' output member of the ``query-cpus-fast'' command is | |
111 | replaced by the ``target'' output member. | |
112 | ||
c73e661f KC |
113 | @subsection cpu-add (since 4.0) |
114 | ||
115 | Use ``device_add'' for hotplugging vCPUs instead of ``cpu-add''. See | |
116 | documentation of ``query-hotpluggable-cpus'' for additional | |
117 | details. | |
118 | ||
9d7b7086 MA |
119 | @subsection query-events (since 4.0) |
120 | ||
121 | The ``query-events'' command has been superseded by the more powerful | |
122 | and accurate ``query-qmp-schema'' command. | |
123 | ||
a9b305ba MAL |
124 | @subsection chardev client socket with 'wait' option (since 4.0) |
125 | ||
126 | Character devices creating sockets in client mode should not specify | |
127 | the 'wait' field, which is only applicable to sockets in server mode | |
128 | ||
e9b24fb9 | 129 | @section Human Monitor Protocol (HMP) commands |
68cb29ea TH |
130 | |
131 | @subsection The hub_id parameter of 'hostfwd_add' / 'hostfwd_remove' (since 3.1) | |
132 | ||
133 | The @option{[hub_id name]} parameter tuple of the 'hostfwd_add' and | |
134 | 'hostfwd_remove' HMP commands has been replaced by @option{netdev_id}. | |
135 | ||
dc15043e | 136 | @subsection cpu-add (since 4.0) |
3800db78 KC |
137 | |
138 | Use ``device_add'' for hotplugging vCPUs instead of ``cpu-add''. See | |
139 | documentation of ``query-hotpluggable-cpus'' for additional details. | |
140 | ||
01438407 DB |
141 | @subsection acl_show, acl_reset, acl_policy, acl_add, acl_remove (since 4.0.0) |
142 | ||
143 | The ``acl_show'', ``acl_reset'', ``acl_policy'', ``acl_add'', and | |
144 | ``acl_remove'' commands are deprecated with no replacement. Authorization | |
145 | for VNC should be performed using the pluggable QAuthZ objects. | |
146 | ||
8903bf6e AF |
147 | @section System emulator CPUS |
148 | ||
149 | @subsection RISC-V ISA CPUs (since 4.1) | |
150 | ||
151 | The RISC-V cpus with the ISA version in the CPU name have been depcreated. The | |
152 | four CPUs are: ``rv32gcsu-v1.9.1``, ``rv32gcsu-v1.10.0``, ``rv64gcsu-v1.9.1`` and | |
153 | ``rv64gcsu-v1.10.0``. Instead the version can be specified via the CPU ``priv_spec`` | |
154 | option when using the ``rv32`` or ``rv64`` CPUs. | |
d64db71c AF |
155 | |
156 | @subsection RISC-V ISA CPUs (since 4.1) | |
157 | ||
158 | The RISC-V no MMU cpus have been depcreated. The two CPUs: ``rv32imacu-nommu`` and | |
159 | ``rv64imacu-nommu`` should no longer be used. Instead the MMU status can be specified | |
160 | via the CPU ``mmu`` option when using the ``rv32`` or ``rv64`` CPUs. | |
8903bf6e | 161 | |
44c67847 MA |
162 | @section System emulator devices |
163 | ||
c0188e69 TH |
164 | @subsection bluetooth (since 3.1) |
165 | ||
166 | The bluetooth subsystem is unmaintained since many years and likely bitrotten | |
167 | quite a bit. It will be removed without replacement unless some users speaks | |
168 | up at the @email{qemu-devel@@nongnu.org} mailing list with information about | |
169 | their usecases. | |
170 | ||
44c67847 MA |
171 | @section System emulator machines |
172 | ||
cc425b5d | 173 | @subsection pc-0.12, pc-0.13, pc-0.14 and pc-0.15 (since 4.0) |
44c67847 MA |
174 | |
175 | These machine types are very old and likely can not be used for live migration | |
176 | from old QEMU versions anymore. A newer machine type should be used instead. | |
177 | ||
93323287 HP |
178 | @subsection prep (PowerPC) (since 3.1) |
179 | ||
180 | This machine type uses an unmaintained firmware, broken in lots of ways, | |
181 | and unable to start post-2004 operating systems. 40p machine type should be | |
182 | used instead. | |
183 | ||
cd69e3a6 AF |
184 | @subsection spike_v1.9.1 and spike_v1.10 (since 4.1) |
185 | ||
186 | The version specific Spike machines have been deprecated in favour of the | |
187 | generic ``spike`` machine. If you need to specify an older version of the RISC-V | |
188 | spec you can use the ``-cpu rv64gcsu,priv_spec=v1.9.1`` command line argument. | |
189 | ||
44c67847 MA |
190 | @section Device options |
191 | ||
192 | @subsection Block device options | |
193 | ||
194 | @subsubsection "backing": "" (since 2.12.0) | |
195 | ||
196 | In order to prevent QEMU from automatically opening an image's backing | |
197 | chain, use ``"backing": null'' instead. | |
198 | ||
3bebd37e JC |
199 | @subsubsection rbd keyvalue pair encoded filenames: "" (since 3.1.0) |
200 | ||
201 | Options for ``rbd'' should be specified according to its runtime options, | |
202 | like other block drivers. Legacy parsing of keyvalue pair encoded | |
203 | filenames is useful to open images with the old format for backing files; | |
204 | These image files should be updated to use the current format. | |
205 | ||
206 | Example of legacy encoding: | |
207 | ||
208 | @code{json:@{"file.driver":"rbd", "file.filename":"rbd:rbd/name"@}} | |
209 | ||
210 | The above, converted to the current supported format: | |
211 | ||
212 | @code{json:@{"file.driver":"rbd", "file.pool":"rbd", "file.image":"name"@}} | |
0ae2d546 EB |
213 | |
214 | @section Related binaries | |
215 | ||
216 | @subsection qemu-nbd --partition (since 4.0.0) | |
217 | ||
218 | The ``qemu-nbd --partition $digit'' code (also spelled @option{-P}) | |
219 | can only handle MBR partitions, and has never correctly handled | |
220 | logical partitions beyond partition 5. If you know the offset and | |
221 | length of the partition (perhaps by using @code{sfdisk} within the | |
222 | guest), you can achieve the effect of exporting just that subset of | |
223 | the disk by use of the @option{--image-opts} option with a raw | |
224 | blockdev using the @code{offset} and @code{size} parameters layered on | |
225 | top of any other existing blockdev. For example, if partition 1 is | |
226 | 100MiB long starting at 1MiB, the old command: | |
227 | ||
228 | @code{qemu-nbd -t -P 1 -f qcow2 file.qcow2} | |
229 | ||
230 | can be rewritten as: | |
231 | ||
232 | @code{qemu-nbd -t --image-opts driver=raw,offset=1M,size=100M,file.driver=qcow2,file.backing.driver=file,file.backing.filename=file.qcow2} | |
233 | ||
234 | Alternatively, the @code{nbdkit} project provides a more powerful | |
235 | partition filter on top of its nbd plugin, which can be used to select | |
236 | an arbitrary MBR or GPT partition on top of any other full-image NBD | |
237 | export. Using this to rewrite the above example results in: | |
238 | ||
239 | @code{qemu-nbd -t -k /tmp/sock -f qcow2 file.qcow2 &} | |
240 | @code{nbdkit -f --filter=partition nbd socket=/tmp/sock partition=1} | |
241 | ||
242 | Note that if you are exposing the export via /dev/nbd0, it is easier | |
243 | to just export the entire image and then mount only /dev/nbd0p1 than | |
244 | it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a | |
245 | subset of the image. |