Statistics
| Branch: | Revision:

root / qemu-options.hx @ d0fef6fb

History | View | Annotate | Download (66.3 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) is used to construct
5
HXCOMM option structures, enums and help message.
6
HXCOMM HXCOMM can be used for comments, discarded from both texi and C
7

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

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

    
20
DEF("version", 0, QEMU_OPTION_version,
21
    "-version        display version information and exit\n")
22
STEXI
23
@item -version
24
Display version information and exit
25
ETEXI
26

    
27
DEF("M", HAS_ARG, QEMU_OPTION_M,
28
    "-M machine      select emulated machine (-M ? for list)\n")
29
STEXI
30
@item -M @var{machine}
31
Select the emulated @var{machine} (@code{-M ?} for list)
32
ETEXI
33

    
34
DEF("cpu", HAS_ARG, QEMU_OPTION_cpu,
35
    "-cpu cpu        select CPU (-cpu ? for list)\n")
36
STEXI
37
@item -cpu @var{model}
38
Select CPU model (-cpu ? for list and additional feature selection)
39
ETEXI
40

    
41
DEF("smp", HAS_ARG, QEMU_OPTION_smp,
42
    "-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]\n"
43
    "                set the number of CPUs to 'n' [default=1]\n"
44
    "                maxcpus= maximum number of total cpus, including\n"
45
    "                  offline CPUs for hotplug etc.\n"
46
    "                cores= number of CPU cores on one socket\n"
47
    "                threads= number of threads on one CPU core\n"
48
    "                sockets= number of discrete sockets in the system\n")
49
STEXI
50
@item -smp @var{n}[,cores=@var{cores}][,threads=@var{threads}][,sockets=@var{sockets}][,maxcpus=@var{maxcpus}]
51
Simulate an SMP system with @var{n} CPUs. On the PC target, up to 255
52
CPUs are supported. On Sparc32 target, Linux limits the number of usable CPUs
53
to 4.
54
For the PC target, the number of @var{cores} per socket, the number
55
of @var{threads} per cores and the total number of @var{sockets} can be
56
specified. Missing values will be computed. If any on the three values is
57
given, the total number of CPUs @var{n} can be omitted. @var{maxcpus}
58
specifies the maximum number of hotpluggable CPUs.
59
ETEXI
60

    
61
DEF("numa", HAS_ARG, QEMU_OPTION_numa,
62
    "-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]\n")
63
STEXI
64
@item -numa @var{opts}
65
Simulate a multi node NUMA system. If mem and cpus are omitted, resources
66
are split equally.
67
ETEXI
68

    
69
DEF("fda", HAS_ARG, QEMU_OPTION_fda,
70
    "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n")
71
DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "")
72
STEXI
73
@item -fda @var{file}
74
@item -fdb @var{file}
75
Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
76
use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
77
ETEXI
78

    
79
DEF("hda", HAS_ARG, QEMU_OPTION_hda,
80
    "-hda/-hdb file  use 'file' as IDE hard disk 0/1 image\n")
81
DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "")
82
DEF("hdc", HAS_ARG, QEMU_OPTION_hdc,
83
    "-hdc/-hdd file  use 'file' as IDE hard disk 2/3 image\n")
84
DEF("hdd", HAS_ARG, QEMU_OPTION_hdd, "")
85
STEXI
86
@item -hda @var{file}
87
@item -hdb @var{file}
88
@item -hdc @var{file}
89
@item -hdd @var{file}
90
Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
91
ETEXI
92

    
93
DEF("cdrom", HAS_ARG, QEMU_OPTION_cdrom,
94
    "-cdrom file     use 'file' as IDE cdrom image (cdrom is ide1 master)\n")
95
STEXI
96
@item -cdrom @var{file}
97
Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and
98
@option{-cdrom} at the same time). You can use the host CD-ROM by
99
using @file{/dev/cdrom} as filename (@pxref{host_drives}).
100
ETEXI
101

    
102
DEF("drive", HAS_ARG, QEMU_OPTION_drive,
103
    "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]\n"
104
    "       [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n"
105
    "       [,cache=writethrough|writeback|none][,format=f][,serial=s]\n"
106
    "       [,addr=A][,id=name][,aio=threads|native]\n"
107
    "                use 'file' as a drive image\n")
108
DEF("set", HAS_ARG, QEMU_OPTION_set,
109
    "-set group.id.arg=value\n"
110
    "                set <arg> parameter for item <id> of type <group>\n"
111
    "                i.e. -set drive.$id.file=/path/to/image\n")
112
DEF("global", HAS_ARG, QEMU_OPTION_global,
113
    "-global driver.property=value\n"
114
    "                set a global default for a driver property\n")
115
STEXI
116
@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
117

    
118
Define a new drive. Valid options are:
119

    
120
@table @option
121
@item file=@var{file}
122
This option defines which disk image (@pxref{disk_images}) to use with
123
this drive. If the filename contains comma, you must double it
124
(for instance, "file=my,,file" to use file "my,file").
125
@item if=@var{interface}
126
This option defines on which type on interface the drive is connected.
127
Available types are: ide, scsi, sd, mtd, floppy, pflash, virtio.
128
@item bus=@var{bus},unit=@var{unit}
129
These options define where is connected the drive by defining the bus number and
130
the unit id.
131
@item index=@var{index}
132
This option defines where is connected the drive by using an index in the list
133
of available connectors of a given interface type.
134
@item media=@var{media}
135
This option defines the type of the media: disk or cdrom.
136
@item cyls=@var{c},heads=@var{h},secs=@var{s}[,trans=@var{t}]
137
These options have the same definition as they have in @option{-hdachs}.
138
@item snapshot=@var{snapshot}
139
@var{snapshot} is "on" or "off" and allows to enable snapshot for given drive (see @option{-snapshot}).
140
@item cache=@var{cache}
141
@var{cache} is "none", "writeback", or "writethrough" and controls how the host cache is used to access block data.
142
@item aio=@var{aio}
143
@var{aio} is "threads", or "native" and selects between pthread based disk I/O and native Linux AIO.
144
@item format=@var{format}
145
Specify which disk @var{format} will be used rather than detecting
146
the format.  Can be used to specifiy format=raw to avoid interpreting
147
an untrusted format header.
148
@item serial=@var{serial}
149
This option specifies the serial number to assign to the device.
150
@item addr=@var{addr}
151
Specify the controller's PCI address (if=virtio only).
152
@end table
153

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

    
159
Writeback caching will report data writes as completed as soon as the data is
160
present in the host page cache.  This is safe as long as you trust your host.
161
If your host crashes or loses power, then the guest may experience data
162
corruption.  When using the @option{-snapshot} option, writeback caching is
163
used by default.
164

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

    
169
Some block drivers perform badly with @option{cache=writethrough}, most notably,
170
qcow2.  If performance is more important than correctness,
171
@option{cache=writeback} should be used with qcow2.
172

    
173
Instead of @option{-cdrom} you can use:
174
@example
175
qemu -drive file=file,index=2,media=cdrom
176
@end example
177

    
178
Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
179
use:
180
@example
181
qemu -drive file=file,index=0,media=disk
182
qemu -drive file=file,index=1,media=disk
183
qemu -drive file=file,index=2,media=disk
184
qemu -drive file=file,index=3,media=disk
185
@end example
186

    
187
You can connect a CDROM to the slave of ide0:
188
@example
189
qemu -drive file=file,if=ide,index=1,media=cdrom
190
@end example
191

    
192
If you don't specify the "file=" argument, you define an empty drive:
193
@example
194
qemu -drive if=ide,index=1,media=cdrom
195
@end example
196

    
197
You can connect a SCSI disk with unit ID 6 on the bus #0:
198
@example
199
qemu -drive file=file,if=scsi,bus=0,unit=6
200
@end example
201

    
202
Instead of @option{-fda}, @option{-fdb}, you can use:
203
@example
204
qemu -drive file=file,index=0,if=floppy
205
qemu -drive file=file,index=1,if=floppy
206
@end example
207

    
208
By default, @var{interface} is "ide" and @var{index} is automatically
209
incremented:
210
@example
211
qemu -drive file=a -drive file=b"
212
@end example
213
is interpreted like:
214
@example
215
qemu -hda a -hdb b
216
@end example
217
ETEXI
218

    
219
DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
220
    "-mtdblock file  use 'file' as on-board Flash memory image\n")
