Statistics
| Branch: | Revision:

root / qemu-options.hx @ e4858974

History | View | Annotate | Download (84.9 kB)

1
HXCOMM Use DEFHEADING() to define headings in both help text and texi
2
HXCOMM Text between STEXI and ETEXI are copied to texi version and
3
HXCOMM discarded from C version
4
HXCOMM DEF(option, HAS_ARG/0, opt_enum, opt_help, arch_mask) is used to
5
HXCOMM construct option structures, enums and help message for specified
6
HXCOMM architectures.
7
HXCOMM HXCOMM can be used for comments, discarded from both texi and C
8

    
9
DEFHEADING(Standard options:)
10
STEXI
11
@table @option
12
ETEXI
13

    
14
DEF("help", 0, QEMU_OPTION_h,
15
    "-h or -help     display this help and exit\n", QEMU_ARCH_ALL)
16
STEXI
17
@item -h
18
@findex -h
19
Display help and exit
20
ETEXI
21

    
22
DEF("version", 0, QEMU_OPTION_version,
23
    "-version        display version information and exit\n", QEMU_ARCH_ALL)
24
STEXI
25
@item -version
26
@findex -version
27
Display version information and exit
28
ETEXI
29

    
30
DEF("machine", HAS_ARG, QEMU_OPTION_machine, \
31
    "-machine [type=]name[,prop[=value][,...]]\n"
32
    "                selects emulated machine (-machine ? for list)\n"
33
    "                property accel=accel1[:accel2[:...]] selects accelerator\n"
34
    "                supported accelerators are kvm, xen, tcg (default: tcg)\n",
35
    QEMU_ARCH_ALL)
36
STEXI
37
@item -machine [type=]@var{name}[,prop=@var{value}[,...]]
38
@findex -machine
39
Select the emulated machine by @var{name}. Use @code{-machine ?} to list
40
available machines. Supported machine properties are:
41
@table @option
42
@item accel=@var{accels1}[:@var{accels2}[:...]]
43
This is used to enable an accelerator. Depending on the target architecture,
44
kvm, xen, or tcg can be available. By default, tcg is used. If there is more
45
than one accelerator specified, the next one is used if the previous one fails
46
to initialize.
47
@end table
48
ETEXI
49

    
50
HXCOMM Deprecated by -machine
51
DEF("M", HAS_ARG, QEMU_OPTION_M, "", QEMU_ARCH_ALL)
52

    
53
DEF("cpu", HAS_ARG, QEMU_OPTION_cpu,
54
    "-cpu cpu        select CPU (-cpu ? for list)\n", QEMU_ARCH_ALL)
55
STEXI
56
@item -cpu @var{model}
57
@findex -cpu
58
Select CPU model (-cpu ? for list and additional feature selection)
59
ETEXI
60

    
61
DEF("smp", HAS_ARG, QEMU_OPTION_smp,
62
    "-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]\n"
63
    "                set the number of CPUs to 'n' [default=1]\n"
64
    "                maxcpus= maximum number of total cpus, including\n"
65
    "                offline CPUs for hotplug, etc\n"
66
    "                cores= number of CPU cores on one socket\n"
67
    "                threads= number of threads on one CPU core\n"
68
    "                sockets= number of discrete sockets in the system\n",
69
        QEMU_ARCH_ALL)
70
STEXI
71
@item -smp @var{n}[,cores=@var{cores}][,threads=@var{threads}][,sockets=@var{sockets}][,maxcpus=@var{maxcpus}]
72
@findex -smp
73
Simulate an SMP system with @var{n} CPUs. On the PC target, up to 255
74
CPUs are supported. On Sparc32 target, Linux limits the number of usable CPUs
75
to 4.
76
For the PC target, the number of @var{cores} per socket, the number
77
of @var{threads} per cores and the total number of @var{sockets} can be
78
specified. Missing values will be computed. If any on the three values is
79
given, the total number of CPUs @var{n} can be omitted. @var{maxcpus}
80
specifies the maximum number of hotpluggable CPUs.
81
ETEXI
82

    
83
DEF("numa", HAS_ARG, QEMU_OPTION_numa,
84
    "-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]\n", QEMU_ARCH_ALL)
85
STEXI
86
@item -numa @var{opts}
87
@findex -numa
88
Simulate a multi node NUMA system. If mem and cpus are omitted, resources
89
are split equally.
90
ETEXI
91

    
92
DEF("fda", HAS_ARG, QEMU_OPTION_fda,
93
    "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n", QEMU_ARCH_ALL)
94
DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "", QEMU_ARCH_ALL)
95
STEXI
96
@item -fda @var{file}
97
@item -fdb @var{file}
98
@findex -fda
99
@findex -fdb
100
Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
101
use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
102
ETEXI
103

    
104
DEF("hda", HAS_ARG, QEMU_OPTION_hda,
105
    "-hda/-hdb file  use 'file' as IDE hard disk 0/1 image\n", QEMU_ARCH_ALL)
106
DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "", QEMU_ARCH_ALL)
107
DEF("hdc", HAS_ARG, QEMU_OPTION_hdc,
108
    "-hdc/-hdd file  use 'file' as IDE hard disk 2/3 image\n", QEMU_ARCH_ALL)
109
DEF("hdd", HAS_ARG, QEMU_OPTION_hdd, "", QEMU_ARCH_ALL)
110
STEXI
111
@item -hda @var{file}
112
@item -hdb @var{file}
113
@item -hdc @var{file}
114
@item -hdd @var{file}
115
@findex -hda
116
@findex -hdb
117
@findex -hdc
118
@findex -hdd
119
Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
120
ETEXI
121

    
122
DEF("cdrom", HAS_ARG, QEMU_OPTION_cdrom,
123
    "-cdrom file     use 'file' as IDE cdrom image (cdrom is ide1 master)\n",
124
    QEMU_ARCH_ALL)
125
STEXI
126
@item -cdrom @var{file}
127
@findex -cdrom
128
Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and
129
@option{-cdrom} at the same time). You can use the host CD-ROM by
130
using @file{/dev/cdrom} as filename (@pxref{host_drives}).
131
ETEXI
132

    
133
DEF("drive", HAS_ARG, QEMU_OPTION_drive,
134
    "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]\n"
135
    "       [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n"
136
    "       [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]\n"
137
    "       [,serial=s][,addr=A][,id=name][,aio=threads|native]\n"
138
    "       [,readonly=on|off]\n"
139
    "                use 'file' as a drive image\n", QEMU_ARCH_ALL)
140
STEXI
141
@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
142
@findex -drive
143

    
144
Define a new drive. Valid options are:
145

    
146
@table @option
147
@item file=@var{file}
148
This option defines which disk image (@pxref{disk_images}) to use with
149
this drive. If the filename contains comma, you must double it
150
(for instance, "file=my,,file" to use file "my,file").
151
@item if=@var{interface}
152
This option defines on which type on interface the drive is connected.
153
Available types are: ide, scsi, sd, mtd, floppy, pflash, virtio.
154
@item bus=@var{bus},unit=@var{unit}
155
These options define where is connected the drive by defining the bus number and
156
the unit id.
157
@item index=@var{index}
158
This option defines where is connected the drive by using an index in the list
159
of available connectors of a given interface type.
160
@item media=@var{media}
161
This option defines the type of the media: disk or cdrom.
162
@item cyls=@var{c},heads=@var{h},secs=@var{s}[,trans=@var{t}]
163
These options have the same definition as they have in @option{-hdachs}.
164
@item snapshot=@var{snapshot}
165
@var{snapshot} is "on" or "off" and allows to enable snapshot for given drive (see @option{-snapshot}).
166
@item cache=@var{cache}
167
@var{cache} is "none", "writeback", "unsafe", "directsync" or "writethrough" and controls how the host cache is used to access block data.
168
@item aio=@var{aio}
169
@var{aio} is "threads", or "native" and selects between pthread based disk I/O and native Linux AIO.
170
@item format=@var{format}
171
Specify which disk @var{format} will be used rather than detecting
172
the format.  Can be used to specifiy format=raw to avoid interpreting
173
an untrusted format header.
174
@item serial=@var{serial}
175
This option specifies the serial number to assign to the device.
176
@item addr=@var{addr}
177
Specify the controller's PCI address (if=virtio only).
178
@item werror=@var{action},rerror=@var{action}
179
Specify which @var{action} to take on write and read errors. Valid actions are:
180
"ignore" (ignore the error and try to continue), "stop" (pause QEMU),
181
"report" (report the error to the guest), "enospc" (pause QEMU only if the
182
host disk is full; report the error to the guest otherwise).
183
The default setting is @option{werror=enospc} and @option{rerror=report}.
184
@item readonly
185
Open drive @option{file} as read-only. Guest write attempts will fail.
186
@end table
187

    
188
By default, writethrough caching is used for all block device.  This means that
189
the host page cache will be used to read and write data but write notification
190
will be sent to the guest only when the data has been reported as written by
191
the storage subsystem.
192

    
193
Writeback caching will report data writes as completed as soon as the data is
194
present in the host page cache.  This is safe as long as you trust your host.
195
If your host crashes or loses power, then the guest may experience data
196
corruption.
197

    
198
The host page cache can be avoided entirely with @option{cache=none}.  This will
199
attempt to do disk IO directly to the guests memory.  QEMU may still perform
200
an internal copy of the data.
201

    
202
The host page cache can be avoided while only sending write notifications to
203
the guest when the data has been reported as written by the storage subsystem
204
using @option{cache=directsync}.
205

    
206
Some block drivers perform badly with @option{cache=writethrough}, most notably,
207
qcow2.  If performance is more important than correctness,
208
@option{cache=writeback} should be used with qcow2.
209

    
210
In case you don't care about data integrity over host failures, use
211
cache=unsafe. This option tells qemu that it never needs to write any data
212
to the disk but can instead keeps things in cache. If anything goes wrong,
213
like your host losing power, the disk storage getting disconnected accidently,
214
etc. you're image will most probably be rendered unusable.   When using
215
the @option{-snapshot} option, unsafe caching is always used.
216

    
217
Instead of @option{-cdrom} you can use:
218
@example
219
qemu -drive file=file,index=2,media=cdrom
220
@end example
221

    
222
Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
223
use:
224
@example
225
qemu -drive file=file,index=0,media=disk
226
qemu -drive file=file,index=1,media=disk
227
qemu -drive file=file,index=2,media=disk
228
qemu -drive file=file,index=3,media=disk
229
@end example
230

    
231
You can connect a CDROM to the slave of ide0:
232
@example
233
qemu -drive file=file,if=ide,index=1,media=cdrom
234
@end example
235

    
236
If you don't specify the "file=" argument, you define an empty drive:
237
@example
238
qemu -drive if=ide,index=1,media=cdrom
239
@end example
240

    
241
You can connect a SCSI disk with unit ID 6 on the bus #0:
242
@example
243
qemu -drive file=file,if=scsi,bus=0,unit=6
244
@end example
245

    
246
Instead of @option{-fda}, @option{-fdb}, you can use:
247
@example
248
qemu -drive file=file,index=0,if=floppy
249
qemu -drive file=file,index=1,if=floppy
250
@end example
251

    
252
By default, @var{interface} is "ide" and @var{index} is automatically
253
incremented:
254
@example
255
qemu -drive file=a -drive file=b"
256
@end example
257
is interpreted like:
258
@example
259
qemu -hda a -hdb b
260
@end example
261
ETEXI
262

    
263
DEF("set", HAS_ARG, QEMU_OPTION_set,
264
    "-set group.id.arg=value\n"
265
    "                set <arg> parameter for item <id> of type <group>\n"
266
    "                i.e. -set drive.$id.file=/path/to/image\n", QEMU_ARCH_ALL)
267
STEXI
268
@item -set
269
@findex -set
270
TODO
271
ETEXI
272

    
273
DEF("global", HAS_ARG, QEMU_OPTION_global,
274
    "-global driver.property=value\n"
275
    "                set a global default for a driver property\n",
276
    QEMU_ARCH_ALL)
277
STEXI
278
@item -global
279
@findex -global
280
TODO
281
ETEXI
282

    
283
DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
284
    "-mtdblock file  use 'file' as on-board Flash memory image\n",
285
    QEMU_ARCH_ALL)
286
STEXI
287
@item -mtdblock @var{file}
288
@findex -mtdblock
289
Use @var{file} as on-board Flash memory image.
290
ETEXI
291

    
292
DEF("sd", HAS_ARG, QEMU_OPTION_sd,
293
    "-sd file        use 'file' as SecureDigital card image\n", QEMU_ARCH_ALL)
