Statistics
| Branch: | Revision:

root / qemu-options.hx @ 80f52a66

History | View | Annotate | Download (83.5 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|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", 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
Some block drivers perform badly with @option{cache=writethrough}, most notably,
203
qcow2.  If performance is more important than correctness,
204
@option{cache=writeback} should be used with qcow2.
205

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

    
213
Instead of @option{-cdrom} you can use:
214
@example
215
qemu -drive file=file,index=2,media=cdrom
216
@end example
217

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

    
227
You can connect a CDROM to the slave of ide0:
228
@example
229
qemu -drive file=file,if=ide,index=1,media=cdrom
230
@end example
231

    
232
If you don't specify the "file=" argument, you define an empty drive:
233
@example
234
qemu -drive if=ide,index=1,media=cdrom
235
@end example
236

    
237
You can connect a SCSI disk with unit ID 6 on the bus #0:
238
@example
239
qemu -drive file=file,if=scsi,bus=0,unit=6
240
@end example
241

    
242
Instead of @option{-fda}, @option{-fdb}, you can use:
243
@example
244
qemu -drive file=file,index=0,if=floppy
245
qemu -drive file=file,index=1,if=floppy
246
@end example
247

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

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

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

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

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

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

    
304
DEF("boot", HAS_ARG, QEMU_OPTION_boot,
305
    "-boot [order=drives][,once=drives][,menu=on|off]\n"
306
    "                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n",
307
    QEMU_ARCH_ALL)
308
STEXI
309
@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off]
310
@findex -boot
311
Specify boot order @var{drives} as a string of drive letters. Valid
312
drive letters depend on the target achitecture. The x86 PC uses: a, b
313
(floppy 1 and 2), c (first hard disk), d (first CD-ROM), n-p (Etherboot
314
from network adapter 1-4), hard disk boot is the default. To apply a
315
particular boot order only on the first startup, specify it via
316
@option{once}.
317

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

    
321
@example
322
# try to boot from network first, then from hard disk
323
qemu -boot order=nc
324
# boot from CD-ROM first, switch back to default order after reboot
325
qemu -boot once=d
326
@end example
327

    
328
Note: The legacy format '-boot @var{drives}' is still supported but its
329
use is discouraged as it may be removed from future versions.
330
ETEXI
331

    
332
DEF("snapshot", 0, QEMU_OPTION_snapshot,
333
    "-snapshot       write to temporary files instead of disk image files\n",
334
    QEMU_ARCH_ALL)
335
STEXI
336
@item -snapshot
337
@findex -snapshot
338
Write to temporary files instead of disk image files. In this case,
339
the raw disk image you use is not written back. You can however force
340
the write back by pressing @key{C-a s} (@pxref{disk_images}).
341
ETEXI
342

    
343
DEF("m", HAS_ARG, QEMU_OPTION_m,
344
    "-m megs         set virtual RAM size to megs MB [default="
345
    stringify(DEFAULT_RAM_SIZE) "]\n", QEMU_ARCH_ALL)
346
STEXI
347
@item -m @var{megs}
348
@findex -m
349
Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB.  Optionally,
350
a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
351
gigabytes respectively.
352
ETEXI
353

    
354
DEF("mem-path", HAS_ARG, QEMU_OPTION_mempath,
355
    "-mem-path FILE  provide backing storage for guest RAM\n", QEMU_ARCH_ALL)
356
STEXI
357
@item -mem-path @var{path}
358
Allocate guest RAM from a temporarily created file in @var{path}.
359
ETEXI
360

    
361
#ifdef MAP_POPULATE
362
DEF("mem-prealloc", 0, QEMU_OPTION_mem_prealloc,
363
    "-mem-prealloc   preallocate guest memory (use with -mem-path)\n",
364
    QEMU_ARCH_ALL)
365
STEXI
366
@item -mem-prealloc
367
Preallocate memory when using -mem-path.
368
ETEXI
369
#endif
370

    
371
DEF("k", HAS_ARG, QEMU_OPTION_k,
372
    "-k language     use keyboard layout (for example 'fr' for French)\n",
373
    QEMU_ARCH_ALL)
374
STEXI
375
@item -k @var{language}
376
@findex -k
377
Use keyboard layout @var{language} (for example @code{fr} for
378
French). This option is only needed where it is not easy to get raw PC
379
keycodes (e.g. on Macs, with some X11 servers or with a VNC
380
display). You don't normally need to use it on PC/Linux or PC/Windows
381
hosts.
382

    
383
The available layouts are:
384
@example
385
ar  de-ch  es  fo     fr-ca  hu  ja  mk     no  pt-br  sv
386
da  en-gb  et  fr     fr-ch  is  lt  nl     pl  ru     th
387
de  en-us  fi  fr-be  hr     it  lv  nl-be  pt  sl     tr
388
@end example
389

    
390
The default is @code{en-us}.
391
ETEXI
392

    
393

    
394
DEF("audio-help", 0, QEMU_OPTION_audio_help,
395
    "-audio-help     print list of audio drivers and their options\n",
396
    QEMU_ARCH_ALL)
397
STEXI
398
@item -audio-help
399
@findex -audio-help
400
Will show the audio subsystem help: list of drivers, tunable
401
parameters.
402
ETEXI
403

    
404
DEF("soundhw", HAS_ARG, QEMU_OPTION_soundhw,
405
    "-soundhw c1,... enable audio support\n"
406
    "                and only specified sound cards (comma separated list)\n"
407
    "                use -soundhw ? to get the list of supported cards\n"
408
    "                use -soundhw all to enable all of them\n", QEMU_ARCH_ALL)
409
STEXI
410
@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
411
@findex -soundhw
412
Enable audio and selected sound hardware. Use ? to print all
413
available sound hardware.
414

    
415
@example
416
qemu -soundhw sb16,adlib disk.img
417
qemu -soundhw es1370 disk.img
418
qemu -soundhw ac97 disk.img
419
qemu -soundhw hda disk.img
420
qemu -soundhw all disk.img
421
qemu -soundhw ?
422
@end example
423

    
424
Note that Linux's i810_audio OSS kernel (for AC97) module might
425
require manually specifying clocking.
426

    
427
@example
428
modprobe i810_audio clocking=48000
429
@end example
430
ETEXI
431

    
432
STEXI
433
@end table
434
ETEXI
435

    
436
DEF("usb", 0, QEMU_OPTION_usb,
437
    "-usb            enable the USB driver (will be the default soon)\n",
438
    QEMU_ARCH_ALL)
439
STEXI
440
USB options:
441
@table @option
442

    
443
@item -usb
444
@findex -usb
445
Enable the USB driver (will be the default soon)
446
ETEXI
447

    
448
DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
449
    "-usbdevice name add the host or guest USB device 'name'\n",
450
    QEMU_ARCH_ALL)
451
STEXI
452

    
453
@item -usbdevice @var{devname}
454
@findex -usbdevice
455
Add the USB device @var{devname}. @xref{usb_devices}.
456

    
457
@table @option
458

    
459
@item mouse
460
Virtual Mouse. This will override the PS/2 mouse emulation when activated.
461

    
462
@item tablet
463
Pointer device that uses absolute coordinates (like a touchscreen). This
464
means qemu is able to report the mouse position without having to grab the
465
mouse. Also overrides the PS/2 mouse emulation when activated.
466

    
467
@item disk:[format=@var{format}]:@var{file}
468
Mass storage device based on file. The optional @var{format} argument
469
will be used rather than detecting the format. Can be used to specifiy
470
@code{format=raw} to avoid interpreting an untrusted format header.
471

    
472
@item host:@var{bus}.@var{addr}
473
Pass through the host device identified by @var{bus}.@var{addr} (Linux only).
474

    
475
@item host:@var{vendor_id}:@var{product_id}
476
Pass through the host device identified by @var{vendor_id}:@var{product_id}
477
(Linux only).
478

    
479
@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
480
Serial converter to host character device @var{dev}, see @code{-serial} for the
481
available devices.
482

    
483
@item braille
484
Braille device.  This will use BrlAPI to display the braille output on a real
485
or fake device.
486

    
487
@item net:@var{options}
488
Network adapter that supports CDC ethernet and RNDIS protocols.
489

    
490
@end table
491
ETEXI
492

    
493
DEF("device", HAS_ARG, QEMU_OPTION_device,
494
    "-device driver[,prop[=value][,...]]\n"
495
    "                add device (based on driver)\n"
496
    "                prop=value,... sets driver properties\n"
497
    "                use -device ? to print all possible drivers\n"
498
    "                use -device driver,? to print all possible properties\n",
499
    QEMU_ARCH_ALL)
