]> git.proxmox.com Git - qemu.git/blame - qemu-options.hx
vfio-pci: Fix debug build
[qemu.git] / qemu-options.hx
CommitLineData
5824d651
BS
1HXCOMM Use DEFHEADING() to define headings in both help text and texi
2HXCOMM Text between STEXI and ETEXI are copied to texi version and
3HXCOMM discarded from C version
ad96090a
BS
4HXCOMM DEF(option, HAS_ARG/0, opt_enum, opt_help, arch_mask) is used to
5HXCOMM construct option structures, enums and help message for specified
6HXCOMM architectures.
5824d651
BS
7HXCOMM HXCOMM can be used for comments, discarded from both texi and C
8
c8057f95
PM
9HXCOMM TODO : when we are able to change -help output without breaking
10HXCOMM libvirt we should update the help options which refer to -cpu ?,
11HXCOMM -driver ?, etc to use the preferred -cpu help etc instead.
12
5824d651
BS
13DEFHEADING(Standard options:)
14STEXI
15@table @option
16ETEXI
17
18DEF("help", 0, QEMU_OPTION_h,
ad96090a 19 "-h or -help display this help and exit\n", QEMU_ARCH_ALL)
5824d651
BS
20STEXI
21@item -h
6616b2ad 22@findex -h
5824d651
BS
23Display help and exit
24ETEXI
25
9bd7e6d9 26DEF("version", 0, QEMU_OPTION_version,
ad96090a 27 "-version display version information and exit\n", QEMU_ARCH_ALL)
9bd7e6d9
PB
28STEXI
29@item -version
6616b2ad 30@findex -version
9bd7e6d9
PB
31Display version information and exit
32ETEXI
33
80f52a66
JK
34DEF("machine", HAS_ARG, QEMU_OPTION_machine, \
35 "-machine [type=]name[,prop[=value][,...]]\n"
36 " selects emulated machine (-machine ? for list)\n"
37 " property accel=accel1[:accel2[:...]] selects accelerator\n"
6a48ffaa 38 " supported accelerators are kvm, xen, tcg (default: tcg)\n"
39d6960a 39 " kernel_irqchip=on|off controls accelerated irqchip support\n"
ddb97f1d 40 " kvm_shadow_mem=size of KVM shadow MMU\n"
8490fc78
LC
41 " dump-guest-core=on|off include guest memory in a core dump (default=on)\n"
42 " mem-merge=on|off controls memory merge support (default: on)\n",
80f52a66 43 QEMU_ARCH_ALL)
5824d651 44STEXI
80f52a66
JK
45@item -machine [type=]@var{name}[,prop=@var{value}[,...]]
46@findex -machine
47Select the emulated machine by @var{name}. Use @code{-machine ?} to list
48available machines. Supported machine properties are:
49@table @option
50@item accel=@var{accels1}[:@var{accels2}[:...]]
51This is used to enable an accelerator. Depending on the target architecture,
52kvm, xen, or tcg can be available. By default, tcg is used. If there is more
53than one accelerator specified, the next one is used if the previous one fails
54to initialize.
6a48ffaa
JK
55@item kernel_irqchip=on|off
56Enables in-kernel irqchip support for the chosen accelerator when available.
39d6960a
JK
57@item kvm_shadow_mem=size
58Defines the size of the KVM shadow MMU.
ddb97f1d
JB
59@item dump-guest-core=on|off
60Include guest memory in a core dump. The default is on.
8490fc78
LC
61@item mem-merge=on|off
62Enables or disables memory merge support. This feature, when supported by
63the host, de-duplicates identical memory pages among VMs instances
64(enabled by default).
80f52a66 65@end table
5824d651
BS
66ETEXI
67
80f52a66
JK
68HXCOMM Deprecated by -machine
69DEF("M", HAS_ARG, QEMU_OPTION_M, "", QEMU_ARCH_ALL)
70
5824d651 71DEF("cpu", HAS_ARG, QEMU_OPTION_cpu,
ad96090a 72 "-cpu cpu select CPU (-cpu ? for list)\n", QEMU_ARCH_ALL)
5824d651
BS
73STEXI
74@item -cpu @var{model}
6616b2ad 75@findex -cpu
5824d651
BS
76Select CPU model (-cpu ? for list and additional feature selection)
77ETEXI
78
79DEF("smp", HAS_ARG, QEMU_OPTION_smp,
58a04db1 80 "-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]\n"
6be68d7e
JS
81 " set the number of CPUs to 'n' [default=1]\n"
82 " maxcpus= maximum number of total cpus, including\n"
ca1a8a06 83 " offline CPUs for hotplug, etc\n"
58a04db1
AP
84 " cores= number of CPU cores on one socket\n"
85 " threads= number of threads on one CPU core\n"
ad96090a
BS
86 " sockets= number of discrete sockets in the system\n",
87 QEMU_ARCH_ALL)
5824d651 88STEXI
58a04db1 89@item -smp @var{n}[,cores=@var{cores}][,threads=@var{threads}][,sockets=@var{sockets}][,maxcpus=@var{maxcpus}]
6616b2ad 90@findex -smp
5824d651
BS
91Simulate an SMP system with @var{n} CPUs. On the PC target, up to 255
92CPUs are supported. On Sparc32 target, Linux limits the number of usable CPUs
93to 4.
58a04db1
AP
94For the PC target, the number of @var{cores} per socket, the number
95of @var{threads} per cores and the total number of @var{sockets} can be
96specified. Missing values will be computed. If any on the three values is
97given, the total number of CPUs @var{n} can be omitted. @var{maxcpus}
98specifies the maximum number of hotpluggable CPUs.
5824d651
BS
99ETEXI
100
268a362c 101DEF("numa", HAS_ARG, QEMU_OPTION_numa,
ad96090a 102 "-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]\n", QEMU_ARCH_ALL)
268a362c
AL
103STEXI
104@item -numa @var{opts}
6616b2ad 105@findex -numa
268a362c
AL
106Simulate a multi node NUMA system. If mem and cpus are omitted, resources
107are split equally.
108ETEXI
109
5824d651 110DEF("fda", HAS_ARG, QEMU_OPTION_fda,
ad96090a
BS
111 "-fda/-fdb file use 'file' as floppy disk 0/1 image\n", QEMU_ARCH_ALL)
112DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "", QEMU_ARCH_ALL)
5824d651
BS
113STEXI
114@item -fda @var{file}
115@item -fdb @var{file}
6616b2ad
SW
116@findex -fda
117@findex -fdb
5824d651
BS
118Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
119use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
120ETEXI
121
122DEF("hda", HAS_ARG, QEMU_OPTION_hda,
ad96090a
BS
123 "-hda/-hdb file use 'file' as IDE hard disk 0/1 image\n", QEMU_ARCH_ALL)
124DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "", QEMU_ARCH_ALL)
5824d651 125DEF("hdc", HAS_ARG, QEMU_OPTION_hdc,
ad96090a
BS
126 "-hdc/-hdd file use 'file' as IDE hard disk 2/3 image\n", QEMU_ARCH_ALL)
127DEF("hdd", HAS_ARG, QEMU_OPTION_hdd, "", QEMU_ARCH_ALL)
5824d651
BS
128STEXI
129@item -hda @var{file}
130@item -hdb @var{file}
131@item -hdc @var{file}
132@item -hdd @var{file}
6616b2ad
SW
133@findex -hda
134@findex -hdb
135@findex -hdc
136@findex -hdd
5824d651
BS
137Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
138ETEXI
139
140DEF("cdrom", HAS_ARG, QEMU_OPTION_cdrom,
ad96090a
BS
141 "-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)\n",
142 QEMU_ARCH_ALL)
5824d651
BS
143STEXI
144@item -cdrom @var{file}
6616b2ad 145@findex -cdrom
5824d651
BS
146Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and
147@option{-cdrom} at the same time). You can use the host CD-ROM by
148using @file{/dev/cdrom} as filename (@pxref{host_drives}).
149ETEXI
150
151DEF("drive", HAS_ARG, QEMU_OPTION_drive,
152 "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]\n"
153 " [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n"
92196b2f 154 " [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]\n"
016f5cf6 155 " [,serial=s][,addr=A][,id=name][,aio=threads|native]\n"
fb0490f6 156 " [,readonly=on|off][,copy-on-read=on|off]\n"
0563e191 157 " [[,bps=b]|[[,bps_rd=r][,bps_wr=w]]][[,iops=i]|[[,iops_rd=r][,iops_wr=w]]\n"
ad96090a 158 " use 'file' as a drive image\n", QEMU_ARCH_ALL)
5824d651
BS
159STEXI
160@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
6616b2ad 161@findex -drive
5824d651
BS
162
163Define a new drive. Valid options are:
164
b3f046c2 165@table @option
5824d651
BS
166@item file=@var{file}
167This option defines which disk image (@pxref{disk_images}) to use with
168this drive. If the filename contains comma, you must double it
169(for instance, "file=my,,file" to use file "my,file").
0f5314a2
RS
170
171Special files such as iSCSI devices can be specified using protocol
172specific URLs. See the section for "Device URL Syntax" for more information.
5824d651
BS
173@item if=@var{interface}
174This option defines on which type on interface the drive is connected.
175Available types are: ide, scsi, sd, mtd, floppy, pflash, virtio.
176@item bus=@var{bus},unit=@var{unit}
177These options define where is connected the drive by defining the bus number and
178the unit id.
179@item index=@var{index}
180This option defines where is connected the drive by using an index in the list
181of available connectors of a given interface type.
182@item media=@var{media}
183This option defines the type of the media: disk or cdrom.
184@item cyls=@var{c},heads=@var{h},secs=@var{s}[,trans=@var{t}]
185These options have the same definition as they have in @option{-hdachs}.
186@item snapshot=@var{snapshot}
187@var{snapshot} is "on" or "off" and allows to enable snapshot for given drive (see @option{-snapshot}).
188@item cache=@var{cache}
92196b2f 189@var{cache} is "none", "writeback", "unsafe", "directsync" or "writethrough" and controls how the host cache is used to access block data.
5c6c3a6c
CH
190@item aio=@var{aio}
191@var{aio} is "threads", or "native" and selects between pthread based disk I/O and native Linux AIO.
5824d651
BS
192@item format=@var{format}
193Specify which disk @var{format} will be used rather than detecting
194the format. Can be used to specifiy format=raw to avoid interpreting
195an untrusted format header.
196@item serial=@var{serial}
197This option specifies the serial number to assign to the device.
c2cc47a4
MA
198@item addr=@var{addr}
199Specify the controller's PCI address (if=virtio only).
ae73e591
LC
200@item werror=@var{action},rerror=@var{action}
201Specify which @var{action} to take on write and read errors. Valid actions are:
202"ignore" (ignore the error and try to continue), "stop" (pause QEMU),
203"report" (report the error to the guest), "enospc" (pause QEMU only if the
204host disk is full; report the error to the guest otherwise).
205The default setting is @option{werror=enospc} and @option{rerror=report}.
206@item readonly
207Open drive @option{file} as read-only. Guest write attempts will fail.
fb0490f6
SH
208@item copy-on-read=@var{copy-on-read}
209@var{copy-on-read} is "on" or "off" and enables whether to copy read backing
210file sectors into the image file.
5824d651
BS
211@end table
212
213By default, writethrough caching is used for all block device. This means that
214the host page cache will be used to read and write data but write notification
215will be sent to the guest only when the data has been reported as written by
216the storage subsystem.
217
218Writeback caching will report data writes as completed as soon as the data is
219present in the host page cache. This is safe as long as you trust your host.
220If your host crashes or loses power, then the guest may experience data
c3177288 221corruption.
5824d651 222
c304d317 223The host page cache can be avoided entirely with @option{cache=none}. This will
5824d651
BS
224attempt to do disk IO directly to the guests memory. QEMU may still perform
225an internal copy of the data.
226
92196b2f
SH
227The host page cache can be avoided while only sending write notifications to
228the guest when the data has been reported as written by the storage subsystem
229using @option{cache=directsync}.
230
5824d651
BS
231Some block drivers perform badly with @option{cache=writethrough}, most notably,
232qcow2. If performance is more important than correctness,
0aa217e4 233@option{cache=writeback} should be used with qcow2.
5824d651 234
016f5cf6 235In case you don't care about data integrity over host failures, use
b65ee4fa 236cache=unsafe. This option tells QEMU that it never needs to write any data
016f5cf6 237to the disk but can instead keeps things in cache. If anything goes wrong,
e7d81004 238like your host losing power, the disk storage getting disconnected accidentally,
c3177288
AG
239etc. you're image will most probably be rendered unusable. When using
240the @option{-snapshot} option, unsafe caching is always used.
016f5cf6 241
fb0490f6
SH
242Copy-on-read avoids accessing the same backing file sectors repeatedly and is
243useful when the backing file is over a slow network. By default copy-on-read
244is off.
245
5824d651
BS
246Instead of @option{-cdrom} you can use:
247@example
3804da9d 248qemu-system-i386 -drive file=file,index=2,media=cdrom
5824d651
BS
249@end example
250
251Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
252use:
253@example
3804da9d
SW
254qemu-system-i386 -drive file=file,index=0,media=disk
255qemu-system-i386 -drive file=file,index=1,media=disk
256qemu-system-i386 -drive file=file,index=2,media=disk
257qemu-system-i386 -drive file=file,index=3,media=disk
5824d651
BS
258@end example
259
260You can connect a CDROM to the slave of ide0:
261@example
3804da9d 262qemu-system-i386 -drive file=file,if=ide,index=1,media=cdrom
5824d651
BS
263@end example
264
265If you don't specify the "file=" argument, you define an empty drive:
266@example
3804da9d 267qemu-system-i386 -drive if=ide,index=1,media=cdrom
5824d651
BS
268@end example
269
270You can connect a SCSI disk with unit ID 6 on the bus #0:
271@example
3804da9d 272qemu-system-i386 -drive file=file,if=scsi,bus=0,unit=6
5824d651
BS
273@end example
274
275Instead of @option{-fda}, @option{-fdb}, you can use:
276@example
3804da9d
SW
277qemu-system-i386 -drive file=file,index=0,if=floppy
278qemu-system-i386 -drive file=file,index=1,if=floppy
5824d651
BS
279@end example
280
281By default, @var{interface} is "ide" and @var{index} is automatically
282incremented:
283@example
3804da9d 284qemu-system-i386 -drive file=a -drive file=b"
5824d651
BS
285@end example
286is interpreted like:
287@example
3804da9d 288qemu-system-i386 -hda a -hdb b
5824d651
BS
289@end example
290ETEXI
291
6616b2ad
SW
292DEF("set", HAS_ARG, QEMU_OPTION_set,
293 "-set group.id.arg=value\n"
294 " set <arg> parameter for item <id> of type <group>\n"
ad96090a 295 " i.e. -set drive.$id.file=/path/to/image\n", QEMU_ARCH_ALL)
6616b2ad
SW
296STEXI
297@item -set
298@findex -set
299TODO
300ETEXI
301
302DEF("global", HAS_ARG, QEMU_OPTION_global,
3017b72c 303 "-global driver.prop=value\n"
ad96090a
BS
304 " set a global default for a driver property\n",
305 QEMU_ARCH_ALL)
6616b2ad 306STEXI
3017b72c 307@item -global @var{driver}.@var{prop}=@var{value}
6616b2ad 308@findex -global
3017b72c
MR
309Set default value of @var{driver}'s property @var{prop} to @var{value}, e.g.:
310
311@example
3804da9d 312qemu-system-i386 -global ide-drive.physical_block_size=4096 -drive file=file,if=ide,index=0,media=disk
3017b72c
MR
313@end example
314
315In particular, you can use this to set driver properties for devices which are
316created automatically by the machine model. To create a device which is not
317created automatically and set properties on it, use -@option{device}.
6616b2ad
SW
318ETEXI
319
5824d651 320DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
ad96090a
BS
321 "-mtdblock file use 'file' as on-board Flash memory image\n",
322 QEMU_ARCH_ALL)
5824d651 323STEXI
4e257e5e 324@item -mtdblock @var{file}
6616b2ad 325@findex -mtdblock
4e257e5e 326Use @var{file} as on-board Flash memory image.
5824d651
BS
327ETEXI
328
329DEF("sd", HAS_ARG, QEMU_OPTION_sd,
ad96090a 330 "-sd file use 'file' as SecureDigital card image\n", QEMU_ARCH_ALL)
5824d651 331STEXI
4e257e5e 332@item -sd @var{file}
6616b2ad 333@findex -sd
4e257e5e 334Use @var{file} as SecureDigital card image.
5824d651
BS
335ETEXI
336
337DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
ad96090a 338 "-pflash file use 'file' as a parallel flash image\n", QEMU_ARCH_ALL)
5824d651 339STEXI
4e257e5e 340@item -pflash @var{file}
6616b2ad 341@findex -pflash
4e257e5e 342Use @var{file} as a parallel flash image.
5824d651
BS
343ETEXI
344
345DEF("boot", HAS_ARG, QEMU_OPTION_boot,
2221dde5 346 "-boot [order=drives][,once=drives][,menu=on|off]\n"
ac05f349 347 " [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time]\n"
3d3b8303 348 " 'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n"
349 " 'sp_name': the file's name that would be passed to bios as logo picture, if menu=on\n"
ac05f349
AK
350 " 'sp_time': the period that splash picture last if menu=on, unit is ms\n"
351 " 'rb_timeout': the timeout before guest reboot when boot failed, unit is ms\n",
ad96090a 352 QEMU_ARCH_ALL)
5824d651 353STEXI
ac05f349 354@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}][,reboot-timeout=@var{rb_timeout}]
6616b2ad 355@findex -boot
2221dde5
JK
356Specify boot order @var{drives} as a string of drive letters. Valid
357drive letters depend on the target achitecture. The x86 PC uses: a, b
358(floppy 1 and 2), c (first hard disk), d (first CD-ROM), n-p (Etherboot
359from network adapter 1-4), hard disk boot is the default. To apply a
360particular boot order only on the first startup, specify it via
361@option{once}.
362
363Interactive boot menus/prompts can be enabled via @option{menu=on} as far
364as firmware/BIOS supports them. The default is non-interactive boot.
365
3d3b8303 366A splash picture could be passed to bios, enabling user to show it as logo,
367when option splash=@var{sp_name} is given and menu=on, If firmware/BIOS
368supports them. Currently Seabios for X86 system support it.
369limitation: The splash file could be a jpeg file or a BMP file in 24 BPP
370format(true color). The resolution should be supported by the SVGA mode, so
371the recommended is 320x240, 640x480, 800x640.
372
ac05f349
AK
373A timeout could be passed to bios, guest will pause for @var{rb_timeout} ms
374when boot failed, then reboot. If @var{rb_timeout} is '-1', guest will not
375reboot, qemu passes '-1' to bios by default. Currently Seabios for X86
376system support it.
377
2221dde5
JK
378@example
379# try to boot from network first, then from hard disk
3804da9d 380qemu-system-i386 -boot order=nc
2221dde5 381# boot from CD-ROM first, switch back to default order after reboot
3804da9d 382qemu-system-i386 -boot once=d
3d3b8303 383# boot with a splash picture for 5 seconds.
3804da9d 384qemu-system-i386 -boot menu=on,splash=/root/boot.bmp,splash-time=5000
2221dde5
JK
385@end example
386
387Note: The legacy format '-boot @var{drives}' is still supported but its
388use is discouraged as it may be removed from future versions.
5824d651
BS
389ETEXI
390
391DEF("snapshot", 0, QEMU_OPTION_snapshot,
ad96090a
BS
392 "-snapshot write to temporary files instead of disk image files\n",
393 QEMU_ARCH_ALL)
5824d651
BS
394STEXI
395@item -snapshot
6616b2ad 396@findex -snapshot
5824d651
BS
397Write to temporary files instead of disk image files. In this case,
398the raw disk image you use is not written back. You can however force
399the write back by pressing @key{C-a s} (@pxref{disk_images}).
400ETEXI
401
402DEF("m", HAS_ARG, QEMU_OPTION_m,
bec7c2d4 403 "-m megs set virtual RAM size to megs MB [default="
ad96090a 404 stringify(DEFAULT_RAM_SIZE) "]\n", QEMU_ARCH_ALL)
5824d651
BS
405STEXI
406@item -m @var{megs}
6616b2ad 407@findex -m
5824d651
BS
408Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB. Optionally,
409a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
410gigabytes respectively.
411ETEXI
412
c902760f 413DEF("mem-path", HAS_ARG, QEMU_OPTION_mempath,
ad96090a 414 "-mem-path FILE provide backing storage for guest RAM\n", QEMU_ARCH_ALL)
c902760f
MT
415STEXI
416@item -mem-path @var{path}
417Allocate guest RAM from a temporarily created file in @var{path}.
418ETEXI
419
420#ifdef MAP_POPULATE
421DEF("mem-prealloc", 0, QEMU_OPTION_mem_prealloc,
ad96090a
BS
422 "-mem-prealloc preallocate guest memory (use with -mem-path)\n",
423 QEMU_ARCH_ALL)
c902760f
MT
424STEXI
425@item -mem-prealloc
426Preallocate memory when using -mem-path.
427ETEXI
428#endif
429
5824d651 430DEF("k", HAS_ARG, QEMU_OPTION_k,
ad96090a
BS
431 "-k language use keyboard layout (for example 'fr' for French)\n",
432 QEMU_ARCH_ALL)
5824d651
BS
433STEXI
434@item -k @var{language}
6616b2ad 435@findex -k
5824d651
BS
436Use keyboard layout @var{language} (for example @code{fr} for
437French). This option is only needed where it is not easy to get raw PC
438keycodes (e.g. on Macs, with some X11 servers or with a VNC
439display). You don't normally need to use it on PC/Linux or PC/Windows
440hosts.
441
442The available layouts are:
443@example
444ar de-ch es fo fr-ca hu ja mk no pt-br sv
445da en-gb et fr fr-ch is lt nl pl ru th
446de en-us fi fr-be hr it lv nl-be pt sl tr
447@end example
448
449The default is @code{en-us}.
450ETEXI
451
452
5824d651 453DEF("audio-help", 0, QEMU_OPTION_audio_help,
ad96090a
BS
454 "-audio-help print list of audio drivers and their options\n",
455 QEMU_ARCH_ALL)
5824d651
BS
456STEXI
457@item -audio-help
6616b2ad 458@findex -audio-help
5824d651
BS
459Will show the audio subsystem help: list of drivers, tunable
460parameters.
461ETEXI
462
5824d651
BS
463DEF("soundhw", HAS_ARG, QEMU_OPTION_soundhw,
464 "-soundhw c1,... enable audio support\n"
465 " and only specified sound cards (comma separated list)\n"
466 " use -soundhw ? to get the list of supported cards\n"
ad96090a 467 " use -soundhw all to enable all of them\n", QEMU_ARCH_ALL)
5824d651
BS
468STEXI
469@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
6616b2ad 470@findex -soundhw
5824d651
BS
471Enable audio and selected sound hardware. Use ? to print all
472available sound hardware.
473
474@example
3804da9d
SW
475qemu-system-i386 -soundhw sb16,adlib disk.img
476qemu-system-i386 -soundhw es1370 disk.img
477qemu-system-i386 -soundhw ac97 disk.img
478qemu-system-i386 -soundhw hda disk.img
479qemu-system-i386 -soundhw all disk.img
480qemu-system-i386 -soundhw ?
5824d651
BS
481@end example
482
483Note that Linux's i810_audio OSS kernel (for AC97) module might
484require manually specifying clocking.
485
486@example
487modprobe i810_audio clocking=48000
488@end example
489ETEXI
490
b1746ddd
ME
491DEF("balloon", HAS_ARG, QEMU_OPTION_balloon,
492 "-balloon none disable balloon device\n"
493 "-balloon virtio[,addr=str]\n"
494 " enable virtio balloon device (default)\n", QEMU_ARCH_ALL)
495STEXI
496@item -balloon none
497@findex -balloon
498Disable balloon device.
499@item -balloon virtio[,addr=@var{addr}]
500Enable virtio balloon device (default), optionally with PCI address
501@var{addr}.
502ETEXI
503
5824d651
BS
504STEXI
505@end table
506ETEXI
507
508DEF("usb", 0, QEMU_OPTION_usb,
ad96090a
BS
509 "-usb enable the USB driver (will be the default soon)\n",
510 QEMU_ARCH_ALL)
5824d651
BS
511STEXI
512USB options:
513@table @option
514
515@item -usb
6616b2ad 516@findex -usb
5824d651
BS
517Enable the USB driver (will be the default soon)
518ETEXI
519
520DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
ad96090a
BS
521 "-usbdevice name add the host or guest USB device 'name'\n",
522 QEMU_ARCH_ALL)
5824d651
BS
523STEXI
524
525@item -usbdevice @var{devname}
6616b2ad 526@findex -usbdevice
5824d651
BS
527Add the USB device @var{devname}. @xref{usb_devices}.
528
b3f046c2 529@table @option
5824d651
BS
530
531@item mouse
532Virtual Mouse. This will override the PS/2 mouse emulation when activated.
533
534@item tablet
535Pointer device that uses absolute coordinates (like a touchscreen). This
b65ee4fa 536means QEMU is able to report the mouse position without having to grab the
5824d651
BS
537mouse. Also overrides the PS/2 mouse emulation when activated.
538
4e257e5e 539@item disk:[format=@var{format}]:@var{file}
5824d651
BS
540Mass storage device based on file. The optional @var{format} argument
541will be used rather than detecting the format. Can be used to specifiy
4e257e5e 542@code{format=raw} to avoid interpreting an untrusted format header.
5824d651 543
4e257e5e
KW
544@item host:@var{bus}.@var{addr}
545Pass through the host device identified by @var{bus}.@var{addr} (Linux only).
5824d651 546
4e257e5e
KW
547@item host:@var{vendor_id}:@var{product_id}
548Pass through the host device identified by @var{vendor_id}:@var{product_id}
549(Linux only).
5824d651
BS
550
551@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
552Serial converter to host character device @var{dev}, see @code{-serial} for the
553available devices.
554
555@item braille
556Braille device. This will use BrlAPI to display the braille output on a real
557or fake device.
558
4e257e5e 559@item net:@var{options}
5824d651
BS
560Network adapter that supports CDC ethernet and RNDIS protocols.
561
562@end table
563ETEXI
564
bd3c948d 565DEF("device", HAS_ARG, QEMU_OPTION_device,
40ea285c
MA
566 "-device driver[,prop[=value][,...]]\n"
567 " add device (based on driver)\n"
568 " prop=value,... sets driver properties\n"
69a319d1 569 " use -device ? to print all possible drivers\n"
9848bbf1 570 " use -device driver,? to print all possible properties\n",
ad96090a 571 QEMU_ARCH_ALL)
3dbf2c7f 572STEXI
9848bbf1 573@item -device @var{driver}[,@var{prop}[=@var{value}][,...]]
6616b2ad 574@findex -device
9848bbf1
MA
575Add device @var{driver}. @var{prop}=@var{value} sets driver
576properties. Valid properties depend on the driver. To get help on
577possible drivers and properties, use @code{-device ?} and
578@code{-device @var{driver},?}.
3dbf2c7f
SW
579ETEXI
580
7c92a3d2
AK
581DEFHEADING()
582
74db920c
GS
583DEFHEADING(File system options:)
584
585DEF("fsdev", HAS_ARG, QEMU_OPTION_fsdev,
2c30dd74 586 "-fsdev fsdriver,id=id[,path=path,][security_model={mapped-xattr|mapped-file|passthrough|none}]\n"
84a87cc4 587 " [,writeout=immediate][,readonly][,socket=socket|sock_fd=sock_fd]\n",
74db920c
GS
588 QEMU_ARCH_ALL)
589
590STEXI
591
84a87cc4 592@item -fsdev @var{fsdriver},id=@var{id},path=@var{path},[security_model=@var{security_model}][,writeout=@var{writeout}][,readonly][,socket=@var{socket}|sock_fd=@var{sock_fd}]
74db920c 593@findex -fsdev
7c92a3d2
AK
594Define a new file system device. Valid options are:
595@table @option
596@item @var{fsdriver}
597This option specifies the fs driver backend to use.
f67e3ffd 598Currently "local", "handle" and "proxy" file system drivers are supported.
7c92a3d2
AK
599@item id=@var{id}
600Specifies identifier for this device
601@item path=@var{path}
602Specifies the export path for the file system device. Files under
603this path will be available to the 9p client on the guest.
604@item security_model=@var{security_model}
605Specifies the security model to be used for this export path.
2c30dd74 606Supported security models are "passthrough", "mapped-xattr", "mapped-file" and "none".
7c92a3d2 607In "passthrough" security model, files are stored using the same
b65ee4fa 608credentials as they are created on the guest. This requires QEMU
2c30dd74 609to run as root. In "mapped-xattr" security model, some of the file
7c92a3d2 610attributes like uid, gid, mode bits and link target are stored as
2c30dd74
AK
611file attributes. For "mapped-file" these attributes are stored in the
612hidden .virtfs_metadata directory. Directories exported by this security model cannot
7c92a3d2
AK
613interact with other unix tools. "none" security model is same as
614passthrough except the sever won't report failures if it fails to
d9b36a6e 615set file attributes like ownership. Security model is mandatory
f67e3ffd 616only for local fsdriver. Other fsdrivers (like handle, proxy) don't take
d9b36a6e 617security model as a parameter.
7c92a3d2
AK
618@item writeout=@var{writeout}
619This is an optional argument. The only supported value is "immediate".
620This means that host page cache will be used to read and write data but
621write notification will be sent to the guest only when the data has been
622reported as written by the storage subsystem.
2c74c2cb
MK
623@item readonly
624Enables exporting 9p share as a readonly mount for guests. By default
625read-write access is given.
84a87cc4
MK
626@item socket=@var{socket}
627Enables proxy filesystem driver to use passed socket file for communicating
628with virtfs-proxy-helper
f67e3ffd
MK
629@item sock_fd=@var{sock_fd}
630Enables proxy filesystem driver to use passed socket descriptor for
631communicating with virtfs-proxy-helper. Usually a helper like libvirt
632will create socketpair and pass one of the fds as sock_fd
7c92a3d2 633@end table
9ce56db6 634
7c92a3d2
AK
635-fsdev option is used along with -device driver "virtio-9p-pci".
636@item -device virtio-9p-pci,fsdev=@var{id},mount_tag=@var{mount_tag}
637Options for virtio-9p-pci driver are:
638@table @option
639@item fsdev=@var{id}
640Specifies the id value specified along with -fsdev option
641@item mount_tag=@var{mount_tag}
642Specifies the tag name to be used by the guest to mount this export point
74db920c 643@end table
7c92a3d2 644
74db920c 645ETEXI
74db920c 646
7c92a3d2
AK
647DEFHEADING()
648
3d54abc7
GS
649DEFHEADING(Virtual File system pass-through options:)
650
651DEF("virtfs", HAS_ARG, QEMU_OPTION_virtfs,
2c30dd74 652 "-virtfs local,path=path,mount_tag=tag,security_model=[mapped-xattr|mapped-file|passthrough|none]\n"
84a87cc4 653 " [,writeout=immediate][,readonly][,socket=socket|sock_fd=sock_fd]\n",
3d54abc7
GS
654 QEMU_ARCH_ALL)
655
656STEXI
657
84a87cc4 658@item -virtfs @var{fsdriver}[,path=@var{path}],mount_tag=@var{mount_tag}[,security_model=@var{security_model}][,writeout=@var{writeout}][,readonly][,socket=@var{socket}|sock_fd=@var{sock_fd}]
3d54abc7 659@findex -virtfs
3d54abc7 660
7c92a3d2
AK
661The general form of a Virtual File system pass-through options are:
662@table @option
663@item @var{fsdriver}
664This option specifies the fs driver backend to use.
f67e3ffd 665Currently "local", "handle" and "proxy" file system drivers are supported.
7c92a3d2
AK
666@item id=@var{id}
667Specifies identifier for this device
668@item path=@var{path}
669Specifies the export path for the file system device. Files under
670this path will be available to the 9p client on the guest.
671@item security_model=@var{security_model}
672Specifies the security model to be used for this export path.
2c30dd74 673Supported security models are "passthrough", "mapped-xattr", "mapped-file" and "none".
7c92a3d2 674In "passthrough" security model, files are stored using the same
b65ee4fa 675credentials as they are created on the guest. This requires QEMU
2c30dd74 676to run as root. In "mapped-xattr" security model, some of the file
7c92a3d2 677attributes like uid, gid, mode bits and link target are stored as
2c30dd74
AK
678file attributes. For "mapped-file" these attributes are stored in the
679hidden .virtfs_metadata directory. Directories exported by this security model cannot
7c92a3d2
AK
680interact with other unix tools. "none" security model is same as
681passthrough except the sever won't report failures if it fails to
d9b36a6e 682set file attributes like ownership. Security model is mandatory only
f67e3ffd 683for local fsdriver. Other fsdrivers (like handle, proxy) don't take security
d9b36a6e 684model as a parameter.
7c92a3d2
AK
685@item writeout=@var{writeout}
686This is an optional argument. The only supported value is "immediate".
687This means that host page cache will be used to read and write data but
688write notification will be sent to the guest only when the data has been
689reported as written by the storage subsystem.
2c74c2cb
MK
690@item readonly
691Enables exporting 9p share as a readonly mount for guests. By default
692read-write access is given.
84a87cc4
MK
693@item socket=@var{socket}
694Enables proxy filesystem driver to use passed socket file for
695communicating with virtfs-proxy-helper. Usually a helper like libvirt
696will create socketpair and pass one of the fds as sock_fd
f67e3ffd
MK
697@item sock_fd
698Enables proxy filesystem driver to use passed 'sock_fd' as the socket
699descriptor for interfacing with virtfs-proxy-helper
3d54abc7
GS
700@end table
701ETEXI
3d54abc7 702
9db221ae
AK
703DEF("virtfs_synth", 0, QEMU_OPTION_virtfs_synth,
704 "-virtfs_synth Create synthetic file system image\n",
705 QEMU_ARCH_ALL)
706STEXI
707@item -virtfs_synth
708@findex -virtfs_synth
709Create synthetic file system image
710ETEXI
711
74db920c
GS
712DEFHEADING()
713
5824d651 714DEF("name", HAS_ARG, QEMU_OPTION_name,
ca1a8a06
BR
715 "-name string1[,process=string2]\n"
716 " set the name of the guest\n"
ad96090a
BS
717 " string1 sets the window title and string2 the process name (on Linux)\n",
718 QEMU_ARCH_ALL)
5824d651
BS
719STEXI
720@item -name @var{name}
6616b2ad 721@findex -name
5824d651
BS
722Sets the @var{name} of the guest.
723This name will be displayed in the SDL window caption.
724The @var{name} will also be used for the VNC server.
1889465a 725Also optionally set the top visible process name in Linux.
5824d651
BS
726ETEXI
727
728DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
e8105ebb 729 "-uuid %08x-%04x-%04x-%04x-%012x\n"
ad96090a 730 " specify machine UUID\n", QEMU_ARCH_ALL)
5824d651
BS
731STEXI
732@item -uuid @var{uuid}
6616b2ad 733@findex -uuid
5824d651
BS
734Set system UUID.
735ETEXI
736
737STEXI
738@end table
739ETEXI
740
741DEFHEADING()
742
743DEFHEADING(Display options:)
744
745STEXI
746@table @option
747ETEXI
748
1472a95b
JS
749DEF("display", HAS_ARG, QEMU_OPTION_display,
750 "-display sdl[,frame=on|off][,alt_grab=on|off][,ctrl_grab=on|off]\n"
3264ff12
JS
751 " [,window_close=on|off]|curses|none|\n"
752 " vnc=<display>[,<optargs>]\n"
1472a95b
JS
753 " select display type\n", QEMU_ARCH_ALL)
754STEXI
755@item -display @var{type}
756@findex -display
757Select type of display to use. This option is a replacement for the
758old style -sdl/-curses/... options. Valid values for @var{type} are
759@table @option
760@item sdl
761Display video output via SDL (usually in a separate graphics
762window; see the SDL documentation for other possibilities).
763@item curses
764Display video output via curses. For graphics device models which
765support a text mode, QEMU can display this output using a
766curses/ncurses interface. Nothing is displayed when the graphics
767device is in graphical mode or if the graphics device does not support
768a text mode. Generally only the VGA device models support text mode.
4171d32e
JS
769@item none
770Do not display video output. The guest will still see an emulated
771graphics card, but its output will not be displayed to the QEMU
772user. This option differs from the -nographic option in that it
773only affects what is done with video output; -nographic also changes
774the destination of the serial and parallel port data.
3264ff12
JS
775@item vnc
776Start a VNC server on display <arg>
1472a95b
JS
777@end table
778ETEXI
779
5824d651 780DEF("nographic", 0, QEMU_OPTION_nographic,
ad96090a
BS
781 "-nographic disable graphical output and redirect serial I/Os to console\n",
782 QEMU_ARCH_ALL)
5824d651
BS
783STEXI
784@item -nographic
6616b2ad 785@findex -nographic
5824d651
BS
786Normally, QEMU uses SDL to display the VGA output. With this option,
787you can totally disable graphical output so that QEMU is a simple
788command line application. The emulated serial port is redirected on
789the console. Therefore, you can still use QEMU to debug a Linux kernel
790with a serial console.
791ETEXI
792
5824d651 793DEF("curses", 0, QEMU_OPTION_curses,
ad96090a
BS
794 "-curses use a curses/ncurses interface instead of SDL\n",
795 QEMU_ARCH_ALL)
5824d651
BS
796STEXI
797@item -curses
6616b2ad 798@findex curses
5824d651
BS
799Normally, QEMU uses SDL to display the VGA output. With this option,
800QEMU can display the VGA output when in text mode using a
801curses/ncurses interface. Nothing is displayed in graphical mode.
802ETEXI
803
5824d651 804DEF("no-frame", 0, QEMU_OPTION_no_frame,
ad96090a
BS
805 "-no-frame open SDL window without a frame and window decorations\n",
806 QEMU_ARCH_ALL)
5824d651
BS
807STEXI
808@item -no-frame
6616b2ad 809@findex -no-frame
5824d651
BS
810Do not use decorations for SDL windows and start them using the whole
811available screen space. This makes the using QEMU in a dedicated desktop
812workspace more convenient.
813ETEXI
814
5824d651 815DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
ad96090a
BS
816 "-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n",
817 QEMU_ARCH_ALL)
5824d651
BS
818STEXI
819@item -alt-grab
6616b2ad 820@findex -alt-grab
de1db2a1
BH
821Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt). Note that this also
822affects the special keys (for fullscreen, monitor-mode switching, etc).
5824d651
BS
823ETEXI
824
0ca9f8a4 825DEF("ctrl-grab", 0, QEMU_OPTION_ctrl_grab,
ad96090a
BS
826 "-ctrl-grab use Right-Ctrl to grab mouse (instead of Ctrl-Alt)\n",
827 QEMU_ARCH_ALL)
0ca9f8a4
DK
828STEXI
829@item -ctrl-grab
6616b2ad 830@findex -ctrl-grab
de1db2a1
BH
831Use Right-Ctrl to grab mouse (instead of Ctrl-Alt). Note that this also
832affects the special keys (for fullscreen, monitor-mode switching, etc).
0ca9f8a4
DK
833ETEXI
834
5824d651 835DEF("no-quit", 0, QEMU_OPTION_no_quit,
ad96090a 836 "-no-quit disable SDL window close capability\n", QEMU_ARCH_ALL)
5824d651
BS
837STEXI
838@item -no-quit
6616b2ad 839@findex -no-quit
5824d651
BS
840Disable SDL window close capability.
841ETEXI
842
5824d651 843DEF("sdl", 0, QEMU_OPTION_sdl,
ad96090a 844 "-sdl enable SDL\n", QEMU_ARCH_ALL)
5824d651
BS
845STEXI
846@item -sdl
6616b2ad 847@findex -sdl
5824d651
BS
848Enable SDL.
849ETEXI
850
29b0040b 851DEF("spice", HAS_ARG, QEMU_OPTION_spice,
27af7788
YH
852 "-spice [port=port][,tls-port=secured-port][,x509-dir=<dir>]\n"
853 " [,x509-key-file=<file>][,x509-key-password=<file>]\n"
854 " [,x509-cert-file=<file>][,x509-cacert-file=<file>]\n"
855 " [,x509-dh-key-file=<file>][,addr=addr][,ipv4|ipv6]\n"
856 " [,tls-ciphers=<list>]\n"
857 " [,tls-channel=[main|display|cursor|inputs|record|playback]]\n"
858 " [,plaintext-channel=[main|display|cursor|inputs|record|playback]]\n"
859 " [,sasl][,password=<secret>][,disable-ticketing]\n"
860 " [,image-compression=[auto_glz|auto_lz|quic|glz|lz|off]]\n"
861 " [,jpeg-wan-compression=[auto|never|always]]\n"
862 " [,zlib-glz-wan-compression=[auto|never|always]]\n"
863 " [,streaming-video=[off|all|filter]][,disable-copy-paste]\n"
864 " [,agent-mouse=[on|off]][,playback-compression=[on|off]]\n"
865 " [,seamless-migration=[on|off]]\n"
866 " enable spice\n"
867 " at least one of {port, tls-port} is mandatory\n",
868 QEMU_ARCH_ALL)
29b0040b
GH
869STEXI
870@item -spice @var{option}[,@var{option}[,...]]
871@findex -spice
872Enable the spice remote desktop protocol. Valid options are
873
874@table @option
875
876@item port=<nr>
c448e855 877Set the TCP port spice is listening on for plaintext channels.
29b0040b 878
333b0eeb
GH
879@item addr=<addr>
880Set the IP address spice is listening on. Default is any address.
881
882@item ipv4
883@item ipv6
884Force using the specified IP version.
885
29b0040b
GH
886@item password=<secret>
887Set the password you need to authenticate.
888
48b3ed0a
MAL
889@item sasl
890Require that the client use SASL to authenticate with the spice.
891The exact choice of authentication method used is controlled from the
892system / user's SASL configuration file for the 'qemu' service. This
893is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
894unprivileged user, an environment variable SASL_CONF_PATH can be used
895to make it search alternate locations for the service config.
896While some SASL auth methods can also provide data encryption (eg GSSAPI),
897it is recommended that SASL always be combined with the 'tls' and
898'x509' settings to enable use of SSL and server certificates. This
899ensures a data encryption preventing compromise of authentication
900credentials.
901
29b0040b
GH
902@item disable-ticketing
903Allow client connects without authentication.
904
d4970b07
HG
905@item disable-copy-paste
906Disable copy paste between the client and the guest.
907
c448e855
GH
908@item tls-port=<nr>
909Set the TCP port spice is listening on for encrypted channels.
910
911@item x509-dir=<dir>
912Set the x509 file directory. Expects same filenames as -vnc $display,x509=$dir
913
914@item x509-key-file=<file>
915@item x509-key-password=<file>
916@item x509-cert-file=<file>
917@item x509-cacert-file=<file>
918@item x509-dh-key-file=<file>
919The x509 file names can also be configured individually.
920
921@item tls-ciphers=<list>
922Specify which ciphers to use.
923
d70d6b31
AL
924@item tls-channel=[main|display|cursor|inputs|record|playback]
925@item plaintext-channel=[main|display|cursor|inputs|record|playback]
17b6dea0
GH
926Force specific channel to be used with or without TLS encryption. The
927options can be specified multiple times to configure multiple
928channels. The special name "default" can be used to set the default
929mode. For channels which are not explicitly forced into one mode the
930spice client is allowed to pick tls/plaintext as he pleases.
931
9f04e09e
YH
932@item image-compression=[auto_glz|auto_lz|quic|glz|lz|off]
933Configure image compression (lossless).
934Default is auto_glz.
935
936@item jpeg-wan-compression=[auto|never|always]
937@item zlib-glz-wan-compression=[auto|never|always]
938Configure wan image compression (lossy for slow links).
939Default is auto.
940
84a23f25
GH
941@item streaming-video=[off|all|filter]
942Configure video stream detection. Default is filter.
943
944@item agent-mouse=[on|off]
945Enable/disable passing mouse events via vdagent. Default is on.
946
947@item playback-compression=[on|off]
948Enable/disable audio stream compression (using celt 0.5.1). Default is on.
949
8c957053
YH
950@item seamless-migration=[on|off]
951Enable/disable spice seamless migration. Default is off.
952
29b0040b
GH
953@end table
954ETEXI
955
5824d651 956DEF("portrait", 0, QEMU_OPTION_portrait,
ad96090a
BS
957 "-portrait rotate graphical output 90 deg left (only PXA LCD)\n",
958 QEMU_ARCH_ALL)
5824d651
BS
959STEXI
960@item -portrait
6616b2ad 961@findex -portrait
5824d651
BS
962Rotate graphical output 90 deg left (only PXA LCD).
963ETEXI
964
9312805d
VK
965DEF("rotate", HAS_ARG, QEMU_OPTION_rotate,
966 "-rotate <deg> rotate graphical output some deg left (only PXA LCD)\n",
967 QEMU_ARCH_ALL)
968STEXI
969@item -rotate
970@findex -rotate
971Rotate graphical output some deg left (only PXA LCD).
972ETEXI
973
5824d651 974DEF("vga", HAS_ARG, QEMU_OPTION_vga,
a19cbfb3 975 "-vga [std|cirrus|vmware|qxl|xenfb|none]\n"
ad96090a 976 " select video card type\n", QEMU_ARCH_ALL)
5824d651 977STEXI
e4558dca 978@item -vga @var{type}
6616b2ad 979@findex -vga
5824d651 980Select type of VGA card to emulate. Valid values for @var{type} are
b3f046c2 981@table @option
5824d651
BS
982@item cirrus
983Cirrus Logic GD5446 Video card. All Windows versions starting from
984Windows 95 should recognize and use this graphic card. For optimal
985performances, use 16 bit color depth in the guest and the host OS.
986(This one is the default)
987@item std
988Standard VGA card with Bochs VBE extensions. If your guest OS
989supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want
990to use high resolution modes (>= 1280x1024x16) then you should use
991this option.
992@item vmware
993VMWare SVGA-II compatible adapter. Use it if you have sufficiently
994recent XFree86/XOrg server or Windows guest with a driver for this
995card.
a19cbfb3
GH
996@item qxl
997QXL paravirtual graphic card. It is VGA compatible (including VESA
9982.0 VBE support). Works best with qxl guest drivers installed though.
999Recommended choice when using the spice protocol.
5824d651
BS
1000@item none
1001Disable VGA card.
1002@end table
1003ETEXI
1004
1005DEF("full-screen", 0, QEMU_OPTION_full_screen,
ad96090a 1006 "-full-screen start in full screen\n", QEMU_ARCH_ALL)
5824d651
BS
1007STEXI
1008@item -full-screen
6616b2ad 1009@findex -full-screen
5824d651
BS
1010Start in full screen.
1011ETEXI
1012
5824d651 1013DEF("g", 1, QEMU_OPTION_g ,
ad96090a
BS
1014 "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n",
1015 QEMU_ARCH_PPC | QEMU_ARCH_SPARC)
5824d651 1016STEXI
95d5f08b 1017@item -g @var{width}x@var{height}[x@var{depth}]
6616b2ad 1018@findex -g
95d5f08b 1019Set the initial graphical resolution and depth (PPC, SPARC only).
5824d651
BS
1020ETEXI
1021
1022DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
ad96090a 1023 "-vnc display start a VNC server on display\n", QEMU_ARCH_ALL)
5824d651
BS
1024STEXI
1025@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
6616b2ad 1026@findex -vnc
5824d651
BS
1027Normally, QEMU uses SDL to display the VGA output. With this option,
1028you can have QEMU listen on VNC display @var{display} and redirect the VGA
1029display over the VNC session. It is very useful to enable the usb
1030tablet device when using this option (option @option{-usbdevice
1031tablet}). When using the VNC display, you must use the @option{-k}
1032parameter to set the keyboard layout if you are not using en-us. Valid
1033syntax for the @var{display} is
1034
b3f046c2 1035@table @option
5824d651
BS
1036
1037@item @var{host}:@var{d}
1038
1039TCP connections will only be allowed from @var{host} on display @var{d}.
1040By convention the TCP port is 5900+@var{d}. Optionally, @var{host} can
1041be omitted in which case the server will accept connections from any host.
1042
4e257e5e 1043@item unix:@var{path}
5824d651
BS
1044
1045Connections will be allowed over UNIX domain sockets where @var{path} is the
1046location of a unix socket to listen for connections on.
1047
1048@item none
1049
1050VNC is initialized but not started. The monitor @code{change} command
1051can be used to later start the VNC server.
1052
1053@end table
1054
1055Following the @var{display} value there may be one or more @var{option} flags
1056separated by commas. Valid options are
1057
b3f046c2 1058@table @option
5824d651
BS
1059
1060@item reverse
1061
1062Connect to a listening VNC client via a ``reverse'' connection. The
1063client is specified by the @var{display}. For reverse network
1064connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
1065is a TCP port number, not a display number.
1066
1067@item password
1068
1069Require that password based authentication is used for client connections.
86ee5bc3
MN
1070
1071The password must be set separately using the @code{set_password} command in
1072the @ref{pcsys_monitor}. The syntax to change your password is:
1073@code{set_password <protocol> <password>} where <protocol> could be either
1074"vnc" or "spice".
1075
1076If you would like to change <protocol> password expiration, you should use
1077@code{expire_password <protocol> <expiration-time>} where expiration time could
1078be one of the following options: now, never, +seconds or UNIX time of
1079expiration, e.g. +60 to make password expire in 60 seconds, or 1335196800
1080to make password expire on "Mon Apr 23 12:00:00 EDT 2012" (UNIX time for this
1081date and time).
1082
1083You can also use keywords "now" or "never" for the expiration time to
1084allow <protocol> password to expire immediately or never expire.
5824d651
BS
1085
1086@item tls
1087
1088Require that client use TLS when communicating with the VNC server. This
1089uses anonymous TLS credentials so is susceptible to a man-in-the-middle
1090attack. It is recommended that this option be combined with either the
4e257e5e 1091@option{x509} or @option{x509verify} options.
5824d651
BS
1092
1093@item x509=@var{/path/to/certificate/dir}
1094
1095Valid if @option{tls} is specified. Require that x509 credentials are used
1096for negotiating the TLS session. The server will send its x509 certificate
1097to the client. It is recommended that a password be set on the VNC server
1098to provide authentication of the client when this is used. The path following
1099this option specifies where the x509 certificates are to be loaded from.
1100See the @ref{vnc_security} section for details on generating certificates.
1101
1102@item x509verify=@var{/path/to/certificate/dir}
1103
1104Valid if @option{tls} is specified. Require that x509 credentials are used
1105for negotiating the TLS session. The server will send its x509 certificate
1106to the client, and request that the client send its own x509 certificate.
1107The server will validate the client's certificate against the CA certificate,
1108and reject clients when validation fails. If the certificate authority is
1109trusted, this is a sufficient authentication mechanism. You may still wish
1110to set a password on the VNC server as a second authentication layer. The
1111path following this option specifies where the x509 certificates are to
1112be loaded from. See the @ref{vnc_security} section for details on generating
1113certificates.
1114
1115@item sasl
1116
1117Require that the client use SASL to authenticate with the VNC server.
1118The exact choice of authentication method used is controlled from the
1119system / user's SASL configuration file for the 'qemu' service. This
1120is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
1121unprivileged user, an environment variable SASL_CONF_PATH can be used
1122to make it search alternate locations for the service config.
1123While some SASL auth methods can also provide data encryption (eg GSSAPI),
1124it is recommended that SASL always be combined with the 'tls' and
1125'x509' settings to enable use of SSL and server certificates. This
1126ensures a data encryption preventing compromise of authentication
1127credentials. See the @ref{vnc_security} section for details on using
1128SASL authentication.
1129
1130@item acl
1131
1132Turn on access control lists for checking of the x509 client certificate
1133and SASL party. For x509 certs, the ACL check is made against the
1134certificate's distinguished name. This is something that looks like
1135@code{C=GB,O=ACME,L=Boston,CN=bob}. For SASL party, the ACL check is
1136made against the username, which depending on the SASL plugin, may
1137include a realm component, eg @code{bob} or @code{bob@@EXAMPLE.COM}.
1138When the @option{acl} flag is set, the initial access list will be
1139empty, with a @code{deny} policy. Thus no one will be allowed to
1140use the VNC server until the ACLs have been loaded. This can be
1141achieved using the @code{acl} monitor command.
1142
6f9c78c1
CC
1143@item lossy
1144
1145Enable lossy compression methods (gradient, JPEG, ...). If this
1146option is set, VNC client may receive lossy framebuffer updates
1147depending on its encoding settings. Enabling this option can save
1148a lot of bandwidth at the expense of quality.
1149
80e0c8c3
CC
1150@item non-adaptive
1151
1152Disable adaptive encodings. Adaptive encodings are enabled by default.
1153An adaptive encoding will try to detect frequently updated screen regions,
1154and send updates in these regions using a lossy encoding (like JPEG).
61cc8701
SW
1155This can be really helpful to save bandwidth when playing videos. Disabling
1156adaptive encodings allows to restore the original static behavior of encodings
80e0c8c3
CC
1157like Tight.
1158
8cf36489
GH
1159@item share=[allow-exclusive|force-shared|ignore]
1160
1161Set display sharing policy. 'allow-exclusive' allows clients to ask
1162for exclusive access. As suggested by the rfb spec this is
1163implemented by dropping other connections. Connecting multiple
1164clients in parallel requires all clients asking for a shared session
1165(vncviewer: -shared switch). This is the default. 'force-shared'
1166disables exclusive client access. Useful for shared desktop sessions,
1167where you don't want someone forgetting specify -shared disconnect
1168everybody else. 'ignore' completely ignores the shared flag and
1169allows everybody connect unconditionally. Doesn't conform to the rfb
b65ee4fa 1170spec but is traditional QEMU behavior.
8cf36489 1171
5824d651
BS
1172@end table
1173ETEXI
1174
1175STEXI
1176@end table
1177ETEXI
1178
a3adb7ad 1179ARCHHEADING(, QEMU_ARCH_I386)
5824d651 1180
a3adb7ad 1181ARCHHEADING(i386 target only:, QEMU_ARCH_I386)
5824d651
BS
1182STEXI
1183@table @option
1184ETEXI
1185
5824d651 1186DEF("win2k-hack", 0, QEMU_OPTION_win2k_hack,
ad96090a
BS
1187 "-win2k-hack use it when installing Windows 2000 to avoid a disk full bug\n",
1188 QEMU_ARCH_I386)
5824d651
BS
1189STEXI
1190@item -win2k-hack
6616b2ad 1191@findex -win2k-hack
5824d651
BS
1192Use it when installing Windows 2000 to avoid a disk full bug. After
1193Windows 2000 is installed, you no longer need this option (this option
1194slows down the IDE transfers).
1195ETEXI
1196
1ed2fc1f 1197HXCOMM Deprecated by -rtc
ad96090a 1198DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack, "", QEMU_ARCH_I386)
5824d651 1199
5824d651 1200DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
ad96090a
BS
1201 "-no-fd-bootchk disable boot signature checking for floppy disks\n",
1202 QEMU_ARCH_I386)
5824d651
BS
1203STEXI
1204@item -no-fd-bootchk
6616b2ad 1205@findex -no-fd-bootchk
5824d651
BS
1206Disable boot signature checking for floppy disks in Bochs BIOS. It may
1207be needed to boot from old floppy disks.
6616b2ad 1208TODO: check reference to Bochs BIOS.
5824d651
BS
1209ETEXI
1210
5824d651 1211DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
ad96090a 1212 "-no-acpi disable ACPI\n", QEMU_ARCH_I386)
5824d651
BS
1213STEXI
1214@item -no-acpi
6616b2ad 1215@findex -no-acpi
5824d651
BS
1216Disable ACPI (Advanced Configuration and Power Interface) support. Use
1217it if your guest OS complains about ACPI problems (PC target machine
1218only).
1219ETEXI
1220
5824d651 1221DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
ad96090a 1222 "-no-hpet disable HPET\n", QEMU_ARCH_I386)
5824d651
BS
1223STEXI
1224@item -no-hpet
6616b2ad 1225@findex -no-hpet
5824d651
BS
1226Disable HPET support.
1227ETEXI
1228
5824d651 1229DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
104bf02e 1230 "-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]...]\n"
ad96090a 1231 " ACPI table description\n", QEMU_ARCH_I386)
5824d651
BS
1232STEXI
1233@item -acpitable [sig=@var{str}][,rev=@var{n}][,oem_id=@var{str}][,oem_table_id=@var{str}][,oem_rev=@var{n}] [,asl_compiler_id=@var{str}][,asl_compiler_rev=@var{n}][,data=@var{file1}[:@var{file2}]...]
6616b2ad 1234@findex -acpitable
5824d651 1235Add ACPI table with specified header fields and context from specified files.
104bf02e
MT
1236For file=, take whole ACPI table from the specified files, including all
1237ACPI headers (possible overridden by other options).
1238For data=, only data
1239portion of the table is used, all header information is specified in the
1240command line.
5824d651
BS
1241ETEXI
1242
b6f6e3d3
AL
1243DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
1244 "-smbios file=binary\n"
ca1a8a06 1245 " load SMBIOS entry from binary file\n"
e8105ebb 1246 "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]\n"
ca1a8a06 1247 " specify SMBIOS type 0 fields\n"
b6f6e3d3
AL
1248 "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n"
1249 " [,uuid=uuid][,sku=str][,family=str]\n"
ad96090a 1250 " specify SMBIOS type 1 fields\n", QEMU_ARCH_I386)
b6f6e3d3
AL
1251STEXI
1252@item -smbios file=@var{binary}
6616b2ad 1253@findex -smbios
b6f6e3d3
AL
1254Load SMBIOS entry from binary file.
1255
1256@item -smbios type=0[,vendor=@var{str}][,version=@var{str}][,date=@var{str}][,release=@var{%d.%d}]
6616b2ad 1257@findex -smbios
b6f6e3d3
AL
1258Specify SMBIOS type 0 fields
1259
609c1dac 1260@item -smbios type=1[,manufacturer=@var{str}][,product=@var{str}] [,version=@var{str}][,serial=@var{str}][,uuid=@var{uuid}][,sku=@var{str}] [,family=@var{str}]
b6f6e3d3
AL
1261Specify SMBIOS type 1 fields
1262ETEXI
1263
5824d651 1264DEFHEADING()
5824d651
BS
1265STEXI
1266@end table
1267ETEXI
1268
1269DEFHEADING(Network options:)
1270STEXI
1271@table @option
1272ETEXI
1273
ad196a9d
JK
1274HXCOMM Legacy slirp options (now moved to -net user):
1275#ifdef CONFIG_SLIRP
ad96090a
BS
1276DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, "", QEMU_ARCH_ALL)
1277DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, "", QEMU_ARCH_ALL)
1278DEF("redir", HAS_ARG, QEMU_OPTION_redir, "", QEMU_ARCH_ALL)
ad196a9d 1279#ifndef _WIN32
ad96090a 1280DEF("smb", HAS_ARG, QEMU_OPTION_smb, "", QEMU_ARCH_ALL)
ad196a9d
JK
1281#endif
1282#endif
1283
bab7944c 1284DEF("net", HAS_ARG, QEMU_OPTION_net,
ffe6370c 1285 "-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]\n"
5824d651
BS
1286 " create a new Network Interface Card and connect it to VLAN 'n'\n"
1287#ifdef CONFIG_SLIRP
c54ed5bc 1288 "-net user[,vlan=n][,name=str][,net=addr[/mask]][,host=addr][,restrict=on|off]\n"
c92ef6a2
JK
1289 " [,hostname=host][,dhcpstart=addr][,dns=addr][,tftp=dir][,bootfile=f]\n"
1290 " [,hostfwd=rule][,guestfwd=rule]"
ad196a9d 1291#ifndef _WIN32
c92ef6a2 1292 "[,smb=dir[,smbserver=addr]]\n"
ad196a9d
JK
1293#endif
1294 " connect the user mode network stack to VLAN 'n', configure its\n"
1295 " DHCP server and enabled optional services\n"
5824d651
BS
1296#endif
1297#ifdef _WIN32
1298 "-net tap[,vlan=n][,name=str],ifname=name\n"
1299 " connect the host TAP network interface to VLAN 'n'\n"
1300#else
a7c36ee4
CB
1301 "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,helper=helper][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostforce=on|off]\n"
1302 " connect the host TAP network interface to VLAN 'n' \n"
1303 " use network scripts 'file' (default=" DEFAULT_NETWORK_SCRIPT ")\n"
1304 " to configure it and 'dfile' (default=" DEFAULT_NETWORK_DOWN_SCRIPT ")\n"
1305 " to deconfigure it\n"
ca1a8a06 1306 " use '[down]script=no' to disable script execution\n"
a7c36ee4
CB
1307 " use network helper 'helper' (default=" DEFAULT_BRIDGE_HELPER ") to\n"
1308 " configure it\n"
5824d651 1309 " use 'fd=h' to connect to an already opened TAP interface\n"
ca1a8a06 1310 " use 'sndbuf=nbytes' to limit the size of the send buffer (the\n"
f157ed20 1311 " default is disabled 'sndbuf=0' to enable flow control set 'sndbuf=1048576')\n"
ca1a8a06
BR
1312 " use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag\n"
1313 " use vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition\n"
82b0d80e 1314 " use vhost=on to enable experimental in kernel accelerator\n"
5430a28f 1315 " (only has effect for virtio guests which use MSIX)\n"
1316 " use vhostforce=on to force vhost on for non-MSIX virtio guests\n"
82b0d80e 1317 " use 'vhostfd=h' to connect to an already opened vhost net device\n"
a7c36ee4
CB
1318 "-net bridge[,vlan=n][,name=str][,br=bridge][,helper=helper]\n"
1319 " connects a host TAP network interface to a host bridge device 'br'\n"
1320 " (default=" DEFAULT_BRIDGE_INTERFACE ") using the program 'helper'\n"
1321 " (default=" DEFAULT_BRIDGE_HELPER ")\n"
5824d651
BS
1322#endif
1323 "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
1324 " connect the vlan 'n' to another VLAN using a socket connection\n"
3a75e74c 1325 "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port[,localaddr=addr]]\n"
5824d651 1326 " connect the vlan 'n' to multicast maddr and port\n"
3a75e74c 1327 " use 'localaddr=addr' to specify the host address to send packets from\n"
0e0e7fac
B
1328 "-net socket[,vlan=n][,name=str][,fd=h][,udp=host:port][,localaddr=host:port]\n"
1329 " connect the vlan 'n' to another VLAN using an UDP tunnel\n"
5824d651
BS
1330#ifdef CONFIG_VDE
1331 "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
1332 " connect the vlan 'n' to port 'n' of a vde switch running\n"
1333 " on host and listening for incoming connections on 'socketpath'.\n"
1334 " Use group 'groupname' and mode 'octalmode' to change default\n"
1335 " ownership and permissions for communication port.\n"
1336#endif
bb9ea79e
AL
1337 "-net dump[,vlan=n][,file=f][,len=n]\n"
1338 " dump traffic on vlan 'n' to file 'f' (max n bytes per packet)\n"
ca1a8a06 1339 "-net none use it alone to have zero network devices. If no -net option\n"
ad96090a 1340 " is provided, the default is '-net nic -net user'\n", QEMU_ARCH_ALL)
a1ea458f
MM
1341DEF("netdev", HAS_ARG, QEMU_OPTION_netdev,
1342 "-netdev ["
1343#ifdef CONFIG_SLIRP
1344 "user|"
1345#endif
1346 "tap|"
a7c36ee4 1347 "bridge|"
a1ea458f
MM
1348#ifdef CONFIG_VDE
1349 "vde|"
1350#endif
ad96090a 1351 "socket],id=str[,option][,option][,...]\n", QEMU_ARCH_ALL)
5824d651 1352STEXI
609c1dac 1353@item -net nic[,vlan=@var{n}][,macaddr=@var{mac}][,model=@var{type}] [,name=@var{name}][,addr=@var{addr}][,vectors=@var{v}]
6616b2ad 1354@findex -net
5824d651 1355Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
0d6b0b1d 1356= 0 is the default). The NIC is an e1000 by default on the PC
5607c388
MA
1357target. Optionally, the MAC address can be changed to @var{mac}, the
1358device address set to @var{addr} (PCI cards only),
ffe6370c
MT
1359and a @var{name} can be assigned for use in monitor commands.
1360Optionally, for PCI cards, you can specify the number @var{v} of MSI-X vectors
1361that the card should have; this option currently only affects virtio cards; set
1362@var{v} = 0 to disable MSI-X. If no @option{-net} option is specified, a single
071c9394 1363NIC is created. QEMU can emulate several different models of network card.
5824d651 1364Valid values for @var{type} are
ffe6370c 1365@code{virtio}, @code{i82551}, @code{i82557b}, @code{i82559er},
5824d651
BS
1366@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
1367@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.
1368Not all devices are supported on all targets. Use -net nic,model=?
1369for a list of available devices for your target.
1370
08d12022 1371@item -netdev user,id=@var{id}[,@var{option}][,@var{option}][,...]
ad196a9d 1372@item -net user[,@var{option}][,@var{option}][,...]
5824d651 1373Use the user mode network stack which requires no administrator
ad196a9d
JK
1374privilege to run. Valid options are:
1375
b3f046c2 1376@table @option
ad196a9d
JK
1377@item vlan=@var{n}
1378Connect user mode stack to VLAN @var{n} (@var{n} = 0 is the default).
1379
08d12022 1380@item id=@var{id}
ad196a9d
JK
1381@item name=@var{name}
1382Assign symbolic name for use in monitor commands.
1383
c92ef6a2
JK
1384@item net=@var{addr}[/@var{mask}]
1385Set IP network address the guest will see. Optionally specify the netmask,
1386either in the form a.b.c.d or as number of valid top-most bits. Default is
b0b36e5d 138710.0.2.0/24.
c92ef6a2
JK
1388
1389@item host=@var{addr}
1390Specify the guest-visible address of the host. Default is the 2nd IP in the
1391guest network, i.e. x.x.x.2.
ad196a9d 1392
c54ed5bc 1393@item restrict=on|off
caef55ed 1394If this option is enabled, the guest will be isolated, i.e. it will not be
ad196a9d 1395able to contact the host and no guest IP packets will be routed over the host
caef55ed 1396to the outside. This option does not affect any explicitly set forwarding rules.
ad196a9d
JK
1397
1398@item hostname=@var{name}
1399Specifies the client hostname reported by the builtin DHCP server.
1400
c92ef6a2
JK
1401@item dhcpstart=@var{addr}
1402Specify the first of the 16 IPs the built-in DHCP server can assign. Default
b0b36e5d 1403is the 15th to 31st IP in the guest network, i.e. x.x.x.15 to x.x.x.31.
c92ef6a2
JK
1404
1405@item dns=@var{addr}
1406Specify the guest-visible address of the virtual nameserver. The address must
1407be different from the host address. Default is the 3rd IP in the guest network,
1408i.e. x.x.x.3.
1409
ad196a9d
JK
1410@item tftp=@var{dir}
1411When using the user mode network stack, activate a built-in TFTP
1412server. The files in @var{dir} will be exposed as the root of a TFTP server.
1413The TFTP client on the guest must be configured in binary mode (use the command
c92ef6a2 1414@code{bin} of the Unix TFTP client).
ad196a9d
JK
1415
1416@item bootfile=@var{file}
1417When using the user mode network stack, broadcast @var{file} as the BOOTP
1418filename. In conjunction with @option{tftp}, this can be used to network boot
1419a guest from a local directory.
1420
1421Example (using pxelinux):
1422@example
3804da9d 1423qemu-system-i386 -hda linux.img -boot n -net user,tftp=/path/to/tftp/files,bootfile=/pxelinux.0
ad196a9d
JK
1424@end example
1425
c92ef6a2 1426@item smb=@var{dir}[,smbserver=@var{addr}]
ad196a9d
JK
1427When using the user mode network stack, activate a built-in SMB
1428server so that Windows OSes can access to the host files in @file{@var{dir}}
c92ef6a2
JK
1429transparently. The IP address of the SMB server can be set to @var{addr}. By
1430default the 4th IP in the guest network is used, i.e. x.x.x.4.
ad196a9d
JK
1431
1432In the guest Windows OS, the line:
1433@example
143410.0.2.4 smbserver
1435@end example
1436must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
1437or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
1438
1439Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
1440
e2d8830e
B
1441Note that a SAMBA server must be installed on the host OS.
1442QEMU was tested successfully with smbd versions from Red Hat 9,
1443Fedora Core 3 and OpenSUSE 11.x.
ad196a9d 1444
3c6a0580 1445@item hostfwd=[tcp|udp]:[@var{hostaddr}]:@var{hostport}-[@var{guestaddr}]:@var{guestport}
c92ef6a2
JK
1446Redirect incoming TCP or UDP connections to the host port @var{hostport} to
1447the guest IP address @var{guestaddr} on guest port @var{guestport}. If
1448@var{guestaddr} is not specified, its value is x.x.x.15 (default first address
3c6a0580
JK
1449given by the built-in DHCP server). By specifying @var{hostaddr}, the rule can
1450be bound to a specific host interface. If no connection type is set, TCP is
c92ef6a2 1451used. This option can be given multiple times.
ad196a9d
JK
1452
1453For example, to redirect host X11 connection from screen 1 to guest
1454screen 0, use the following:
1455
1456@example
1457# on the host
3804da9d 1458qemu-system-i386 -net user,hostfwd=tcp:127.0.0.1:6001-:6000 [...]
ad196a9d
JK
1459# this host xterm should open in the guest X11 server
1460xterm -display :1
1461@end example
1462
1463To redirect telnet connections from host port 5555 to telnet port on
1464the guest, use the following:
1465
1466@example
1467# on the host
3804da9d 1468qemu-system-i386 -net user,hostfwd=tcp::5555-:23 [...]
ad196a9d
JK
1469telnet localhost 5555
1470@end example
1471
1472Then when you use on the host @code{telnet localhost 5555}, you
1473connect to the guest telnet server.
5824d651 1474
c92ef6a2 1475@item guestfwd=[tcp]:@var{server}:@var{port}-@var{dev}
b412eb61 1476@item guestfwd=[tcp]:@var{server}:@var{port}-@var{cmd:command}
3c6a0580 1477Forward guest TCP connections to the IP address @var{server} on port @var{port}
b412eb61
AG
1478to the character device @var{dev} or to a program executed by @var{cmd:command}
1479which gets spawned for each connection. This option can be given multiple times.
1480
43ffe61f 1481You can either use a chardev directly and have that one used throughout QEMU's
b412eb61
AG
1482lifetime, like in the following example:
1483
1484@example
1485# open 10.10.1.1:4321 on bootup, connect 10.0.2.100:1234 to it whenever
1486# the guest accesses it
1487qemu -net user,guestfwd=tcp:10.0.2.100:1234-tcp:10.10.1.1:4321 [...]
1488@end example
1489
1490Or you can execute a command on every TCP connection established by the guest,
43ffe61f 1491so that QEMU behaves similar to an inetd process for that virtual server:
b412eb61
AG
1492
1493@example
1494# call "netcat 10.10.1.1 4321" on every TCP connection to 10.0.2.100:1234
1495# and connect the TCP stream to its stdin/stdout
1496qemu -net 'user,guestfwd=tcp:10.0.2.100:1234-cmd:netcat 10.10.1.1 4321'
1497@end example
ad196a9d
JK
1498
1499@end table
1500
1501Note: Legacy stand-alone options -tftp, -bootp, -smb and -redir are still
1502processed and applied to -net user. Mixing them with the new configuration
1503syntax gives undefined results. Their use for new applications is discouraged
1504as they will be removed from future versions.
5824d651 1505
08d12022 1506@item -netdev tap,id=@var{id}[,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}][,helper=@var{helper}]
a7c36ee4
CB
1507@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}][,helper=@var{helper}]
1508Connect the host TAP network interface @var{name} to VLAN @var{n}.
1509
1510Use the network script @var{file} to configure it and the network script
5824d651 1511@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
a7c36ee4
CB
1512automatically provides one. The default network configure script is
1513@file{/etc/qemu-ifup} and the default network deconfigure script is
1514@file{/etc/qemu-ifdown}. Use @option{script=no} or @option{downscript=no}
1515to disable script execution.
1516
1517If running QEMU as an unprivileged user, use the network helper
1518@var{helper} to configure the TAP interface. The default network
1519helper executable is @file{/usr/local/libexec/qemu-bridge-helper}.
1520
1521@option{fd}=@var{h} can be used to specify the handle of an already
1522opened host TAP interface.
1523
1524Examples:
5824d651
BS
1525
1526@example
a7c36ee4 1527#launch a QEMU instance with the default network script
3804da9d 1528qemu-system-i386 linux.img -net nic -net tap
5824d651
BS
1529@end example
1530
5824d651 1531@example
a7c36ee4
CB
1532#launch a QEMU instance with two NICs, each one connected
1533#to a TAP device
3804da9d
SW
1534qemu-system-i386 linux.img \
1535 -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
1536 -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
5824d651
BS
1537@end example
1538
a7c36ee4
CB
1539@example
1540#launch a QEMU instance with the default network helper to
1541#connect a TAP device to bridge br0
3804da9d
SW
1542qemu-system-i386 linux.img \
1543 -net nic -net tap,"helper=/usr/local/libexec/qemu-bridge-helper"
a7c36ee4
CB
1544@end example
1545
08d12022 1546@item -netdev bridge,id=@var{id}[,br=@var{bridge}][,helper=@var{helper}]
a7c36ee4
CB
1547@item -net bridge[,vlan=@var{n}][,name=@var{name}][,br=@var{bridge}][,helper=@var{helper}]
1548Connect a host TAP network interface to a host bridge device.
1549
1550Use the network helper @var{helper} to configure the TAP interface and
1551attach it to the bridge. The default network helper executable is
1552@file{/usr/local/libexec/qemu-bridge-helper} and the default bridge
1553device is @file{br0}.
1554
1555Examples:
1556
1557@example
1558#launch a QEMU instance with the default network helper to
1559#connect a TAP device to bridge br0
3804da9d 1560qemu-system-i386 linux.img -net bridge -net nic,model=virtio
a7c36ee4
CB
1561@end example
1562
1563@example
1564#launch a QEMU instance with the default network helper to
1565#connect a TAP device to bridge qemubr0
3804da9d 1566qemu-system-i386 linux.img -net bridge,br=qemubr0 -net nic,model=virtio
a7c36ee4
CB
1567@end example
1568
08d12022 1569@item -netdev socket,id=@var{id}[,fd=@var{h}][,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}]
609c1dac 1570@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}] [,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}]
5824d651
BS
1571
1572Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
1573machine using a TCP socket connection. If @option{listen} is
1574specified, QEMU waits for incoming connections on @var{port}
1575(@var{host} is optional). @option{connect} is used to connect to
1576another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
1577specifies an already opened TCP socket.
1578
1579Example:
1580@example
1581# launch a first QEMU instance
3804da9d
SW
1582qemu-system-i386 linux.img \
1583 -net nic,macaddr=52:54:00:12:34:56 \
1584 -net socket,listen=:1234
5824d651
BS
1585# connect the VLAN 0 of this instance to the VLAN 0
1586# of the first instance
3804da9d
SW
1587qemu-system-i386 linux.img \
1588 -net nic,macaddr=52:54:00:12:34:57 \
1589 -net socket,connect=127.0.0.1:1234
5824d651
BS
1590@end example
1591
08d12022 1592@item -netdev socket,id=@var{id}[,fd=@var{h}][,mcast=@var{maddr}:@var{port}[,localaddr=@var{addr}]]
3a75e74c 1593@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,mcast=@var{maddr}:@var{port}[,localaddr=@var{addr}]]
5824d651
BS
1594
1595Create a VLAN @var{n} shared with another QEMU virtual
1596machines using a UDP multicast socket, effectively making a bus for
1597every QEMU with same multicast address @var{maddr} and @var{port}.
1598NOTES:
1599@enumerate
1600@item
1601Several QEMU can be running on different hosts and share same bus (assuming
1602correct multicast setup for these hosts).
1603@item
1604mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
1605@url{http://user-mode-linux.sf.net}.
1606@item
1607Use @option{fd=h} to specify an already opened UDP multicast socket.
1608@end enumerate
1609
1610Example:
1611@example
1612# launch one QEMU instance
3804da9d
SW
1613qemu-system-i386 linux.img \
1614 -net nic,macaddr=52:54:00:12:34:56 \
1615 -net socket,mcast=230.0.0.1:1234
5824d651 1616# launch another QEMU instance on same "bus"
3804da9d
SW
1617qemu-system-i386 linux.img \
1618 -net nic,macaddr=52:54:00:12:34:57 \
1619 -net socket,mcast=230.0.0.1:1234
5824d651 1620# launch yet another QEMU instance on same "bus"
3804da9d
SW
1621qemu-system-i386 linux.img \
1622 -net nic,macaddr=52:54:00:12:34:58 \
1623 -net socket,mcast=230.0.0.1:1234
5824d651
BS
1624@end example
1625
1626Example (User Mode Linux compat.):
1627@example
1628# launch QEMU instance (note mcast address selected
1629# is UML's default)
3804da9d
SW
1630qemu-system-i386 linux.img \
1631 -net nic,macaddr=52:54:00:12:34:56 \
1632 -net socket,mcast=239.192.168.1:1102
5824d651
BS
1633# launch UML
1634/path/to/linux ubd0=/path/to/root_fs eth0=mcast
1635@end example
1636
3a75e74c
MR
1637Example (send packets from host's 1.2.3.4):
1638@example
3804da9d
SW
1639qemu-system-i386 linux.img \
1640 -net nic,macaddr=52:54:00:12:34:56 \
1641 -net socket,mcast=239.192.168.1:1102,localaddr=1.2.3.4
3a75e74c
MR
1642@end example
1643
08d12022 1644@item -netdev vde,id=@var{id}[,sock=@var{socketpath}][,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]
609c1dac 1645@item -net vde[,vlan=@var{n}][,name=@var{name}][,sock=@var{socketpath}] [,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]
5824d651
BS
1646Connect VLAN @var{n} to PORT @var{n} of a vde switch running on host and
1647listening for incoming connections on @var{socketpath}. Use GROUP @var{groupname}
1648and MODE @var{octalmode} to change default ownership and permissions for
c1ba4e0b 1649communication port. This option is only available if QEMU has been compiled
5824d651
BS
1650with vde support enabled.
1651
1652Example:
1653@example
1654# launch vde switch
1655vde_switch -F -sock /tmp/myswitch
1656# launch QEMU instance
3804da9d 1657qemu-system-i386 linux.img -net nic -net vde,sock=/tmp/myswitch
5824d651
BS
1658@end example
1659
bb9ea79e
AL
1660@item -net dump[,vlan=@var{n}][,file=@var{file}][,len=@var{len}]
1661Dump network traffic on VLAN @var{n} to file @var{file} (@file{qemu-vlan0.pcap} by default).
1662At most @var{len} bytes (64k by default) per packet are stored. The file format is
1663libpcap, so it can be analyzed with tools such as tcpdump or Wireshark.
1664
5824d651
BS
1665@item -net none
1666Indicate that no network devices should be configured. It is used to
1667override the default configuration (@option{-net nic -net user}) which
1668is activated if no @option{-net} options are provided.
5824d651
BS
1669
1670@end table
1671ETEXI
1672
7273a2db
MB
1673DEFHEADING()
1674
1675DEFHEADING(Character device options:)
1676
1677DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
97331287 1678 "-chardev null,id=id[,mux=on|off]\n"
7273a2db 1679 "-chardev socket,id=id[,host=host],port=host[,to=to][,ipv4][,ipv6][,nodelay]\n"
97331287
JK
1680 " [,server][,nowait][,telnet][,mux=on|off] (tcp)\n"
1681 "-chardev socket,id=id,path=path[,server][,nowait][,telnet],[mux=on|off] (unix)\n"
7273a2db 1682 "-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]\n"
97331287
JK
1683 " [,localport=localport][,ipv4][,ipv6][,mux=on|off]\n"
1684 "-chardev msmouse,id=id[,mux=on|off]\n"
7273a2db 1685 "-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]\n"
97331287
JK
1686 " [,mux=on|off]\n"
1687 "-chardev file,id=id,path=path[,mux=on|off]\n"
1688 "-chardev pipe,id=id,path=path[,mux=on|off]\n"
7273a2db 1689#ifdef _WIN32
97331287
JK
1690 "-chardev console,id=id[,mux=on|off]\n"
1691 "-chardev serial,id=id,path=path[,mux=on|off]\n"
7273a2db 1692#else
97331287 1693 "-chardev pty,id=id[,mux=on|off]\n"
b7fdb3ab 1694 "-chardev stdio,id=id[,mux=on|off][,signal=on|off]\n"
7273a2db
MB
1695#endif
1696#ifdef CONFIG_BRLAPI
97331287 1697 "-chardev braille,id=id[,mux=on|off]\n"
7273a2db
MB
1698#endif
1699#if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \
1700 || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
97331287 1701 "-chardev tty,id=id,path=path[,mux=on|off]\n"
7273a2db
MB
1702#endif
1703#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
97331287 1704 "-chardev parport,id=id,path=path[,mux=on|off]\n"
cbcc6336
AL
1705#endif
1706#if defined(CONFIG_SPICE)
1707 "-chardev spicevmc,id=id,name=name[,debug=debug]\n"
7273a2db 1708#endif
ad96090a 1709 , QEMU_ARCH_ALL
7273a2db
MB
1710)
1711
1712STEXI
1713
1714The general form of a character device option is:
1715@table @option
1716
97331287 1717@item -chardev @var{backend} ,id=@var{id} [,mux=on|off] [,@var{options}]
6616b2ad 1718@findex -chardev
7273a2db
MB
1719Backend is one of:
1720@option{null},
1721@option{socket},
1722@option{udp},
1723@option{msmouse},
1724@option{vc},
1725@option{file},
1726@option{pipe},
1727@option{console},
1728@option{serial},
1729@option{pty},
1730@option{stdio},
1731@option{braille},
1732@option{tty},
cbcc6336
AL
1733@option{parport},
1734@option{spicevmc}.
7273a2db
MB
1735The specific backend will determine the applicable options.
1736
1737All devices must have an id, which can be any string up to 127 characters long.
1738It is used to uniquely identify this device in other command line directives.
1739
97331287
JK
1740A character device may be used in multiplexing mode by multiple front-ends.
1741The key sequence of @key{Control-a} and @key{c} will rotate the input focus
1742between attached front-ends. Specify @option{mux=on} to enable this mode.
1743
7273a2db
MB
1744Options to each backend are described below.
1745
1746@item -chardev null ,id=@var{id}
1747A void device. This device will not emit any data, and will drop any data it
1748receives. The null backend does not take any options.
1749
1750@item -chardev socket ,id=@var{id} [@var{TCP options} or @var{unix options}] [,server] [,nowait] [,telnet]
1751
1752Create a two-way stream socket, which can be either a TCP or a unix socket. A
1753unix socket will be created if @option{path} is specified. Behaviour is
1754undefined if TCP options are specified for a unix socket.
1755
1756@option{server} specifies that the socket shall be a listening socket.
1757
1758@option{nowait} specifies that QEMU should not block waiting for a client to
1759connect to a listening socket.
1760
1761@option{telnet} specifies that traffic on the socket should interpret telnet
1762escape sequences.
1763
1764TCP and unix socket options are given below:
1765
1766@table @option
1767
8d533561 1768@item TCP options: port=@var{port} [,host=@var{host}] [,to=@var{to}] [,ipv4] [,ipv6] [,nodelay]
7273a2db
MB
1769
1770@option{host} for a listening socket specifies the local address to be bound.
1771For a connecting socket species the remote host to connect to. @option{host} is
1772optional for listening sockets. If not specified it defaults to @code{0.0.0.0}.
1773
1774@option{port} for a listening socket specifies the local port to be bound. For a
1775connecting socket specifies the port on the remote host to connect to.
1776@option{port} can be given as either a port number or a service name.
1777@option{port} is required.
1778
1779@option{to} is only relevant to listening sockets. If it is specified, and
1780@option{port} cannot be bound, QEMU will attempt to bind to subsequent ports up
1781to and including @option{to} until it succeeds. @option{to} must be specified
1782as a port number.
1783
1784@option{ipv4} and @option{ipv6} specify that either IPv4 or IPv6 must be used.
1785If neither is specified the socket may use either protocol.
1786
1787@option{nodelay} disables the Nagle algorithm.
1788
1789@item unix options: path=@var{path}
1790
1791@option{path} specifies the local path of the unix socket. @option{path} is
1792required.
1793
1794@end table
1795
1796@item -chardev udp ,id=@var{id} [,host=@var{host}] ,port=@var{port} [,localaddr=@var{localaddr}] [,localport=@var{localport}] [,ipv4] [,ipv6]
1797
1798Sends all traffic from the guest to a remote host over UDP.
1799
1800@option{host} specifies the remote host to connect to. If not specified it
1801defaults to @code{localhost}.
1802
1803@option{port} specifies the port on the remote host to connect to. @option{port}
1804is required.
1805
1806@option{localaddr} specifies the local address to bind to. If not specified it
1807defaults to @code{0.0.0.0}.
1808
1809@option{localport} specifies the local port to bind to. If not specified any
1810available local port will be used.
1811
1812@option{ipv4} and @option{ipv6} specify that either IPv4 or IPv6 must be used.
1813If neither is specified the device may use either protocol.
1814
1815@item -chardev msmouse ,id=@var{id}
1816
1817Forward QEMU's emulated msmouse events to the guest. @option{msmouse} does not
1818take any options.
1819
1820@item -chardev vc ,id=@var{id} [[,width=@var{width}] [,height=@var{height}]] [[,cols=@var{cols}] [,rows=@var{rows}]]
1821
1822Connect to a QEMU text console. @option{vc} may optionally be given a specific
1823size.
1824
1825@option{width} and @option{height} specify the width and height respectively of
1826the console, in pixels.
1827
1828@option{cols} and @option{rows} specify that the console be sized to fit a text
1829console with the given dimensions.
1830
1831@item -chardev file ,id=@var{id} ,path=@var{path}
1832
1833Log all traffic received from the guest to a file.
1834
1835@option{path} specifies the path of the file to be opened. This file will be
1836created if it does not already exist, and overwritten if it does. @option{path}
1837is required.
1838
1839@item -chardev pipe ,id=@var{id} ,path=@var{path}
1840
1841Create a two-way connection to the guest. The behaviour differs slightly between
1842Windows hosts and other hosts:
1843
1844On Windows, a single duplex pipe will be created at
1845@file{\\.pipe\@option{path}}.
1846
1847On other hosts, 2 pipes will be created called @file{@option{path}.in} and
1848@file{@option{path}.out}. Data written to @file{@option{path}.in} will be
1849received by the guest. Data written by the guest can be read from
1850@file{@option{path}.out}. QEMU will not create these fifos, and requires them to
1851be present.
1852
1853@option{path} forms part of the pipe path as described above. @option{path} is
1854required.
1855
1856@item -chardev console ,id=@var{id}
1857
1858Send traffic from the guest to QEMU's standard output. @option{console} does not
1859take any options.
1860
1861@option{console} is only available on Windows hosts.
1862
1863@item -chardev serial ,id=@var{id} ,path=@option{path}
1864
1865Send traffic from the guest to a serial device on the host.
1866
1867@option{serial} is
1868only available on Windows hosts.
1869
1870@option{path} specifies the name of the serial device to open.
1871
1872@item -chardev pty ,id=@var{id}
1873
1874Create a new pseudo-terminal on the host and connect to it. @option{pty} does
1875not take any options.
1876
1877@option{pty} is not available on Windows hosts.
1878
b7fdb3ab 1879@item -chardev stdio ,id=@var{id} [,signal=on|off]
b65ee4fa 1880Connect to standard input and standard output of the QEMU process.
b7fdb3ab
AJ
1881
1882@option{signal} controls if signals are enabled on the terminal, that includes
1883exiting QEMU with the key sequence @key{Control-c}. This option is enabled by
1884default, use @option{signal=off} to disable it.
1885
1886@option{stdio} is not available on Windows hosts.
7273a2db
MB
1887
1888@item -chardev braille ,id=@var{id}
1889
1890Connect to a local BrlAPI server. @option{braille} does not take any options.
1891
1892@item -chardev tty ,id=@var{id} ,path=@var{path}
1893
1894Connect to a local tty device.
1895
1896@option{tty} is only available on Linux, Sun, FreeBSD, NetBSD, OpenBSD and
1897DragonFlyBSD hosts.
1898
1899@option{path} specifies the path to the tty. @option{path} is required.
1900
1901@item -chardev parport ,id=@var{id} ,path=@var{path}
1902
1903@option{parport} is only available on Linux, FreeBSD and DragonFlyBSD hosts.
1904
1905Connect to a local parallel port.
1906
1907@option{path} specifies the path to the parallel port device. @option{path} is
1908required.
1909
cbcc6336
AL
1910@item -chardev spicevmc ,id=@var{id} ,debug=@var{debug}, name=@var{name}
1911
3a846906
SH
1912@option{spicevmc} is only available when spice support is built in.
1913
cbcc6336
AL
1914@option{debug} debug level for spicevmc
1915
1916@option{name} name of spice channel to connect to
1917
1918Connect to a spice virtual machine channel, such as vdiport.
cbcc6336 1919
7273a2db
MB
1920@end table
1921ETEXI
1922
1923DEFHEADING()
1924
0f5314a2
RS
1925STEXI
1926DEFHEADING(Device URL Syntax:)
1927
1928In addition to using normal file images for the emulated storage devices,
1929QEMU can also use networked resources such as iSCSI devices. These are
1930specified using a special URL syntax.
1931
1932@table @option
1933@item iSCSI
1934iSCSI support allows QEMU to access iSCSI resources directly and use as
1935images for the guest storage. Both disk and cdrom images are supported.
1936
1937Syntax for specifying iSCSI LUNs is
1938``iscsi://<target-ip>[:<port>]/<target-iqn>/<lun>''
1939
31459f46
RS
1940By default qemu will use the iSCSI initiator-name
1941'iqn.2008-11.org.linux-kvm[:<name>]' but this can also be set from the command
1942line or a configuration file.
1943
1944
0f5314a2
RS
1945Example (without authentication):
1946@example
3804da9d
SW
1947qemu-system-i386 -iscsi initiator-name=iqn.2001-04.com.example:my-initiator \
1948 -cdrom iscsi://192.0.2.1/iqn.2001-04.com.example/2 \
1949 -drive file=iscsi://192.0.2.1/iqn.2001-04.com.example/1
0f5314a2
RS
1950@end example
1951
1952Example (CHAP username/password via URL):
1953@example
3804da9d 1954qemu-system-i386 -drive file=iscsi://user%password@@192.0.2.1/iqn.2001-04.com.example/1
0f5314a2
RS
1955@end example
1956
1957Example (CHAP username/password via environment variables):
1958@example
1959LIBISCSI_CHAP_USERNAME="user" \
1960LIBISCSI_CHAP_PASSWORD="password" \
3804da9d 1961qemu-system-i386 -drive file=iscsi://192.0.2.1/iqn.2001-04.com.example/1
0f5314a2
RS
1962@end example
1963
1964iSCSI support is an optional feature of QEMU and only available when
1965compiled and linked against libiscsi.
f9dadc98
RS
1966ETEXI
1967DEF("iscsi", HAS_ARG, QEMU_OPTION_iscsi,
1968 "-iscsi [user=user][,password=password]\n"
1969 " [,header-digest=CRC32C|CR32C-NONE|NONE-CRC32C|NONE\n"
1970 " [,initiator-name=iqn]\n"
1971 " iSCSI session parameters\n", QEMU_ARCH_ALL)
1972STEXI
0f5314a2 1973
31459f46
RS
1974iSCSI parameters such as username and password can also be specified via
1975a configuration file. See qemu-doc for more information and examples.
1976
08ae330e
RS
1977@item NBD
1978QEMU supports NBD (Network Block Devices) both using TCP protocol as well
1979as Unix Domain Sockets.
1980
1981Syntax for specifying a NBD device using TCP
1982``nbd:<server-ip>:<port>[:exportname=<export>]''
1983
1984Syntax for specifying a NBD device using Unix Domain Sockets
1985``nbd:unix:<domain-socket>[:exportname=<export>]''
1986
1987
1988Example for TCP
1989@example
3804da9d 1990qemu-system-i386 --drive file=nbd:192.0.2.1:30000
08ae330e
RS
1991@end example
1992
1993Example for Unix Domain Sockets
1994@example
3804da9d 1995qemu-system-i386 --drive file=nbd:unix:/tmp/nbd-socket
08ae330e
RS
1996@end example
1997
d9990228
RS
1998@item Sheepdog
1999Sheepdog is a distributed storage system for QEMU.
2000QEMU supports using either local sheepdog devices or remote networked
2001devices.
2002
2003Syntax for specifying a sheepdog device
2004@table @list
2005``sheepdog:<vdiname>''
2006
2007``sheepdog:<vdiname>:<snapid>''
2008
2009``sheepdog:<vdiname>:<tag>''
2010
2011``sheepdog:<host>:<port>:<vdiname>''
2012
2013``sheepdog:<host>:<port>:<vdiname>:<snapid>''
2014
2015``sheepdog:<host>:<port>:<vdiname>:<tag>''
2016@end table
2017
2018Example
2019@example
3804da9d 2020qemu-system-i386 --drive file=sheepdog:192.0.2.1:30000:MyVirtualMachine
d9990228
RS
2021@end example
2022
2023See also @url{http://http://www.osrg.net/sheepdog/}.
2024
0f5314a2
RS
2025@end table
2026ETEXI
2027
7273a2db
MB
2028DEFHEADING(Bluetooth(R) options:)
2029
5824d651 2030DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
5824d651
BS
2031 "-bt hci,null dumb bluetooth HCI - doesn't respond to commands\n" \
2032 "-bt hci,host[:id]\n" \
2033 " use host's HCI with the given name\n" \
2034 "-bt hci[,vlan=n]\n" \
2035 " emulate a standard HCI in virtual scatternet 'n'\n" \
2036 "-bt vhci[,vlan=n]\n" \
2037 " add host computer to virtual scatternet 'n' using VHCI\n" \
2038 "-bt device:dev[,vlan=n]\n" \
ad96090a
BS
2039 " emulate a bluetooth device 'dev' in scatternet 'n'\n",
2040 QEMU_ARCH_ALL)
5824d651 2041STEXI
5824d651
BS
2042@table @option
2043
2044@item -bt hci[...]
6616b2ad 2045@findex -bt
5824d651
BS
2046Defines the function of the corresponding Bluetooth HCI. -bt options
2047are matched with the HCIs present in the chosen machine type. For
2048example when emulating a machine with only one HCI built into it, only
2049the first @code{-bt hci[...]} option is valid and defines the HCI's
2050logic. The Transport Layer is decided by the machine type. Currently
2051the machines @code{n800} and @code{n810} have one HCI and all other
2052machines have none.
2053
2054@anchor{bt-hcis}
2055The following three types are recognized:
2056
b3f046c2 2057@table @option
5824d651
BS
2058@item -bt hci,null
2059(default) The corresponding Bluetooth HCI assumes no internal logic
2060and will not respond to any HCI commands or emit events.
2061
2062@item -bt hci,host[:@var{id}]
2063(@code{bluez} only) The corresponding HCI passes commands / events
2064to / from the physical HCI identified by the name @var{id} (default:
2065@code{hci0}) on the computer running QEMU. Only available on @code{bluez}
2066capable systems like Linux.
2067
2068@item -bt hci[,vlan=@var{n}]
2069Add a virtual, standard HCI that will participate in the Bluetooth
2070scatternet @var{n} (default @code{0}). Similarly to @option{-net}
2071VLANs, devices inside a bluetooth network @var{n} can only communicate
2072with other devices in the same network (scatternet).
2073@end table
2074
2075@item -bt vhci[,vlan=@var{n}]
2076(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
2077to the host bluetooth stack instead of to the emulated target. This
2078allows the host and target machines to participate in a common scatternet
2079and communicate. Requires the Linux @code{vhci} driver installed. Can
2080be used as following:
2081
2082@example
3804da9d 2083qemu-system-i386 [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
5824d651
BS
2084@end example
2085
2086@item -bt device:@var{dev}[,vlan=@var{n}]
2087Emulate a bluetooth device @var{dev} and place it in network @var{n}
2088(default @code{0}). QEMU can only emulate one type of bluetooth devices
2089currently:
2090
b3f046c2 2091@table @option
5824d651
BS
2092@item keyboard
2093Virtual wireless keyboard implementing the HIDP bluetooth profile.
2094@end table
2095@end table
2096ETEXI
2097
2098DEFHEADING()
2099
7677f05d 2100DEFHEADING(Linux/Multiboot boot specific:)
5824d651 2101STEXI
7677f05d
AG
2102
2103When using these options, you can use a given Linux or Multiboot
2104kernel without installing it in the disk image. It can be useful
5824d651
BS
2105for easier testing of various kernels.
2106
2107@table @option
2108ETEXI
2109
2110DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
ad96090a 2111 "-kernel bzImage use 'bzImage' as kernel image\n", QEMU_ARCH_ALL)
5824d651
BS
2112STEXI
2113@item -kernel @var{bzImage}
6616b2ad 2114@findex -kernel
7677f05d
AG
2115Use @var{bzImage} as kernel image. The kernel can be either a Linux kernel
2116or in multiboot format.
5824d651
BS
2117ETEXI
2118
2119DEF("append", HAS_ARG, QEMU_OPTION_append, \
ad96090a 2120 "-append cmdline use 'cmdline' as kernel command line\n", QEMU_ARCH_ALL)
5824d651
BS
2121STEXI
2122@item -append @var{cmdline}
6616b2ad 2123@findex -append
5824d651
BS
2124Use @var{cmdline} as kernel command line
2125ETEXI
2126
2127DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
ad96090a 2128 "-initrd file use 'file' as initial ram disk\n", QEMU_ARCH_ALL)
5824d651
BS
2129STEXI
2130@item -initrd @var{file}
6616b2ad 2131@findex -initrd
5824d651 2132Use @var{file} as initial ram disk.
7677f05d
AG
2133
2134@item -initrd "@var{file1} arg=foo,@var{file2}"
2135
2136This syntax is only available with multiboot.
2137
2138Use @var{file1} and @var{file2} as modules and pass arg=foo as parameter to the
2139first module.
5824d651
BS
2140ETEXI
2141
412beee6 2142DEF("dtb", HAS_ARG, QEMU_OPTION_dtb, \
379b5c7c 2143 "-dtb file use 'file' as device tree image\n", QEMU_ARCH_ALL)
412beee6
GL
2144STEXI
2145@item -dtb @var{file}
2146@findex -dtb
2147Use @var{file} as a device tree binary (dtb) image and pass it to the kernel
2148on boot.
2149ETEXI
2150
5824d651
BS
2151STEXI
2152@end table
2153ETEXI
2154
2155DEFHEADING()
2156
2157DEFHEADING(Debug/Expert options:)
2158
2159STEXI
2160@table @option
2161ETEXI
2162
2163DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
ad96090a
BS
2164 "-serial dev redirect the serial port to char device 'dev'\n",
2165 QEMU_ARCH_ALL)
5824d651
BS
2166STEXI
2167@item -serial @var{dev}
6616b2ad 2168@findex -serial
5824d651
BS
2169Redirect the virtual serial port to host character device
2170@var{dev}. The default device is @code{vc} in graphical mode and
2171@code{stdio} in non graphical mode.
2172
2173This option can be used several times to simulate up to 4 serial
2174ports.
2175
2176Use @code{-serial none} to disable all serial ports.
2177
2178Available character devices are:
b3f046c2 2179@table @option
4e257e5e 2180@item vc[:@var{W}x@var{H}]
5824d651
BS
2181Virtual console. Optionally, a width and height can be given in pixel with
2182@example
2183vc:800x600
2184@end example
2185It is also possible to specify width or height in characters:
2186@example
2187vc:80Cx24C
2188@end example
2189@item pty
2190[Linux only] Pseudo TTY (a new PTY is automatically allocated)
2191@item none
2192No device is allocated.
2193@item null
2194void device
2195@item /dev/XXX
2196[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
2197parameters are set according to the emulated ones.
2198@item /dev/parport@var{N}
2199[Linux only, parallel port only] Use host parallel port
2200@var{N}. Currently SPP and EPP parallel port features can be used.
2201@item file:@var{filename}
2202Write output to @var{filename}. No character can be read.
2203@item stdio
2204[Unix only] standard input/output
2205@item pipe:@var{filename}
2206name pipe @var{filename}
2207@item COM@var{n}
2208[Windows only] Use host serial port @var{n}
2209@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
2210This implements UDP Net Console.
2211When @var{remote_host} or @var{src_ip} are not specified
2212they default to @code{0.0.0.0}.
2213When not using a specified @var{src_port} a random port is automatically chosen.
5824d651
BS
2214
2215If you just want a simple readonly console you can use @code{netcat} or
b65ee4fa
SW
2216@code{nc}, by starting QEMU with: @code{-serial udp::4555} and nc as:
2217@code{nc -u -l -p 4555}. Any time QEMU writes something to that port it
5824d651
BS
2218will appear in the netconsole session.
2219
2220If you plan to send characters back via netconsole or you want to stop
b65ee4fa 2221and start QEMU a lot of times, you should have QEMU use the same
5824d651 2222source port each time by using something like @code{-serial
b65ee4fa 2223udp::4555@@:4556} to QEMU. Another approach is to use a patched
5824d651
BS
2224version of netcat which can listen to a TCP port and send and receive
2225characters via udp. If you have a patched version of netcat which
2226activates telnet remote echo and single char transfer, then you can
2227use the following options to step up a netcat redirector to allow
b65ee4fa 2228telnet on port 5555 to access the QEMU port.
5824d651 2229@table @code
071c9394 2230@item QEMU Options:
5824d651
BS
2231-serial udp::4555@@:4556
2232@item netcat options:
2233-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
2234@item telnet options:
2235localhost 5555
2236@end table
2237
2238@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
2239The TCP Net Console has two modes of operation. It can send the serial
2240I/O to a location or wait for a connection from a location. By default
2241the TCP Net Console is sent to @var{host} at the @var{port}. If you use
2242the @var{server} option QEMU will wait for a client socket application
2243to connect to the port before continuing, unless the @code{nowait}
2244option was specified. The @code{nodelay} option disables the Nagle buffering
2245algorithm. If @var{host} is omitted, 0.0.0.0 is assumed. Only
2246one TCP connection at a time is accepted. You can use @code{telnet} to
2247connect to the corresponding character device.
2248@table @code
2249@item Example to send tcp console to 192.168.0.2 port 4444
2250-serial tcp:192.168.0.2:4444
2251@item Example to listen and wait on port 4444 for connection
2252-serial tcp::4444,server
2253@item Example to not wait and listen on ip 192.168.0.100 port 4444
2254-serial tcp:192.168.0.100:4444,server,nowait
2255@end table
2256
2257@item telnet:@var{host}:@var{port}[,server][,nowait][,nodelay]
2258The telnet protocol is used instead of raw tcp sockets. The options
2259work the same as if you had specified @code{-serial tcp}. The
2260difference is that the port acts like a telnet server or client using
2261telnet option negotiation. This will also allow you to send the
2262MAGIC_SYSRQ sequence if you use a telnet that supports sending the break
2263sequence. Typically in unix telnet you do it with Control-] and then
2264type "send break" followed by pressing the enter key.
2265
2266@item unix:@var{path}[,server][,nowait]
2267A unix domain socket is used instead of a tcp socket. The option works the
2268same as if you had specified @code{-serial tcp} except the unix domain socket
2269@var{path} is used for connections.
2270
2271@item mon:@var{dev_string}
2272This is a special option to allow the monitor to be multiplexed onto
2273another serial port. The monitor is accessed with key sequence of
2274@key{Control-a} and then pressing @key{c}. See monitor access
2275@ref{pcsys_keys} in the -nographic section for more keys.
2276@var{dev_string} should be any one of the serial devices specified
2277above. An example to multiplex the monitor onto a telnet server
2278listening on port 4444 would be:
2279@table @code
2280@item -serial mon:telnet::4444,server,nowait
2281@end table
2282
2283@item braille
2284Braille device. This will use BrlAPI to display the braille output on a real
2285or fake device.
2286
be8b28a9
KW
2287@item msmouse
2288Three button serial mouse. Configure the guest to use Microsoft protocol.
5824d651
BS
2289@end table
2290ETEXI
2291
2292DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
ad96090a
BS
2293 "-parallel dev redirect the parallel port to char device 'dev'\n",
2294 QEMU_ARCH_ALL)
5824d651
BS
2295STEXI
2296@item -parallel @var{dev}
6616b2ad 2297@findex -parallel
5824d651
BS
2298Redirect the virtual parallel port to host device @var{dev} (same
2299devices as the serial port). On Linux hosts, @file{/dev/parportN} can
2300be used to use hardware devices connected on the corresponding host
2301parallel port.
2302
2303This option can be used several times to simulate up to 3 parallel
2304ports.
2305
2306Use @code{-parallel none} to disable all parallel ports.
2307ETEXI
2308
2309DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
ad96090a
BS
2310 "-monitor dev redirect the monitor to char device 'dev'\n",
2311 QEMU_ARCH_ALL)
5824d651 2312STEXI
4e307fc8 2313@item -monitor @var{dev}
6616b2ad 2314@findex -monitor
5824d651
BS
2315Redirect the monitor to host device @var{dev} (same devices as the
2316serial port).
2317The default device is @code{vc} in graphical mode and @code{stdio} in
2318non graphical mode.
2319ETEXI
6ca5582d 2320DEF("qmp", HAS_ARG, QEMU_OPTION_qmp, \
ad96090a
BS
2321 "-qmp dev like -monitor but opens in 'control' mode\n",
2322 QEMU_ARCH_ALL)
95d5f08b
SW
2323STEXI
2324@item -qmp @var{dev}
6616b2ad 2325@findex -qmp
95d5f08b
SW
2326Like -monitor but opens in 'control' mode.
2327ETEXI
5824d651 2328
22a0e04b 2329DEF("mon", HAS_ARG, QEMU_OPTION_mon, \
ad96090a 2330 "-mon chardev=[name][,mode=readline|control][,default]\n", QEMU_ARCH_ALL)
22a0e04b
GH
2331STEXI
2332@item -mon chardev=[name][,mode=readline|control][,default]
6616b2ad 2333@findex -mon
22a0e04b
GH
2334Setup monitor on chardev @var{name}.
2335ETEXI
2336
c9f398e5 2337DEF("debugcon", HAS_ARG, QEMU_OPTION_debugcon, \
ad96090a
BS
2338 "-debugcon dev redirect the debug console to char device 'dev'\n",
2339 QEMU_ARCH_ALL)
c9f398e5
PA
2340STEXI
2341@item -debugcon @var{dev}
6616b2ad 2342@findex -debugcon
c9f398e5
PA
2343Redirect the debug console to host device @var{dev} (same devices as the
2344serial port). The debug console is an I/O port which is typically port
23450xe9; writing to that I/O port sends output to this device.
2346The default device is @code{vc} in graphical mode and @code{stdio} in
2347non graphical mode.
2348ETEXI
2349
5824d651 2350DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
ad96090a 2351 "-pidfile file write PID to 'file'\n", QEMU_ARCH_ALL)
5824d651
BS
2352STEXI
2353@item -pidfile @var{file}
6616b2ad 2354@findex -pidfile
5824d651
BS
2355Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
2356from a script.
2357ETEXI
2358
1b530a6d 2359DEF("singlestep", 0, QEMU_OPTION_singlestep, \
ad96090a 2360 "-singlestep always run in singlestep mode\n", QEMU_ARCH_ALL)
1b530a6d
AJ
2361STEXI
2362@item -singlestep
6616b2ad 2363@findex -singlestep
1b530a6d
AJ
2364Run the emulation in single step mode.
2365ETEXI
2366
5824d651 2367DEF("S", 0, QEMU_OPTION_S, \
ad96090a
BS
2368 "-S freeze CPU at startup (use 'c' to start execution)\n",
2369 QEMU_ARCH_ALL)
5824d651
BS
2370STEXI
2371@item -S
6616b2ad 2372@findex -S
5824d651
BS
2373Do not start CPU at startup (you must type 'c' in the monitor).
2374ETEXI
2375
59030a8c 2376DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
ad96090a 2377 "-gdb dev wait for gdb connection on 'dev'\n", QEMU_ARCH_ALL)
59030a8c
AL
2378STEXI
2379@item -gdb @var{dev}
6616b2ad 2380@findex -gdb
59030a8c
AL
2381Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
2382connections will likely be TCP-based, but also UDP, pseudo TTY, or even
b65ee4fa 2383stdio are reasonable use case. The latter is allowing to start QEMU from
59030a8c
AL
2384within gdb and establish the connection via a pipe:
2385@example
3804da9d 2386(gdb) target remote | exec qemu-system-i386 -gdb stdio ...
59030a8c 2387@end example
5824d651
BS
2388ETEXI
2389
59030a8c 2390DEF("s", 0, QEMU_OPTION_s, \
ad96090a
BS
2391 "-s shorthand for -gdb tcp::" DEFAULT_GDBSTUB_PORT "\n",
2392 QEMU_ARCH_ALL)
5824d651 2393STEXI
59030a8c 2394@item -s
6616b2ad 2395@findex -s
59030a8c
AL
2396Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
2397(@pxref{gdb_usage}).
5824d651
BS
2398ETEXI
2399
2400DEF("d", HAS_ARG, QEMU_OPTION_d, \
ad96090a
BS
2401 "-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items)\n",
2402 QEMU_ARCH_ALL)
5824d651
BS
2403STEXI
2404@item -d
6616b2ad 2405@findex -d
5824d651
BS
2406Output log in /tmp/qemu.log
2407ETEXI
2408
c235d738
MF
2409DEF("D", HAS_ARG, QEMU_OPTION_D, \
2410 "-D logfile output log to logfile (instead of the default /tmp/qemu.log)\n",
2411 QEMU_ARCH_ALL)
2412STEXI
8bd383b4 2413@item -D @var{logfile}
c235d738 2414@findex -D
8bd383b4 2415Output log in @var{logfile} instead of /tmp/qemu.log
c235d738
MF
2416ETEXI
2417
5824d651
BS
2418DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
2419 "-hdachs c,h,s[,t]\n" \
2420 " force hard disk 0 physical geometry and the optional BIOS\n" \
b65ee4fa 2421 " translation (t=none or lba) (usually QEMU can guess them)\n",
ad96090a 2422 QEMU_ARCH_ALL)
5824d651
BS
2423STEXI
2424@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
6616b2ad 2425@findex -hdachs
5824d651
BS
2426Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
2427@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
2428translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
2429all those parameters. This option is useful for old MS-DOS disk
2430images.
2431ETEXI
2432
2433DEF("L", HAS_ARG, QEMU_OPTION_L, \
ad96090a
BS
2434 "-L path set the directory for the BIOS, VGA BIOS and keymaps\n",
2435 QEMU_ARCH_ALL)
5824d651
BS
2436STEXI
2437@item -L @var{path}
6616b2ad 2438@findex -L
5824d651
BS
2439Set the directory for the BIOS, VGA BIOS and keymaps.
2440ETEXI
2441
2442DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
ad96090a 2443 "-bios file set the filename for the BIOS\n", QEMU_ARCH_ALL)
5824d651
BS
2444STEXI
2445@item -bios @var{file}
6616b2ad 2446@findex -bios
5824d651
BS
2447Set the filename for the BIOS.
2448ETEXI
2449
5824d651 2450DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
ad96090a 2451 "-enable-kvm enable KVM full virtualization support\n", QEMU_ARCH_ALL)
5824d651
BS
2452STEXI
2453@item -enable-kvm
6616b2ad 2454@findex -enable-kvm
5824d651
BS
2455Enable KVM full virtualization support. This option is only available
2456if KVM support is enabled when compiling.
2457ETEXI
2458
e37630ca 2459DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
ad96090a 2460 "-xen-domid id specify xen guest domain id\n", QEMU_ARCH_ALL)
e37630ca
AL
2461DEF("xen-create", 0, QEMU_OPTION_xen_create,
2462 "-xen-create create domain using xen hypercalls, bypassing xend\n"
ad96090a
BS
2463 " warning: should not be used when xend is in use\n",
2464 QEMU_ARCH_ALL)
e37630ca
AL
2465DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
2466 "-xen-attach attach to existing xen domain\n"
b65ee4fa 2467 " xend will use this when starting QEMU\n",
ad96090a 2468 QEMU_ARCH_ALL)
95d5f08b
SW
2469STEXI
2470@item -xen-domid @var{id}
6616b2ad 2471@findex -xen-domid
95d5f08b
SW
2472Specify xen guest domain @var{id} (XEN only).
2473@item -xen-create
6616b2ad 2474@findex -xen-create
95d5f08b
SW
2475Create domain using xen hypercalls, bypassing xend.
2476Warning: should not be used when xend is in use (XEN only).
2477@item -xen-attach
6616b2ad 2478@findex -xen-attach
95d5f08b 2479Attach to existing xen domain.
b65ee4fa 2480xend will use this when starting QEMU (XEN only).
95d5f08b 2481ETEXI
e37630ca 2482
5824d651 2483DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
ad96090a 2484 "-no-reboot exit instead of rebooting\n", QEMU_ARCH_ALL)
5824d651
BS
2485STEXI
2486@item -no-reboot
6616b2ad 2487@findex -no-reboot
5824d651
BS
2488Exit instead of rebooting.
2489ETEXI
2490
2491DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
ad96090a 2492 "-no-shutdown stop before shutdown\n", QEMU_ARCH_ALL)
5824d651
BS
2493STEXI
2494@item -no-shutdown
6616b2ad 2495@findex -no-shutdown
5824d651
BS
2496Don't exit QEMU on guest shutdown, but instead only stop the emulation.
2497This allows for instance switching to monitor to commit changes to the
2498disk image.
2499ETEXI
2500
2501DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
2502 "-loadvm [tag|id]\n" \
ad96090a
BS
2503 " start right away with a saved state (loadvm in monitor)\n",
2504 QEMU_ARCH_ALL)
5824d651
BS
2505STEXI
2506@item -loadvm @var{file}
6616b2ad 2507@findex -loadvm
5824d651
BS
2508Start right away with a saved state (@code{loadvm} in monitor)
2509ETEXI
2510
2511#ifndef _WIN32
2512DEF("daemonize", 0, QEMU_OPTION_daemonize, \
ad96090a 2513 "-daemonize daemonize QEMU after initializing\n", QEMU_ARCH_ALL)
5824d651
BS
2514#endif
2515STEXI
2516@item -daemonize
6616b2ad 2517@findex -daemonize
5824d651
BS
2518Daemonize the QEMU process after initialization. QEMU will not detach from
2519standard IO until it is ready to receive connections on any of its devices.
2520This option is a useful way for external programs to launch QEMU without having
2521to cope with initialization race conditions.
2522ETEXI
2523
2524DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
ad96090a
BS
2525 "-option-rom rom load a file, rom, into the option ROM space\n",
2526 QEMU_ARCH_ALL)
5824d651
BS
2527STEXI
2528@item -option-rom @var{file}
6616b2ad 2529@findex -option-rom
5824d651
BS
2530Load the contents of @var{file} as an option ROM.
2531This option is useful to load things like EtherBoot.
2532ETEXI
2533
2534DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
2535 "-clock force the use of the given methods for timer alarm.\n" \
ad96090a
BS
2536 " To see what timers are available use -clock ?\n",
2537 QEMU_ARCH_ALL)
5824d651
BS
2538STEXI
2539@item -clock @var{method}
6616b2ad 2540@findex -clock
5824d651
BS
2541Force the use of the given methods for timer alarm. To see what timers
2542are available use -clock ?.
2543ETEXI
2544
1ed2fc1f 2545HXCOMM Options deprecated by -rtc
ad96090a
BS
2546DEF("localtime", 0, QEMU_OPTION_localtime, "", QEMU_ARCH_ALL)
2547DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, "", QEMU_ARCH_ALL)
1ed2fc1f 2548
1ed2fc1f 2549DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
78808141 2550 "-rtc [base=utc|localtime|date][,clock=host|rt|vm][,driftfix=none|slew]\n" \
ad96090a
BS
2551 " set the RTC base and clock, enable drift fix for clock ticks (x86 only)\n",
2552 QEMU_ARCH_ALL)
5824d651 2553
5824d651
BS
2554STEXI
2555
6875204c 2556@item -rtc [base=utc|localtime|@var{date}][,clock=host|vm][,driftfix=none|slew]
6616b2ad 2557@findex -rtc
1ed2fc1f
JK
2558Specify @option{base} as @code{utc} or @code{localtime} to let the RTC start at the current
2559UTC or local time, respectively. @code{localtime} is required for correct date in
2560MS-DOS or Windows. To start at a specific point in time, provide @var{date} in the
2561format @code{2006-06-17T16:01:21} or @code{2006-06-17}. The default base is UTC.
2562
6875204c
JK
2563By default the RTC is driven by the host system time. This allows to use the
2564RTC as accurate reference clock inside the guest, specifically if the host
2565time is smoothly following an accurate external reference clock, e.g. via NTP.
78808141
PB
2566If you want to isolate the guest time from the host, you can set @option{clock}
2567to @code{rt} instead. To even prevent it from progressing during suspension,
2568you can set it to @code{vm}.
6875204c 2569
1ed2fc1f
JK
2570Enable @option{driftfix} (i386 targets only) if you experience time drift problems,
2571specifically with Windows' ACPI HAL. This option will try to figure out how
2572many timer interrupts were not processed by the Windows guest and will
2573re-inject them.
5824d651
BS
2574ETEXI
2575
2576DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
2577 "-icount [N|auto]\n" \
bc14ca24 2578 " enable virtual instruction counter with 2^N clock ticks per\n" \
ad96090a 2579 " instruction\n", QEMU_ARCH_ALL)
5824d651 2580STEXI
4e257e5e 2581@item -icount [@var{N}|auto]
6616b2ad 2582@findex -icount
5824d651 2583Enable virtual instruction counter. The virtual cpu will execute one
4e257e5e 2584instruction every 2^@var{N} ns of virtual time. If @code{auto} is specified
5824d651
BS
2585then the virtual cpu speed will be automatically adjusted to keep virtual
2586time within a few seconds of real time.
2587
2588Note that while this option can give deterministic behavior, it does not
2589provide cycle accurate emulation. Modern CPUs contain superscalar out of
2590order cores with complex cache hierarchies. The number of instructions
2591executed often has little or no correlation with actual performance.
2592ETEXI
2593
9dd986cc
RJ
2594DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
2595 "-watchdog i6300esb|ib700\n" \
ad96090a
BS
2596 " enable virtual hardware watchdog [default=none]\n",
2597 QEMU_ARCH_ALL)
9dd986cc
RJ
2598STEXI
2599@item -watchdog @var{model}
6616b2ad 2600@findex -watchdog
9dd986cc
RJ
2601Create a virtual hardware watchdog device. Once enabled (by a guest
2602action), the watchdog must be periodically polled by an agent inside
2603the guest or else the guest will be restarted.
2604
2605The @var{model} is the model of hardware watchdog to emulate. Choices
2606for model are: @code{ib700} (iBASE 700) which is a very simple ISA
2607watchdog with a single timer, or @code{i6300esb} (Intel 6300ESB I/O
2608controller hub) which is a much more featureful PCI-based dual-timer
2609watchdog. Choose a model for which your guest has drivers.
2610
2611Use @code{-watchdog ?} to list available hardware models. Only one
2612watchdog can be enabled for a guest.
2613ETEXI
2614
2615DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
2616 "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
ad96090a
BS
2617 " action when watchdog fires [default=reset]\n",
2618 QEMU_ARCH_ALL)
9dd986cc
RJ
2619STEXI
2620@item -watchdog-action @var{action}
2621
2622The @var{action} controls what QEMU will do when the watchdog timer
2623expires.
2624The default is
2625@code{reset} (forcefully reset the guest).
2626Other possible actions are:
2627@code{shutdown} (attempt to gracefully shutdown the guest),
2628@code{poweroff} (forcefully poweroff the guest),
2629@code{pause} (pause the guest),
2630@code{debug} (print a debug message and continue), or
2631@code{none} (do nothing).
2632
2633Note that the @code{shutdown} action requires that the guest responds
2634to ACPI signals, which it may not be able to do in the sort of
2635situations where the watchdog would have expired, and thus
2636@code{-watchdog-action shutdown} is not recommended for production use.
2637
2638Examples:
2639
2640@table @code
2641@item -watchdog i6300esb -watchdog-action pause
2642@item -watchdog ib700
2643@end table
2644ETEXI
2645
5824d651 2646DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
ad96090a
BS
2647 "-echr chr set terminal escape character instead of ctrl-a\n",
2648 QEMU_ARCH_ALL)
5824d651
BS
2649STEXI
2650
4e257e5e 2651@item -echr @var{numeric_ascii_value}
6616b2ad 2652@findex -echr
5824d651
BS
2653Change the escape character used for switching to the monitor when using
2654monitor and serial sharing. The default is @code{0x01} when using the
2655@code{-nographic} option. @code{0x01} is equal to pressing
2656@code{Control-a}. You can select a different character from the ascii
2657control keys where 1 through 26 map to Control-a through Control-z. For
2658instance you could use the either of the following to change the escape
2659character to Control-t.
2660@table @code
2661@item -echr 0x14
2662@item -echr 20
2663@end table
2664ETEXI
2665
2666DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
2667 "-virtioconsole c\n" \
ad96090a 2668 " set virtio console\n", QEMU_ARCH_ALL)
5824d651
BS
2669STEXI
2670@item -virtioconsole @var{c}
6616b2ad 2671@findex -virtioconsole
5824d651 2672Set virtio console.
98b19252
AS
2673
2674This option is maintained for backward compatibility.
2675
2676Please use @code{-device virtconsole} for the new way of invocation.
5824d651
BS
2677ETEXI
2678
2679DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
ad96090a 2680 "-show-cursor show cursor\n", QEMU_ARCH_ALL)
5824d651 2681STEXI
95d5f08b 2682@item -show-cursor
6616b2ad 2683@findex -show-cursor
95d5f08b 2684Show cursor.
5824d651
BS
2685ETEXI
2686
2687DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
ad96090a 2688 "-tb-size n set TB size\n", QEMU_ARCH_ALL)
5824d651 2689STEXI
95d5f08b 2690@item -tb-size @var{n}
6616b2ad 2691@findex -tb-size
95d5f08b 2692Set TB size.
5824d651
BS
2693ETEXI
2694
2695DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
ad96090a
BS
2696 "-incoming p prepare for incoming migration, listen on port p\n",
2697 QEMU_ARCH_ALL)
5824d651 2698STEXI
95d5f08b 2699@item -incoming @var{port}
6616b2ad 2700@findex -incoming
95d5f08b 2701Prepare for incoming migration, listen on @var{port}.
5824d651
BS
2702ETEXI
2703
d8c208dd 2704DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \
ad96090a 2705 "-nodefaults don't create default devices\n", QEMU_ARCH_ALL)
d8c208dd 2706STEXI
3dbf2c7f 2707@item -nodefaults
6616b2ad 2708@findex -nodefaults
66c19bf1
MN
2709Don't create default devices. Normally, QEMU sets the default devices like serial
2710port, parallel port, virtual console, monitor device, VGA adapter, floppy and
2711CD-ROM drive and others. The @code{-nodefaults} option will disable all those
2712default devices.
d8c208dd
GH
2713ETEXI
2714
5824d651
BS
2715#ifndef _WIN32
2716DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
ad96090a
BS
2717 "-chroot dir chroot to dir just before starting the VM\n",
2718 QEMU_ARCH_ALL)
5824d651
BS
2719#endif
2720STEXI
4e257e5e 2721@item -chroot @var{dir}
6616b2ad 2722@findex -chroot
5824d651
BS
2723Immediately before starting guest execution, chroot to the specified
2724directory. Especially useful in combination with -runas.
2725ETEXI
2726
2727#ifndef _WIN32
2728DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
ad96090a
BS
2729 "-runas user change to user id user just before starting the VM\n",
2730 QEMU_ARCH_ALL)
5824d651
BS
2731#endif
2732STEXI
4e257e5e 2733@item -runas @var{user}
6616b2ad 2734@findex -runas
5824d651
BS
2735Immediately before starting guest execution, drop root privileges, switching
2736to the specified user.
2737ETEXI
2738
5824d651
BS
2739DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
2740 "-prom-env variable=value\n"
ad96090a
BS
2741 " set OpenBIOS nvram variables\n",
2742 QEMU_ARCH_PPC | QEMU_ARCH_SPARC)
95d5f08b
SW
2743STEXI
2744@item -prom-env @var{variable}=@var{value}
6616b2ad 2745@findex -prom-env
95d5f08b
SW
2746Set OpenBIOS nvram @var{variable} to given @var{value} (PPC, SPARC only).
2747ETEXI
5824d651 2748DEF("semihosting", 0, QEMU_OPTION_semihosting,
1ddeaa5d 2749 "-semihosting semihosting mode\n", QEMU_ARCH_ARM | QEMU_ARCH_M68K | QEMU_ARCH_XTENSA)
95d5f08b
SW
2750STEXI
2751@item -semihosting
6616b2ad 2752@findex -semihosting
1ddeaa5d 2753Semihosting mode (ARM, M68K, Xtensa only).
95d5f08b 2754ETEXI
5824d651 2755DEF("old-param", 0, QEMU_OPTION_old_param,
ad96090a 2756 "-old-param old param mode\n", QEMU_ARCH_ARM)
95d5f08b
SW
2757STEXI
2758@item -old-param
6616b2ad 2759@findex -old-param (ARM)
95d5f08b
SW
2760Old param mode (ARM only).
2761ETEXI
2762
7d76ad4f
EO
2763DEF("sandbox", HAS_ARG, QEMU_OPTION_sandbox, \
2764 "-sandbox <arg> Enable seccomp mode 2 system call filter (default 'off').\n",
2765 QEMU_ARCH_ALL)
2766STEXI
2767@item -sandbox
2768@findex -sandbox
2769Enable Seccomp mode 2 system call filter. 'on' will enable syscall filtering and 'off' will
2770disable it. The default is 'off'.
2771ETEXI
2772
715a664a 2773DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
ad96090a 2774 "-readconfig <file>\n", QEMU_ARCH_ALL)
3dbf2c7f
SW
2775STEXI
2776@item -readconfig @var{file}
6616b2ad 2777@findex -readconfig
ed24cfac
MN
2778Read device configuration from @var{file}. This approach is useful when you want to spawn
2779QEMU process with many command line options but you don't want to exceed the command line
2780character limit.
3dbf2c7f 2781ETEXI
715a664a
GH
2782DEF("writeconfig", HAS_ARG, QEMU_OPTION_writeconfig,
2783 "-writeconfig <file>\n"
ad96090a 2784 " read/write config file\n", QEMU_ARCH_ALL)
3dbf2c7f
SW
2785STEXI
2786@item -writeconfig @var{file}
6616b2ad 2787@findex -writeconfig
ed24cfac
MN
2788Write device configuration to @var{file}. The @var{file} can be either filename to save
2789command line and device configuration into file or dash @code{-}) character to print the
2790output to stdout. This can be later used as input file for @code{-readconfig} option.
3dbf2c7f 2791ETEXI
292444cb
AL
2792DEF("nodefconfig", 0, QEMU_OPTION_nodefconfig,
2793 "-nodefconfig\n"
ad96090a
BS
2794 " do not load default config files at startup\n",
2795 QEMU_ARCH_ALL)
292444cb
AL
2796STEXI
2797@item -nodefconfig
6616b2ad 2798@findex -nodefconfig
f29a5614
EH
2799Normally QEMU loads configuration files from @var{sysconfdir} and @var{datadir} at startup.
2800The @code{-nodefconfig} option will prevent QEMU from loading any of those config files.
2801ETEXI
2802DEF("no-user-config", 0, QEMU_OPTION_nouserconfig,
2803 "-no-user-config\n"
2804 " do not load user-provided config files at startup\n",
2805 QEMU_ARCH_ALL)
2806STEXI
2807@item -no-user-config
2808@findex -no-user-config
2809The @code{-no-user-config} option makes QEMU not load any of the user-provided
2810config files on @var{sysconfdir}, but won't make it skip the QEMU-provided config
2811files from @var{datadir}.
292444cb 2812ETEXI
ab6540d5 2813DEF("trace", HAS_ARG, QEMU_OPTION_trace,
23d15e86
L
2814 "-trace [events=<file>][,file=<file>]\n"
2815 " specify tracing options\n",
ab6540d5
PS
2816 QEMU_ARCH_ALL)
2817STEXI
23d15e86
L
2818HXCOMM This line is not accurate, as some sub-options are backend-specific but
2819HXCOMM HX does not support conditional compilation of text.
2820@item -trace [events=@var{file}][,file=@var{file}]
ab6540d5 2821@findex -trace
e4858974 2822
23d15e86
L
2823Specify tracing options.
2824
2825@table @option
2826@item events=@var{file}
2827Immediately enable events listed in @var{file}.
2828The file must contain one event name (as listed in the @var{trace-events} file)
2829per line.
c1ba4e0b
SW
2830This option is only available if QEMU has been compiled with
2831either @var{simple} or @var{stderr} tracing backend.
23d15e86
L
2832@item file=@var{file}
2833Log output traces to @var{file}.
2834
c1ba4e0b
SW
2835This option is only available if QEMU has been compiled with
2836the @var{simple} tracing backend.
23d15e86 2837@end table
ab6540d5 2838ETEXI
3dbf2c7f 2839
c7f0f3b1
AL
2840DEF("qtest", HAS_ARG, QEMU_OPTION_qtest,
2841 "-qtest CHR specify tracing options\n",
2842 QEMU_ARCH_ALL)
2843
2844DEF("qtest-log", HAS_ARG, QEMU_OPTION_qtest_log,
2845 "-qtest-log LOG specify tracing options\n",
2846 QEMU_ARCH_ALL)
2847
0f66998f
PM
2848#ifdef __linux__
2849DEF("enable-fips", 0, QEMU_OPTION_enablefips,
2850 "-enable-fips enable FIPS 140-2 compliance\n",
2851 QEMU_ARCH_ALL)
2852#endif
2853STEXI
2854@item -enable-fips
2855@findex -enable-fips
2856Enable FIPS 140-2 compliance mode.
2857ETEXI
2858
3dbf2c7f
SW
2859HXCOMM This is the last statement. Insert new options before this line!
2860STEXI
2861@end table
2862ETEXI