294
STEXI
295
@item -sd @var{file}
296
@findex -sd
297
Use @var{file} as SecureDigital card image.
298
ETEXI
299

    
300
DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
301
    "-pflash file    use 'file' as a parallel flash image\n", QEMU_ARCH_ALL)
302
STEXI
303
@item -pflash @var{file}
304
@findex -pflash
305
Use @var{file} as a parallel flash image.
306
ETEXI
307

    
308
DEF("boot", HAS_ARG, QEMU_OPTION_boot,
309
    "-boot [order=drives][,once=drives][,menu=on|off]\n"
310
    "      [,splash=sp_name][,splash-time=sp_time]\n"
311
    "                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n"
312
    "                'sp_name': the file's name that would be passed to bios as logo picture, if menu=on\n"
313
    "                'sp_time': the period that splash picture last if menu=on, unit is ms\n",
314
    QEMU_ARCH_ALL)
315
STEXI
316
@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}]
317
@findex -boot
318
Specify boot order @var{drives} as a string of drive letters. Valid
319
drive letters depend on the target achitecture. The x86 PC uses: a, b
320
(floppy 1 and 2), c (first hard disk), d (first CD-ROM), n-p (Etherboot
321
from network adapter 1-4), hard disk boot is the default. To apply a
322
particular boot order only on the first startup, specify it via
323
@option{once}.
324

    
325
Interactive boot menus/prompts can be enabled via @option{menu=on} as far
326
as firmware/BIOS supports them. The default is non-interactive boot.
327

    
328
A splash picture could be passed to bios, enabling user to show it as logo,
329
when option splash=@var{sp_name} is given and menu=on, If firmware/BIOS
330
supports them. Currently Seabios for X86 system support it.
331
limitation: The splash file could be a jpeg file or a BMP file in 24 BPP
332
format(true color). The resolution should be supported by the SVGA mode, so
333
the recommended is 320x240, 640x480, 800x640.
334

    
335
@example
336
# try to boot from network first, then from hard disk
337
qemu -boot order=nc
338
# boot from CD-ROM first, switch back to default order after reboot
339
qemu -boot once=d
340
# boot with a splash picture for 5 seconds.
341
qemu -boot menu=on,splash=/root/boot.bmp,splash-time=5000
342
@end example
343

    
344
Note: The legacy format '-boot @var{drives}' is still supported but its
345
use is discouraged as it may be removed from future versions.
346
ETEXI
347

    
348
DEF("snapshot", 0, QEMU_OPTION_snapshot,
349
    "-snapshot       write to temporary files instead of disk image files\n",
350
    QEMU_ARCH_ALL)
351
STEXI
352
@item -snapshot
353
@findex -snapshot
354
Write to temporary files instead of disk image files. In this case,
355
the raw disk image you use is not written back. You can however force
356
the write back by pressing @key{C-a s} (@pxref{disk_images}).
357
ETEXI
358

    
359
DEF("m", HAS_ARG, QEMU_OPTION_m,
360
    "-m megs         set virtual RAM size to megs MB [default="
361
    stringify(DEFAULT_RAM_SIZE) "]\n", QEMU_ARCH_ALL)
362
STEXI
363
@item -m @var{megs}
364
@findex -m
365
Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB.  Optionally,
366
a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
367
gigabytes respectively.
368
ETEXI
369

    
370
DEF("mem-path", HAS_ARG, QEMU_OPTION_mempath,
371
    "-mem-path FILE  provide backing storage for guest RAM\n", QEMU_ARCH_ALL)
372
STEXI
373
@item -mem-path @var{path}
374
Allocate guest RAM from a temporarily created file in @var{path}.
375
ETEXI
376

    
377
#ifdef MAP_POPULATE
378
DEF("mem-prealloc", 0, QEMU_OPTION_mem_prealloc,
379
    "-mem-prealloc   preallocate guest memory (use with -mem-path)\n",
380
    QEMU_ARCH_ALL)
381
STEXI
382
@item -mem-prealloc
383
Preallocate memory when using -mem-path.
384
ETEXI
385
#endif
386

    
387
DEF("k", HAS_ARG, QEMU_OPTION_k,
388
    "-k language     use keyboard layout (for example 'fr' for French)\n",
389
    QEMU_ARCH_ALL)
390
STEXI
391
@item -k @var{language}
392
@findex -k
393
Use keyboard layout @var{language} (for example @code{fr} for
394
French). This option is only needed where it is not easy to get raw PC
395
keycodes (e.g. on Macs, with some X11 servers or with a VNC
396
display). You don't normally need to use it on PC/Linux or PC/Windows
397
hosts.
398

    
399
The available layouts are:
400
@example
401
ar  de-ch  es  fo     fr-ca  hu  ja  mk     no  pt-br  sv
402
da  en-gb  et  fr     fr-ch  is  lt  nl     pl  ru     th
403
de  en-us  fi  fr-be  hr     it  lv  nl-be  pt  sl     tr
404
@end example
405

    
406
The default is @code{en-us}.
407
ETEXI
408

    
409

    
410
DEF("audio-help", 0, QEMU_OPTION_audio_help,
411
    "-audio-help     print list of audio drivers and their options\n",
412
    QEMU_ARCH_ALL)
413
STEXI
414
@item -audio-help
415
@findex -audio-help
416
Will show the audio subsystem help: list of drivers, tunable
417
parameters.
418
ETEXI
419

    
420
DEF("soundhw", HAS_ARG, QEMU_OPTION_soundhw,
421
    "-soundhw c1,... enable audio support\n"
422
    "                and only specified sound cards (comma separated list)\n"
423
    "                use -soundhw ? to get the list of supported cards\n"
424
    "                use -soundhw all to enable all of them\n", QEMU_ARCH_ALL)
425
STEXI
426
@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
427
@findex -soundhw
428
Enable audio and selected sound hardware. Use ? to print all
429
available sound hardware.
430

    
431
@example
432
qemu -soundhw sb16,adlib disk.img
433
qemu -soundhw es1370 disk.img
434
qemu -soundhw ac97 disk.img
435
qemu -soundhw hda disk.img
436
qemu -soundhw all disk.img
437
qemu -soundhw ?
438
@end example
439

    
440
Note that Linux's i810_audio OSS kernel (for AC97) module might
441
require manually specifying clocking.
442

    
443
@example
444
modprobe i810_audio clocking=48000
445
@end example
446
ETEXI
447

    
448
STEXI
449
@end table
450
ETEXI
451

    
452
DEF("usb", 0, QEMU_OPTION_usb,
453
    "-usb            enable the USB driver (will be the default soon)\n",
454
    QEMU_ARCH_ALL)
455
STEXI
456
USB options:
457
@table @option
458

    
459
@item -usb
460
@findex -usb
461
Enable the USB driver (will be the default soon)
462
ETEXI
463

    
464
DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
465
    "-usbdevice name add the host or guest USB device 'name'\n",
466
    QEMU_ARCH_ALL)
467
STEXI
468

    
469
@item -usbdevice @var{devname}
470
@findex -usbdevice
471
Add the USB device @var{devname}. @xref{usb_devices}.
472

    
473
@table @option
474

    
475
@item mouse
476
Virtual Mouse. This will override the PS/2 mouse emulation when activated.
477

    
478
@item tablet
479
Pointer device that uses absolute coordinates (like a touchscreen). This
480
means qemu is able to report the mouse position without having to grab the
481
mouse. Also overrides the PS/2 mouse emulation when activated.
482

    
483
@item disk:[format=@var{format}]:@var{file}
484
Mass storage device based on file. The optional @var{format} argument
485
will be used rather than detecting the format. Can be used to specifiy
486
@code{format=raw} to avoid interpreting an untrusted format header.
487

    
488
@item host:@var{bus}.@var{addr}
489
Pass through the host device identified by @var{bus}.@var{addr} (Linux only).
490

    
491
@item host:@var{vendor_id}:@var{product_id}
492
Pass through the host device identified by @var{vendor_id}:@var{product_id}
493
(Linux only).
494

    
495
@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
496
Serial converter to host character device @var{dev}, see @code{-serial} for the
497
available devices.
498

    
499
@item braille
500
Braille device.  This will use BrlAPI to display the braille output on a real
501
or fake device.
502

    
503
@item net:@var{options}
504
Network adapter that supports CDC ethernet and RNDIS protocols.
505

    
506
@end table
507
ETEXI
508

    
509
DEF("device", HAS_ARG, QEMU_OPTION_device,
510
    "-device driver[,prop[=value][,...]]\n"
511
    "                add device (based on driver)\n"
512
    "                prop=value,... sets driver properties\n"
513
    "                use -device ? to print all possible drivers\n"
514
    "                use -device driver,? to print all possible properties\n",
515
    QEMU_ARCH_ALL)
516
STEXI
517
@item -device @var{driver}[,@var{prop}[=@var{value}][,...]]
518
@findex -device
519
Add device @var{driver}.  @var{prop}=@var{value} sets driver
520
properties.  Valid properties depend on the driver.  To get help on
521
possible drivers and properties, use @code{-device ?} and
522
@code{-device @var{driver},?}.
523
ETEXI
524

    
525
DEFHEADING(File system options:)
526

    
527
DEF("fsdev", HAS_ARG, QEMU_OPTION_fsdev,
528
    "-fsdev local,id=id,path=path,security_model=[mapped|passthrough|none]\n",
529
    QEMU_ARCH_ALL)
530

    
531
STEXI
532

    
533
The general form of a File system device option is:
534
@table @option
535

    
536
@item -fsdev @var{fstype} ,id=@var{id} [,@var{options}]
537
@findex -fsdev
538
Fstype is one of:
539
@option{local},
540
The specific Fstype will determine the applicable options.
541

    
542
Options to each backend are described below.
543

    
544
@item -fsdev local ,id=@var{id} ,path=@var{path} ,security_model=@var{security_model}
545

    
546
Create a file-system-"device" for local-filesystem.
547

    
548
@option{local} is only available on Linux.
549

    
550
@option{path} specifies the path to be exported. @option{path} is required.
551

    
552
@option{security_model} specifies the security model to be followed.
553
@option{security_model} is required.
554

    
555
@end table
556
ETEXI
557

    
558
DEFHEADING(Virtual File system pass-through options:)
559

    
560
DEF("virtfs", HAS_ARG, QEMU_OPTION_virtfs,
561
    "-virtfs local,path=path,mount_tag=tag,security_model=[mapped|passthrough|none]\n",
562
    QEMU_ARCH_ALL)
563

    
564
STEXI
565

    
566
The general form of a Virtual File system pass-through option is:
567
@table @option
568

    
569
@item -virtfs @var{fstype} [,@var{options}]
570
@findex -virtfs
571
Fstype is one of:
572
@option{local},
573
The specific Fstype will determine the applicable options.
574

    
575
Options to each backend are described below.
576

    
577
@item -virtfs local ,path=@var{path} ,mount_tag=@var{mount_tag} ,security_model=@var{security_model}
578

    
579
Create a Virtual file-system-pass through for local-filesystem.
580

    
581
@option{local} is only available on Linux.
582

    
583
@option{path} specifies the path to be exported. @option{path} is required.
584

    
585
@option{security_model} specifies the security model to be followed.
586
@option{security_model} is required.
587

    
588

    
589
@option{mount_tag} specifies the tag with which the exported file is mounted.
590
@option{mount_tag} is required.
591

    
592
@end table
593
ETEXI
594

    
595
DEFHEADING()
596

    
597
DEF("name", HAS_ARG, QEMU_OPTION_name,
598
    "-name string1[,process=string2]\n"
599
    "                set the name of the guest\n"
600
    "                string1 sets the window title and string2 the process name (on Linux)\n",
601
    QEMU_ARCH_ALL)
602
STEXI
603
@item -name @var{name}
604
@findex -name
605
Sets the @var{name} of the guest.
606
This name will be displayed in the SDL window caption.
607
The @var{name} will also be used for the VNC server.
608
Also optionally set the top visible process name in Linux.
609
ETEXI
610

    
611
DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
612
    "-uuid %08x-%04x-%04x-%04x-%012x\n"
613
    "                specify machine UUID\n", QEMU_ARCH_ALL)