500
STEXI
501
@item -device @var{driver}[,@var{prop}[=@var{value}][,...]]
502
@findex -device
503
Add device @var{driver}.  @var{prop}=@var{value} sets driver
504
properties.  Valid properties depend on the driver.  To get help on
505
possible drivers and properties, use @code{-device ?} and
506
@code{-device @var{driver},?}.
507
ETEXI
508

    
509
DEFHEADING(File system options:)
510

    
511
DEF("fsdev", HAS_ARG, QEMU_OPTION_fsdev,
512
    "-fsdev local,id=id,path=path,security_model=[mapped|passthrough|none]\n",
513
    QEMU_ARCH_ALL)
514

    
515
STEXI
516

    
517
The general form of a File system device option is:
518
@table @option
519

    
520
@item -fsdev @var{fstype} ,id=@var{id} [,@var{options}]
521
@findex -fsdev
522
Fstype is one of:
523
@option{local},
524
The specific Fstype will determine the applicable options.
525

    
526
Options to each backend are described below.
527

    
528
@item -fsdev local ,id=@var{id} ,path=@var{path} ,security_model=@var{security_model}
529

    
530
Create a file-system-"device" for local-filesystem.
531

    
532
@option{local} is only available on Linux.
533

    
534
@option{path} specifies the path to be exported. @option{path} is required.
535

    
536
@option{security_model} specifies the security model to be followed.
537
@option{security_model} is required.
538

    
539
@end table
540
ETEXI
541

    
542
DEFHEADING(Virtual File system pass-through options:)
543

    
544
DEF("virtfs", HAS_ARG, QEMU_OPTION_virtfs,
545
    "-virtfs local,path=path,mount_tag=tag,security_model=[mapped|passthrough|none]\n",
546
    QEMU_ARCH_ALL)
547

    
548
STEXI
549

    
550
The general form of a Virtual File system pass-through option is:
551
@table @option
552

    
553
@item -virtfs @var{fstype} [,@var{options}]
554
@findex -virtfs
555
Fstype is one of:
556
@option{local},
557
The specific Fstype will determine the applicable options.
558

    
559
Options to each backend are described below.
560

    
561
@item -virtfs local ,path=@var{path} ,mount_tag=@var{mount_tag} ,security_model=@var{security_model}
562

    
563
Create a Virtual file-system-pass through for local-filesystem.
564

    
565
@option{local} is only available on Linux.
566

    
567
@option{path} specifies the path to be exported. @option{path} is required.
568

    
569
@option{security_model} specifies the security model to be followed.
570
@option{security_model} is required.
571

    
572

    
573
@option{mount_tag} specifies the tag with which the exported file is mounted.
574
@option{mount_tag} is required.
575

    
576
@end table
577
ETEXI
578

    
579
DEFHEADING()
580

    
581
DEF("name", HAS_ARG, QEMU_OPTION_name,
582
    "-name string1[,process=string2]\n"
583
    "                set the name of the guest\n"
584
    "                string1 sets the window title and string2 the process name (on Linux)\n",
585
    QEMU_ARCH_ALL)
586
STEXI
587
@item -name @var{name}
588
@findex -name
589
Sets the @var{name} of the guest.
590
This name will be displayed in the SDL window caption.
591
The @var{name} will also be used for the VNC server.
592
Also optionally set the top visible process name in Linux.
593
ETEXI
594

    
595
DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
596
    "-uuid %08x-%04x-%04x-%04x-%012x\n"
597
    "                specify machine UUID\n", QEMU_ARCH_ALL)
598
STEXI
599
@item -uuid @var{uuid}
600
@findex -uuid
601
Set system UUID.
602
ETEXI
603

    
604
STEXI
605
@end table
606
ETEXI
607

    
608
DEFHEADING()
609

    
610
DEFHEADING(Display options:)
611

    
612
STEXI
613
@table @option
614
ETEXI
615

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

    
647
DEF("nographic", 0, QEMU_OPTION_nographic,
648
    "-nographic      disable graphical output and redirect serial I/Os to console\n",
649
    QEMU_ARCH_ALL)
650
STEXI
651
@item -nographic
652
@findex -nographic
653
Normally, QEMU uses SDL to display the VGA output. With this option,
654
you can totally disable graphical output so that QEMU is a simple
655
command line application. The emulated serial port is redirected on
656
the console. Therefore, you can still use QEMU to debug a Linux kernel
657
with a serial console.
658
ETEXI
659

    
660
DEF("curses", 0, QEMU_OPTION_curses,
661
    "-curses         use a curses/ncurses interface instead of SDL\n",
662
    QEMU_ARCH_ALL)
663
STEXI
664
@item -curses
665
@findex curses
666
Normally, QEMU uses SDL to display the VGA output.  With this option,
667
QEMU can display the VGA output when in text mode using a
668
curses/ncurses interface.  Nothing is displayed in graphical mode.
669
ETEXI
670

    
671
DEF("no-frame", 0, QEMU_OPTION_no_frame,
672
    "-no-frame       open SDL window without a frame and window decorations\n",
673
    QEMU_ARCH_ALL)
674
STEXI
675
@item -no-frame
676
@findex -no-frame
677
Do not use decorations for SDL windows and start them using the whole
678
available screen space. This makes the using QEMU in a dedicated desktop
679
workspace more convenient.
680
ETEXI
681

    
682
DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
683
    "-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n",
684
    QEMU_ARCH_ALL)
685
STEXI
686
@item -alt-grab
687
@findex -alt-grab
688
Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt). Note that this also
689
affects the special keys (for fullscreen, monitor-mode switching, etc).
690
ETEXI
691

    
692
DEF("ctrl-grab", 0, QEMU_OPTION_ctrl_grab,
693
    "-ctrl-grab      use Right-Ctrl to grab mouse (instead of Ctrl-Alt)\n",
694
    QEMU_ARCH_ALL)
695
STEXI
696
@item -ctrl-grab
697
@findex -ctrl-grab
698
Use Right-Ctrl to grab mouse (instead of Ctrl-Alt). Note that this also
699
affects the special keys (for fullscreen, monitor-mode switching, etc).
700
ETEXI
701

    
702
DEF("no-quit", 0, QEMU_OPTION_no_quit,
703
    "-no-quit        disable SDL window close capability\n", QEMU_ARCH_ALL)
704
STEXI
705
@item -no-quit
706
@findex -no-quit
707
Disable SDL window close capability.
708
ETEXI
709

    
710
DEF("sdl", 0, QEMU_OPTION_sdl,
711
    "-sdl            enable SDL\n", QEMU_ARCH_ALL)
712
STEXI
713
@item -sdl
714
@findex -sdl
715
Enable SDL.
716
ETEXI
717

    
718
DEF("spice", HAS_ARG, QEMU_OPTION_spice,
719
    "-spice <args>   enable spice\n", QEMU_ARCH_ALL)
720
STEXI
721
@item -spice @var{option}[,@var{option}[,...]]
722
@findex -spice
723
Enable the spice remote desktop protocol. Valid options are
724

    
725
@table @option
726

    
727
@item port=<nr>
728
Set the TCP port spice is listening on for plaintext channels.
729

    
730
@item addr=<addr>
731
Set the IP address spice is listening on.  Default is any address.
732

    
733
@item ipv4
734
@item ipv6
735
Force using the specified IP version.
736

    
737
@item password=<secret>
738
Set the password you need to authenticate.
739

    
740
@item sasl
741
Require that the client use SASL to authenticate with the spice.
742
The exact choice of authentication method used is controlled from the
743
system / user's SASL configuration file for the 'qemu' service. This
744
is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
745
unprivileged user, an environment variable SASL_CONF_PATH can be used
746
to make it search alternate locations for the service config.
747
While some SASL auth methods can also provide data encryption (eg GSSAPI),
748
it is recommended that SASL always be combined with the 'tls' and
749
'x509' settings to enable use of SSL and server certificates. This
750
ensures a data encryption preventing compromise of authentication
751
credentials.
752

    
753
@item disable-ticketing
754
Allow client connects without authentication.
755

    
756
@item disable-copy-paste
757
Disable copy paste between the client and the guest.
758

    
759
@item tls-port=<nr>
760
Set the TCP port spice is listening on for encrypted channels.
761

    
762
@item x509-dir=<dir>
763
Set the x509 file directory. Expects same filenames as -vnc $display,x509=$dir
764

    
765
@item x509-key-file=<file>
766
@item x509-key-password=<file>
767
@item x509-cert-file=<file>
768
@item x509-cacert-file=<file>
769
@item x509-dh-key-file=<file>
770
The x509 file names can also be configured individually.
771

    
772
@item tls-ciphers=<list>
773
Specify which ciphers to use.
774

    
775
@item tls-channel=[main|display|inputs|record|playback|tunnel]
776
@item plaintext-channel=[main|display|inputs|record|playback|tunnel]
777
Force specific channel to be used with or without TLS encryption.  The
778
options can be specified multiple times to configure multiple
779
channels.  The special name "default" can be used to set the default
780
mode.  For channels which are not explicitly forced into one mode the
781
spice client is allowed to pick tls/plaintext as he pleases.
782

    
783
@item image-compression=[auto_glz|auto_lz|quic|glz|lz|off]
784
Configure image compression (lossless).
785
Default is auto_glz.
786

    
787
@item jpeg-wan-compression=[auto|never|always]
788
@item zlib-glz-wan-compression=[auto|never|always]
789
Configure wan image compression (lossy for slow links).
790
Default is auto.
791

    
792
@item streaming-video=[off|all|filter]
793
Configure video stream detection.  Default is filter.
794

    
795
@item agent-mouse=[on|off]
796
Enable/disable passing mouse events via vdagent.  Default is on.
797

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

    
801
@end table
802
ETEXI
803

    
804
DEF("portrait", 0, QEMU_OPTION_portrait,
805
    "-portrait       rotate graphical output 90 deg left (only PXA LCD)\n",
806
    QEMU_ARCH_ALL)