221
STEXI
222

    
223
@item -mtdblock @var{file}
224
Use @var{file} as on-board Flash memory image.
225
ETEXI
226

    
227
DEF("sd", HAS_ARG, QEMU_OPTION_sd,
228
    "-sd file        use 'file' as SecureDigital card image\n")
229
STEXI
230
@item -sd @var{file}
231
Use @var{file} as SecureDigital card image.
232
ETEXI
233

    
234
DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
235
    "-pflash file    use 'file' as a parallel flash image\n")
236
STEXI
237
@item -pflash @var{file}
238
Use @var{file} as a parallel flash image.
239
ETEXI
240

    
241
DEF("boot", HAS_ARG, QEMU_OPTION_boot,
242
    "-boot [order=drives][,once=drives][,menu=on|off]\n"
243
    "                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n")
244
STEXI
245
@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off]
246

    
247
Specify boot order @var{drives} as a string of drive letters. Valid
248
drive letters depend on the target achitecture. The x86 PC uses: a, b
249
(floppy 1 and 2), c (first hard disk), d (first CD-ROM), n-p (Etherboot
250
from network adapter 1-4), hard disk boot is the default. To apply a
251
particular boot order only on the first startup, specify it via
252
@option{once}.
253

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

    
257
@example
258
# try to boot from network first, then from hard disk
259
qemu -boot order=nc
260
# boot from CD-ROM first, switch back to default order after reboot
261
qemu -boot once=d
262
@end example
263

    
264
Note: The legacy format '-boot @var{drives}' is still supported but its
265
use is discouraged as it may be removed from future versions.
266
ETEXI
267

    
268
DEF("snapshot", 0, QEMU_OPTION_snapshot,
269
    "-snapshot       write to temporary files instead of disk image files\n")
270
STEXI
271
@item -snapshot
272
Write to temporary files instead of disk image files. In this case,
273
the raw disk image you use is not written back. You can however force
274
the write back by pressing @key{C-a s} (@pxref{disk_images}).
275
ETEXI
276

    
277
DEF("m", HAS_ARG, QEMU_OPTION_m,
278
    "-m megs         set virtual RAM size to megs MB [default=%d]\n")
279
STEXI
280
@item -m @var{megs}
281
Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB.  Optionally,
282
a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
283
gigabytes respectively.
284
ETEXI
285

    
286
DEF("k", HAS_ARG, QEMU_OPTION_k,
287
    "-k language     use keyboard layout (for example 'fr' for French)\n")
288
STEXI
289
@item -k @var{language}
290

    
291
Use keyboard layout @var{language} (for example @code{fr} for
292
French). This option is only needed where it is not easy to get raw PC
293
keycodes (e.g. on Macs, with some X11 servers or with a VNC
294
display). You don't normally need to use it on PC/Linux or PC/Windows
295
hosts.
296

    
297
The available layouts are:
298
@example
299
ar  de-ch  es  fo     fr-ca  hu  ja  mk     no  pt-br  sv
300
da  en-gb  et  fr     fr-ch  is  lt  nl     pl  ru     th
301
de  en-us  fi  fr-be  hr     it  lv  nl-be  pt  sl     tr
302
@end example
303

    
304
The default is @code{en-us}.
305
ETEXI
306

    
307

    
308
#ifdef HAS_AUDIO
309
DEF("audio-help", 0, QEMU_OPTION_audio_help,
310
    "-audio-help     print list of audio drivers and their options\n")
311
#endif
312
STEXI
313
@item -audio-help
314

    
315
Will show the audio subsystem help: list of drivers, tunable
316
parameters.
317
ETEXI
318

    
319
#ifdef HAS_AUDIO
320
DEF("soundhw", HAS_ARG, QEMU_OPTION_soundhw,
321
    "-soundhw c1,... enable audio support\n"
322
    "                and only specified sound cards (comma separated list)\n"
323
    "                use -soundhw ? to get the list of supported cards\n"
324
    "                use -soundhw all to enable all of them\n")
325
#endif
326
STEXI
327
@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
328

    
329
Enable audio and selected sound hardware. Use ? to print all
330
available sound hardware.
331

    
332
@example
333
qemu -soundhw sb16,adlib disk.img
334
qemu -soundhw es1370 disk.img
335
qemu -soundhw ac97 disk.img
336
qemu -soundhw all disk.img
337
qemu -soundhw ?
338
@end example
339

    
340
Note that Linux's i810_audio OSS kernel (for AC97) module might
341
require manually specifying clocking.
342

    
343
@example
344
modprobe i810_audio clocking=48000
345
@end example
346
ETEXI
347

    
348
STEXI
349
@end table
350
ETEXI
351

    
352
DEF("usb", 0, QEMU_OPTION_usb,
353
    "-usb            enable the USB driver (will be the default soon)\n")
354
STEXI
355
USB options:
356
@table @option
357

    
358
@item -usb
359
Enable the USB driver (will be the default soon)
360
ETEXI
361

    
362
DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
363
    "-usbdevice name add the host or guest USB device 'name'\n")
364
STEXI
365

    
366
@item -usbdevice @var{devname}
367
Add the USB device @var{devname}. @xref{usb_devices}.
368

    
369
@table @option
370

    
371
@item mouse
372
Virtual Mouse. This will override the PS/2 mouse emulation when activated.
373

    
374
@item tablet
375
Pointer device that uses absolute coordinates (like a touchscreen). This
376
means qemu is able to report the mouse position without having to grab the
377
mouse. Also overrides the PS/2 mouse emulation when activated.
378

    
379
@item disk:[format=@var{format}]:@var{file}
380
Mass storage device based on file. The optional @var{format} argument
381
will be used rather than detecting the format. Can be used to specifiy
382
@code{format=raw} to avoid interpreting an untrusted format header.
383

    
384
@item host:@var{bus}.@var{addr}
385
Pass through the host device identified by @var{bus}.@var{addr} (Linux only).
386

    
387
@item host:@var{vendor_id}:@var{product_id}
388
Pass through the host device identified by @var{vendor_id}:@var{product_id}
389
(Linux only).
390

    
391
@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
392
Serial converter to host character device @var{dev}, see @code{-serial} for the
393
available devices.
394

    
395
@item braille
396
Braille device.  This will use BrlAPI to display the braille output on a real
397
or fake device.
398

    
399
@item net:@var{options}
400
Network adapter that supports CDC ethernet and RNDIS protocols.
401

    
402
@end table
403
ETEXI
404

    
405
DEF("device", HAS_ARG, QEMU_OPTION_device,
406
    "-device driver[,options]  add device\n")
407
DEF("name", HAS_ARG, QEMU_OPTION_name,
408
    "-name string1[,process=string2]    set the name of the guest\n"
409
    "            string1 sets the window title and string2 the process name (on Linux)\n")
410
STEXI
411
@item -name @var{name}
412
Sets the @var{name} of the guest.
413
This name will be displayed in the SDL window caption.
414
The @var{name} will also be used for the VNC server.
415
Also optionally set the top visible process name in Linux.
416
ETEXI
417

    
418
DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
419
    "-uuid %%08x-%%04x-%%04x-%%04x-%%012x\n"
420
    "                specify machine UUID\n")
421
STEXI
422
@item -uuid @var{uuid}
423
Set system UUID.
424
ETEXI
425

    
426
STEXI
427
@end table
428
ETEXI
429

    
430
DEFHEADING()
431

    
432
DEFHEADING(Display options:)
433

    
434
STEXI
435
@table @option
436
ETEXI
437

    
438
DEF("nographic", 0, QEMU_OPTION_nographic,
439
    "-nographic      disable graphical output and redirect serial I/Os to console\n")
440
STEXI
441
@item -nographic
442

    
443
Normally, QEMU uses SDL to display the VGA output. With this option,
444
you can totally disable graphical output so that QEMU is a simple
445
command line application. The emulated serial port is redirected on
446
the console. Therefore, you can still use QEMU to debug a Linux kernel
447
with a serial console.
448
ETEXI
449

    
450
#ifdef CONFIG_CURSES
451
DEF("curses", 0, QEMU_OPTION_curses,
452
    "-curses         use a curses/ncurses interface instead of SDL\n")