614
STEXI
615
@item -uuid @var{uuid}
616
@findex -uuid
617
Set system UUID.
618
ETEXI
619

    
620
STEXI
621
@end table
622
ETEXI
623

    
624
DEFHEADING()
625

    
626
DEFHEADING(Display options:)
627

    
628
STEXI
629
@table @option
630
ETEXI
631

    
632
DEF("display", HAS_ARG, QEMU_OPTION_display,
633
    "-display sdl[,frame=on|off][,alt_grab=on|off][,ctrl_grab=on|off]\n"
634
    "            [,window_close=on|off]|curses|none|\n"
635
    "            vnc=<display>[,<optargs>]\n"
636
    "                select display type\n", QEMU_ARCH_ALL)
637
STEXI
638
@item -display @var{type}
639
@findex -display
640
Select type of display to use. This option is a replacement for the
641
old style -sdl/-curses/... options. Valid values for @var{type} are
642
@table @option
643
@item sdl
644
Display video output via SDL (usually in a separate graphics
645
window; see the SDL documentation for other possibilities).
646
@item curses
647
Display video output via curses. For graphics device models which
648
support a text mode, QEMU can display this output using a
649
curses/ncurses interface. Nothing is displayed when the graphics
650
device is in graphical mode or if the graphics device does not support
651
a text mode. Generally only the VGA device models support text mode.
652
@item none
653
Do not display video output. The guest will still see an emulated
654
graphics card, but its output will not be displayed to the QEMU
655
user. This option differs from the -nographic option in that it
656
only affects what is done with video output; -nographic also changes
657
the destination of the serial and parallel port data.
658
@item vnc
659
Start a VNC server on display <arg>
660
@end table
661
ETEXI
662

    
663
DEF("nographic", 0, QEMU_OPTION_nographic,
664
    "-nographic      disable graphical output and redirect serial I/Os to console\n",
665
    QEMU_ARCH_ALL)
666
STEXI
667
@item -nographic
668
@findex -nographic
669
Normally, QEMU uses SDL to display the VGA output. With this option,
670
you can totally disable graphical output so that QEMU is a simple
671
command line application. The emulated serial port is redirected on
672
the console. Therefore, you can still use QEMU to debug a Linux kernel
673
with a serial console.
674
ETEXI
675

    
676
DEF("curses", 0, QEMU_OPTION_curses,
677
    "-curses         use a curses/ncurses interface instead of SDL\n",
678
    QEMU_ARCH_ALL)
679
STEXI
680
@item -curses
681
@findex curses
682
Normally, QEMU uses SDL to display the VGA output.  With this option,
683
QEMU can display the VGA output when in text mode using a
684
curses/ncurses interface.  Nothing is displayed in graphical mode.
685
ETEXI
686

    
687
DEF("no-frame", 0, QEMU_OPTION_no_frame,
688
    "-no-frame       open SDL window without a frame and window decorations\n",
689
    QEMU_ARCH_ALL)
690
STEXI
691
@item -no-frame
692
@findex -no-frame
693
Do not use decorations for SDL windows and start them using the whole
694
available screen space. This makes the using QEMU in a dedicated desktop
695
workspace more convenient.
696
ETEXI
697

    
698
DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
699
    "-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n",
700
    QEMU_ARCH_ALL)
701
STEXI
702
@item -alt-grab
703
@findex -alt-grab
704
Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt). Note that this also
705
affects the special keys (for fullscreen, monitor-mode switching, etc).
706
ETEXI
707

    
708
DEF("ctrl-grab", 0, QEMU_OPTION_ctrl_grab,
709
    "-ctrl-grab      use Right-Ctrl to grab mouse (instead of Ctrl-Alt)\n",
710
    QEMU_ARCH_ALL)
711
STEXI
712
@item -ctrl-grab
713
@findex -ctrl-grab
714
Use Right-Ctrl to grab mouse (instead of Ctrl-Alt). Note that this also
715
affects the special keys (for fullscreen, monitor-mode switching, etc).
716
ETEXI
717

    
718
DEF("no-quit", 0, QEMU_OPTION_no_quit,
719
    "-no-quit        disable SDL window close capability\n", QEMU_ARCH_ALL)
720
STEXI
721
@item -no-quit
722
@findex -no-quit
723
Disable SDL window close capability.
724
ETEXI
725

    
726
DEF("sdl", 0, QEMU_OPTION_sdl,
727
    "-sdl            enable SDL\n", QEMU_ARCH_ALL)
728
STEXI
729
@item -sdl
730
@findex -sdl
731
Enable SDL.
732
ETEXI
733

    
734
DEF("spice", HAS_ARG, QEMU_OPTION_spice,
735
    "-spice <args>   enable spice\n", QEMU_ARCH_ALL)
736
STEXI
737
@item -spice @var{option}[,@var{option}[,...]]
738
@findex -spice
739
Enable the spice remote desktop protocol. Valid options are
740

    
741
@table @option
742

    
743
@item port=<nr>
744
Set the TCP port spice is listening on for plaintext channels.
745

    
746
@item addr=<addr>
747
Set the IP address spice is listening on.  Default is any address.
748

    
749
@item ipv4
750
@item ipv6
751
Force using the specified IP version.
752

    
753
@item password=<secret>
754
Set the password you need to authenticate.
755

    
756
@item sasl
757
Require that the client use SASL to authenticate with the spice.
758
The exact choice of authentication method used is controlled from the
759
system / user's SASL configuration file for the 'qemu' service. This
760
is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
761
unprivileged user, an environment variable SASL_CONF_PATH can be used
762
to make it search alternate locations for the service config.
763
While some SASL auth methods can also provide data encryption (eg GSSAPI),
764
it is recommended that SASL always be combined with the 'tls' and
765
'x509' settings to enable use of SSL and server certificates. This
766
ensures a data encryption preventing compromise of authentication
767
credentials.
768

    
769
@item disable-ticketing
770
Allow client connects without authentication.
771

    
772
@item disable-copy-paste
773
Disable copy paste between the client and the guest.
774

    
775
@item tls-port=<nr>
776
Set the TCP port spice is listening on for encrypted channels.
777

    
778
@item x509-dir=<dir>
779
Set the x509 file directory. Expects same filenames as -vnc $display,x509=$dir
780

    
781
@item x509-key-file=<file>
782
@item x509-key-password=<file>
783
@item x509-cert-file=<file>
784
@item x509-cacert-file=<file>
785
@item x509-dh-key-file=<file>
786
The x509 file names can also be configured individually.
787

    
788
@item tls-ciphers=<list>
789
Specify which ciphers to use.
790

    
791
@item tls-channel=[main|display|inputs|record|playback|tunnel]
792
@item plaintext-channel=[main|display|inputs|record|playback|tunnel]
793
Force specific channel to be used with or without TLS encryption.  The
794
options can be specified multiple times to configure multiple
795
channels.  The special name "default" can be used to set the default
796
mode.  For channels which are not explicitly forced into one mode the
797
spice client is allowed to pick tls/plaintext as he pleases.
798

    
799
@item image-compression=[auto_glz|auto_lz|quic|glz|lz|off]
800
Configure image compression (lossless).
801
Default is auto_glz.
802

    
803
@item jpeg-wan-compression=[auto|never|always]
804
@item zlib-glz-wan-compression=[auto|never|always]
805
Configure wan image compression (lossy for slow links).
806
Default is auto.
807

    
808
@item streaming-video=[off|all|filter]
809
Configure video stream detection.  Default is filter.
810

    
811
@item agent-mouse=[on|off]
812
Enable/disable passing mouse events via vdagent.  Default is on.
813

    
814
@item playback-compression=[on|off]
815
Enable/disable audio stream compression (using celt 0.5.1).  Default is on.
816

    
817
@end table
818
ETEXI
819

    
820
DEF("portrait", 0, QEMU_OPTION_portrait,
821
    "-portrait       rotate graphical output 90 deg left (only PXA LCD)\n",
822
    QEMU_ARCH_ALL)
823
STEXI
824
@item -portrait
825
@findex -portrait
826
Rotate graphical output 90 deg left (only PXA LCD).
827
ETEXI
828

    
829
DEF("rotate", HAS_ARG, QEMU_OPTION_rotate,
830
    "-rotate <deg>   rotate graphical output some deg left (only PXA LCD)\n",
831
    QEMU_ARCH_ALL)
832
STEXI
833
@item -rotate
834
@findex -rotate
835
Rotate graphical output some deg left (only PXA LCD).
836
ETEXI
837

    
838
DEF("vga", HAS_ARG, QEMU_OPTION_vga,
839
    "-vga [std|cirrus|vmware|qxl|xenfb|none]\n"
840
    "                select video card type\n", QEMU_ARCH_ALL)
841
STEXI
842
@item -vga @var{type}
843
@findex -vga
844
Select type of VGA card to emulate. Valid values for @var{type} are
845
@table @option
846
@item cirrus
847
Cirrus Logic GD5446 Video card. All Windows versions starting from
848
Windows 95 should recognize and use this graphic card. For optimal
849
performances, use 16 bit color depth in the guest and the host OS.
850
(This one is the default)
851
@item std
852
Standard VGA card with Bochs VBE extensions.  If your guest OS
853
supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want
854
to use high resolution modes (>= 1280x1024x16) then you should use
855
this option.
856
@item vmware
857
VMWare SVGA-II compatible adapter. Use it if you have sufficiently
858
recent XFree86/XOrg server or Windows guest with a driver for this
859
card.
860
@item qxl
861
QXL paravirtual graphic card.  It is VGA compatible (including VESA
862
2.0 VBE support).  Works best with qxl guest drivers installed though.
863
Recommended choice when using the spice protocol.
864
@item none
865
Disable VGA card.
866
@end table
867
ETEXI
868

    
869
DEF("full-screen", 0, QEMU_OPTION_full_screen,
870
    "-full-screen    start in full screen\n", QEMU_ARCH_ALL)
871
STEXI
872
@item -full-screen
873
@findex -full-screen
874
Start in full screen.
875
ETEXI
876

    
877
DEF("g", 1, QEMU_OPTION_g ,
878
    "-g WxH[xDEPTH]  Set the initial graphical resolution and depth\n",
879
    QEMU_ARCH_PPC | QEMU_ARCH_SPARC)
880
STEXI
881
@item -g @var{width}x@var{height}[x@var{depth}]
882
@findex -g
883
Set the initial graphical resolution and depth (PPC, SPARC only).
884
ETEXI
885

    
886
DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
887
    "-vnc display    start a VNC server on display\n", QEMU_ARCH_ALL)