807
STEXI
808
@item -portrait
809
@findex -portrait
810
Rotate graphical output 90 deg left (only PXA LCD).
811
ETEXI
812

    
813
DEF("rotate", HAS_ARG, QEMU_OPTION_rotate,
814
    "-rotate <deg>   rotate graphical output some deg left (only PXA LCD)\n",
815
    QEMU_ARCH_ALL)
816
STEXI
817
@item -rotate
818
@findex -rotate
819
Rotate graphical output some deg left (only PXA LCD).
820
ETEXI
821

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

    
853
DEF("full-screen", 0, QEMU_OPTION_full_screen,
854
    "-full-screen    start in full screen\n", QEMU_ARCH_ALL)
855
STEXI
856
@item -full-screen
857
@findex -full-screen
858
Start in full screen.
859
ETEXI
860

    
861
DEF("g", 1, QEMU_OPTION_g ,
862
    "-g WxH[xDEPTH]  Set the initial graphical resolution and depth\n",
863
    QEMU_ARCH_PPC | QEMU_ARCH_SPARC)
864
STEXI
865
@item -g @var{width}x@var{height}[x@var{depth}]
866
@findex -g
867
Set the initial graphical resolution and depth (PPC, SPARC only).
868
ETEXI
869

    
870
DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
871
    "-vnc display    start a VNC server on display\n", QEMU_ARCH_ALL)
872
STEXI
873
@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
874
@findex -vnc
875
Normally, QEMU uses SDL to display the VGA output.  With this option,
876
you can have QEMU listen on VNC display @var{display} and redirect the VGA
877
display over the VNC session.  It is very useful to enable the usb
878
tablet device when using this option (option @option{-usbdevice
879
tablet}). When using the VNC display, you must use the @option{-k}
880
parameter to set the keyboard layout if you are not using en-us. Valid
881
syntax for the @var{display} is
882

    
883
@table @option
884

    
885
@item @var{host}:@var{d}
886

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

    
891
@item unix:@var{path}
892

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

    
896
@item none
897

    
898
VNC is initialized but not started. The monitor @code{change} command
899
can be used to later start the VNC server.
900

    
901
@end table
902

    
903
Following the @var{display} value there may be one or more @var{option} flags
904
separated by commas. Valid options are
905

    
906
@table @option
907

    
908
@item reverse
909

    
910
Connect to a listening VNC client via a ``reverse'' connection. The
911
client is specified by the @var{display}. For reverse network
912
connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
913
is a TCP port number, not a display number.
914

    
915
@item password
916

    
917
Require that password based authentication is used for client connections.
918
The password must be set separately using the @code{change} command in the
919
@ref{pcsys_monitor}
920

    
921
@item tls
922

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

    
928
@item x509=@var{/path/to/certificate/dir}
929

    
930
Valid if @option{tls} is specified. Require that x509 credentials are used
931
for negotiating the TLS session. The server will send its x509 certificate
932
to the client. It is recommended that a password be set on the VNC server
933
to provide authentication of the client when this is used. The path following
934
this option specifies where the x509 certificates are to be loaded from.
935
See the @ref{vnc_security} section for details on generating certificates.
936

    
937
@item x509verify=@var{/path/to/certificate/dir}
938

    
939
Valid if @option{tls} is specified. Require that x509 credentials are used
940
for negotiating the TLS session. The server will send its x509 certificate
941
to the client, and request that the client send its own x509 certificate.
942
The server will validate the client's certificate against the CA certificate,
943
and reject clients when validation fails. If the certificate authority is
944
trusted, this is a sufficient authentication mechanism. You may still wish
945
to set a password on the VNC server as a second authentication layer. The
946
path following this option specifies where the x509 certificates are to
947
be loaded from. See the @ref{vnc_security} section for details on generating
948
certificates.
949

    
950
@item sasl
951

    
952
Require that the client use SASL to authenticate with the VNC server.
953
The exact choice of authentication method used is controlled from the
954
system / user's SASL configuration file for the 'qemu' service. This
955
is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
956
unprivileged user, an environment variable SASL_CONF_PATH can be used
957
to make it search alternate locations for the service config.
958
While some SASL auth methods can also provide data encryption (eg GSSAPI),
959
it is recommended that SASL always be combined with the 'tls' and
960
'x509' settings to enable use of SSL and server certificates. This
961
ensures a data encryption preventing compromise of authentication
962
credentials. See the @ref{vnc_security} section for details on using
963
SASL authentication.
964

    
965
@item acl
966

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

    
978
@item lossy
979

    
980
Enable lossy compression methods (gradient, JPEG, ...). If this
981
option is set, VNC client may receive lossy framebuffer updates
982
depending on its encoding settings. Enabling this option can save
983
a lot of bandwidth at the expense of quality.
984

    
985
@item non-adaptive
986

    
987
Disable adaptive encodings. Adaptive encodings are enabled by default.
988
An adaptive encoding will try to detect frequently updated screen regions,
989
and send updates in these regions using a lossy encoding (like JPEG).
990
This can be really helpful to save bandwidth when playing videos. Disabling
991
adaptive encodings allows to restore the original static behavior of encodings
992
like Tight.
993

    
994
@end table
995
ETEXI
996

    
997
STEXI
998
@end table
999
ETEXI
1000

    
1001
DEFHEADING()
1002

    
1003
DEFHEADING(i386 target only:)
1004
STEXI
1005
@table @option
1006
ETEXI
1007

    
1008
DEF("win2k-hack", 0, QEMU_OPTION_win2k_hack,
1009
    "-win2k-hack     use it when installing Windows 2000 to avoid a disk full bug\n",
1010
    QEMU_ARCH_I386)
1011
STEXI
1012
@item -win2k-hack
1013
@findex -win2k-hack
1014
Use it when installing Windows 2000 to avoid a disk full bug. After
1015
Windows 2000 is installed, you no longer need this option (this option
1016
slows down the IDE transfers).
1017
ETEXI
1018

    
1019
HXCOMM Deprecated by -rtc
1020
DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack, "", QEMU_ARCH_I386)
1021

    
1022
DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
1023
    "-no-fd-bootchk  disable boot signature checking for floppy disks\n",
1024
    QEMU_ARCH_I386)
1025
STEXI
1026
@item -no-fd-bootchk
1027
@findex -no-fd-bootchk
1028
Disable boot signature checking for floppy disks in Bochs BIOS. It may
1029
be needed to boot from old floppy disks.
1030
TODO: check reference to Bochs BIOS.
1031
ETEXI
1032

    
1033
DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
1034
           "-no-acpi        disable ACPI\n", QEMU_ARCH_I386)
1035
STEXI
1036
@item -no-acpi
1037
@findex -no-acpi
1038
Disable ACPI (Advanced Configuration and Power Interface) support. Use
1039
it if your guest OS complains about ACPI problems (PC target machine
1040
only).
1041
ETEXI
1042

    
1043
DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
1044
    "-no-hpet        disable HPET\n", QEMU_ARCH_I386)
1045
STEXI
1046
@item -no-hpet
1047
@findex -no-hpet
1048
Disable HPET support.
1049
ETEXI
1050

    
1051
DEF("balloon", HAS_ARG, QEMU_OPTION_balloon,
1052
    "-balloon none   disable balloon device\n"
1053
    "-balloon virtio[,addr=str]\n"
1054
    "                enable virtio balloon device (default)\n", QEMU_ARCH_ALL)
1055
STEXI
1056
@item -balloon none
1057
@findex -balloon
1058
Disable balloon device.
1059
@item -balloon virtio[,addr=@var{addr}]
1060
Enable virtio balloon device (default), optionally with PCI address
1061
@var{addr}.
1062
ETEXI
1063

    
1064
DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
1065
    "-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,data=file1[:file2]...]\n"
1066
    "                ACPI table description\n", QEMU_ARCH_I386)
1067
STEXI
1068
@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}]...]
1069
@findex -acpitable
1070
Add ACPI table with specified header fields and context from specified files.
1071
ETEXI
1072

    
1073
DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
1074
    "-smbios file=binary\n"
1075
    "                load SMBIOS entry from binary file\n"
1076
    "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]\n"
1077
    "                specify SMBIOS type 0 fields\n"