453
#endif
454
STEXI
455
@item -curses
456

    
457
Normally, QEMU uses SDL to display the VGA output.  With this option,
458
QEMU can display the VGA output when in text mode using a
459
curses/ncurses interface.  Nothing is displayed in graphical mode.
460
ETEXI
461

    
462
#ifdef CONFIG_SDL
463
DEF("no-frame", 0, QEMU_OPTION_no_frame,
464
    "-no-frame       open SDL window without a frame and window decorations\n")
465
#endif
466
STEXI
467
@item -no-frame
468

    
469
Do not use decorations for SDL windows and start them using the whole
470
available screen space. This makes the using QEMU in a dedicated desktop
471
workspace more convenient.
472
ETEXI
473

    
474
#ifdef CONFIG_SDL
475
DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
476
    "-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n")
477
#endif
478
STEXI
479
@item -alt-grab
480

    
481
Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt).
482
ETEXI
483

    
484
#ifdef CONFIG_SDL
485
DEF("ctrl-grab", 0, QEMU_OPTION_ctrl_grab,
486
    "-ctrl-grab       use Right-Ctrl to grab mouse (instead of Ctrl-Alt)\n")
487
#endif
488
STEXI
489
@item -ctrl-grab
490

    
491
Use Right-Ctrl to grab mouse (instead of Ctrl-Alt).
492
ETEXI
493

    
494
#ifdef CONFIG_SDL
495
DEF("no-quit", 0, QEMU_OPTION_no_quit,
496
    "-no-quit        disable SDL window close capability\n")
497
#endif
498
STEXI
499
@item -no-quit
500

    
501
Disable SDL window close capability.
502
ETEXI
503

    
504
#ifdef CONFIG_SDL
505
DEF("sdl", 0, QEMU_OPTION_sdl,
506
    "-sdl            enable SDL\n")
507
#endif
508
STEXI
509
@item -sdl
510

    
511
Enable SDL.
512
ETEXI
513

    
514
DEF("portrait", 0, QEMU_OPTION_portrait,
515
    "-portrait       rotate graphical output 90 deg left (only PXA LCD)\n")
516
STEXI
517
@item -portrait
518

    
519
Rotate graphical output 90 deg left (only PXA LCD).
520
ETEXI
521

    
522
DEF("vga", HAS_ARG, QEMU_OPTION_vga,
523
    "-vga [std|cirrus|vmware|xenfb|none]\n"
524
    "                select video card type\n")
525
STEXI
526
@item -vga @var{type}
527
Select type of VGA card to emulate. Valid values for @var{type} are
528
@table @option
529
@item cirrus
530
Cirrus Logic GD5446 Video card. All Windows versions starting from
531
Windows 95 should recognize and use this graphic card. For optimal
532
performances, use 16 bit color depth in the guest and the host OS.
533
(This one is the default)
534
@item std
535
Standard VGA card with Bochs VBE extensions.  If your guest OS
536
supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want
537
to use high resolution modes (>= 1280x1024x16) then you should use
538
this option.
539
@item vmware
540
VMWare SVGA-II compatible adapter. Use it if you have sufficiently
541
recent XFree86/XOrg server or Windows guest with a driver for this
542
card.
543
@item none
544
Disable VGA card.
545
@end table
546
ETEXI
547

    
548
DEF("full-screen", 0, QEMU_OPTION_full_screen,
549
    "-full-screen    start in full screen\n")
550
STEXI
551
@item -full-screen
552
Start in full screen.
553
ETEXI
554

    
555
#if defined(TARGET_PPC) || defined(TARGET_SPARC)
556
DEF("g", 1, QEMU_OPTION_g ,
557
    "-g WxH[xDEPTH]  Set the initial graphical resolution and depth\n")
558
#endif
559
STEXI
560
ETEXI
561

    
562
DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
563
    "-vnc display    start a VNC server on display\n")
564
STEXI
565
@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
566

    
567
Normally, QEMU uses SDL to display the VGA output.  With this option,
568
you can have QEMU listen on VNC display @var{display} and redirect the VGA
569
display over the VNC session.  It is very useful to enable the usb
570
tablet device when using this option (option @option{-usbdevice
571
tablet}). When using the VNC display, you must use the @option{-k}
572
parameter to set the keyboard layout if you are not using en-us. Valid
573
syntax for the @var{display} is
574

    
575
@table @option
576

    
577
@item @var{host}:@var{d}
578

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

    
583
@item unix:@var{path}
584

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

    
588
@item none
589

    
590
VNC is initialized but not started. The monitor @code{change} command
591
can be used to later start the VNC server.
592

    
593
@end table
594

    
595
Following the @var{display} value there may be one or more @var{option} flags
596
separated by commas. Valid options are
597

    
598
@table @option
599

    
600
@item reverse
601

    
602
Connect to a listening VNC client via a ``reverse'' connection. The
603
client is specified by the @var{display}. For reverse network
604
connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
605
is a TCP port number, not a display number.
606

    
607
@item password
608

    
609
Require that password based authentication is used for client connections.
610
The password must be set separately using the @code{change} command in the
611
@ref{pcsys_monitor}
612

    
613
@item tls
614

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

    
620
@item x509=@var{/path/to/certificate/dir}
621

    
622
Valid if @option{tls} is specified. Require that x509 credentials are used
623
for negotiating the TLS session. The server will send its x509 certificate
624
to the client. It is recommended that a password be set on the VNC server
625
to provide authentication of the client when this is used. The path following
626
this option specifies where the x509 certificates are to be loaded from.
627
See the @ref{vnc_security} section for details on generating certificates.
628

    
629
@item x509verify=@var{/path/to/certificate/dir}
630

    
631
Valid if @option{tls} is specified. Require that x509 credentials are used
632
for negotiating the TLS session. The server will send its x509 certificate
633
to the client, and request that the client send its own x509 certificate.
634
The server will validate the client's certificate against the CA certificate,
635
and reject clients when validation fails. If the certificate authority is
636
trusted, this is a sufficient authentication mechanism. You may still wish
637
to set a password on the VNC server as a second authentication layer. The
638
path following this option specifies where the x509 certificates are to
639
be loaded from. See the @ref{vnc_security} section for details on generating
640
certificates.
641

    
642
@item sasl
643

    
644
Require that the client use SASL to authenticate with the VNC server.
645
The exact choice of authentication method used is controlled from the
646
system / user's SASL configuration file for the 'qemu' service. This
647
is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
648
unprivileged user, an environment variable SASL_CONF_PATH can be used
649
to make it search alternate locations for the service config.
650
While some SASL auth methods can also provide data encryption (eg GSSAPI),
651
it is recommended that SASL always be combined with the 'tls' and
652
'x509' settings to enable use of SSL and server certificates. This
653
ensures a data encryption preventing compromise of authentication
654
credentials. See the @ref{vnc_security} section for details on using
655
SASL authentication.
656

    
657
@item acl
658

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

    
670
@end table
671
ETEXI
672

    
673
STEXI
674
@end table
675
ETEXI
676

    
677
DEFHEADING()
678

    
679
#ifdef TARGET_I386
680
DEFHEADING(i386 target only:)
681
#endif
682
STEXI
683
@table @option
684
ETEXI
685

    
686
#ifdef TARGET_I386
687
DEF("win2k-hack", 0, QEMU_OPTION_win2k_hack,
688
    "-win2k-hack     use it when installing Windows 2000 to avoid a disk full bug\n")
689
#endif
690
STEXI
691
@item -win2k-hack
692
Use it when installing Windows 2000 to avoid a disk full bug. After
693
Windows 2000 is installed, you no longer need this option (this option
694
slows down the IDE transfers).
695
ETEXI
696

    
697
#ifdef TARGET_I386
698
HXCOMM Deprecated by -rtc
699
DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack, "")
700
#endif
701

    
702
#ifdef TARGET_I386
703
DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
704
    "-no-fd-bootchk  disable boot signature checking for floppy disks\n")
705
#endif
706
STEXI
707
@item -no-fd-bootchk
708
Disable boot signature checking for floppy disks in Bochs BIOS. It may
709
be needed to boot from old floppy disks.
710
ETEXI
711

    
712
#ifdef TARGET_I386
713
DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
714
           "-no-acpi        disable ACPI\n")
715
#endif
716
STEXI
717
@item -no-acpi
718
Disable ACPI (Advanced Configuration and Power Interface) support. Use
719
it if your guest OS complains about ACPI problems (PC target machine
720
only).
721
ETEXI
722

    
723
#ifdef TARGET_I386
724
DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
725
    "-no-hpet        disable HPET\n")