888
STEXI
889
@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
890
@findex -vnc
891
Normally, QEMU uses SDL to display the VGA output.  With this option,
892
you can have QEMU listen on VNC display @var{display} and redirect the VGA
893
display over the VNC session.  It is very useful to enable the usb
894
tablet device when using this option (option @option{-usbdevice
895
tablet}). When using the VNC display, you must use the @option{-k}
896
parameter to set the keyboard layout if you are not using en-us. Valid
897
syntax for the @var{display} is
898

    
899
@table @option
900

    
901
@item @var{host}:@var{d}
902

    
903
TCP connections will only be allowed from @var{host} on display @var{d}.
904
By convention the TCP port is 5900+@var{d}. Optionally, @var{host} can
905
be omitted in which case the server will accept connections from any host.
906

    
907
@item unix:@var{path}
908

    
909
Connections will be allowed over UNIX domain sockets where @var{path} is the
910
location of a unix socket to listen for connections on.
911

    
912
@item none
913

    
914
VNC is initialized but not started. The monitor @code{change} command
915
can be used to later start the VNC server.
916

    
917
@end table
918

    
919
Following the @var{display} value there may be one or more @var{option} flags
920
separated by commas. Valid options are
921

    
922
@table @option
923

    
924
@item reverse
925

    
926
Connect to a listening VNC client via a ``reverse'' connection. The
927
client is specified by the @var{display}. For reverse network
928
connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
929
is a TCP port number, not a display number.
930

    
931
@item password
932

    
933
Require that password based authentication is used for client connections.
934
The password must be set separately using the @code{change} command in the
935
@ref{pcsys_monitor}
936

    
937
@item tls
938

    
939
Require that client use TLS when communicating with the VNC server. This
940
uses anonymous TLS credentials so is susceptible to a man-in-the-middle
941
attack. It is recommended that this option be combined with either the
942
@option{x509} or @option{x509verify} options.
943

    
944
@item x509=@var{/path/to/certificate/dir}
945

    
946
Valid if @option{tls} is specified. Require that x509 credentials are used
947
for negotiating the TLS session. The server will send its x509 certificate
948
to the client. It is recommended that a password be set on the VNC server
949
to provide authentication of the client when this is used. The path following
950
this option specifies where the x509 certificates are to be loaded from.
951
See the @ref{vnc_security} section for details on generating certificates.
952

    
953
@item x509verify=@var{/path/to/certificate/dir}
954

    
955
Valid if @option{tls} is specified. Require that x509 credentials are used
956
for negotiating the TLS session. The server will send its x509 certificate
957
to the client, and request that the client send its own x509 certificate.
958
The server will validate the client's certificate against the CA certificate,
959
and reject clients when validation fails. If the certificate authority is
960
trusted, this is a sufficient authentication mechanism. You may still wish
961
to set a password on the VNC server as a second authentication layer. The
962
path following this option specifies where the x509 certificates are to
963
be loaded from. See the @ref{vnc_security} section for details on generating
964
certificates.
965

    
966
@item sasl
967

    
968
Require that the client use SASL to authenticate with the VNC server.
969
The exact choice of authentication method used is controlled from the
970
system / user's SASL configuration file for the 'qemu' service. This
971
is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
972
unprivileged user, an environment variable SASL_CONF_PATH can be used
973
to make it search alternate locations for the service config.
974
While some SASL auth methods can also provide data encryption (eg GSSAPI),
975
it is recommended that SASL always be combined with the 'tls' and
976
'x509' settings to enable use of SSL and server certificates. This
977
ensures a data encryption preventing compromise of authentication
978
credentials. See the @ref{vnc_security} section for details on using
979
SASL authentication.
980

    
981
@item acl
982

    
983
Turn on access control lists for checking of the x509 client certificate
984
and SASL party. For x509 certs, the ACL check is made against the
985
certificate's distinguished name. This is something that looks like
986
@code{C=GB,O=ACME,L=Boston,CN=bob}. For SASL party, the ACL check is
987
made against the username, which depending on the SASL plugin, may
988
include a realm component, eg @code{bob} or @code{bob@@EXAMPLE.COM}.
989
When the @option{acl} flag is set, the initial access list will be
990
empty, with a @code{deny} policy. Thus no one will be allowed to
991
use the VNC server until the ACLs have been loaded. This can be
992
achieved using the @code{acl} monitor command.
993

    
994
@item lossy
995

    
996
Enable lossy compression methods (gradient, JPEG, ...). If this
997
option is set, VNC client may receive lossy framebuffer updates
998
depending on its encoding settings. Enabling this option can save
999
a lot of bandwidth at the expense of quality.
1000

    
1001
@item non-adaptive
1002

    
1003
Disable adaptive encodings. Adaptive encodings are enabled by default.
1004
An adaptive encoding will try to detect frequently updated screen regions,
1005
and send updates in these regions using a lossy encoding (like JPEG).
1006
This can be really helpful to save bandwidth when playing videos. Disabling
1007
adaptive encodings allows to restore the original static behavior of encodings
1008
like Tight.
1009

    
1010
@end table
1011
ETEXI
1012

    
1013
STEXI
1014
@end table
1015
ETEXI
1016

    
1017
DEFHEADING()
1018

    
1019
DEFHEADING(i386 target only:)
1020
STEXI
1021
@table @option
1022
ETEXI
1023

    
1024
DEF("win2k-hack", 0, QEMU_OPTION_win2k_hack,
1025
    "-win2k-hack     use it when installing Windows 2000 to avoid a disk full bug\n",
1026
    QEMU_ARCH_I386)
1027
STEXI
1028
@item -win2k-hack
1029
@findex -win2k-hack
1030
Use it when installing Windows 2000 to avoid a disk full bug. After
1031
Windows 2000 is installed, you no longer need this option (this option
1032
slows down the IDE transfers).
1033
ETEXI
1034

    
1035
HXCOMM Deprecated by -rtc
1036
DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack, "", QEMU_ARCH_I386)
1037

    
1038
DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
1039
    "-no-fd-bootchk  disable boot signature checking for floppy disks\n",
1040
    QEMU_ARCH_I386)
1041
STEXI
1042
@item -no-fd-bootchk
1043
@findex -no-fd-bootchk
1044
Disable boot signature checking for floppy disks in Bochs BIOS. It may
1045
be needed to boot from old floppy disks.
1046
TODO: check reference to Bochs BIOS.
1047
ETEXI
1048

    
1049
DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
1050
           "-no-acpi        disable ACPI\n", QEMU_ARCH_I386)
1051
STEXI
1052
@item -no-acpi
1053
@findex -no-acpi
1054
Disable ACPI (Advanced Configuration and Power Interface) support. Use
1055
it if your guest OS complains about ACPI problems (PC target machine
1056
only).
1057
ETEXI
1058

    
1059
DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
1060
    "-no-hpet        disable HPET\n", QEMU_ARCH_I386)
1061
STEXI
1062
@item -no-hpet
1063
@findex -no-hpet
1064
Disable HPET support.
1065
ETEXI
1066

    
1067
DEF("balloon", HAS_ARG, QEMU_OPTION_balloon,
1068
    "-balloon none   disable balloon device\n"
1069
    "-balloon virtio[,addr=str]\n"
1070
    "                enable virtio balloon device (default)\n", QEMU_ARCH_ALL)
1071
STEXI
1072
@item -balloon none
1073
@findex -balloon
1074
Disable balloon device.
1075
@item -balloon virtio[,addr=@var{addr}]
1076
Enable virtio balloon device (default), optionally with PCI address
1077
@var{addr}.
1078
ETEXI
1079

    
1080
DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
1081
    "-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"
1082
    "                ACPI table description\n", QEMU_ARCH_I386)
1083
STEXI
1084
@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}]...]
1085
@findex -acpitable
1086
Add ACPI table with specified header fields and context from specified files.
1087
For file=, take whole ACPI table from the specified files, including all
1088
ACPI headers (possible overridden by other options).
1089
For data=, only data
1090
portion of the table is used, all header information is specified in the
1091
command line.
1092
ETEXI
1093

    
1094
DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
1095
    "-smbios file=binary\n"
1096
    "                load SMBIOS entry from binary file\n"
1097
    "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]\n"
1098
    "                specify SMBIOS type 0 fields\n"
1099
    "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n"
1100
    "              [,uuid=uuid][,sku=str][,family=str]\n"
1101
    "                specify SMBIOS type 1 fields\n", QEMU_ARCH_I386)
1102
STEXI
1103
@item -smbios file=@var{binary}
1104
@findex -smbios
1105
Load SMBIOS entry from binary file.
1106

    
1107
@item -smbios type=0[,vendor=@var{str}][,version=@var{str}][,date=@var{str}][,release=@var{%d.%d}]
1108
@findex -smbios
1109
Specify SMBIOS type 0 fields
1110

    
1111
@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}]
1112
Specify SMBIOS type 1 fields
1113
ETEXI
1114

    
1115
DEFHEADING()
1116
STEXI
1117
@end table
1118
ETEXI
1119

    
1120
DEFHEADING(Network options:)
1121
STEXI
1122
@table @option
1123
ETEXI
1124

    
1125
HXCOMM Legacy slirp options (now moved to -net user):
1126
#ifdef CONFIG_SLIRP
1127
DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, "", QEMU_ARCH_ALL)
1128
DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, "", QEMU_ARCH_ALL)
1129
DEF("redir", HAS_ARG, QEMU_OPTION_redir, "", QEMU_ARCH_ALL)
1130
#ifndef _WIN32
1131
DEF("smb", HAS_ARG, QEMU_OPTION_smb, "", QEMU_ARCH_ALL)
1132
#endif
1133
#endif
1134

    
1135
DEF("net", HAS_ARG, QEMU_OPTION_net,
1136
    "-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]\n"
1137
    "                create a new Network Interface Card and connect it to VLAN 'n'\n"
1138
#ifdef CONFIG_SLIRP
1139
    "-net user[,vlan=n][,name=str][,net=addr[/mask]][,host=addr][,restrict=on|off]\n"
1140
    "         [,hostname=host][,dhcpstart=addr][,dns=addr][,tftp=dir][,bootfile=f]\n"
1141
    "         [,hostfwd=rule][,guestfwd=rule]"
1142
#ifndef _WIN32
1143
                                             "[,smb=dir[,smbserver=addr]]\n"
1144
#endif
1145
    "                connect the user mode network stack to VLAN 'n', configure its\n"
1146
    "                DHCP server and enabled optional services\n"
1147
#endif
1148
#ifdef _WIN32
1149
    "-net tap[,vlan=n][,name=str],ifname=name\n"
1150
    "                connect the host TAP network interface to VLAN 'n'\n"
1151
#else
1152
    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostforce=on|off]\n"
1153
    "                connect the host TAP network interface to VLAN 'n' and use the\n"
1154
    "                network scripts 'file' (default=" DEFAULT_NETWORK_SCRIPT ")\n"
1155
    "                and 'dfile' (default=" DEFAULT_NETWORK_DOWN_SCRIPT ")\n"
1156
    "                use '[down]script=no' to disable script execution\n"
1157
    "                use 'fd=h' to connect to an already opened TAP interface\n"
1158
    "                use 'sndbuf=nbytes' to limit the size of the send buffer (the\n"
1159
    "                default is disabled 'sndbuf=0' to enable flow control set 'sndbuf=1048576')\n"
1160
    "                use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag\n"
1161
    "                use vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition\n"
1162
    "                use vhost=on to enable experimental in kernel accelerator\n"
1163
    "                    (only has effect for virtio guests which use MSIX)\n"
1164
    "                use vhostforce=on to force vhost on for non-MSIX virtio guests\n"
1165
    "                use 'vhostfd=h' to connect to an already opened vhost net device\n"
1166
#endif
1167
    "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
1168
    "                connect the vlan 'n' to another VLAN using a socket connection\n"
1169
    "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port[,localaddr=addr]]\n"
1170
    "                connect the vlan 'n' to multicast maddr and port\n"
1171
    "                use 'localaddr=addr' to specify the host address to send packets from\n"
1172
#ifdef CONFIG_VDE
1173
    "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
1174
    "                connect the vlan 'n' to port 'n' of a vde switch running\n"
1175
    "                on host and listening for incoming connections on 'socketpath'.\n"
1176
    "                Use group 'groupname' and mode 'octalmode' to change default\n"
1177
    "                ownership and permissions for communication port.\n"
1178
#endif
1179
    "-net dump[,vlan=n][,file=f][,len=n]\n"
1180
    "                dump traffic on vlan 'n' to file 'f' (max n bytes per packet)\n"
1181
    "-net none       use it alone to have zero network devices. If no -net option\n"
1182
    "                is provided, the default is '-net nic -net user'\n", QEMU_ARCH_ALL)
1183
DEF("netdev", HAS_ARG, QEMU_OPTION_netdev,
1184
    "-netdev ["
1185
#ifdef CONFIG_SLIRP
1186
    "user|"
1187
#endif
1188
    "tap|"
1189
#ifdef CONFIG_VDE
1190
    "vde|"
1191
#endif
1192
    "socket],id=str[,option][,option][,...]\n", QEMU_ARCH_ALL)