1078
    "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n"
1079
    "              [,uuid=uuid][,sku=str][,family=str]\n"
1080
    "                specify SMBIOS type 1 fields\n", QEMU_ARCH_I386)
1081
STEXI
1082
@item -smbios file=@var{binary}
1083
@findex -smbios
1084
Load SMBIOS entry from binary file.
1085

    
1086
@item -smbios type=0[,vendor=@var{str}][,version=@var{str}][,date=@var{str}][,release=@var{%d.%d}]
1087
@findex -smbios
1088
Specify SMBIOS type 0 fields
1089

    
1090
@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}]
1091
Specify SMBIOS type 1 fields
1092
ETEXI
1093

    
1094
DEFHEADING()
1095
STEXI
1096
@end table
1097
ETEXI
1098

    
1099
DEFHEADING(Network options:)
1100
STEXI
1101
@table @option
1102
ETEXI
1103

    
1104
HXCOMM Legacy slirp options (now moved to -net user):
1105
#ifdef CONFIG_SLIRP
1106
DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, "", QEMU_ARCH_ALL)
1107
DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, "", QEMU_ARCH_ALL)
1108
DEF("redir", HAS_ARG, QEMU_OPTION_redir, "", QEMU_ARCH_ALL)
1109
#ifndef _WIN32
1110
DEF("smb", HAS_ARG, QEMU_OPTION_smb, "", QEMU_ARCH_ALL)
1111
#endif
1112
#endif
1113

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

    
1191
@item -net user[,@var{option}][,@var{option}][,...]
1192
Use the user mode network stack which requires no administrator
1193
privilege to run. Valid options are:
1194

    
1195
@table @option
1196
@item vlan=@var{n}
1197
Connect user mode stack to VLAN @var{n} (@var{n} = 0 is the default).
1198

    
1199
@item name=@var{name}
1200
Assign symbolic name for use in monitor commands.
1201

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

    
1207
@item host=@var{addr}
1208
Specify the guest-visible address of the host. Default is the 2nd IP in the
1209
guest network, i.e. x.x.x.2.
1210

    
1211
@item restrict=y|yes|n|no
1212
If this option is enabled, the guest will be isolated, i.e. it will not be
1213
able to contact the host and no guest IP packets will be routed over the host
1214
to the outside. This option does not affect any explicitly set forwarding rules.
1215

    
1216
@item hostname=@var{name}
1217
Specifies the client hostname reported by the builtin DHCP server.
1218

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

    
1223
@item dns=@var{addr}
1224
Specify the guest-visible address of the virtual nameserver. The address must
1225
be different from the host address. Default is the 3rd IP in the guest network,
1226
i.e. x.x.x.3.
1227

    
1228
@item tftp=@var{dir}
1229
When using the user mode network stack, activate a built-in TFTP
1230
server. The files in @var{dir} will be exposed as the root of a TFTP server.
1231
The TFTP client on the guest must be configured in binary mode (use the command
1232
@code{bin} of the Unix TFTP client).
1233

    
1234
@item bootfile=@var{file}
1235
When using the user mode network stack, broadcast @var{file} as the BOOTP
1236
filename. In conjunction with @option{tftp}, this can be used to network boot
1237
a guest from a local directory.
1238

    
1239
Example (using pxelinux):
1240
@example
1241
qemu -hda linux.img -boot n -net user,tftp=/path/to/tftp/files,bootfile=/pxelinux.0
1242
@end example
1243

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

    
1250
In the guest Windows OS, the line:
1251
@example
1252
10.0.2.4 smbserver
1253
@end example
1254
must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
1255
or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
1256

    
1257
Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
1258

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

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

    
1271
For example, to redirect host X11 connection from screen 1 to guest
1272
screen 0, use the following:
1273

    
1274
@example
1275
# on the host
1276
qemu -net user,hostfwd=tcp:127.0.0.1:6001-:6000 [...]
1277
# this host xterm should open in the guest X11 server
1278
xterm -display :1
1279
@end example
1280

    
1281
To redirect telnet connections from host port 5555 to telnet port on
1282
the guest, use the following:
1283

    
1284
@example
1285
# on the host
1286
qemu -net user,hostfwd=tcp::5555-:23 [...]
1287
telnet localhost 5555
1288
@end example
1289

    
1290
Then when you use on the host @code{telnet localhost 5555}, you
1291
connect to the guest telnet server.
1292

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

    
1297
@end table
1298

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

    
1304
@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}] [,script=@var{file}][,downscript=@var{dfile}]
1305
Connect the host TAP network interface @var{name} to VLAN @var{n}, use
1306
the network script @var{file} to configure it and the network script
1307
@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
1308
automatically provides one. @option{fd}=@var{h} can be used to specify
1309
the handle of an already opened host TAP interface. The default network
1310
configure script is @file{/etc/qemu-ifup} and the default network
1311
deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}
1312
or @option{downscript=no} to disable script execution. Example:
1313

    
1314
@example
1315
qemu linux.img -net nic -net tap
1316
@end example
1317

    
1318
More complicated example (two NICs, each one connected to a TAP device)
1319
@example
1320
qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
1321
               -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
1322
@end example
1323

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

    
1326
Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
1327
machine using a TCP socket connection. If @option{listen} is
1328
specified, QEMU waits for incoming connections on @var{port}
1329
(@var{host} is optional). @option{connect} is used to connect to
1330
another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
1331
specifies an already opened TCP socket.
1332

    
1333
Example:
1334
@example
1335
# launch a first QEMU instance
1336
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1337
               -net socket,listen=:1234
1338
# connect the VLAN 0 of this instance to the VLAN 0
1339
# of the first instance
1340
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
1341
               -net socket,connect=127.0.0.1:1234