726
#endif
727
STEXI
728
@item -no-hpet
729
Disable HPET support.
730
ETEXI
731

    
732
#ifdef TARGET_I386
733
DEF("balloon", HAS_ARG, QEMU_OPTION_balloon,
734
    "-balloon none   disable balloon device\n"
735
    "-balloon virtio[,addr=str]\n"
736
    "                enable virtio balloon device (default)\n")
737
#endif
738
STEXI
739
@item -balloon none
740
Disable balloon device.
741
@item -balloon virtio[,addr=@var{addr}]
742
Enable virtio balloon device (default), optionally with PCI address
743
@var{addr}.
744
ETEXI
745

    
746
#ifdef TARGET_I386
747
DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
748
    "-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"
749
    "                ACPI table description\n")
750
#endif
751
STEXI
752
@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}]...]
753
Add ACPI table with specified header fields and context from specified files.
754
ETEXI
755

    
756
#ifdef TARGET_I386
757
DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
758
    "-smbios file=binary\n"
759
    "                Load SMBIOS entry from binary file\n"
760
    "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%%d.%%d]\n"
761
    "                Specify SMBIOS type 0 fields\n"
762
    "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n"
763
    "              [,uuid=uuid][,sku=str][,family=str]\n"
764
    "                Specify SMBIOS type 1 fields\n")
765
#endif
766
STEXI
767
@item -smbios file=@var{binary}
768
Load SMBIOS entry from binary file.
769

    
770
@item -smbios type=0[,vendor=@var{str}][,version=@var{str}][,date=@var{str}][,release=@var{%d.%d}]
771
Specify SMBIOS type 0 fields
772

    
773
@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}]
774
Specify SMBIOS type 1 fields
775
ETEXI
776

    
777
#ifdef TARGET_I386
778
DEFHEADING()
779
#endif
780
STEXI
781
@end table
782
ETEXI
783

    
784
DEFHEADING(Network options:)
785
STEXI
786
@table @option
787
ETEXI
788

    
789
HXCOMM Legacy slirp options (now moved to -net user):
790
#ifdef CONFIG_SLIRP
791
DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, "")
792
DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, "")
793
DEF("redir", HAS_ARG, QEMU_OPTION_redir, "")
794
#ifndef _WIN32
795
DEF("smb", HAS_ARG, QEMU_OPTION_smb, "")
796
#endif
797
#endif
798

    
799
DEF("net", HAS_ARG, QEMU_OPTION_net,
800
    "-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]\n"
801
    "                create a new Network Interface Card and connect it to VLAN 'n'\n"
802
#ifdef CONFIG_SLIRP
803
    "-net user[,vlan=n][,name=str][,net=addr[/mask]][,host=addr][,restrict=y|n]\n"
804
    "         [,hostname=host][,dhcpstart=addr][,dns=addr][,tftp=dir][,bootfile=f]\n"
805
    "         [,hostfwd=rule][,guestfwd=rule]"
806
#ifndef _WIN32
807
                                             "[,smb=dir[,smbserver=addr]]\n"
808
#endif
809
    "                connect the user mode network stack to VLAN 'n', configure its\n"
810
    "                DHCP server and enabled optional services\n"
811
#endif
812
#ifdef _WIN32
813
    "-net tap[,vlan=n][,name=str],ifname=name\n"
814
    "                connect the host TAP network interface to VLAN 'n'\n"
815
#else
816
    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,sndbuf=nbytes][,vnet_hdr=on|off]\n"
817
    "                connect the host TAP network interface to VLAN 'n' and use the\n"
818
    "                network scripts 'file' (default=%s)\n"
819
    "                and 'dfile' (default=%s);\n"
820
    "                use '[down]script=no' to disable script execution;\n"
821
    "                use 'fd=h' to connect to an already opened TAP interface\n"
822
    "                use 'sndbuf=nbytes' to limit the size of the send buffer; the\n"
823
    "                default of 'sndbuf=1048576' can be disabled using 'sndbuf=0'\n"
824
    "                use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag; use\n"
825
    "                vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition\n"
826
#endif
827
    "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
828
    "                connect the vlan 'n' to another VLAN using a socket connection\n"
829
    "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n"
830
    "                connect the vlan 'n' to multicast maddr and port\n"
831
#ifdef CONFIG_VDE
832
    "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
833
    "                connect the vlan 'n' to port 'n' of a vde switch running\n"
834
    "                on host and listening for incoming connections on 'socketpath'.\n"
835
    "                Use group 'groupname' and mode 'octalmode' to change default\n"
836
    "                ownership and permissions for communication port.\n"
837
#endif
838
    "-net dump[,vlan=n][,file=f][,len=n]\n"
839
    "                dump traffic on vlan 'n' to file 'f' (max n bytes per packet)\n"
840
    "-net none       use it alone to have zero network devices; if no -net option\n"
841
    "                is provided, the default is '-net nic -net user'\n")
842
DEF("netdev", HAS_ARG, QEMU_OPTION_netdev,
843
    "-netdev ["
844
#ifdef CONFIG_SLIRP
845
    "user|"
846
#endif
847
    "tap|"
848
#ifdef CONFIG_VDE
849
    "vde|"
850
#endif
851
    "socket],id=str[,option][,option][,...]\n")
852
STEXI
853
@item -net nic[,vlan=@var{n}][,macaddr=@var{mac}][,model=@var{type}][,name=@var{name}][,addr=@var{addr}][,vectors=@var{v}]
854
Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
855
= 0 is the default). The NIC is an e1000 by default on the PC
856
target. Optionally, the MAC address can be changed to @var{mac}, the
857
device address set to @var{addr} (PCI cards only),
858
and a @var{name} can be assigned for use in monitor commands.
859
Optionally, for PCI cards, you can specify the number @var{v} of MSI-X vectors
860
that the card should have; this option currently only affects virtio cards; set
861
@var{v} = 0 to disable MSI-X. If no @option{-net} option is specified, a single
862
NIC is created.  Qemu can emulate several different models of network card.
863
Valid values for @var{type} are
864
@code{virtio}, @code{i82551}, @code{i82557b}, @code{i82559er},
865
@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
866
@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.
867
Not all devices are supported on all targets.  Use -net nic,model=?
868
for a list of available devices for your target.
869

    
870
@item -net user[,@var{option}][,@var{option}][,...]
871
Use the user mode network stack which requires no administrator
872
privilege to run. Valid options are:
873

    
874
@table @option
875
@item vlan=@var{n}
876
Connect user mode stack to VLAN @var{n} (@var{n} = 0 is the default).
877

    
878
@item name=@var{name}
879
Assign symbolic name for use in monitor commands.
880

    
881
@item net=@var{addr}[/@var{mask}]
882
Set IP network address the guest will see. Optionally specify the netmask,
883
either in the form a.b.c.d or as number of valid top-most bits. Default is
884
10.0.2.0/8.
885

    
886
@item host=@var{addr}
887
Specify the guest-visible address of the host. Default is the 2nd IP in the
888
guest network, i.e. x.x.x.2.
889

    
890
@item restrict=y|yes|n|no
891
If this options is enabled, the guest will be isolated, i.e. it will not be
892
able to contact the host and no guest IP packets will be routed over the host
893
to the outside. This option does not affect explicitly set forwarding rule.
894

    
895
@item hostname=@var{name}
896
Specifies the client hostname reported by the builtin DHCP server.
897

    
898
@item dhcpstart=@var{addr}
899
Specify the first of the 16 IPs the built-in DHCP server can assign. Default
900
is the 16th to 31st IP in the guest network, i.e. x.x.x.16 to x.x.x.31.
901

    
902
@item dns=@var{addr}
903
Specify the guest-visible address of the virtual nameserver. The address must
904
be different from the host address. Default is the 3rd IP in the guest network,
905
i.e. x.x.x.3.
906

    
907
@item tftp=@var{dir}
908
When using the user mode network stack, activate a built-in TFTP
909
server. The files in @var{dir} will be exposed as the root of a TFTP server.
910
The TFTP client on the guest must be configured in binary mode (use the command
911
@code{bin} of the Unix TFTP client).
912

    
913
@item bootfile=@var{file}
914
When using the user mode network stack, broadcast @var{file} as the BOOTP
915
filename. In conjunction with @option{tftp}, this can be used to network boot
916
a guest from a local directory.
917

    
918
Example (using pxelinux):
919
@example
920
qemu -hda linux.img -boot n -net user,tftp=/path/to/tftp/files,bootfile=/pxelinux.0
921
@end example
922

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

    
929
In the guest Windows OS, the line:
930
@example
931
10.0.2.4 smbserver
932
@end example
933
must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
934
or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
935

    
936
Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
937

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

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

    
950
For example, to redirect host X11 connection from screen 1 to guest
951
screen 0, use the following:
952

    
953
@example
954
# on the host
955
qemu -net user,hostfwd=tcp:127.0.0.1:6001-:6000 [...]
956
# this host xterm should open in the guest X11 server
957
xterm -display :1
958
@end example
959

    
960
To redirect telnet connections from host port 5555 to telnet port on
961
the guest, use the following:
962

    
963
@example
964
# on the host
965
qemu -net user,hostfwd=tcp:5555::23 [...]
966
telnet localhost 5555
967
@end example
968

    
969
Then when you use on the host @code{telnet localhost 5555}, you
970
connect to the guest telnet server.
971

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

    
976
@end table
977

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

    
983
@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}]
984
Connect the host TAP network interface @var{name} to VLAN @var{n}, use
985
the network script @var{file} to configure it and the network script
986
@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
987
automatically provides one. @option{fd}=@var{h} can be used to specify
988
the handle of an already opened host TAP interface. The default network
989
configure script is @file{/etc/qemu-ifup} and the default network
990
deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}
991
or @option{downscript=no} to disable script execution. Example:
992

    
993
@example
994
qemu linux.img -net nic -net tap
995
@end example
996

    
997
More complicated example (two NICs, each one connected to a TAP device)
998
@example
999
qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
1000
               -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