1193
STEXI
1194
@item -net nic[,vlan=@var{n}][,macaddr=@var{mac}][,model=@var{type}] [,name=@var{name}][,addr=@var{addr}][,vectors=@var{v}]
1195
@findex -net
1196
Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
1197
= 0 is the default). The NIC is an e1000 by default on the PC
1198
target. Optionally, the MAC address can be changed to @var{mac}, the
1199
device address set to @var{addr} (PCI cards only),
1200
and a @var{name} can be assigned for use in monitor commands.
1201
Optionally, for PCI cards, you can specify the number @var{v} of MSI-X vectors
1202
that the card should have; this option currently only affects virtio cards; set
1203
@var{v} = 0 to disable MSI-X. If no @option{-net} option is specified, a single
1204
NIC is created.  Qemu can emulate several different models of network card.
1205
Valid values for @var{type} are
1206
@code{virtio}, @code{i82551}, @code{i82557b}, @code{i82559er},
1207
@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
1208
@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.
1209
Not all devices are supported on all targets.  Use -net nic,model=?
1210
for a list of available devices for your target.
1211

    
1212
@item -net user[,@var{option}][,@var{option}][,...]
1213
Use the user mode network stack which requires no administrator
1214
privilege to run. Valid options are:
1215

    
1216
@table @option
1217
@item vlan=@var{n}
1218
Connect user mode stack to VLAN @var{n} (@var{n} = 0 is the default).
1219

    
1220
@item name=@var{name}
1221
Assign symbolic name for use in monitor commands.
1222

    
1223
@item net=@var{addr}[/@var{mask}]
1224
Set IP network address the guest will see. Optionally specify the netmask,
1225
either in the form a.b.c.d or as number of valid top-most bits. Default is
1226
10.0.2.0/24.
1227

    
1228
@item host=@var{addr}
1229
Specify the guest-visible address of the host. Default is the 2nd IP in the
1230
guest network, i.e. x.x.x.2.
1231

    
1232
@item restrict=on|off
1233
If this option is enabled, the guest will be isolated, i.e. it will not be
1234
able to contact the host and no guest IP packets will be routed over the host
1235
to the outside. This option does not affect any explicitly set forwarding rules.
1236

    
1237
@item hostname=@var{name}
1238
Specifies the client hostname reported by the builtin DHCP server.
1239

    
1240
@item dhcpstart=@var{addr}
1241
Specify the first of the 16 IPs the built-in DHCP server can assign. Default
1242
is the 15th to 31st IP in the guest network, i.e. x.x.x.15 to x.x.x.31.
1243

    
1244
@item dns=@var{addr}
1245
Specify the guest-visible address of the virtual nameserver. The address must
1246
be different from the host address. Default is the 3rd IP in the guest network,
1247
i.e. x.x.x.3.
1248

    
1249
@item tftp=@var{dir}
1250
When using the user mode network stack, activate a built-in TFTP
1251
server. The files in @var{dir} will be exposed as the root of a TFTP server.
1252
The TFTP client on the guest must be configured in binary mode (use the command
1253
@code{bin} of the Unix TFTP client).
1254

    
1255
@item bootfile=@var{file}
1256
When using the user mode network stack, broadcast @var{file} as the BOOTP
1257
filename. In conjunction with @option{tftp}, this can be used to network boot
1258
a guest from a local directory.
1259

    
1260
Example (using pxelinux):
1261
@example
1262
qemu -hda linux.img -boot n -net user,tftp=/path/to/tftp/files,bootfile=/pxelinux.0
1263
@end example
1264

    
1265
@item smb=@var{dir}[,smbserver=@var{addr}]
1266
When using the user mode network stack, activate a built-in SMB
1267
server so that Windows OSes can access to the host files in @file{@var{dir}}
1268
transparently. The IP address of the SMB server can be set to @var{addr}. By
1269
default the 4th IP in the guest network is used, i.e. x.x.x.4.
1270

    
1271
In the guest Windows OS, the line:
1272
@example
1273
10.0.2.4 smbserver
1274
@end example
1275
must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
1276
or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
1277

    
1278
Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
1279

    
1280
Note that a SAMBA server must be installed on the host OS in
1281
@file{/usr/sbin/smbd}. QEMU was tested successfully with smbd versions from
1282
Red Hat 9, Fedora Core 3 and OpenSUSE 11.x.
1283

    
1284
@item hostfwd=[tcp|udp]:[@var{hostaddr}]:@var{hostport}-[@var{guestaddr}]:@var{guestport}
1285
Redirect incoming TCP or UDP connections to the host port @var{hostport} to
1286
the guest IP address @var{guestaddr} on guest port @var{guestport}. If
1287
@var{guestaddr} is not specified, its value is x.x.x.15 (default first address
1288
given by the built-in DHCP server). By specifying @var{hostaddr}, the rule can
1289
be bound to a specific host interface. If no connection type is set, TCP is
1290
used. This option can be given multiple times.
1291

    
1292
For example, to redirect host X11 connection from screen 1 to guest
1293
screen 0, use the following:
1294

    
1295
@example
1296
# on the host
1297
qemu -net user,hostfwd=tcp:127.0.0.1:6001-:6000 [...]
1298
# this host xterm should open in the guest X11 server
1299
xterm -display :1
1300
@end example
1301

    
1302
To redirect telnet connections from host port 5555 to telnet port on
1303
the guest, use the following:
1304

    
1305
@example
1306
# on the host
1307
qemu -net user,hostfwd=tcp::5555-:23 [...]
1308
telnet localhost 5555
1309
@end example
1310

    
1311
Then when you use on the host @code{telnet localhost 5555}, you
1312
connect to the guest telnet server.
1313

    
1314
@item guestfwd=[tcp]:@var{server}:@var{port}-@var{dev}
1315
Forward guest TCP connections to the IP address @var{server} on port @var{port}
1316
to the character device @var{dev}. This option can be given multiple times.
1317

    
1318
@end table
1319

    
1320
Note: Legacy stand-alone options -tftp, -bootp, -smb and -redir are still
1321
processed and applied to -net user. Mixing them with the new configuration
1322
syntax gives undefined results. Their use for new applications is discouraged
1323
as they will be removed from future versions.
1324

    
1325
@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}] [,script=@var{file}][,downscript=@var{dfile}]
1326
Connect the host TAP network interface @var{name} to VLAN @var{n}, use
1327
the network script @var{file} to configure it and the network script
1328
@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
1329
automatically provides one. @option{fd}=@var{h} can be used to specify
1330
the handle of an already opened host TAP interface. The default network
1331
configure script is @file{/etc/qemu-ifup} and the default network
1332
deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}
1333
or @option{downscript=no} to disable script execution. Example:
1334

    
1335
@example
1336
qemu linux.img -net nic -net tap
1337
@end example
1338

    
1339
More complicated example (two NICs, each one connected to a TAP device)
1340
@example
1341
qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
1342
               -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
1343
@end example
1344

    
1345
@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}] [,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}]
1346

    
1347
Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
1348
machine using a TCP socket connection. If @option{listen} is
1349
specified, QEMU waits for incoming connections on @var{port}
1350
(@var{host} is optional). @option{connect} is used to connect to
1351
another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
1352
specifies an already opened TCP socket.
1353

    
1354
Example:
1355
@example
1356
# launch a first QEMU instance
1357
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1358
               -net socket,listen=:1234
1359
# connect the VLAN 0 of this instance to the VLAN 0
1360
# of the first instance
1361
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
1362
               -net socket,connect=127.0.0.1:1234