1342
@end example
1343

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

    
1346
Create a VLAN @var{n} shared with another QEMU virtual
1347
machines using a UDP multicast socket, effectively making a bus for
1348
every QEMU with same multicast address @var{maddr} and @var{port}.
1349
NOTES:
1350
@enumerate
1351
@item
1352
Several QEMU can be running on different hosts and share same bus (assuming
1353
correct multicast setup for these hosts).
1354
@item
1355
mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
1356
@url{http://user-mode-linux.sf.net}.
1357
@item
1358
Use @option{fd=h} to specify an already opened UDP multicast socket.
1359
@end enumerate
1360

    
1361
Example:
1362
@example
1363
# launch one QEMU instance
1364
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1365
               -net socket,mcast=230.0.0.1:1234
1366
# launch another QEMU instance on same "bus"
1367
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
1368
               -net socket,mcast=230.0.0.1:1234
1369
# launch yet another QEMU instance on same "bus"
1370
qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
1371
               -net socket,mcast=230.0.0.1:1234
1372
@end example
1373

    
1374
Example (User Mode Linux compat.):
1375
@example
1376
# launch QEMU instance (note mcast address selected
1377
# is UML's default)
1378
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1379
               -net socket,mcast=239.192.168.1:1102
1380
# launch UML
1381
/path/to/linux ubd0=/path/to/root_fs eth0=mcast
1382
@end example
1383

    
1384
Example (send packets from host's 1.2.3.4):
1385
@example
1386
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1387
               -net socket,mcast=239.192.168.1:1102,localaddr=1.2.3.4
1388
@end example
1389

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

    
1397
Example:
1398
@example
1399
# launch vde switch
1400
vde_switch -F -sock /tmp/myswitch
1401
# launch QEMU instance
1402
qemu linux.img -net nic -net vde,sock=/tmp/myswitch
1403
@end example
1404

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

    
1410
@item -net none
1411
Indicate that no network devices should be configured. It is used to
1412
override the default configuration (@option{-net nic -net user}) which
1413
is activated if no @option{-net} options are provided.
1414

    
1415
@end table
1416
ETEXI
1417

    
1418
DEFHEADING()
1419

    
1420
DEFHEADING(Character device options:)
1421

    
1422
DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
1423
    "-chardev null,id=id[,mux=on|off]\n"
1424
    "-chardev socket,id=id[,host=host],port=host[,to=to][,ipv4][,ipv6][,nodelay]\n"
1425
    "         [,server][,nowait][,telnet][,mux=on|off] (tcp)\n"
1426
    "-chardev socket,id=id,path=path[,server][,nowait][,telnet],[mux=on|off] (unix)\n"
1427
    "-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]\n"
1428
    "         [,localport=localport][,ipv4][,ipv6][,mux=on|off]\n"
1429
    "-chardev msmouse,id=id[,mux=on|off]\n"
1430
    "-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]\n"
1431
    "         [,mux=on|off]\n"
1432
    "-chardev file,id=id,path=path[,mux=on|off]\n"
1433
    "-chardev pipe,id=id,path=path[,mux=on|off]\n"
1434
#ifdef _WIN32
1435
    "-chardev console,id=id[,mux=on|off]\n"
1436
    "-chardev serial,id=id,path=path[,mux=on|off]\n"
1437
#else
1438
    "-chardev pty,id=id[,mux=on|off]\n"
1439
    "-chardev stdio,id=id[,mux=on|off][,signal=on|off]\n"
1440
#endif
1441
#ifdef CONFIG_BRLAPI
1442
    "-chardev braille,id=id[,mux=on|off]\n"
1443
#endif
1444
#if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \
1445
        || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
1446
    "-chardev tty,id=id,path=path[,mux=on|off]\n"
1447
#endif
1448
#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
1449
    "-chardev parport,id=id,path=path[,mux=on|off]\n"
1450
#endif
1451
#if defined(CONFIG_SPICE)
1452
    "-chardev spicevmc,id=id,name=name[,debug=debug]\n"
1453
#endif
1454
    , QEMU_ARCH_ALL
1455
)
1456

    
1457
STEXI
1458

    
1459
The general form of a character device option is:
1460
@table @option
1461

    
1462
@item -chardev @var{backend} ,id=@var{id} [,mux=on|off] [,@var{options}]
1463
@findex -chardev
1464
Backend is one of:
1465
@option{null},
1466
@option{socket},
1467
@option{udp},
1468
@option{msmouse},
1469
@option{vc},
1470
@option{file},
1471
@option{pipe},
1472
@option{console},
1473
@option{serial},
1474
@option{pty},
1475
@option{stdio},
1476
@option{braille},
1477
@option{tty},
1478
@option{parport},
1479
@option{spicevmc}.
1480
The specific backend will determine the applicable options.
1481

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

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

    
1489
Options to each backend are described below.
1490

    
1491
@item -chardev null ,id=@var{id}
1492
A void device. This device will not emit any data, and will drop any data it
1493
receives. The null backend does not take any options.
1494

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

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

    
1501
@option{server} specifies that the socket shall be a listening socket.
1502

    
1503
@option{nowait} specifies that QEMU should not block waiting for a client to
1504
connect to a listening socket.
1505

    
1506
@option{telnet} specifies that traffic on the socket should interpret telnet
1507
escape sequences.
1508

    
1509
TCP and unix socket options are given below:
1510

    
1511
@table @option
1512

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

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

    
1519
@option{port} for a listening socket specifies the local port to be bound. For a
1520
connecting socket specifies the port on the remote host to connect to.
1521
@option{port} can be given as either a port number or a service name.
1522
@option{port} is required.
1523

    
1524
@option{to} is only relevant to listening sockets. If it is specified, and
1525
@option{port} cannot be bound, QEMU will attempt to bind to subsequent ports up
1526
to and including @option{to} until it succeeds. @option{to} must be specified
1527
as a port number.
1528

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

    
1532
@option{nodelay} disables the Nagle algorithm.
1533

    
1534
@item unix options: path=@var{path}
1535

    
1536
@option{path} specifies the local path of the unix socket. @option{path} is
1537
required.
1538

    
1539
@end table
1540

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

    
1543
Sends all traffic from the guest to a remote host over UDP.
1544

    
1545
@option{host} specifies the remote host to connect to. If not specified it
1546
defaults to @code{localhost}.
1547

    
1548
@option{port} specifies the port on the remote host to connect to. @option{port}
1549
is required.
1550

    
1551
@option{localaddr} specifies the local address to bind to. If not specified it
1552
defaults to @code{0.0.0.0}.
1553

    
1554
@option{localport} specifies the local port to bind to. If not specified any
1555
available local port will be used.
1556

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

    
1560
@item -chardev msmouse ,id=@var{id}
1561

    
1562
Forward QEMU's emulated msmouse events to the guest. @option{msmouse} does not
1563
take any options.
1564

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

    
1567
Connect to a QEMU text console. @option{vc} may optionally be given a specific
1568
size.
1569

    
1570
@option{width} and @option{height} specify the width and height respectively of
1571
the console, in pixels.
1572

    
1573
@option{cols} and @option{rows} specify that the console be sized to fit a text
1574
console with the given dimensions.
1575

    
1576
@item -chardev file ,id=@var{id} ,path=@var{path}
1577

    
1578
Log all traffic received from the guest to a file.
1579

    
1580
@option{path} specifies the path of the file to be opened. This file will be
1581
created if it does not already exist, and overwritten if it does. @option{path}
1582
is required.
1583

    
1584
@item -chardev pipe ,id=@var{id} ,path=@var{path}
1585

    
1586
Create a two-way connection to the guest. The behaviour differs slightly between
1587
Windows hosts and other hosts:
1588

    
1589
On Windows, a single duplex pipe will be created at
1590
@file{\\.pipe\@option{path}}.
1591

    
1592
On other hosts, 2 pipes will be created called @file{@option{path}.in} and
1593
@file{@option{path}.out}. Data written to @file{@option{path}.in} will be
1594
received by the guest. Data written by the guest can be read from
1595
@file{@option{path}.out}. QEMU will not create these fifos, and requires them to
1596
be present.
1597

    
1598
@option{path} forms part of the pipe path as described above. @option{path} is
1599
required.
1600

    
1601
@item -chardev console ,id=@var{id}
1602

    
1603
Send traffic from the guest to QEMU's standard output. @option{console} does not
1604
take any options.
1605

    
1606
@option{console} is only available on Windows hosts.
1607

    
1608
@item -chardev serial ,id=@var{id} ,path=@option{path}
1609

    
1610
Send traffic from the guest to a serial device on the host.
1611

    
1612
@option{serial} is
1613
only available on Windows hosts.
1614

    
1615
@option{path} specifies the name of the serial device to open.
1616

    
1617
@item -chardev pty ,id=@var{id}
1618

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

    
1622
@option{pty} is not available on Windows hosts.
1623

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

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

    
1631
@option{stdio} is not available on Windows hosts.
1632

    
1633
@item -chardev braille ,id=@var{id}
1634

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

    
1637
@item -chardev tty ,id=@var{id} ,path=@var{path}
1638

    
1639
Connect to a local tty device.
1640

    
1641
@option{tty} is only available on Linux, Sun, FreeBSD, NetBSD, OpenBSD and
1642
DragonFlyBSD hosts.
1643

    
1644
@option{path} specifies the path to the tty. @option{path} is required.
1645

    
1646
@item -chardev parport ,id=@var{id} ,path=@var{path}
1647

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

    
1650
Connect to a local parallel port.
1651

    
1652
@option{path} specifies the path to the parallel port device. @option{path} is
1653
required.
1654

    
1655
#if defined(CONFIG_SPICE)
1656
@item -chardev spicevmc ,id=@var{id} ,debug=@var{debug}, name=@var{name}
1657

    
1658
@option{debug} debug level for spicevmc
1659

    
1660
@option{name} name of spice channel to connect to
1661

    
1662
Connect to a spice virtual machine channel, such as vdiport.
1663
#endif
1664

    
1665
@end table
1666
ETEXI
1667

    
1668
DEFHEADING()
1669

    
1670
DEFHEADING(Bluetooth(R) options:)
1671

    
1672
DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
1673
    "-bt hci,null    dumb bluetooth HCI - doesn't respond to commands\n" \
1674
    "-bt hci,host[:id]\n" \
1675
    "                use host's HCI with the given name\n" \
1676
    "-bt hci[,vlan=n]\n" \
1677
    "                emulate a standard HCI in virtual scatternet 'n'\n" \
1678
    "-bt vhci[,vlan=n]\n" \
1679
    "                add host computer to virtual scatternet 'n' using VHCI\n" \
1680
    "-bt device:dev[,vlan=n]\n" \
1681
    "                emulate a bluetooth device 'dev' in scatternet 'n'\n",
1682
    QEMU_ARCH_ALL)