1001
@end example
1002

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

    
1005
Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
1006
machine using a TCP socket connection. If @option{listen} is
1007
specified, QEMU waits for incoming connections on @var{port}
1008
(@var{host} is optional). @option{connect} is used to connect to
1009
another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
1010
specifies an already opened TCP socket.
1011

    
1012
Example:
1013
@example
1014
# launch a first QEMU instance
1015
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1016
               -net socket,listen=:1234
1017
# connect the VLAN 0 of this instance to the VLAN 0
1018
# of the first instance
1019
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
1020
               -net socket,connect=127.0.0.1:1234
1021
@end example
1022

    
1023
@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,mcast=@var{maddr}:@var{port}]
1024

    
1025
Create a VLAN @var{n} shared with another QEMU virtual
1026
machines using a UDP multicast socket, effectively making a bus for
1027
every QEMU with same multicast address @var{maddr} and @var{port}.
1028
NOTES:
1029
@enumerate
1030
@item
1031
Several QEMU can be running on different hosts and share same bus (assuming
1032
correct multicast setup for these hosts).
1033
@item
1034
mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
1035
@url{http://user-mode-linux.sf.net}.
1036
@item
1037
Use @option{fd=h} to specify an already opened UDP multicast socket.
1038
@end enumerate
1039

    
1040
Example:
1041
@example
1042
# launch one QEMU instance
1043
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1044
               -net socket,mcast=230.0.0.1:1234
1045
# launch another QEMU instance on same "bus"
1046
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
1047
               -net socket,mcast=230.0.0.1:1234
1048
# launch yet another QEMU instance on same "bus"
1049
qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
1050
               -net socket,mcast=230.0.0.1:1234
1051
@end example
1052

    
1053
Example (User Mode Linux compat.):
1054
@example
1055
# launch QEMU instance (note mcast address selected
1056
# is UML's default)
1057
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1058
               -net socket,mcast=239.192.168.1:1102
1059
# launch UML
1060
/path/to/linux ubd0=/path/to/root_fs eth0=mcast
1061
@end example
1062

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

    
1070
Example:
1071
@example
1072
# launch vde switch
1073
vde_switch -F -sock /tmp/myswitch
1074
# launch QEMU instance
1075
qemu linux.img -net nic -net vde,sock=/tmp/myswitch
1076
@end example
1077

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

    
1083
@item -net none
1084
Indicate that no network devices should be configured. It is used to
1085
override the default configuration (@option{-net nic -net user}) which
1086
is activated if no @option{-net} options are provided.
1087

    
1088
@end table
1089
ETEXI
1090

    
1091
DEFHEADING()
1092

    
1093
DEFHEADING(Character device options:)
1094

    
1095
DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
1096
    "-chardev null,id=id\n"
1097
    "-chardev socket,id=id[,host=host],port=host[,to=to][,ipv4][,ipv6][,nodelay]\n"
1098
    "         [,server][,nowait][,telnet] (tcp)\n"
1099
    "-chardev socket,id=id,path=path[,server][,nowait][,telnet] (unix)\n"
1100
    "-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]\n"
1101
    "         [,localport=localport][,ipv4][,ipv6]\n"
1102
    "-chardev msmouse,id=id\n"
1103
    "-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]\n"
1104
    "-chardev file,id=id,path=path\n"
1105
    "-chardev pipe,id=id,path=path\n"
1106
#ifdef _WIN32
1107
    "-chardev console,id=id\n"
1108
    "-chardev serial,id=id,path=path\n"
1109
#else
1110
    "-chardev pty,id=id\n"
1111
    "-chardev stdio,id=id\n"
1112
#endif
1113
#ifdef CONFIG_BRLAPI
1114
    "-chardev braille,id=id\n"
1115
#endif
1116
#if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \
1117
        || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
1118
    "-chardev tty,id=id,path=path\n"
1119
#endif
1120
#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
1121
    "-chardev parport,id=id,path=path\n"
1122
#endif
1123
)
1124

    
1125
STEXI
1126

    
1127
The general form of a character device option is:
1128
@table @option
1129

    
1130
@item -chardev @var{backend} ,id=@var{id} [,@var{options}]
1131

    
1132
Backend is one of:
1133
@option{null},
1134
@option{socket},
1135
@option{udp},
1136
@option{msmouse},
1137
@option{vc},
1138
@option{file},
1139
@option{pipe},
1140
@option{console},
1141
@option{serial},
1142
@option{pty},
1143
@option{stdio},
1144
@option{braille},
1145
@option{tty},
1146
@option{parport}.
1147
The specific backend will determine the applicable options.
1148

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

    
1152
Options to each backend are described below.
1153

    
1154
@item -chardev null ,id=@var{id}
1155
A void device. This device will not emit any data, and will drop any data it
1156
receives. The null backend does not take any options.
1157

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

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

    
1164
@option{server} specifies that the socket shall be a listening socket.
1165

    
1166
@option{nowait} specifies that QEMU should not block waiting for a client to
1167
connect to a listening socket.
1168

    
1169
@option{telnet} specifies that traffic on the socket should interpret telnet
1170
escape sequences.
1171

    
1172
TCP and unix socket options are given below:
1173

    
1174
@table @option
1175

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

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

    
1182
@option{port} for a listening socket specifies the local port to be bound. For a
1183
connecting socket specifies the port on the remote host to connect to.
1184
@option{port} can be given as either a port number or a service name.
1185
@option{port} is required.
1186

    
1187
@option{to} is only relevant to listening sockets. If it is specified, and
1188
@option{port} cannot be bound, QEMU will attempt to bind to subsequent ports up
1189
to and including @option{to} until it succeeds. @option{to} must be specified
1190
as a port number.
1191

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

    
1195
@option{nodelay} disables the Nagle algorithm.
1196

    
1197
@item unix options: path=@var{path}
1198

    
1199
@option{path} specifies the local path of the unix socket. @option{path} is
1200
required.
1201

    
1202
@end table
1203

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

    
1206
Sends all traffic from the guest to a remote host over UDP.
1207

    
1208
@option{host} specifies the remote host to connect to. If not specified it
1209
defaults to @code{localhost}.
1210

    
1211
@option{port} specifies the port on the remote host to connect to. @option{port}
1212
is required.
1213

    
1214
@option{localaddr} specifies the local address to bind to. If not specified it
1215
defaults to @code{0.0.0.0}.
1216

    
1217
@option{localport} specifies the local port to bind to. If not specified any
1218
available local port will be used.
1219

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

    
1223
@item -chardev msmouse ,id=@var{id}
1224

    
1225
Forward QEMU's emulated msmouse events to the guest. @option{msmouse} does not
1226
take any options.
1227

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

    
1230
Connect to a QEMU text console. @option{vc} may optionally be given a specific
1231
size.
1232

    
1233
@option{width} and @option{height} specify the width and height respectively of
1234
the console, in pixels.
1235

    
1236
@option{cols} and @option{rows} specify that the console be sized to fit a text
1237
console with the given dimensions.
1238

    
1239
@item -chardev file ,id=@var{id} ,path=@var{path}
1240

    
1241
Log all traffic received from the guest to a file.
1242

    
1243
@option{path} specifies the path of the file to be opened. This file will be
1244
created if it does not already exist, and overwritten if it does. @option{path}
1245
is required.
1246

    
1247
@item -chardev pipe ,id=@var{id} ,path=@var{path}
1248

    
1249
Create a two-way connection to the guest. The behaviour differs slightly between
1250
Windows hosts and other hosts:
1251

    
1252
On Windows, a single duplex pipe will be created at
1253
@file{\\.pipe\@option{path}}.
1254

    
1255
On other hosts, 2 pipes will be created called @file{@option{path}.in} and
1256
@file{@option{path}.out}. Data written to @file{@option{path}.in} will be
1257
received by the guest. Data written by the guest can be read from
1258
@file{@option{path}.out}. QEMU will not create these fifos, and requires them to
1259
be present.
1260

    
1261
@option{path} forms part of the pipe path as described above. @option{path} is
1262
required.
1263

    
1264
@item -chardev console ,id=@var{id}
1265

    
1266
Send traffic from the guest to QEMU's standard output. @option{console} does not
1267
take any options.
1268

    
1269
@option{console} is only available on Windows hosts.
1270

    
1271
@item -chardev serial ,id=@var{id} ,path=@option{path}
1272

    
1273
Send traffic from the guest to a serial device on the host.
1274

    
1275
@option{serial} is
1276
only available on Windows hosts.
1277

    
1278
@option{path} specifies the name of the serial device to open.
1279

    
1280
@item -chardev pty ,id=@var{id}
1281

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

    
1285
@option{pty} is not available on Windows hosts.
1286

    
1287
@item -chardev stdio ,id=@var{id}
1288
Connect to standard input and standard output of the qemu process.
1289
@option{stdio} does not take any options. @option{stdio} is not available on
1290
Windows hosts.
1291

    
1292
@item -chardev braille ,id=@var{id}
1293

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

    
1296
@item -chardev tty ,id=@var{id} ,path=@var{path}
1297

    
1298
Connect to a local tty device.
1299

    
1300
@option{tty} is only available on Linux, Sun, FreeBSD, NetBSD, OpenBSD and
1301
DragonFlyBSD hosts.
1302

    
1303
@option{path} specifies the path to the tty. @option{path} is required.
1304

    
1305
@item -chardev parport ,id=@var{id} ,path=@var{path}
1306

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

    
1309
Connect to a local parallel port.
1310

    
1311
@option{path} specifies the path to the parallel port device. @option{path} is
1312
required.
1313

    
1314
@end table
1315
ETEXI
1316

    
1317
DEFHEADING()
1318

    
1319
DEFHEADING(Bluetooth(R) options:)
1320

    
1321
DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
1322
    "-bt hci,null    dumb bluetooth HCI - doesn't respond to commands\n" \