1363
@end example
1364

    
1365
@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,mcast=@var{maddr}:@var{port}[,localaddr=@var{addr}]]
1366

    
1367
Create a VLAN @var{n} shared with another QEMU virtual
1368
machines using a UDP multicast socket, effectively making a bus for
1369
every QEMU with same multicast address @var{maddr} and @var{port}.
1370
NOTES:
1371
@enumerate
1372
@item
1373
Several QEMU can be running on different hosts and share same bus (assuming
1374
correct multicast setup for these hosts).
1375
@item
1376
mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
1377
@url{http://user-mode-linux.sf.net}.
1378
@item
1379
Use @option{fd=h} to specify an already opened UDP multicast socket.
1380
@end enumerate
1381

    
1382
Example:
1383
@example
1384
# launch one QEMU instance
1385
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1386
               -net socket,mcast=230.0.0.1:1234
1387
# launch another QEMU instance on same "bus"
1388
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
1389
               -net socket,mcast=230.0.0.1:1234
1390
# launch yet another QEMU instance on same "bus"
1391
qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
1392
               -net socket,mcast=230.0.0.1:1234
1393
@end example
1394

    
1395
Example (User Mode Linux compat.):
1396
@example
1397
# launch QEMU instance (note mcast address selected
1398
# is UML's default)
1399
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1400
               -net socket,mcast=239.192.168.1:1102
1401
# launch UML
1402
/path/to/linux ubd0=/path/to/root_fs eth0=mcast
1403
@end example
1404

    
1405
Example (send packets from host's 1.2.3.4):
1406
@example
1407
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1408
               -net socket,mcast=239.192.168.1:1102,localaddr=1.2.3.4
1409
@end example
1410

    
1411
@item -net vde[,vlan=@var{n}][,name=@var{name}][,sock=@var{socketpath}] [,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]
1412
Connect VLAN @var{n} to PORT @var{n} of a vde switch running on host and
1413
listening for incoming connections on @var{socketpath}. Use GROUP @var{groupname}
1414
and MODE @var{octalmode} to change default ownership and permissions for
1415
communication port. This option is available only if QEMU has been compiled
1416
with vde support enabled.
1417

    
1418
Example:
1419
@example
1420
# launch vde switch
1421
vde_switch -F -sock /tmp/myswitch
1422
# launch QEMU instance
1423
qemu linux.img -net nic -net vde,sock=/tmp/myswitch
1424
@end example
1425

    
1426
@item -net dump[,vlan=@var{n}][,file=@var{file}][,len=@var{len}]
1427
Dump network traffic on VLAN @var{n} to file @var{file} (@file{qemu-vlan0.pcap} by default).
1428
At most @var{len} bytes (64k by default) per packet are stored. The file format is
1429
libpcap, so it can be analyzed with tools such as tcpdump or Wireshark.
1430

    
1431
@item -net none
1432
Indicate that no network devices should be configured. It is used to
1433
override the default configuration (@option{-net nic -net user}) which
1434
is activated if no @option{-net} options are provided.
1435

    
1436
@end table
1437
ETEXI
1438

    
1439
DEFHEADING()
1440

    
1441
DEFHEADING(Character device options:)
1442

    
1443
DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
1444
    "-chardev null,id=id[,mux=on|off]\n"
1445
    "-chardev socket,id=id[,host=host],port=host[,to=to][,ipv4][,ipv6][,nodelay]\n"
1446
    "         [,server][,nowait][,telnet][,mux=on|off] (tcp)\n"
1447
    "-chardev socket,id=id,path=path[,server][,nowait][,telnet],[mux=on|off] (unix)\n"
1448
    "-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]\n"
1449
    "         [,localport=localport][,ipv4][,ipv6][,mux=on|off]\n"
1450
    "-chardev msmouse,id=id[,mux=on|off]\n"
1451
    "-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]\n"
1452
    "         [,mux=on|off]\n"
1453
    "-chardev file,id=id,path=path[,mux=on|off]\n"
1454
    "-chardev pipe,id=id,path=path[,mux=on|off]\n"
1455
#ifdef _WIN32
1456
    "-chardev console,id=id[,mux=on|off]\n"
1457
    "-chardev serial,id=id,path=path[,mux=on|off]\n"
1458
#else
1459
    "-chardev pty,id=id[,mux=on|off]\n"
1460
    "-chardev stdio,id=id[,mux=on|off][,signal=on|off]\n"
1461
#endif
1462
#ifdef CONFIG_BRLAPI
1463
    "-chardev braille,id=id[,mux=on|off]\n"
1464
#endif
1465
#if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \
1466
        || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
1467
    "-chardev tty,id=id,path=path[,mux=on|off]\n"
1468
#endif
1469
#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
1470
    "-chardev parport,id=id,path=path[,mux=on|off]\n"
1471
#endif
1472
#if defined(CONFIG_SPICE)
1473
    "-chardev spicevmc,id=id,name=name[,debug=debug]\n"
1474
#endif
1475
    , QEMU_ARCH_ALL
1476
)
1477

    
1478
STEXI
1479

    
1480
The general form of a character device option is:
1481
@table @option
1482

    
1483
@item -chardev @var{backend} ,id=@var{id} [,mux=on|off] [,@var{options}]
1484
@findex -chardev
1485
Backend is one of:
1486
@option{null},
1487
@option{socket},
1488
@option{udp},
1489
@option{msmouse},
1490
@option{vc},
1491
@option{file},
1492
@option{pipe},
1493
@option{console},
1494
@option{serial},
1495
@option{pty},
1496
@option{stdio},
1497
@option{braille},
1498
@option{tty},
1499
@option{parport},
1500
@option{spicevmc}.
1501
The specific backend will determine the applicable options.
1502

    
1503
All devices must have an id, which can be any string up to 127 characters long.
1504
It is used to uniquely identify this device in other command line directives.
1505

    
1506
A character device may be used in multiplexing mode by multiple front-ends.
1507
The key sequence of @key{Control-a} and @key{c} will rotate the input focus
1508
between attached front-ends. Specify @option{mux=on} to enable this mode.
1509

    
1510
Options to each backend are described below.
1511

    
1512
@item -chardev null ,id=@var{id}
1513
A void device. This device will not emit any data, and will drop any data it
1514
receives. The null backend does not take any options.
1515

    
1516
@item -chardev socket ,id=@var{id} [@var{TCP options} or @var{unix options}] [,server] [,nowait] [,telnet]
1517

    
1518
Create a two-way stream socket, which can be either a TCP or a unix socket. A
1519
unix socket will be created if @option{path} is specified. Behaviour is
1520
undefined if TCP options are specified for a unix socket.
1521

    
1522
@option{server} specifies that the socket shall be a listening socket.
1523

    
1524
@option{nowait} specifies that QEMU should not block waiting for a client to
1525
connect to a listening socket.
1526

    
1527
@option{telnet} specifies that traffic on the socket should interpret telnet
1528
escape sequences.
1529

    
1530
TCP and unix socket options are given below:
1531

    
1532
@table @option
1533

    
1534
@item TCP options: port=@var{port} [,host=@var{host}] [,to=@var{to}] [,ipv4] [,ipv6] [,nodelay]
1535

    
1536
@option{host} for a listening socket specifies the local address to be bound.
1537
For a connecting socket species the remote host to connect to. @option{host} is
1538
optional for listening sockets. If not specified it defaults to @code{0.0.0.0}.
1539

    
1540
@option{port} for a listening socket specifies the local port to be bound. For a
1541
connecting socket specifies the port on the remote host to connect to.
1542
@option{port} can be given as either a port number or a service name.
1543
@option{port} is required.
1544

    
1545
@option{to} is only relevant to listening sockets. If it is specified, and
1546
@option{port} cannot be bound, QEMU will attempt to bind to subsequent ports up
1547
to and including @option{to} until it succeeds. @option{to} must be specified
1548
as a port number.
1549

    
1550
@option{ipv4} and @option{ipv6} specify that either IPv4 or IPv6 must be used.
1551
If neither is specified the socket may use either protocol.
1552

    
1553
@option{nodelay} disables the Nagle algorithm.
1554

    
1555
@item unix options: path=@var{path}
1556

    
1557
@option{path} specifies the local path of the unix socket. @option{path} is
1558
required.
1559

    
1560
@end table
1561

    
1562
@item -chardev udp ,id=@var{id} [,host=@var{host}] ,port=@var{port} [,localaddr=@var{localaddr}] [,localport=@var{localport}] [,ipv4] [,ipv6]
1563

    
1564
Sends all traffic from the guest to a remote host over UDP.
1565

    
1566
@option{host} specifies the remote host to connect to. If not specified it
1567
defaults to @code{localhost}.
1568

    
1569
@option{port} specifies the port on the remote host to connect to. @option{port}
1570
is required.
1571

    
1572
@option{localaddr} specifies the local address to bind to. If not specified it
1573
defaults to @code{0.0.0.0}.
1574

    
1575
@option{localport} specifies the local port to bind to. If not specified any
1576
available local port will be used.
1577

    
1578
@option{ipv4} and @option{ipv6} specify that either IPv4 or IPv6 must be used.
1579
If neither is specified the device may use either protocol.
1580

    
1581
@item -chardev msmouse ,id=@var{id}
1582

    
1583
Forward QEMU's emulated msmouse events to the guest. @option{msmouse} does not
1584
take any options.
1585

    
1586
@item -chardev vc ,id=@var{id} [[,width=@var{width}] [,height=@var{height}]] [[,cols=@var{cols}] [,rows=@var{rows}]]
1587

    
1588
Connect to a QEMU text console. @option{vc} may optionally be given a specific
1589
size.
1590

    
1591
@option{width} and @option{height} specify the width and height respectively of
1592
the console, in pixels.
1593

    
1594
@option{cols} and @option{rows} specify that the console be sized to fit a text
1595
console with the given dimensions.
1596

    
1597
@item -chardev file ,id=@var{id} ,path=@var{path}
1598

    
1599
Log all traffic received from the guest to a file.
1600

    
1601
@option{path} specifies the path of the file to be opened. This file will be
1602
created if it does not already exist, and overwritten if it does. @option{path}
1603
is required.
1604

    
1605
@item -chardev pipe ,id=@var{id} ,path=@var{path}
1606

    
1607
Create a two-way connection to the guest. The behaviour differs slightly between
1608
Windows hosts and other hosts:
1609

    
1610
On Windows, a single duplex pipe will be created at
1611
@file{\\.pipe\@option{path}}.
1612

    
1613
On other hosts, 2 pipes will be created called @file{@option{path}.in} and
1614
@file{@option{path}.out}. Data written to @file{@option{path}.in} will be
1615
received by the guest. Data written by the guest can be read from
1616
@file{@option{path}.out}. QEMU will not create these fifos, and requires them to
1617
be present.
1618

    
1619
@option{path} forms part of the pipe path as described above. @option{path} is
1620
required.
1621

    
1622
@item -chardev console ,id=@var{id}
1623

    
1624
Send traffic from the guest to QEMU's standard output. @option{console} does not
1625
take any options.
1626

    
1627
@option{console} is only available on Windows hosts.
1628

    
1629
@item -chardev serial ,id=@var{id} ,path=@option{path}
1630

    
1631
Send traffic from the guest to a serial device on the host.
1632

    
1633
@option{serial} is
1634
only available on Windows hosts.
1635

    
1636
@option{path} specifies the name of the serial device to open.
1637

    
1638
@item -chardev pty ,id=@var{id}
1639

    
1640
Create a new pseudo-terminal on the host and connect to it. @option{pty} does
1641
not take any options.
1642

    
1643
@option{pty} is not available on Windows hosts.
1644

    
1645
@item -chardev stdio ,id=@var{id} [,signal=on|off]
1646
Connect to standard input and standard output of the qemu process.
1647

    
1648
@option{signal} controls if signals are enabled on the terminal, that includes
1649
exiting QEMU with the key sequence @key{Control-c}. This option is enabled by
1650
default, use @option{signal=off} to disable it.
1651

    
1652
@option{stdio} is not available on Windows hosts.
1653

    
1654
@item -chardev braille ,id=@var{id}
1655

    
1656
Connect to a local BrlAPI server. @option{braille} does not take any options.
1657

    
1658
@item -chardev tty ,id=@var{id} ,path=@var{path}
1659

    
1660
Connect to a local tty device.
1661

    
1662
@option{tty} is only available on Linux, Sun, FreeBSD, NetBSD, OpenBSD and
1663
DragonFlyBSD hosts.
1664

    
1665
@option{path} specifies the path to the tty. @option{path} is required.
1666

    
1667
@item -chardev parport ,id=@var{id} ,path=@var{path}
1668

    
1669
@option{parport} is only available on Linux, FreeBSD and DragonFlyBSD hosts.
1670

    
1671
Connect to a local parallel port.
1672

    
1673
@option{path} specifies the path to the parallel port device. @option{path} is
1674
required.
1675

    
1676
#if defined(CONFIG_SPICE)
1677
@item -chardev spicevmc ,id=@var{id} ,debug=@var{debug}, name=@var{name}
1678

    
1679
@option{debug} debug level for spicevmc
1680

    
1681
@option{name} name of spice channel to connect to
1682

    
1683
Connect to a spice virtual machine channel, such as vdiport.
1684
#endif
1685

    
1686
@end table
1687
ETEXI
1688

    
1689
DEFHEADING()
1690

    
1691
DEFHEADING(Bluetooth(R) options:)
1692

    
1693
DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
1694
    "-bt hci,null    dumb bluetooth HCI - doesn't respond to commands\n" \
1695
    "-bt hci,host[:id]\n" \
1696
    "                use host's HCI with the given name\n" \
1697
    "-bt hci[,vlan=n]\n" \
1698
    "                emulate a standard HCI in virtual scatternet 'n'\n" \
1699
    "-bt vhci[,vlan=n]\n" \
1700
    "                add host computer to virtual scatternet 'n' using VHCI\n" \
1701
    "-bt device:dev[,vlan=n]\n" \
1702
    "                emulate a bluetooth device 'dev' in scatternet 'n'\n",
1703
    QEMU_ARCH_ALL)
1704
STEXI
1705
@table @option
1706

    
1707
@item -bt hci[...]
1708
@findex -bt
1709
Defines the function of the corresponding Bluetooth HCI.  -bt options
1710
are matched with the HCIs present in the chosen machine type.  For
1711
example when emulating a machine with only one HCI built into it, only
1712
the first @code{-bt hci[...]} option is valid and defines the HCI's
1713
logic.  The Transport Layer is decided by the machine type.  Currently
1714
the machines @code{n800} and @code{n810} have one HCI and all other
1715
machines have none.
1716

    
1717
@anchor{bt-hcis}
1718
The following three types are recognized:
1719

    
1720
@table @option
1721
@item -bt hci,null
1722
(default) The corresponding Bluetooth HCI assumes no internal logic
1723
and will not respond to any HCI commands or emit events.
1724

    
1725
@item -bt hci,host[:@var{id}]
1726
(@code{bluez} only) The corresponding HCI passes commands / events
1727
to / from the physical HCI identified by the name @var{id} (default:
1728
@code{hci0}) on the computer running QEMU.  Only available on @code{bluez}
1729
capable systems like Linux.
1730

    
1731
@item -bt hci[,vlan=@var{n}]
1732
Add a virtual, standard HCI that will participate in the Bluetooth
1733
scatternet @var{n} (default @code{0}).  Similarly to @option{-net}
1734
VLANs, devices inside a bluetooth network @var{n} can only communicate
1735
with other devices in the same network (scatternet).
1736
@end table
1737

    
1738
@item -bt vhci[,vlan=@var{n}]
1739
(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
1740
to the host bluetooth stack instead of to the emulated target.  This
1741
allows the host and target machines to participate in a common scatternet
1742
and communicate.  Requires the Linux @code{vhci} driver installed.  Can
1743
be used as following:
1744

    
1745
@example
1746
qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
1747
@end example
1748

    
1749
@item -bt device:@var{dev}[,vlan=@var{n}]
1750
Emulate a bluetooth device @var{dev} and place it in network @var{n}
1751
(default @code{0}).  QEMU can only emulate one type of bluetooth devices
1752
currently:
1753

    
1754
@table @option
1755
@item keyboard
1756
Virtual wireless keyboard implementing the HIDP bluetooth profile.
1757
@end table
1758
@end table
1759
ETEXI
1760

    
1761
DEFHEADING()
1762

    
1763
DEFHEADING(Linux/Multiboot boot specific:)
1764
STEXI
1765

    
1766
When using these options, you can use a given Linux or Multiboot
1767
kernel without installing it in the disk image. It can be useful
1768
for easier testing of various kernels.
1769

    
1770
@table @option
1771
ETEXI
1772

    
1773
DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
1774
    "-kernel bzImage use 'bzImage' as kernel image\n", QEMU_ARCH_ALL)
1775
STEXI
1776
@item -kernel @var{bzImage}
1777
@findex -kernel
1778
Use @var{bzImage} as kernel image. The kernel can be either a Linux kernel
1779
or in multiboot format.
1780
ETEXI
1781

    
1782
DEF("append", HAS_ARG, QEMU_OPTION_append, \
1783
    "-append cmdline use 'cmdline' as kernel command line\n", QEMU_ARCH_ALL)
1784
STEXI
1785
@item -append @var{cmdline}
1786
@findex -append
1787
Use @var{cmdline} as kernel command line
1788
ETEXI
1789

    
1790
DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
1791
           "-initrd file    use 'file' as initial ram disk\n", QEMU_ARCH_ALL)
1792
STEXI
1793
@item -initrd @var{file}
1794
@findex -initrd
1795
Use @var{file} as initial ram disk.
1796

    
1797
@item -initrd "@var{file1} arg=foo,@var{file2}"
1798

    
1799
This syntax is only available with multiboot.
1800

    
1801
Use @var{file1} and @var{file2} as modules and pass arg=foo as parameter to the
1802
first module.
1803
ETEXI
1804

    
1805
STEXI
1806
@end table
1807
ETEXI
1808

    
1809
DEFHEADING()
1810

    
1811
DEFHEADING(Debug/Expert options:)
1812

    
1813
STEXI
1814
@table @option
1815
ETEXI
1816

    
1817
DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
1818
    "-serial dev     redirect the serial port to char device 'dev'\n",
1819
    QEMU_ARCH_ALL)