1683
STEXI
1684
@table @option
1685

    
1686
@item -bt hci[...]
1687
@findex -bt
1688
Defines the function of the corresponding Bluetooth HCI.  -bt options
1689
are matched with the HCIs present in the chosen machine type.  For
1690
example when emulating a machine with only one HCI built into it, only
1691
the first @code{-bt hci[...]} option is valid and defines the HCI's
1692
logic.  The Transport Layer is decided by the machine type.  Currently
1693
the machines @code{n800} and @code{n810} have one HCI and all other
1694
machines have none.
1695

    
1696
@anchor{bt-hcis}
1697
The following three types are recognized:
1698

    
1699
@table @option
1700
@item -bt hci,null
1701
(default) The corresponding Bluetooth HCI assumes no internal logic
1702
and will not respond to any HCI commands or emit events.
1703

    
1704
@item -bt hci,host[:@var{id}]
1705
(@code{bluez} only) The corresponding HCI passes commands / events
1706
to / from the physical HCI identified by the name @var{id} (default:
1707
@code{hci0}) on the computer running QEMU.  Only available on @code{bluez}
1708
capable systems like Linux.
1709

    
1710
@item -bt hci[,vlan=@var{n}]
1711
Add a virtual, standard HCI that will participate in the Bluetooth
1712
scatternet @var{n} (default @code{0}).  Similarly to @option{-net}
1713
VLANs, devices inside a bluetooth network @var{n} can only communicate
1714
with other devices in the same network (scatternet).
1715
@end table
1716

    
1717
@item -bt vhci[,vlan=@var{n}]
1718
(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
1719
to the host bluetooth stack instead of to the emulated target.  This
1720
allows the host and target machines to participate in a common scatternet
1721
and communicate.  Requires the Linux @code{vhci} driver installed.  Can
1722
be used as following:
1723

    
1724
@example
1725
qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
1726
@end example
1727

    
1728
@item -bt device:@var{dev}[,vlan=@var{n}]
1729
Emulate a bluetooth device @var{dev} and place it in network @var{n}
1730
(default @code{0}).  QEMU can only emulate one type of bluetooth devices
1731
currently:
1732

    
1733
@table @option
1734
@item keyboard
1735
Virtual wireless keyboard implementing the HIDP bluetooth profile.
1736
@end table
1737
@end table
1738
ETEXI
1739

    
1740
DEFHEADING()
1741

    
1742
DEFHEADING(Linux/Multiboot boot specific:)
1743
STEXI
1744

    
1745
When using these options, you can use a given Linux or Multiboot
1746
kernel without installing it in the disk image. It can be useful
1747
for easier testing of various kernels.
1748

    
1749
@table @option
1750
ETEXI
1751

    
1752
DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
1753
    "-kernel bzImage use 'bzImage' as kernel image\n", QEMU_ARCH_ALL)
1754
STEXI
1755
@item -kernel @var{bzImage}
1756
@findex -kernel
1757
Use @var{bzImage} as kernel image. The kernel can be either a Linux kernel
1758
or in multiboot format.
1759
ETEXI
1760

    
1761
DEF("append", HAS_ARG, QEMU_OPTION_append, \
1762
    "-append cmdline use 'cmdline' as kernel command line\n", QEMU_ARCH_ALL)
1763
STEXI
1764
@item -append @var{cmdline}
1765
@findex -append
1766
Use @var{cmdline} as kernel command line
1767
ETEXI
1768

    
1769
DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
1770
           "-initrd file    use 'file' as initial ram disk\n", QEMU_ARCH_ALL)
1771
STEXI
1772
@item -initrd @var{file}
1773
@findex -initrd
1774
Use @var{file} as initial ram disk.
1775

    
1776
@item -initrd "@var{file1} arg=foo,@var{file2}"
1777

    
1778
This syntax is only available with multiboot.
1779

    
1780
Use @var{file1} and @var{file2} as modules and pass arg=foo as parameter to the
1781
first module.
1782
ETEXI
1783

    
1784
STEXI
1785
@end table
1786
ETEXI
1787

    
1788
DEFHEADING()
1789

    
1790
DEFHEADING(Debug/Expert options:)
1791

    
1792
STEXI
1793
@table @option
1794
ETEXI
1795

    
1796
DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
1797
    "-serial dev     redirect the serial port to char device 'dev'\n",
1798
    QEMU_ARCH_ALL)
1799
STEXI
1800
@item -serial @var{dev}
1801
@findex -serial
1802
Redirect the virtual serial port to host character device
1803
@var{dev}. The default device is @code{vc} in graphical mode and
1804
@code{stdio} in non graphical mode.
1805

    
1806
This option can be used several times to simulate up to 4 serial
1807
ports.
1808

    
1809
Use @code{-serial none} to disable all serial ports.
1810

    
1811
Available character devices are:
1812
@table @option
1813
@item vc[:@var{W}x@var{H}]
1814
Virtual console. Optionally, a width and height can be given in pixel with
1815
@example
1816
vc:800x600
1817
@end example
1818
It is also possible to specify width or height in characters:
1819
@example
1820
vc:80Cx24C
1821
@end example
1822
@item pty
1823
[Linux only] Pseudo TTY (a new PTY is automatically allocated)
1824
@item none
1825
No device is allocated.
1826
@item null
1827
void device
1828
@item /dev/XXX
1829
[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
1830
parameters are set according to the emulated ones.
1831
@item /dev/parport@var{N}
1832
[Linux only, parallel port only] Use host parallel port
1833
@var{N}. Currently SPP and EPP parallel port features can be used.
1834
@item file:@var{filename}
1835
Write output to @var{filename}. No character can be read.
1836
@item stdio
1837
[Unix only] standard input/output
1838
@item pipe:@var{filename}
1839
name pipe @var{filename}
1840
@item COM@var{n}
1841
[Windows only] Use host serial port @var{n}
1842
@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
1843
This implements UDP Net Console.
1844
When @var{remote_host} or @var{src_ip} are not specified
1845
they default to @code{0.0.0.0}.
1846
When not using a specified @var{src_port} a random port is automatically chosen.
1847

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

    
1853
If you plan to send characters back via netconsole or you want to stop
1854
and start qemu a lot of times, you should have qemu use the same
1855
source port each time by using something like @code{-serial
1856
udp::4555@@:4556} to qemu. Another approach is to use a patched
1857
version of netcat which can listen to a TCP port and send and receive
1858
characters via udp.  If you have a patched version of netcat which
1859
activates telnet remote echo and single char transfer, then you can
1860
use the following options to step up a netcat redirector to allow
1861
telnet on port 5555 to access the qemu port.
1862
@table @code
1863
@item Qemu Options:
1864
-serial udp::4555@@:4556
1865
@item netcat options:
1866
-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
1867
@item telnet options:
1868
localhost 5555
1869
@end table
1870

    
1871
@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
1872
The TCP Net Console has two modes of operation.  It can send the serial
1873
I/O to a location or wait for a connection from a location.  By default
1874
the TCP Net Console is sent to @var{host} at the @var{port}.  If you use
1875
the @var{server} option QEMU will wait for a client socket application
1876
to connect to the port before continuing, unless the @code{nowait}
1877
option was specified.  The @code{nodelay} option disables the Nagle buffering
1878
algorithm.  If @var{host} is omitted, 0.0.0.0 is assumed. Only
1879
one TCP connection at a time is accepted. You can use @code{telnet} to
1880
connect to the corresponding character device.
1881
@table @code
1882
@item Example to send tcp console to 192.168.0.2 port 4444
1883
-serial tcp:192.168.0.2:4444
1884
@item Example to listen and wait on port 4444 for connection
1885
-serial tcp::4444,server
1886
@item Example to not wait and listen on ip 192.168.0.100 port 4444
1887
-serial tcp:192.168.0.100:4444,server,nowait
1888
@end table
1889

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

    
1899
@item unix:@var{path}[,server][,nowait]
1900
A unix domain socket is used instead of a tcp socket.  The option works the
1901
same as if you had specified @code{-serial tcp} except the unix domain socket
1902
@var{path} is used for connections.
1903

    
1904
@item mon:@var{dev_string}
1905
This is a special option to allow the monitor to be multiplexed onto
1906
another serial port.  The monitor is accessed with key sequence of
1907
@key{Control-a} and then pressing @key{c}. See monitor access
1908
@ref{pcsys_keys} in the -nographic section for more keys.
1909
@var{dev_string} should be any one of the serial devices specified
1910
above.  An example to multiplex the monitor onto a telnet server
1911
listening on port 4444 would be:
1912
@table @code
1913
@item -serial mon:telnet::4444,server,nowait
1914
@end table
1915

    
1916
@item braille
1917
Braille device.  This will use BrlAPI to display the braille output on a real
1918
or fake device.
1919

    
1920
@item msmouse
1921
Three button serial mouse. Configure the guest to use Microsoft protocol.
1922
@end table
1923
ETEXI
1924

    
1925
DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
1926
    "-parallel dev   redirect the parallel port to char device 'dev'\n",
1927
    QEMU_ARCH_ALL)
1928
STEXI
1929
@item -parallel @var{dev}
1930
@findex -parallel
1931
Redirect the virtual parallel port to host device @var{dev} (same
1932
devices as the serial port). On Linux hosts, @file{/dev/parportN} can
1933
be used to use hardware devices connected on the corresponding host
1934
parallel port.
1935

    
1936
This option can be used several times to simulate up to 3 parallel
1937
ports.
1938

    
1939
Use @code{-parallel none} to disable all parallel ports.
1940
ETEXI
1941

    
1942
DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
1943
    "-monitor dev    redirect the monitor to char device 'dev'\n",
1944
    QEMU_ARCH_ALL)
1945
STEXI
1946
@item -monitor @var{dev}
1947
@findex -monitor
1948
Redirect the monitor to host device @var{dev} (same devices as the
1949
serial port).
1950
The default device is @code{vc} in graphical mode and @code{stdio} in
1951
non graphical mode.
1952
ETEXI
1953
DEF("qmp", HAS_ARG, QEMU_OPTION_qmp, \
1954
    "-qmp dev        like -monitor but opens in 'control' mode\n",
1955
    QEMU_ARCH_ALL)