1323
    "-bt hci,host[:id]\n" \
1324
    "                use host's HCI with the given name\n" \
1325
    "-bt hci[,vlan=n]\n" \
1326
    "                emulate a standard HCI in virtual scatternet 'n'\n" \
1327
    "-bt vhci[,vlan=n]\n" \
1328
    "                add host computer to virtual scatternet 'n' using VHCI\n" \
1329
    "-bt device:dev[,vlan=n]\n" \
1330
    "                emulate a bluetooth device 'dev' in scatternet 'n'\n")
1331
STEXI
1332
@table @option
1333

    
1334
@item -bt hci[...]
1335
Defines the function of the corresponding Bluetooth HCI.  -bt options
1336
are matched with the HCIs present in the chosen machine type.  For
1337
example when emulating a machine with only one HCI built into it, only
1338
the first @code{-bt hci[...]} option is valid and defines the HCI's
1339
logic.  The Transport Layer is decided by the machine type.  Currently
1340
the machines @code{n800} and @code{n810} have one HCI and all other
1341
machines have none.
1342

    
1343
@anchor{bt-hcis}
1344
The following three types are recognized:
1345

    
1346
@table @option
1347
@item -bt hci,null
1348
(default) The corresponding Bluetooth HCI assumes no internal logic
1349
and will not respond to any HCI commands or emit events.
1350

    
1351
@item -bt hci,host[:@var{id}]
1352
(@code{bluez} only) The corresponding HCI passes commands / events
1353
to / from the physical HCI identified by the name @var{id} (default:
1354
@code{hci0}) on the computer running QEMU.  Only available on @code{bluez}
1355
capable systems like Linux.
1356

    
1357
@item -bt hci[,vlan=@var{n}]
1358
Add a virtual, standard HCI that will participate in the Bluetooth
1359
scatternet @var{n} (default @code{0}).  Similarly to @option{-net}
1360
VLANs, devices inside a bluetooth network @var{n} can only communicate
1361
with other devices in the same network (scatternet).
1362
@end table
1363

    
1364
@item -bt vhci[,vlan=@var{n}]
1365
(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
1366
to the host bluetooth stack instead of to the emulated target.  This
1367
allows the host and target machines to participate in a common scatternet
1368
and communicate.  Requires the Linux @code{vhci} driver installed.  Can
1369
be used as following:
1370

    
1371
@example
1372
qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
1373
@end example
1374

    
1375
@item -bt device:@var{dev}[,vlan=@var{n}]
1376
Emulate a bluetooth device @var{dev} and place it in network @var{n}
1377
(default @code{0}).  QEMU can only emulate one type of bluetooth devices
1378
currently:
1379

    
1380
@table @option
1381
@item keyboard
1382
Virtual wireless keyboard implementing the HIDP bluetooth profile.
1383
@end table
1384
@end table
1385
ETEXI
1386

    
1387
DEFHEADING()
1388

    
1389
DEFHEADING(Linux/Multiboot boot specific:)
1390
STEXI
1391

    
1392
When using these options, you can use a given Linux or Multiboot
1393
kernel without installing it in the disk image. It can be useful
1394
for easier testing of various kernels.
1395

    
1396
@table @option
1397
ETEXI
1398

    
1399
DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
1400
    "-kernel bzImage use 'bzImage' as kernel image\n")
1401
STEXI
1402
@item -kernel @var{bzImage}
1403
Use @var{bzImage} as kernel image. The kernel can be either a Linux kernel
1404
or in multiboot format.
1405
ETEXI
1406

    
1407
DEF("append", HAS_ARG, QEMU_OPTION_append, \
1408
    "-append cmdline use 'cmdline' as kernel command line\n")
1409
STEXI
1410
@item -append @var{cmdline}
1411
Use @var{cmdline} as kernel command line
1412
ETEXI
1413

    
1414
DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
1415
           "-initrd file    use 'file' as initial ram disk\n")
1416
STEXI
1417
@item -initrd @var{file}
1418
Use @var{file} as initial ram disk.
1419

    
1420
@item -initrd "@var{file1} arg=foo,@var{file2}"
1421

    
1422
This syntax is only available with multiboot.
1423

    
1424
Use @var{file1} and @var{file2} as modules and pass arg=foo as parameter to the
1425
first module.
1426
ETEXI
1427

    
1428
STEXI
1429
@end table
1430
ETEXI
1431

    
1432
DEFHEADING()
1433

    
1434
DEFHEADING(Debug/Expert options:)
1435

    
1436
STEXI
1437
@table @option
1438
ETEXI
1439

    
1440
DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
1441
    "-serial dev     redirect the serial port to char device 'dev'\n")