1820
STEXI
1821
@item -serial @var{dev}
1822
@findex -serial
1823
Redirect the virtual serial port to host character device
1824
@var{dev}. The default device is @code{vc} in graphical mode and
1825
@code{stdio} in non graphical mode.
1826

    
1827
This option can be used several times to simulate up to 4 serial
1828
ports.
1829

    
1830
Use @code{-serial none} to disable all serial ports.
1831

    
1832
Available character devices are:
1833
@table @option
1834
@item vc[:@var{W}x@var{H}]
1835
Virtual console. Optionally, a width and height can be given in pixel with
1836
@example
1837
vc:800x600
1838
@end example
1839
It is also possible to specify width or height in characters:
1840
@example
1841
vc:80Cx24C
1842
@end example
1843
@item pty
1844
[Linux only] Pseudo TTY (a new PTY is automatically allocated)
1845
@item none
1846
No device is allocated.
1847
@item null
1848
void device
1849
@item /dev/XXX
1850
[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
1851
parameters are set according to the emulated ones.
1852
@item /dev/parport@var{N}
1853
[Linux only, parallel port only] Use host parallel port
1854
@var{N}. Currently SPP and EPP parallel port features can be used.
1855
@item file:@var{filename}
1856
Write output to @var{filename}. No character can be read.
1857
@item stdio
1858
[Unix only] standard input/output
1859
@item pipe:@var{filename}
1860
name pipe @var{filename}
1861
@item COM@var{n}
1862
[Windows only] Use host serial port @var{n}
1863
@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
1864
This implements UDP Net Console.
1865
When @var{remote_host} or @var{src_ip} are not specified
1866
they default to @code{0.0.0.0}.
1867
When not using a specified @var{src_port} a random port is automatically chosen.
1868

    
1869
If you just want a simple readonly console you can use @code{netcat} or
1870
@code{nc}, by starting qemu with: @code{-serial udp::4555} and nc as:
1871
@code{nc -u -l -p 4555}. Any time qemu writes something to that port it
1872
will appear in the netconsole session.
1873

    
1874
If you plan to send characters back via netconsole or you want to stop
1875
and start qemu a lot of times, you should have qemu use the same
1876
source port each time by using something like @code{-serial
1877
udp::4555@@:4556} to qemu. Another approach is to use a patched
1878
version of netcat which can listen to a TCP port and send and receive
1879
characters via udp.  If you have a patched version of netcat which
1880
activates telnet remote echo and single char transfer, then you can
1881
use the following options to step up a netcat redirector to allow
1882
telnet on port 5555 to access the qemu port.
1883
@table @code
1884
@item Qemu Options:
1885
-serial udp::4555@@:4556
1886
@item netcat options:
1887
-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
1888
@item telnet options:
1889
localhost 5555
1890
@end table
1891

    
1892
@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
1893
The TCP Net Console has two modes of operation.  It can send the serial
1894
I/O to a location or wait for a connection from a location.  By default
1895
the TCP Net Console is sent to @var{host} at the @var{port}.  If you use
1896
the @var{server} option QEMU will wait for a client socket application
1897
to connect to the port before continuing, unless the @code{nowait}
1898
option was specified.  The @code{nodelay} option disables the Nagle buffering
1899
algorithm.  If @var{host} is omitted, 0.0.0.0 is assumed. Only
1900
one TCP connection at a time is accepted. You can use @code{telnet} to
1901
connect to the corresponding character device.
1902
@table @code
1903
@item Example to send tcp console to 192.168.0.2 port 4444
1904
-serial tcp:192.168.0.2:4444
1905
@item Example to listen and wait on port 4444 for connection
1906
-serial tcp::4444,server
1907
@item Example to not wait and listen on ip 192.168.0.100 port 4444
1908
-serial tcp:192.168.0.100:4444,server,nowait
1909
@end table
1910

    
1911
@item telnet:@var{host}:@var{port}[,server][,nowait][,nodelay]
1912
The telnet protocol is used instead of raw tcp sockets.  The options
1913
work the same as if you had specified @code{-serial tcp}.  The
1914
difference is that the port acts like a telnet server or client using
1915
telnet option negotiation.  This will also allow you to send the
1916
MAGIC_SYSRQ sequence if you use a telnet that supports sending the break
1917
sequence.  Typically in unix telnet you do it with Control-] and then
1918
type "send break" followed by pressing the enter key.
1919

    
1920
@item unix:@var{path}[,server][,nowait]
1921
A unix domain socket is used instead of a tcp socket.  The option works the
1922
same as if you had specified @code{-serial tcp} except the unix domain socket
1923
@var{path} is used for connections.
1924

    
1925
@item mon:@var{dev_string}
1926
This is a special option to allow the monitor to be multiplexed onto
1927
another serial port.  The monitor is accessed with key sequence of
1928
@key{Control-a} and then pressing @key{c}. See monitor access
1929
@ref{pcsys_keys} in the -nographic section for more keys.
1930
@var{dev_string} should be any one of the serial devices specified
1931
above.  An example to multiplex the monitor onto a telnet server
1932
listening on port 4444 would be:
1933
@table @code
1934
@item -serial mon:telnet::4444,server,nowait
1935
@end table
1936

    
1937
@item braille
1938
Braille device.  This will use BrlAPI to display the braille output on a real
1939
or fake device.
1940

    
1941
@item msmouse
1942
Three button serial mouse. Configure the guest to use Microsoft protocol.
1943
@end table
1944
ETEXI
1945

    
1946
DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
1947
    "-parallel dev   redirect the parallel port to char device 'dev'\n",
1948
    QEMU_ARCH_ALL)
1949
STEXI
1950
@item -parallel @var{dev}
1951
@findex -parallel
1952
Redirect the virtual parallel port to host device @var{dev} (same
1953
devices as the serial port). On Linux hosts, @file{/dev/parportN} can
1954
be used to use hardware devices connected on the corresponding host
1955
parallel port.
1956

    
1957
This option can be used several times to simulate up to 3 parallel
1958
ports.
1959

    
1960
Use @code{-parallel none} to disable all parallel ports.
1961
ETEXI
1962

    
1963
DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
1964
    "-monitor dev    redirect the monitor to char device 'dev'\n",
1965
    QEMU_ARCH_ALL)
1966
STEXI
1967
@item -monitor @var{dev}
1968
@findex -monitor
1969
Redirect the monitor to host device @var{dev} (same devices as the
1970
serial port).
1971
The default device is @code{vc} in graphical mode and @code{stdio} in
1972
non graphical mode.
1973
ETEXI
1974
DEF("qmp", HAS_ARG, QEMU_OPTION_qmp, \
1975
    "-qmp dev        like -monitor but opens in 'control' mode\n",
1976
    QEMU_ARCH_ALL)
1977
STEXI
1978
@item -qmp @var{dev}
1979
@findex -qmp
1980
Like -monitor but opens in 'control' mode.
1981
ETEXI
1982

    
1983
DEF("mon", HAS_ARG, QEMU_OPTION_mon, \
1984
    "-mon chardev=[name][,mode=readline|control][,default]\n", QEMU_ARCH_ALL)
1985
STEXI
1986
@item -mon chardev=[name][,mode=readline|control][,default]
1987
@findex -mon
1988
Setup monitor on chardev @var{name}.
1989
ETEXI
1990

    
1991
DEF("debugcon", HAS_ARG, QEMU_OPTION_debugcon, \
1992
    "-debugcon dev   redirect the debug console to char device 'dev'\n",
1993
    QEMU_ARCH_ALL)
1994
STEXI
1995
@item -debugcon @var{dev}
1996
@findex -debugcon
1997
Redirect the debug console to host device @var{dev} (same devices as the
1998
serial port).  The debug console is an I/O port which is typically port
1999
0xe9; writing to that I/O port sends output to this device.
2000
The default device is @code{vc} in graphical mode and @code{stdio} in
2001
non graphical mode.
2002
ETEXI
2003

    
2004
DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
2005
    "-pidfile file   write PID to 'file'\n", QEMU_ARCH_ALL)
2006
STEXI
2007
@item -pidfile @var{file}
2008
@findex -pidfile
2009
Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
2010
from a script.
2011
ETEXI
2012

    
2013
DEF("singlestep", 0, QEMU_OPTION_singlestep, \
2014
    "-singlestep     always run in singlestep mode\n", QEMU_ARCH_ALL)
2015
STEXI
2016
@item -singlestep
2017
@findex -singlestep
2018
Run the emulation in single step mode.
2019
ETEXI
2020

    
2021
DEF("S", 0, QEMU_OPTION_S, \
2022
    "-S              freeze CPU at startup (use 'c' to start execution)\n",
2023
    QEMU_ARCH_ALL)
2024
STEXI
2025
@item -S
2026
@findex -S
2027
Do not start CPU at startup (you must type 'c' in the monitor).
2028
ETEXI
2029

    
2030
DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
2031
    "-gdb dev        wait for gdb connection on 'dev'\n", QEMU_ARCH_ALL)
2032
STEXI
2033
@item -gdb @var{dev}
2034
@findex -gdb
2035
Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
2036
connections will likely be TCP-based, but also UDP, pseudo TTY, or even
2037
stdio are reasonable use case. The latter is allowing to start qemu from
2038
within gdb and establish the connection via a pipe:
2039
@example
2040
(gdb) target remote | exec qemu -gdb stdio ...
2041
@end example
2042
ETEXI
2043

    
2044
DEF("s", 0, QEMU_OPTION_s, \
2045
    "-s              shorthand for -gdb tcp::" DEFAULT_GDBSTUB_PORT "\n",
2046
    QEMU_ARCH_ALL)
2047
STEXI
2048
@item -s
2049
@findex -s
2050
Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
2051
(@pxref{gdb_usage}).
2052
ETEXI
2053

    
2054
DEF("d", HAS_ARG, QEMU_OPTION_d, \
2055
    "-d item1,...    output log to /tmp/qemu.log (use -d ? for a list of log items)\n",
2056
    QEMU_ARCH_ALL)
2057
STEXI
2058
@item -d
2059
@findex -d
2060
Output log in /tmp/qemu.log
2061
ETEXI
2062

    
2063
DEF("D", HAS_ARG, QEMU_OPTION_D, \
2064
    "-D logfile      output log to logfile (instead of the default /tmp/qemu.log)\n",
2065
    QEMU_ARCH_ALL)
2066
STEXI
2067
@item -D
2068
@findex -D
2069
Output log in logfile instead of /tmp/qemu.log
2070
ETEXI
2071

    
2072
DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
2073
    "-hdachs c,h,s[,t]\n" \
2074
    "                force hard disk 0 physical geometry and the optional BIOS\n" \
2075
    "                translation (t=none or lba) (usually qemu can guess them)\n",
2076
    QEMU_ARCH_ALL)
2077
STEXI
2078
@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
2079
@findex -hdachs
2080
Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
2081
@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
2082
translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
2083
all those parameters. This option is useful for old MS-DOS disk
2084
images.
2085
ETEXI
2086

    
2087
DEF("L", HAS_ARG, QEMU_OPTION_L, \
2088
    "-L path         set the directory for the BIOS, VGA BIOS and keymaps\n",
2089
    QEMU_ARCH_ALL)
2090
STEXI
2091
@item -L  @var{path}
2092
@findex -L
2093
Set the directory for the BIOS, VGA BIOS and keymaps.
2094
ETEXI
2095

    
2096
DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
2097
    "-bios file      set the filename for the BIOS\n", QEMU_ARCH_ALL)
2098
STEXI
2099
@item -bios @var{file}
2100
@findex -bios
2101
Set the filename for the BIOS.
2102
ETEXI
2103

    
2104
DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
2105
    "-enable-kvm     enable KVM full virtualization support\n", QEMU_ARCH_ALL)
2106
STEXI
2107
@item -enable-kvm
2108
@findex -enable-kvm
2109
Enable KVM full virtualization support. This option is only available
2110
if KVM support is enabled when compiling.
2111
ETEXI
2112

    
2113
DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
2114
    "-xen-domid id   specify xen guest domain id\n", QEMU_ARCH_ALL)
2115
DEF("xen-create", 0, QEMU_OPTION_xen_create,
2116
    "-xen-create     create domain using xen hypercalls, bypassing xend\n"
2117
    "                warning: should not be used when xend is in use\n",
2118
    QEMU_ARCH_ALL)
2119
DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
2120
    "-xen-attach     attach to existing xen domain\n"
2121
    "                xend will use this when starting qemu\n",
2122
    QEMU_ARCH_ALL)
2123
STEXI
2124
@item -xen-domid @var{id}
2125
@findex -xen-domid
2126
Specify xen guest domain @var{id} (XEN only).
2127
@item -xen-create
2128
@findex -xen-create
2129
Create domain using xen hypercalls, bypassing xend.
2130
Warning: should not be used when xend is in use (XEN only).
2131
@item -xen-attach
2132
@findex -xen-attach
2133
Attach to existing xen domain.
2134
xend will use this when starting qemu (XEN only).
2135
ETEXI
2136

    
2137
DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
2138
    "-no-reboot      exit instead of rebooting\n", QEMU_ARCH_ALL)
2139
STEXI
2140
@item -no-reboot
2141
@findex -no-reboot
2142
Exit instead of rebooting.
2143
ETEXI
2144

    
2145
DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
2146
    "-no-shutdown    stop before shutdown\n", QEMU_ARCH_ALL)