1956
STEXI
1957
@item -qmp @var{dev}
1958
@findex -qmp
1959
Like -monitor but opens in 'control' mode.
1960
ETEXI
1961

    
1962
DEF("mon", HAS_ARG, QEMU_OPTION_mon, \
1963
    "-mon chardev=[name][,mode=readline|control][,default]\n", QEMU_ARCH_ALL)
1964
STEXI
1965
@item -mon chardev=[name][,mode=readline|control][,default]
1966
@findex -mon
1967
Setup monitor on chardev @var{name}.
1968
ETEXI
1969

    
1970
DEF("debugcon", HAS_ARG, QEMU_OPTION_debugcon, \
1971
    "-debugcon dev   redirect the debug console to char device 'dev'\n",
1972
    QEMU_ARCH_ALL)
1973
STEXI
1974
@item -debugcon @var{dev}
1975
@findex -debugcon
1976
Redirect the debug console to host device @var{dev} (same devices as the
1977
serial port).  The debug console is an I/O port which is typically port
1978
0xe9; writing to that I/O port sends output to this device.
1979
The default device is @code{vc} in graphical mode and @code{stdio} in
1980
non graphical mode.
1981
ETEXI
1982

    
1983
DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
1984
    "-pidfile file   write PID to 'file'\n", QEMU_ARCH_ALL)
1985
STEXI
1986
@item -pidfile @var{file}
1987
@findex -pidfile
1988
Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
1989
from a script.
1990
ETEXI
1991

    
1992
DEF("singlestep", 0, QEMU_OPTION_singlestep, \
1993
    "-singlestep     always run in singlestep mode\n", QEMU_ARCH_ALL)
1994
STEXI
1995
@item -singlestep
1996
@findex -singlestep
1997
Run the emulation in single step mode.
1998
ETEXI
1999

    
2000
DEF("S", 0, QEMU_OPTION_S, \
2001
    "-S              freeze CPU at startup (use 'c' to start execution)\n",
2002
    QEMU_ARCH_ALL)
2003
STEXI
2004
@item -S
2005
@findex -S
2006
Do not start CPU at startup (you must type 'c' in the monitor).
2007
ETEXI
2008

    
2009
DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
2010
    "-gdb dev        wait for gdb connection on 'dev'\n", QEMU_ARCH_ALL)
2011
STEXI
2012
@item -gdb @var{dev}
2013
@findex -gdb
2014
Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
2015
connections will likely be TCP-based, but also UDP, pseudo TTY, or even
2016
stdio are reasonable use case. The latter is allowing to start qemu from
2017
within gdb and establish the connection via a pipe:
2018
@example
2019
(gdb) target remote | exec qemu -gdb stdio ...
2020
@end example
2021
ETEXI
2022

    
2023
DEF("s", 0, QEMU_OPTION_s, \
2024
    "-s              shorthand for -gdb tcp::" DEFAULT_GDBSTUB_PORT "\n",
2025
    QEMU_ARCH_ALL)
2026
STEXI
2027
@item -s
2028
@findex -s
2029
Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
2030
(@pxref{gdb_usage}).
2031
ETEXI
2032

    
2033
DEF("d", HAS_ARG, QEMU_OPTION_d, \
2034
    "-d item1,...    output log to /tmp/qemu.log (use -d ? for a list of log items)\n",
2035
    QEMU_ARCH_ALL)
2036
STEXI
2037
@item -d
2038
@findex -d
2039
Output log in /tmp/qemu.log
2040
ETEXI
2041

    
2042
DEF("D", HAS_ARG, QEMU_OPTION_D, \
2043
    "-D logfile      output log to logfile (instead of the default /tmp/qemu.log)\n",
2044
    QEMU_ARCH_ALL)
2045
STEXI
2046
@item -D
2047
@findex -D
2048
Output log in logfile instead of /tmp/qemu.log
2049
ETEXI
2050

    
2051
DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
2052
    "-hdachs c,h,s[,t]\n" \
2053
    "                force hard disk 0 physical geometry and the optional BIOS\n" \
2054
    "                translation (t=none or lba) (usually qemu can guess them)\n",
2055
    QEMU_ARCH_ALL)
2056
STEXI
2057
@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
2058
@findex -hdachs
2059
Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
2060
@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
2061
translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
2062
all those parameters. This option is useful for old MS-DOS disk
2063
images.
2064
ETEXI
2065

    
2066
DEF("L", HAS_ARG, QEMU_OPTION_L, \
2067
    "-L path         set the directory for the BIOS, VGA BIOS and keymaps\n",
2068
    QEMU_ARCH_ALL)
2069
STEXI
2070
@item -L  @var{path}
2071
@findex -L
2072
Set the directory for the BIOS, VGA BIOS and keymaps.
2073
ETEXI
2074

    
2075
DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
2076
    "-bios file      set the filename for the BIOS\n", QEMU_ARCH_ALL)
2077
STEXI
2078
@item -bios @var{file}
2079
@findex -bios
2080
Set the filename for the BIOS.
2081
ETEXI
2082

    
2083
DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
2084
    "-enable-kvm     enable KVM full virtualization support\n", QEMU_ARCH_ALL)
2085
STEXI
2086
@item -enable-kvm
2087
@findex -enable-kvm
2088
Enable KVM full virtualization support. This option is only available
2089
if KVM support is enabled when compiling.
2090
ETEXI
2091

    
2092
DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
2093
    "-xen-domid id   specify xen guest domain id\n", QEMU_ARCH_ALL)
2094
DEF("xen-create", 0, QEMU_OPTION_xen_create,
2095
    "-xen-create     create domain using xen hypercalls, bypassing xend\n"
2096
    "                warning: should not be used when xend is in use\n",
2097
    QEMU_ARCH_ALL)
2098
DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
2099
    "-xen-attach     attach to existing xen domain\n"
2100
    "                xend will use this when starting qemu\n",
2101
    QEMU_ARCH_ALL)
2102
STEXI
2103
@item -xen-domid @var{id}
2104
@findex -xen-domid
2105
Specify xen guest domain @var{id} (XEN only).
2106
@item -xen-create
2107
@findex -xen-create
2108
Create domain using xen hypercalls, bypassing xend.
2109
Warning: should not be used when xend is in use (XEN only).
2110
@item -xen-attach
2111
@findex -xen-attach
2112
Attach to existing xen domain.
2113
xend will use this when starting qemu (XEN only).
2114
ETEXI
2115

    
2116
DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
2117
    "-no-reboot      exit instead of rebooting\n", QEMU_ARCH_ALL)
2118
STEXI
2119
@item -no-reboot
2120
@findex -no-reboot
2121
Exit instead of rebooting.
2122
ETEXI
2123

    
2124
DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
2125
    "-no-shutdown    stop before shutdown\n", QEMU_ARCH_ALL)
2126
STEXI
2127
@item -no-shutdown
2128
@findex -no-shutdown
2129
Don't exit QEMU on guest shutdown, but instead only stop the emulation.
2130
This allows for instance switching to monitor to commit changes to the
2131
disk image.
2132
ETEXI
2133

    
2134
DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
2135
    "-loadvm [tag|id]\n" \
2136
    "                start right away with a saved state (loadvm in monitor)\n",
2137
    QEMU_ARCH_ALL)
2138
STEXI
2139
@item -loadvm @var{file}
2140
@findex -loadvm
2141
Start right away with a saved state (@code{loadvm} in monitor)
2142
ETEXI
2143

    
2144
#ifndef _WIN32
2145
DEF("daemonize", 0, QEMU_OPTION_daemonize, \
2146
    "-daemonize      daemonize QEMU after initializing\n", QEMU_ARCH_ALL)
2147
#endif
2148
STEXI
2149
@item -daemonize
2150
@findex -daemonize
2151
Daemonize the QEMU process after initialization.  QEMU will not detach from
2152
standard IO until it is ready to receive connections on any of its devices.
2153
This option is a useful way for external programs to launch QEMU without having
2154
to cope with initialization race conditions.
2155
ETEXI
2156

    
2157
DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
2158
    "-option-rom rom load a file, rom, into the option ROM space\n",
2159
    QEMU_ARCH_ALL)
2160
STEXI
2161
@item -option-rom @var{file}
2162
@findex -option-rom
2163
Load the contents of @var{file} as an option ROM.
2164
This option is useful to load things like EtherBoot.
2165
ETEXI
2166

    
2167
DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
2168
    "-clock          force the use of the given methods for timer alarm.\n" \
2169
    "                To see what timers are available use -clock ?\n",
2170
    QEMU_ARCH_ALL)
2171
STEXI
2172
@item -clock @var{method}
2173
@findex -clock
2174
Force the use of the given methods for timer alarm. To see what timers
2175
are available use -clock ?.
2176
ETEXI
2177

    
2178
HXCOMM Options deprecated by -rtc
2179
DEF("localtime", 0, QEMU_OPTION_localtime, "", QEMU_ARCH_ALL)
2180
DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, "", QEMU_ARCH_ALL)
2181

    
2182
DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
2183
    "-rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew]\n" \