1442
STEXI
1443
@item -serial @var{dev}
1444
Redirect the virtual serial port to host character device
1445
@var{dev}. The default device is @code{vc} in graphical mode and
1446
@code{stdio} in non graphical mode.
1447

    
1448
This option can be used several times to simulate up to 4 serial
1449
ports.
1450

    
1451
Use @code{-serial none} to disable all serial ports.
1452

    
1453
Available character devices are:
1454
@table @option
1455
@item vc[:@var{W}x@var{H}]
1456
Virtual console. Optionally, a width and height can be given in pixel with
1457
@example
1458
vc:800x600
1459
@end example
1460
It is also possible to specify width or height in characters:
1461
@example
1462
vc:80Cx24C
1463
@end example
1464
@item pty
1465
[Linux only] Pseudo TTY (a new PTY is automatically allocated)
1466
@item none
1467
No device is allocated.
1468
@item null
1469
void device
1470
@item /dev/XXX
1471
[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
1472
parameters are set according to the emulated ones.
1473
@item /dev/parport@var{N}
1474
[Linux only, parallel port only] Use host parallel port
1475
@var{N}. Currently SPP and EPP parallel port features can be used.
1476
@item file:@var{filename}
1477
Write output to @var{filename}. No character can be read.
1478
@item stdio
1479
[Unix only] standard input/output
1480
@item pipe:@var{filename}
1481
name pipe @var{filename}
1482
@item COM@var{n}
1483
[Windows only] Use host serial port @var{n}
1484
@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
1485
This implements UDP Net Console.
1486
When @var{remote_host} or @var{src_ip} are not specified
1487
they default to @code{0.0.0.0}.
1488
When not using a specified @var{src_port} a random port is automatically chosen.
1489

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

    
1495
If you plan to send characters back via netconsole or you want to stop
1496
and start qemu a lot of times, you should have qemu use the same
1497
source port each time by using something like @code{-serial
1498
udp::4555@@:4556} to qemu. Another approach is to use a patched
1499
version of netcat which can listen to a TCP port and send and receive
1500
characters via udp.  If you have a patched version of netcat which
1501
activates telnet remote echo and single char transfer, then you can
1502
use the following options to step up a netcat redirector to allow
1503
telnet on port 5555 to access the qemu port.
1504
@table @code
1505
@item Qemu Options:
1506
-serial udp::4555@@:4556
1507
@item netcat options:
1508
-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
1509
@item telnet options:
1510
localhost 5555
1511
@end table
1512

    
1513
@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
1514
The TCP Net Console has two modes of operation.  It can send the serial
1515
I/O to a location or wait for a connection from a location.  By default
1516
the TCP Net Console is sent to @var{host} at the @var{port}.  If you use
1517
the @var{server} option QEMU will wait for a client socket application
1518
to connect to the port before continuing, unless the @code{nowait}
1519
option was specified.  The @code{nodelay} option disables the Nagle buffering
1520
algorithm.  If @var{host} is omitted, 0.0.0.0 is assumed. Only
1521
one TCP connection at a time is accepted. You can use @code{telnet} to
1522
connect to the corresponding character device.
1523
@table @code
1524
@item Example to send tcp console to 192.168.0.2 port 4444
1525
-serial tcp:192.168.0.2:4444
1526
@item Example to listen and wait on port 4444 for connection
1527
-serial tcp::4444,server
1528
@item Example to not wait and listen on ip 192.168.0.100 port 4444
1529
-serial tcp:192.168.0.100:4444,server,nowait
1530
@end table
1531

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

    
1541
@item unix:@var{path}[,server][,nowait]
1542
A unix domain socket is used instead of a tcp socket.  The option works the
1543
same as if you had specified @code{-serial tcp} except the unix domain socket
1544
@var{path} is used for connections.
1545

    
1546
@item mon:@var{dev_string}
1547
This is a special option to allow the monitor to be multiplexed onto
1548
another serial port.  The monitor is accessed with key sequence of
1549
@key{Control-a} and then pressing @key{c}. See monitor access
1550
@ref{pcsys_keys} in the -nographic section for more keys.
1551
@var{dev_string} should be any one of the serial devices specified
1552
above.  An example to multiplex the monitor onto a telnet server
1553
listening on port 4444 would be:
1554
@table @code
1555
@item -serial mon:telnet::4444,server,nowait
1556
@end table
1557

    
1558
@item braille
1559
Braille device.  This will use BrlAPI to display the braille output on a real
1560
or fake device.
1561

    
1562
@item msmouse
1563
Three button serial mouse. Configure the guest to use Microsoft protocol.
1564
@end table
1565
ETEXI
1566

    
1567
DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
1568
    "-parallel dev   redirect the parallel port to char device 'dev'\n")
1569
STEXI
1570
@item -parallel @var{dev}
1571
Redirect the virtual parallel port to host device @var{dev} (same
1572
devices as the serial port). On Linux hosts, @file{/dev/parportN} can
1573
be used to use hardware devices connected on the corresponding host
1574
parallel port.
1575

    
1576
This option can be used several times to simulate up to 3 parallel
1577
ports.
1578

    
1579
Use @code{-parallel none} to disable all parallel ports.
1580
ETEXI
1581

    
1582
DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
1583
    "-monitor [control,]dev    redirect the monitor to char device 'dev'\n")
1584
STEXI
1585
@item -monitor [@var{control},]@var{dev}
1586
Redirect the monitor to host device @var{dev} (same devices as the
1587
serial port).
1588
The default device is @code{vc} in graphical mode and @code{stdio} in
1589
non graphical mode.
1590
The option @var{control} enables the QEMU Monitor Protocol.
1591
ETEXI
1592

    
1593
DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
1594
    "-pidfile file   write PID to 'file'\n")
1595
STEXI
1596
@item -pidfile @var{file}
1597
Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
1598
from a script.
1599
ETEXI
1600

    
1601
DEF("singlestep", 0, QEMU_OPTION_singlestep, \
1602
    "-singlestep   always run in singlestep mode\n")
1603
STEXI
1604
@item -singlestep
1605
Run the emulation in single step mode.
1606
ETEXI
1607

    
1608
DEF("S", 0, QEMU_OPTION_S, \
1609
    "-S              freeze CPU at startup (use 'c' to start execution)\n")
1610
STEXI
1611
@item -S
1612
Do not start CPU at startup (you must type 'c' in the monitor).
1613
ETEXI
1614

    
1615
DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
1616
    "-gdb dev        wait for gdb connection on 'dev'\n")
1617
STEXI
1618
@item -gdb @var{dev}
1619
Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
1620
connections will likely be TCP-based, but also UDP, pseudo TTY, or even
1621
stdio are reasonable use case. The latter is allowing to start qemu from
1622
within gdb and establish the connection via a pipe:
1623
@example
1624
(gdb) target remote | exec qemu -gdb stdio ...
1625
@end example
1626
ETEXI
1627

    
1628
DEF("s", 0, QEMU_OPTION_s, \
1629
    "-s              shorthand for -gdb tcp::%s\n")
1630
STEXI
1631
@item -s
1632
Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
1633
(@pxref{gdb_usage}).
1634
ETEXI
1635

    
1636
DEF("d", HAS_ARG, QEMU_OPTION_d, \
1637
    "-d item1,...    output log to %s (use -d ? for a list of log items)\n")
1638
STEXI
1639
@item -d
1640
Output log in /tmp/qemu.log
1641
ETEXI
1642

    
1643
DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
1644
    "-hdachs c,h,s[,t]\n" \
1645
    "                force hard disk 0 physical geometry and the optional BIOS\n" \
1646
    "                translation (t=none or lba) (usually qemu can guess them)\n")
1647
STEXI
1648
@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
1649
Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
1650
@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
1651
translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
1652
all those parameters. This option is useful for old MS-DOS disk
1653
images.
1654
ETEXI
1655

    
1656
DEF("L", HAS_ARG, QEMU_OPTION_L, \
1657
    "-L path         set the directory for the BIOS, VGA BIOS and keymaps\n")
1658
STEXI
1659
@item -L  @var{path}
1660
Set the directory for the BIOS, VGA BIOS and keymaps.
1661
ETEXI
1662

    
1663
DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
1664
    "-bios file      set the filename for the BIOS\n")
1665
STEXI
1666
@item -bios @var{file}
1667
Set the filename for the BIOS.
1668
ETEXI
1669

    
1670
#ifdef CONFIG_KVM
1671
DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
1672
    "-enable-kvm     enable KVM full virtualization support\n")
1673
#endif
1674
STEXI
1675
@item -enable-kvm
1676
Enable KVM full virtualization support. This option is only available
1677
if KVM support is enabled when compiling.
1678
ETEXI
1679

    
1680
#ifdef CONFIG_XEN
1681
DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
1682
    "-xen-domid id   specify xen guest domain id\n")