2147
STEXI
2148
@item -no-shutdown
2149
@findex -no-shutdown
2150
Don't exit QEMU on guest shutdown, but instead only stop the emulation.
2151
This allows for instance switching to monitor to commit changes to the
2152
disk image.
2153
ETEXI
2154

    
2155
DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
2156
    "-loadvm [tag|id]\n" \
2157
    "                start right away with a saved state (loadvm in monitor)\n",
2158
    QEMU_ARCH_ALL)
2159
STEXI
2160
@item -loadvm @var{file}
2161
@findex -loadvm
2162
Start right away with a saved state (@code{loadvm} in monitor)
2163
ETEXI
2164

    
2165
#ifndef _WIN32
2166
DEF("daemonize", 0, QEMU_OPTION_daemonize, \
2167
    "-daemonize      daemonize QEMU after initializing\n", QEMU_ARCH_ALL)
2168
#endif
2169
STEXI
2170
@item -daemonize
2171
@findex -daemonize
2172
Daemonize the QEMU process after initialization.  QEMU will not detach from
2173
standard IO until it is ready to receive connections on any of its devices.
2174
This option is a useful way for external programs to launch QEMU without having
2175
to cope with initialization race conditions.
2176
ETEXI
2177

    
2178
DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
2179
    "-option-rom rom load a file, rom, into the option ROM space\n",
2180
    QEMU_ARCH_ALL)
2181
STEXI
2182
@item -option-rom @var{file}
2183
@findex -option-rom
2184
Load the contents of @var{file} as an option ROM.
2185
This option is useful to load things like EtherBoot.
2186
ETEXI
2187

    
2188
DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
2189
    "-clock          force the use of the given methods for timer alarm.\n" \
2190
    "                To see what timers are available use -clock ?\n",
2191
    QEMU_ARCH_ALL)
2192
STEXI
2193
@item -clock @var{method}
2194
@findex -clock
2195
Force the use of the given methods for timer alarm. To see what timers
2196
are available use -clock ?.
2197
ETEXI
2198

    
2199
HXCOMM Options deprecated by -rtc
2200
DEF("localtime", 0, QEMU_OPTION_localtime, "", QEMU_ARCH_ALL)
2201
DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, "", QEMU_ARCH_ALL)
2202

    
2203
DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
2204
    "-rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew]\n" \
2205
    "                set the RTC base and clock, enable drift fix for clock ticks (x86 only)\n",
2206
    QEMU_ARCH_ALL)
2207

    
2208
STEXI
2209

    
2210
@item -rtc [base=utc|localtime|@var{date}][,clock=host|vm][,driftfix=none|slew]
2211
@findex -rtc
2212
Specify @option{base} as @code{utc} or @code{localtime} to let the RTC start at the current
2213
UTC or local time, respectively. @code{localtime} is required for correct date in
2214
MS-DOS or Windows. To start at a specific point in time, provide @var{date} in the
2215
format @code{2006-06-17T16:01:21} or @code{2006-06-17}. The default base is UTC.
2216

    
2217
By default the RTC is driven by the host system time. This allows to use the
2218
RTC as accurate reference clock inside the guest, specifically if the host
2219
time is smoothly following an accurate external reference clock, e.g. via NTP.
2220
If you want to isolate the guest time from the host, even prevent it from
2221
progressing during suspension, you can set @option{clock} to @code{vm} instead.
2222

    
2223
Enable @option{driftfix} (i386 targets only) if you experience time drift problems,
2224
specifically with Windows' ACPI HAL. This option will try to figure out how
2225
many timer interrupts were not processed by the Windows guest and will
2226
re-inject them.
2227
ETEXI
2228

    
2229
DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
2230
    "-icount [N|auto]\n" \
2231
    "                enable virtual instruction counter with 2^N clock ticks per\n" \
2232
    "                instruction\n", QEMU_ARCH_ALL)
2233
STEXI
2234
@item -icount [@var{N}|auto]
2235
@findex -icount
2236
Enable virtual instruction counter.  The virtual cpu will execute one
2237
instruction every 2^@var{N} ns of virtual time.  If @code{auto} is specified
2238
then the virtual cpu speed will be automatically adjusted to keep virtual
2239
time within a few seconds of real time.
2240

    
2241
Note that while this option can give deterministic behavior, it does not
2242
provide cycle accurate emulation.  Modern CPUs contain superscalar out of
2243
order cores with complex cache hierarchies.  The number of instructions
2244
executed often has little or no correlation with actual performance.
2245
ETEXI
2246

    
2247
DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
2248
    "-watchdog i6300esb|ib700\n" \
2249
    "                enable virtual hardware watchdog [default=none]\n",
2250
    QEMU_ARCH_ALL)
2251
STEXI
2252
@item -watchdog @var{model}
2253
@findex -watchdog
2254
Create a virtual hardware watchdog device.  Once enabled (by a guest
2255
action), the watchdog must be periodically polled by an agent inside
2256
the guest or else the guest will be restarted.
2257

    
2258
The @var{model} is the model of hardware watchdog to emulate.  Choices
2259
for model are: @code{ib700} (iBASE 700) which is a very simple ISA
2260
watchdog with a single timer, or @code{i6300esb} (Intel 6300ESB I/O
2261
controller hub) which is a much more featureful PCI-based dual-timer
2262
watchdog.  Choose a model for which your guest has drivers.
2263

    
2264
Use @code{-watchdog ?} to list available hardware models.  Only one
2265
watchdog can be enabled for a guest.
2266
ETEXI
2267

    
2268
DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
2269
    "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
2270
    "                action when watchdog fires [default=reset]\n",
2271
    QEMU_ARCH_ALL)
2272
STEXI
2273
@item -watchdog-action @var{action}
2274

    
2275
The @var{action} controls what QEMU will do when the watchdog timer
2276
expires.
2277
The default is
2278
@code{reset} (forcefully reset the guest).
2279
Other possible actions are:
2280
@code{shutdown} (attempt to gracefully shutdown the guest),
2281
@code{poweroff} (forcefully poweroff the guest),
2282
@code{pause} (pause the guest),
2283
@code{debug} (print a debug message and continue), or
2284
@code{none} (do nothing).
2285

    
2286
Note that the @code{shutdown} action requires that the guest responds
2287
to ACPI signals, which it may not be able to do in the sort of
2288
situations where the watchdog would have expired, and thus
2289
@code{-watchdog-action shutdown} is not recommended for production use.
2290

    
2291
Examples:
2292

    
2293
@table @code
2294
@item -watchdog i6300esb -watchdog-action pause
2295
@item -watchdog ib700
2296
@end table
2297
ETEXI
2298

    
2299
DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
2300
    "-echr chr       set terminal escape character instead of ctrl-a\n",
2301
    QEMU_ARCH_ALL)
2302
STEXI
2303

    
2304
@item -echr @var{numeric_ascii_value}
2305
@findex -echr
2306
Change the escape character used for switching to the monitor when using
2307
monitor and serial sharing.  The default is @code{0x01} when using the
2308
@code{-nographic} option.  @code{0x01} is equal to pressing
2309
@code{Control-a}.  You can select a different character from the ascii
2310
control keys where 1 through 26 map to Control-a through Control-z.  For
2311
instance you could use the either of the following to change the escape
2312
character to Control-t.
2313
@table @code
2314
@item -echr 0x14
2315
@item -echr 20
2316
@end table
2317
ETEXI
2318

    
2319
DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
2320
    "-virtioconsole c\n" \
2321
    "                set virtio console\n", QEMU_ARCH_ALL)
2322
STEXI
2323
@item -virtioconsole @var{c}
2324
@findex -virtioconsole
2325
Set virtio console.
2326

    
2327
This option is maintained for backward compatibility.
2328

    
2329
Please use @code{-device virtconsole} for the new way of invocation.
2330
ETEXI
2331

    
2332
DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
2333
    "-show-cursor    show cursor\n", QEMU_ARCH_ALL)
2334
STEXI
2335
@item -show-cursor
2336
@findex -show-cursor
2337
Show cursor.
2338
ETEXI
2339

    
2340
DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
2341
    "-tb-size n      set TB size\n", QEMU_ARCH_ALL)
2342
STEXI
2343
@item -tb-size @var{n}
2344
@findex -tb-size
2345
Set TB size.
2346
ETEXI
2347

    
2348
DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
2349
    "-incoming p     prepare for incoming migration, listen on port p\n",
2350
    QEMU_ARCH_ALL)
2351
STEXI
2352
@item -incoming @var{port}
2353
@findex -incoming
2354
Prepare for incoming migration, listen on @var{port}.
2355
ETEXI
2356

    
2357
DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \
2358
    "-nodefaults     don't create default devices\n", QEMU_ARCH_ALL)
2359
STEXI
2360
@item -nodefaults
2361
@findex -nodefaults
2362
Don't create default devices.
2363
ETEXI
2364

    
2365
#ifndef _WIN32
2366
DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
2367
    "-chroot dir     chroot to dir just before starting the VM\n",
2368
    QEMU_ARCH_ALL)
2369
#endif
2370
STEXI
2371
@item -chroot @var{dir}
2372
@findex -chroot
2373
Immediately before starting guest execution, chroot to the specified
2374
directory.  Especially useful in combination with -runas.
2375
ETEXI
2376

    
2377
#ifndef _WIN32
2378
DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
2379
    "-runas user     change to user id user just before starting the VM\n",
2380
    QEMU_ARCH_ALL)
2381
#endif
2382
STEXI
2383
@item -runas @var{user}
2384
@findex -runas
2385
Immediately before starting guest execution, drop root privileges, switching
2386
to the specified user.
2387
ETEXI
2388

    
2389
DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
2390
    "-prom-env variable=value\n"
2391
    "                set OpenBIOS nvram variables\n",
2392
    QEMU_ARCH_PPC | QEMU_ARCH_SPARC)
2393
STEXI
2394
@item -prom-env @var{variable}=@var{value}
2395
@findex -prom-env
2396
Set OpenBIOS nvram @var{variable} to given @var{value} (PPC, SPARC only).
2397
ETEXI
2398
DEF("semihosting", 0, QEMU_OPTION_semihosting,
2399
    "-semihosting    semihosting mode\n", QEMU_ARCH_ARM | QEMU_ARCH_M68K)
2400
STEXI
2401
@item -semihosting
2402
@findex -semihosting
2403
Semihosting mode (ARM, M68K only).
2404
ETEXI
2405
DEF("old-param", 0, QEMU_OPTION_old_param,
2406
    "-old-param      old param mode\n", QEMU_ARCH_ARM)
2407
STEXI
2408
@item -old-param
2409
@findex -old-param (ARM)
2410
Old param mode (ARM only).
2411
ETEXI
2412

    
2413
DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
2414
    "-readconfig <file>\n", QEMU_ARCH_ALL)
2415
STEXI
2416
@item -readconfig @var{file}
2417
@findex -readconfig
2418
Read device configuration from @var{file}.
2419
ETEXI
2420
DEF("writeconfig", HAS_ARG, QEMU_OPTION_writeconfig,
2421
    "-writeconfig <file>\n"
2422
    "                read/write config file\n", QEMU_ARCH_ALL)
2423
STEXI
2424
@item -writeconfig @var{file}
2425
@findex -writeconfig
2426
Write device configuration to @var{file}.
2427
ETEXI
2428
DEF("nodefconfig", 0, QEMU_OPTION_nodefconfig,
2429
    "-nodefconfig\n"
2430
    "                do not load default config files at startup\n",
2431
    QEMU_ARCH_ALL)
2432
STEXI
2433
@item -nodefconfig
2434
@findex -nodefconfig
2435
Normally QEMU loads a configuration file from @var{sysconfdir}/qemu.conf and
2436
@var{sysconfdir}/target-@var{ARCH}.conf on startup.  The @code{-nodefconfig}
2437
option will prevent QEMU from loading these configuration files at startup.
2438
ETEXI
2439
DEF("trace", HAS_ARG, QEMU_OPTION_trace,
2440
    "-trace\n"
2441
    "                Specify a trace file to log traces to\n",
2442
    QEMU_ARCH_ALL)
2443
STEXI
2444
HXCOMM This line is not accurate, as the option is backend-specific but HX does
2445
HXCOMM not support conditional compilation of text.
2446
@item -trace
2447
@findex -trace
2448
Specify a trace file to log output traces to.
2449

    
2450
This option is available only when using the @var{simple} tracing backend.
2451
ETEXI
2452

    
2453
HXCOMM This is the last statement. Insert new options before this line!
2454
STEXI
2455
@end table
2456
ETEXI