2184
    "                set the RTC base and clock, enable drift fix for clock ticks (x86 only)\n",
2185
    QEMU_ARCH_ALL)
2186

    
2187
STEXI
2188

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

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

    
2202
Enable @option{driftfix} (i386 targets only) if you experience time drift problems,
2203
specifically with Windows' ACPI HAL. This option will try to figure out how
2204
many timer interrupts were not processed by the Windows guest and will
2205
re-inject them.
2206
ETEXI
2207

    
2208
DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
2209
    "-icount [N|auto]\n" \
2210
    "                enable virtual instruction counter with 2^N clock ticks per\n" \
2211
    "                instruction\n", QEMU_ARCH_ALL)
2212
STEXI
2213
@item -icount [@var{N}|auto]
2214
@findex -icount
2215
Enable virtual instruction counter.  The virtual cpu will execute one
2216
instruction every 2^@var{N} ns of virtual time.  If @code{auto} is specified
2217
then the virtual cpu speed will be automatically adjusted to keep virtual
2218
time within a few seconds of real time.
2219

    
2220
Note that while this option can give deterministic behavior, it does not
2221
provide cycle accurate emulation.  Modern CPUs contain superscalar out of
2222
order cores with complex cache hierarchies.  The number of instructions
2223
executed often has little or no correlation with actual performance.
2224
ETEXI
2225

    
2226
DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
2227
    "-watchdog i6300esb|ib700\n" \
2228
    "                enable virtual hardware watchdog [default=none]\n",
2229
    QEMU_ARCH_ALL)
2230
STEXI
2231
@item -watchdog @var{model}
2232
@findex -watchdog
2233
Create a virtual hardware watchdog device.  Once enabled (by a guest
2234
action), the watchdog must be periodically polled by an agent inside
2235
the guest or else the guest will be restarted.
2236

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

    
2243
Use @code{-watchdog ?} to list available hardware models.  Only one
2244
watchdog can be enabled for a guest.
2245
ETEXI
2246

    
2247
DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
2248
    "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
2249
    "                action when watchdog fires [default=reset]\n",
2250
    QEMU_ARCH_ALL)
2251
STEXI
2252
@item -watchdog-action @var{action}
2253

    
2254
The @var{action} controls what QEMU will do when the watchdog timer
2255
expires.
2256
The default is
2257
@code{reset} (forcefully reset the guest).
2258
Other possible actions are:
2259
@code{shutdown} (attempt to gracefully shutdown the guest),
2260
@code{poweroff} (forcefully poweroff the guest),
2261
@code{pause} (pause the guest),
2262
@code{debug} (print a debug message and continue), or
2263
@code{none} (do nothing).
2264

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

    
2270
Examples:
2271

    
2272
@table @code
2273
@item -watchdog i6300esb -watchdog-action pause
2274
@item -watchdog ib700
2275
@end table
2276
ETEXI
2277

    
2278
DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
2279
    "-echr chr       set terminal escape character instead of ctrl-a\n",
2280
    QEMU_ARCH_ALL)
2281
STEXI
2282

    
2283
@item -echr @var{numeric_ascii_value}
2284
@findex -echr
2285
Change the escape character used for switching to the monitor when using
2286
monitor and serial sharing.  The default is @code{0x01} when using the
2287
@code{-nographic} option.  @code{0x01} is equal to pressing
2288
@code{Control-a}.  You can select a different character from the ascii
2289
control keys where 1 through 26 map to Control-a through Control-z.  For
2290
instance you could use the either of the following to change the escape
2291
character to Control-t.
2292
@table @code
2293
@item -echr 0x14
2294
@item -echr 20
2295
@end table
2296
ETEXI
2297

    
2298
DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
2299
    "-virtioconsole c\n" \
2300
    "                set virtio console\n", QEMU_ARCH_ALL)
2301
STEXI
2302
@item -virtioconsole @var{c}
2303
@findex -virtioconsole
2304
Set virtio console.
2305

    
2306
This option is maintained for backward compatibility.
2307

    
2308
Please use @code{-device virtconsole} for the new way of invocation.
2309
ETEXI
2310

    
2311
DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
2312
    "-show-cursor    show cursor\n", QEMU_ARCH_ALL)
2313
STEXI
2314
@item -show-cursor
2315
@findex -show-cursor
2316
Show cursor.
2317
ETEXI
2318

    
2319
DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
2320
    "-tb-size n      set TB size\n", QEMU_ARCH_ALL)
2321
STEXI
2322
@item -tb-size @var{n}
2323
@findex -tb-size
2324
Set TB size.
2325
ETEXI
2326

    
2327
DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
2328
    "-incoming p     prepare for incoming migration, listen on port p\n",
2329
    QEMU_ARCH_ALL)
2330
STEXI
2331
@item -incoming @var{port}
2332
@findex -incoming
2333
Prepare for incoming migration, listen on @var{port}.
2334
ETEXI
2335

    
2336
DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \
2337
    "-nodefaults     don't create default devices\n", QEMU_ARCH_ALL)
2338
STEXI
2339
@item -nodefaults
2340
@findex -nodefaults
2341
Don't create default devices.
2342
ETEXI
2343

    
2344
#ifndef _WIN32
2345
DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
2346
    "-chroot dir     chroot to dir just before starting the VM\n",
2347
    QEMU_ARCH_ALL)
2348
#endif
2349
STEXI
2350
@item -chroot @var{dir}
2351
@findex -chroot
2352
Immediately before starting guest execution, chroot to the specified
2353
directory.  Especially useful in combination with -runas.
2354
ETEXI
2355

    
2356
#ifndef _WIN32
2357
DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
2358
    "-runas user     change to user id user just before starting the VM\n",
2359
    QEMU_ARCH_ALL)
2360
#endif
2361
STEXI
2362
@item -runas @var{user}
2363
@findex -runas
2364
Immediately before starting guest execution, drop root privileges, switching
2365
to the specified user.
2366
ETEXI
2367

    
2368
DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
2369
    "-prom-env variable=value\n"
2370
    "                set OpenBIOS nvram variables\n",
2371
    QEMU_ARCH_PPC | QEMU_ARCH_SPARC)
2372
STEXI
2373
@item -prom-env @var{variable}=@var{value}
2374
@findex -prom-env
2375
Set OpenBIOS nvram @var{variable} to given @var{value} (PPC, SPARC only).
2376
ETEXI
2377
DEF("semihosting", 0, QEMU_OPTION_semihosting,
2378
    "-semihosting    semihosting mode\n", QEMU_ARCH_ARM | QEMU_ARCH_M68K)
2379
STEXI
2380
@item -semihosting
2381
@findex -semihosting
2382
Semihosting mode (ARM, M68K only).
2383
ETEXI
2384
DEF("old-param", 0, QEMU_OPTION_old_param,
2385
    "-old-param      old param mode\n", QEMU_ARCH_ARM)
2386
STEXI
2387
@item -old-param
2388
@findex -old-param (ARM)
2389
Old param mode (ARM only).
2390
ETEXI
2391

    
2392
DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
2393
    "-readconfig <file>\n", QEMU_ARCH_ALL)
2394
STEXI
2395
@item -readconfig @var{file}
2396
@findex -readconfig
2397
Read device configuration from @var{file}.
2398
ETEXI
2399
DEF("writeconfig", HAS_ARG, QEMU_OPTION_writeconfig,
2400
    "-writeconfig <file>\n"
2401
    "                read/write config file\n", QEMU_ARCH_ALL)
2402
STEXI
2403
@item -writeconfig @var{file}
2404
@findex -writeconfig
2405
Write device configuration to @var{file}.
2406
ETEXI
2407
DEF("nodefconfig", 0, QEMU_OPTION_nodefconfig,
2408
    "-nodefconfig\n"
2409
    "                do not load default config files at startup\n",
2410
    QEMU_ARCH_ALL)
2411
STEXI
2412
@item -nodefconfig
2413
@findex -nodefconfig
2414
Normally QEMU loads a configuration file from @var{sysconfdir}/qemu.conf and
2415
@var{sysconfdir}/target-@var{ARCH}.conf on startup.  The @code{-nodefconfig}
2416
option will prevent QEMU from loading these configuration files at startup.
2417
ETEXI
2418
#ifdef CONFIG_SIMPLE_TRACE
2419
DEF("trace", HAS_ARG, QEMU_OPTION_trace,
2420
    "-trace\n"
2421
    "                Specify a trace file to log traces to\n",
2422
    QEMU_ARCH_ALL)
2423
STEXI
2424
@item -trace
2425
@findex -trace
2426
Specify a trace file to log output traces to.
2427
ETEXI
2428
#endif
2429

    
2430
HXCOMM This is the last statement. Insert new options before this line!
2431
STEXI
2432
@end table
2433
ETEXI