1683
DEF("xen-create", 0, QEMU_OPTION_xen_create,
1684
    "-xen-create     create domain using xen hypercalls, bypassing xend\n"
1685
    "                warning: should not be used when xend is in use\n")
1686
DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
1687
    "-xen-attach     attach to existing xen domain\n"
1688
    "                xend will use this when starting qemu\n")
1689
#endif
1690

    
1691
DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
1692
    "-no-reboot      exit instead of rebooting\n")
1693
STEXI
1694
@item -no-reboot
1695
Exit instead of rebooting.
1696
ETEXI
1697

    
1698
DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
1699
    "-no-shutdown    stop before shutdown\n")
1700
STEXI
1701
@item -no-shutdown
1702
Don't exit QEMU on guest shutdown, but instead only stop the emulation.
1703
This allows for instance switching to monitor to commit changes to the
1704
disk image.
1705
ETEXI
1706

    
1707
DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
1708
    "-loadvm [tag|id]\n" \
1709
    "                start right away with a saved state (loadvm in monitor)\n")
1710
STEXI
1711
@item -loadvm @var{file}
1712
Start right away with a saved state (@code{loadvm} in monitor)
1713
ETEXI
1714

    
1715
#ifndef _WIN32
1716
DEF("daemonize", 0, QEMU_OPTION_daemonize, \
1717
    "-daemonize      daemonize QEMU after initializing\n")
1718
#endif
1719
STEXI
1720
@item -daemonize
1721
Daemonize the QEMU process after initialization.  QEMU will not detach from
1722
standard IO until it is ready to receive connections on any of its devices.
1723
This option is a useful way for external programs to launch QEMU without having
1724
to cope with initialization race conditions.
1725
ETEXI
1726

    
1727
DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
1728
    "-option-rom rom load a file, rom, into the option ROM space\n")
1729
STEXI
1730
@item -option-rom @var{file}
1731
Load the contents of @var{file} as an option ROM.
1732
This option is useful to load things like EtherBoot.
1733
ETEXI
1734

    
1735
DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
1736
    "-clock          force the use of the given methods for timer alarm.\n" \
1737
    "                To see what timers are available use -clock ?\n")
1738
STEXI
1739
@item -clock @var{method}
1740
Force the use of the given methods for timer alarm. To see what timers
1741
are available use -clock ?.
1742
ETEXI
1743

    
1744
HXCOMM Options deprecated by -rtc
1745
DEF("localtime", 0, QEMU_OPTION_localtime, "")
1746
DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, "")
1747

    
1748
#ifdef TARGET_I386
1749
DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
1750
    "-rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew]\n" \
1751
    "                set the RTC base and clock, enable drift fix for clock ticks\n")
1752
#else
1753
DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
1754
    "-rtc [base=utc|localtime|date][,clock=host|vm]\n" \
1755
    "                set the RTC base and clock\n")
1756
#endif
1757

    
1758
STEXI
1759

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

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

    
1772
Enable @option{driftfix} (i386 targets only) if you experience time drift problems,
1773
specifically with Windows' ACPI HAL. This option will try to figure out how
1774
many timer interrupts were not processed by the Windows guest and will
1775
re-inject them.
1776
ETEXI
1777

    
1778
DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
1779
    "-icount [N|auto]\n" \
1780
    "                enable virtual instruction counter with 2^N clock ticks per\n" \
1781
    "                instruction\n")
1782
STEXI
1783
@item -icount [@var{N}|auto]
1784
Enable virtual instruction counter.  The virtual cpu will execute one
1785
instruction every 2^@var{N} ns of virtual time.  If @code{auto} is specified
1786
then the virtual cpu speed will be automatically adjusted to keep virtual
1787
time within a few seconds of real time.
1788

    
1789
Note that while this option can give deterministic behavior, it does not
1790
provide cycle accurate emulation.  Modern CPUs contain superscalar out of
1791
order cores with complex cache hierarchies.  The number of instructions
1792
executed often has little or no correlation with actual performance.
1793
ETEXI
1794

    
1795
DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
1796
    "-watchdog i6300esb|ib700\n" \
1797
    "                enable virtual hardware watchdog [default=none]\n")
1798
STEXI
1799
@item -watchdog @var{model}
1800
Create a virtual hardware watchdog device.  Once enabled (by a guest
1801
action), the watchdog must be periodically polled by an agent inside
1802
the guest or else the guest will be restarted.
1803

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

    
1810
Use @code{-watchdog ?} to list available hardware models.  Only one
1811
watchdog can be enabled for a guest.
1812
ETEXI
1813

    
1814
DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
1815
    "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
1816
    "                action when watchdog fires [default=reset]\n")
1817
STEXI
1818
@item -watchdog-action @var{action}
1819

    
1820
The @var{action} controls what QEMU will do when the watchdog timer
1821
expires.
1822
The default is
1823
@code{reset} (forcefully reset the guest).
1824
Other possible actions are:
1825
@code{shutdown} (attempt to gracefully shutdown the guest),
1826
@code{poweroff} (forcefully poweroff the guest),
1827
@code{pause} (pause the guest),
1828
@code{debug} (print a debug message and continue), or
1829
@code{none} (do nothing).
1830

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

    
1836
Examples:
1837

    
1838
@table @code
1839
@item -watchdog i6300esb -watchdog-action pause
1840
@item -watchdog ib700
1841
@end table
1842
ETEXI
1843

    
1844
DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
1845
    "-echr chr       set terminal escape character instead of ctrl-a\n")
1846
STEXI
1847

    
1848
@item -echr @var{numeric_ascii_value}
1849
Change the escape character used for switching to the monitor when using
1850
monitor and serial sharing.  The default is @code{0x01} when using the
1851
@code{-nographic} option.  @code{0x01} is equal to pressing
1852
@code{Control-a}.  You can select a different character from the ascii
1853
control keys where 1 through 26 map to Control-a through Control-z.  For
1854
instance you could use the either of the following to change the escape
1855
character to Control-t.
1856
@table @code
1857
@item -echr 0x14
1858
@item -echr 20
1859
@end table
1860
ETEXI
1861

    
1862
DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
1863
    "-virtioconsole c\n" \
1864
    "                set virtio console\n")
1865
STEXI
1866
@item -virtioconsole @var{c}
1867
Set virtio console.
1868
ETEXI
1869

    
1870
DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
1871
    "-show-cursor    show cursor\n")
1872
STEXI
1873
ETEXI
1874

    
1875
DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
1876
    "-tb-size n      set TB size\n")
1877
STEXI
1878
ETEXI
1879

    
1880
DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
1881
    "-incoming p     prepare for incoming migration, listen on port p\n")
1882
STEXI
1883
ETEXI
1884

    
1885
#ifndef _WIN32
1886
DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
1887
    "-chroot dir     Chroot to dir just before starting the VM.\n")
1888
#endif
1889
STEXI
1890
@item -chroot @var{dir}
1891
Immediately before starting guest execution, chroot to the specified
1892
directory.  Especially useful in combination with -runas.
1893
ETEXI
1894

    
1895
#ifndef _WIN32
1896
DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
1897
    "-runas user     Change to user id user just before starting the VM.\n")
1898
#endif
1899
STEXI
1900
@item -runas @var{user}
1901
Immediately before starting guest execution, drop root privileges, switching
1902
to the specified user.
1903
ETEXI
1904

    
1905
STEXI
1906
@end table
1907
ETEXI
1908

    
1909
#if defined(TARGET_SPARC) || defined(TARGET_PPC)
1910
DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
1911
    "-prom-env variable=value\n"
1912
    "                set OpenBIOS nvram variables\n")
1913
#endif
1914
#if defined(TARGET_ARM) || defined(TARGET_M68K)
1915
DEF("semihosting", 0, QEMU_OPTION_semihosting,
1916
    "-semihosting    semihosting mode\n")
1917
#endif
1918
#if defined(TARGET_ARM)
1919
DEF("old-param", 0, QEMU_OPTION_old_param,
1920
    "-old-param      old param mode\n")
1921
#endif
1922
DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
1923
    "-readconfig <file>\n")
1924
DEF("writeconfig", HAS_ARG, QEMU_OPTION_writeconfig,
1925
    "-writeconfig <file>\n"
1926
    "                read/write config file")