Statistics
| Branch: | Revision:

root / qemu-options.hx @ 8d533561

History | View | Annotate | Download (71.6 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
@findex -h
18
Display help and exit
19
ETEXI
20

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

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

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

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

    
66
DEF("numa", HAS_ARG, QEMU_OPTION_numa,
67
    "-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]\n")
68
STEXI
69
@item -numa @var{opts}
70
@findex -numa
71
Simulate a multi node NUMA system. If mem and cpus are omitted, resources
72
are split equally.
73
ETEXI
74

    
75
DEF("fda", HAS_ARG, QEMU_OPTION_fda,
76
    "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n")
77
DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "")
78
STEXI
79
@item -fda @var{file}
80
@item -fdb @var{file}
81
@findex -fda
82
@findex -fdb
83
Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
84
use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
85
ETEXI
86

    
87
DEF("hda", HAS_ARG, QEMU_OPTION_hda,
88
    "-hda/-hdb file  use 'file' as IDE hard disk 0/1 image\n")
89
DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "")
90
DEF("hdc", HAS_ARG, QEMU_OPTION_hdc,
91
    "-hdc/-hdd file  use 'file' as IDE hard disk 2/3 image\n")
92
DEF("hdd", HAS_ARG, QEMU_OPTION_hdd, "")
93
STEXI
94
@item -hda @var{file}
95
@item -hdb @var{file}
96
@item -hdc @var{file}
97
@item -hdd @var{file}
98
@findex -hda
99
@findex -hdb
100
@findex -hdc
101
@findex -hdd
102
Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
103
ETEXI
104

    
105
DEF("cdrom", HAS_ARG, QEMU_OPTION_cdrom,
106
    "-cdrom file     use 'file' as IDE cdrom image (cdrom is ide1 master)\n")
107
STEXI
108
@item -cdrom @var{file}
109
@findex -cdrom
110
Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and
111
@option{-cdrom} at the same time). You can use the host CD-ROM by
112
using @file{/dev/cdrom} as filename (@pxref{host_drives}).
113
ETEXI
114

    
115
DEF("drive", HAS_ARG, QEMU_OPTION_drive,
116
    "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]\n"
117
    "       [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n"
118
    "       [,cache=writethrough|writeback|none][,format=f][,serial=s]\n"
119
    "       [,addr=A][,id=name][,aio=threads|native][,readonly=on|off]\n"
120
    "                use 'file' as a drive image\n")
121
STEXI
122
@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
123
@findex -drive
124

    
125
Define a new drive. Valid options are:
126

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

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

    
166
Writeback caching will report data writes as completed as soon as the data is
167
present in the host page cache.  This is safe as long as you trust your host.
168
If your host crashes or loses power, then the guest may experience data
169
corruption.  When using the @option{-snapshot} option, writeback caching is
170
used by default.
171

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

    
176
Some block drivers perform badly with @option{cache=writethrough}, most notably,
177
qcow2.  If performance is more important than correctness,
178
@option{cache=writeback} should be used with qcow2.
179

    
180
Instead of @option{-cdrom} you can use:
181
@example
182
qemu -drive file=file,index=2,media=cdrom
183
@end example
184

    
185
Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
186
use:
187
@example
188
qemu -drive file=file,index=0,media=disk
189
qemu -drive file=file,index=1,media=disk
190
qemu -drive file=file,index=2,media=disk
191
qemu -drive file=file,index=3,media=disk
192
@end example
193

    
194
You can connect a CDROM to the slave of ide0:
195
@example
196
qemu -drive file=file,if=ide,index=1,media=cdrom
197
@end example
198

    
199
If you don't specify the "file=" argument, you define an empty drive:
200
@example
201
qemu -drive if=ide,index=1,media=cdrom
202
@end example
203

    
204
You can connect a SCSI disk with unit ID 6 on the bus #0:
205
@example
206
qemu -drive file=file,if=scsi,bus=0,unit=6
207
@end example
208

    
209
Instead of @option{-fda}, @option{-fdb}, you can use:
210
@example
211
qemu -drive file=file,index=0,if=floppy
212
qemu -drive file=file,index=1,if=floppy
213
@end example
214

    
215
By default, @var{interface} is "ide" and @var{index} is automatically
216
incremented:
217
@example
218
qemu -drive file=a -drive file=b"
219
@end example
220
is interpreted like:
221
@example
222
qemu -hda a -hdb b
223
@end example
224
ETEXI
225

    
226
DEF("set", HAS_ARG, QEMU_OPTION_set,
227
    "-set group.id.arg=value\n"
228
    "                set <arg> parameter for item <id> of type <group>\n"
229
    "                i.e. -set drive.$id.file=/path/to/image\n")
230
STEXI
231
@item -set
232
@findex -set
233
TODO
234
ETEXI
235

    
236
DEF("global", HAS_ARG, QEMU_OPTION_global,
237
    "-global driver.property=value\n"
238
    "                set a global default for a driver property\n")
239
STEXI
240
@item -global
241
@findex -global
242
TODO
243
ETEXI
244

    
245
DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
246
    "-mtdblock file  use 'file' as on-board Flash memory image\n")
247
STEXI
248
@item -mtdblock @var{file}
249
@findex -mtdblock
250
Use @var{file} as on-board Flash memory image.
251
ETEXI
252

    
253
DEF("sd", HAS_ARG, QEMU_OPTION_sd,
254
    "-sd file        use 'file' as SecureDigital card image\n")
255
STEXI
256
@item -sd @var{file}
257
@findex -sd
258
Use @var{file} as SecureDigital card image.
259
ETEXI
260

    
261
DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
262
    "-pflash file    use 'file' as a parallel flash image\n")
263
STEXI
264
@item -pflash @var{file}
265
@findex -pflash
266
Use @var{file} as a parallel flash image.
267
ETEXI
268

    
269
DEF("boot", HAS_ARG, QEMU_OPTION_boot,
270
    "-boot [order=drives][,once=drives][,menu=on|off]\n"
271
    "                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n")
272
STEXI
273
@item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off]
274
@findex -boot
275
Specify boot order @var{drives} as a string of drive letters. Valid
276
drive letters depend on the target achitecture. The x86 PC uses: a, b
277
(floppy 1 and 2), c (first hard disk), d (first CD-ROM), n-p (Etherboot
278
from network adapter 1-4), hard disk boot is the default. To apply a
279
particular boot order only on the first startup, specify it via
280
@option{once}.
281

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

    
285
@example
286
# try to boot from network first, then from hard disk
287
qemu -boot order=nc
288
# boot from CD-ROM first, switch back to default order after reboot
289
qemu -boot once=d
290
@end example
291

    
292
Note: The legacy format '-boot @var{drives}' is still supported but its
293
use is discouraged as it may be removed from future versions.
294
ETEXI
295

    
296
DEF("snapshot", 0, QEMU_OPTION_snapshot,
297
    "-snapshot       write to temporary files instead of disk image files\n")
298
STEXI
299
@item -snapshot
300
@findex -snapshot
301
Write to temporary files instead of disk image files. In this case,
302
the raw disk image you use is not written back. You can however force
303
the write back by pressing @key{C-a s} (@pxref{disk_images}).
304
ETEXI
305

    
306
DEF("m", HAS_ARG, QEMU_OPTION_m,
307
    "-m megs         set virtual RAM size to megs MB [default="
308
    stringify(DEFAULT_RAM_SIZE) "]\n")
309
STEXI
310
@item -m @var{megs}
311
@findex -m
312
Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB.  Optionally,
313
a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
314
gigabytes respectively.
315
ETEXI
316

    
317
DEF("mem-path", HAS_ARG, QEMU_OPTION_mempath,
318
    "-mem-path FILE  provide backing storage for guest RAM\n")
319
STEXI
320
@item -mem-path @var{path}
321
Allocate guest RAM from a temporarily created file in @var{path}.
322
ETEXI
323

    
324
#ifdef MAP_POPULATE
325
DEF("mem-prealloc", 0, QEMU_OPTION_mem_prealloc,
326
    "-mem-prealloc   preallocate guest memory (use with -mem-path)\n")
327
STEXI
328
@item -mem-prealloc
329
Preallocate memory when using -mem-path.
330
ETEXI
331
#endif
332

    
333
DEF("k", HAS_ARG, QEMU_OPTION_k,
334
    "-k language     use keyboard layout (for example 'fr' for French)\n")
335
STEXI
336
@item -k @var{language}
337
@findex -k
338
Use keyboard layout @var{language} (for example @code{fr} for
339
French). This option is only needed where it is not easy to get raw PC
340
keycodes (e.g. on Macs, with some X11 servers or with a VNC
341
display). You don't normally need to use it on PC/Linux or PC/Windows
342
hosts.
343

    
344
The available layouts are:
345
@example
346
ar  de-ch  es  fo     fr-ca  hu  ja  mk     no  pt-br  sv
347
da  en-gb  et  fr     fr-ch  is  lt  nl     pl  ru     th
348
de  en-us  fi  fr-be  hr     it  lv  nl-be  pt  sl     tr
349
@end example
350

    
351
The default is @code{en-us}.
352
ETEXI
353

    
354

    
355
#ifdef HAS_AUDIO
356
DEF("audio-help", 0, QEMU_OPTION_audio_help,
357
    "-audio-help     print list of audio drivers and their options\n")
358
#endif
359
STEXI
360
@item -audio-help
361
@findex -audio-help
362
Will show the audio subsystem help: list of drivers, tunable
363
parameters.
364
ETEXI
365

    
366
#ifdef HAS_AUDIO
367
DEF("soundhw", HAS_ARG, QEMU_OPTION_soundhw,
368
    "-soundhw c1,... enable audio support\n"
369
    "                and only specified sound cards (comma separated list)\n"
370
    "                use -soundhw ? to get the list of supported cards\n"
371
    "                use -soundhw all to enable all of them\n")
372
#endif
373
STEXI
374
@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
375
@findex -soundhw
376
Enable audio and selected sound hardware. Use ? to print all
377
available sound hardware.
378

    
379
@example
380
qemu -soundhw sb16,adlib disk.img
381
qemu -soundhw es1370 disk.img
382
qemu -soundhw ac97 disk.img
383
qemu -soundhw all disk.img
384
qemu -soundhw ?
385
@end example
386

    
387
Note that Linux's i810_audio OSS kernel (for AC97) module might
388
require manually specifying clocking.
389

    
390
@example
391
modprobe i810_audio clocking=48000
392
@end example
393
ETEXI
394

    
395
STEXI
396
@end table
397
ETEXI
398

    
399
DEF("usb", 0, QEMU_OPTION_usb,
400
    "-usb            enable the USB driver (will be the default soon)\n")
401
STEXI
402
USB options:
403
@table @option
404

    
405
@item -usb
406
@findex -usb
407
Enable the USB driver (will be the default soon)
408
ETEXI
409

    
410
DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
411
    "-usbdevice name add the host or guest USB device 'name'\n")
412
STEXI
413

    
414
@item -usbdevice @var{devname}
415
@findex -usbdevice
416
Add the USB device @var{devname}. @xref{usb_devices}.
417

    
418
@table @option
419

    
420
@item mouse
421
Virtual Mouse. This will override the PS/2 mouse emulation when activated.
422

    
423
@item tablet
424
Pointer device that uses absolute coordinates (like a touchscreen). This
425
means qemu is able to report the mouse position without having to grab the
426
mouse. Also overrides the PS/2 mouse emulation when activated.
427

    
428
@item disk:[format=@var{format}]:@var{file}
429
Mass storage device based on file. The optional @var{format} argument
430
will be used rather than detecting the format. Can be used to specifiy
431
@code{format=raw} to avoid interpreting an untrusted format header.
432

    
433
@item host:@var{bus}.@var{addr}
434
Pass through the host device identified by @var{bus}.@var{addr} (Linux only).
435

    
436
@item host:@var{vendor_id}:@var{product_id}
437
Pass through the host device identified by @var{vendor_id}:@var{product_id}
438
(Linux only).
439

    
440
@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
441
Serial converter to host character device @var{dev}, see @code{-serial} for the
442
available devices.
443

    
444
@item braille
445
Braille device.  This will use BrlAPI to display the braille output on a real
446
or fake device.
447

    
448
@item net:@var{options}
449
Network adapter that supports CDC ethernet and RNDIS protocols.
450

    
451
@end table
452
ETEXI
453

    
454
DEF("device", HAS_ARG, QEMU_OPTION_device,
455
    "-device driver[,prop[=value][,...]]\n"
456
    "                add device (based on driver)\n"
457
    "                prop=value,... sets driver properties\n"
458
    "                use -device ? to print all possible drivers\n"
459
    "                use -device driver,? to print all possible options\n"
460
    "                use -device driver,option=? to print a help for value\n")
461
STEXI
462
@item -device @var{driver}[,@var{option}[=@var{value}][,...]]
463
@findex -device
464
Add device @var{driver}. Depending on the device type,
465
@var{option} (with default or given @var{value}) may be useful.
466
To get a help on possible @var{driver}s, @var{option}s or @var{value}s, use
467
@code{-device ?},
468
@code{-device @var{driver},?} or
469
@code{-device @var{driver},@var{option}=?}. 
470
ETEXI
471

    
472
DEF("name", HAS_ARG, QEMU_OPTION_name,
473
    "-name string1[,process=string2]\n"
474
    "                set the name of the guest\n"
475
    "                string1 sets the window title and string2 the process name (on Linux)\n")
476
STEXI
477
@item -name @var{name}
478
@findex -name
479
Sets the @var{name} of the guest.
480
This name will be displayed in the SDL window caption.
481
The @var{name} will also be used for the VNC server.
482
Also optionally set the top visible process name in Linux.
483
ETEXI
484

    
485
DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
486
    "-uuid %08x-%04x-%04x-%04x-%012x\n"
487
    "                specify machine UUID\n")
488
STEXI
489
@item -uuid @var{uuid}
490
@findex -uuid
491
Set system UUID.
492
ETEXI
493

    
494
STEXI
495
@end table
496
ETEXI
497

    
498
DEFHEADING()
499

    
500
DEFHEADING(Display options:)
501

    
502
STEXI
503
@table @option
504
ETEXI
505

    
506
DEF("nographic", 0, QEMU_OPTION_nographic,
507
    "-nographic      disable graphical output and redirect serial I/Os to console\n")
508
STEXI
509
@item -nographic
510
@findex -nographic
511
Normally, QEMU uses SDL to display the VGA output. With this option,
512
you can totally disable graphical output so that QEMU is a simple
513
command line application. The emulated serial port is redirected on
514
the console. Therefore, you can still use QEMU to debug a Linux kernel
515
with a serial console.
516
ETEXI
517

    
518
#ifdef CONFIG_CURSES
519
DEF("curses", 0, QEMU_OPTION_curses,
520
    "-curses         use a curses/ncurses interface instead of SDL\n")
521
#endif
522
STEXI
523
@item -curses
524
@findex curses
525
Normally, QEMU uses SDL to display the VGA output.  With this option,
526
QEMU can display the VGA output when in text mode using a
527
curses/ncurses interface.  Nothing is displayed in graphical mode.
528
ETEXI
529

    
530
#ifdef CONFIG_SDL
531
DEF("no-frame", 0, QEMU_OPTION_no_frame,
532
    "-no-frame       open SDL window without a frame and window decorations\n")
533
#endif
534
STEXI
535
@item -no-frame
536
@findex -no-frame
537
Do not use decorations for SDL windows and start them using the whole
538
available screen space. This makes the using QEMU in a dedicated desktop
539
workspace more convenient.
540
ETEXI
541

    
542
#ifdef CONFIG_SDL
543
DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
544
    "-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n")
545
#endif
546
STEXI
547
@item -alt-grab
548
@findex -alt-grab
549
Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt).
550
ETEXI
551

    
552
#ifdef CONFIG_SDL
553
DEF("ctrl-grab", 0, QEMU_OPTION_ctrl_grab,
554
    "-ctrl-grab      use Right-Ctrl to grab mouse (instead of Ctrl-Alt)\n")
555
#endif
556
STEXI
557
@item -ctrl-grab
558
@findex -ctrl-grab
559
Use Right-Ctrl to grab mouse (instead of Ctrl-Alt).
560
ETEXI
561

    
562
#ifdef CONFIG_SDL
563
DEF("no-quit", 0, QEMU_OPTION_no_quit,
564
    "-no-quit        disable SDL window close capability\n")
565
#endif
566
STEXI
567
@item -no-quit
568
@findex -no-quit
569
Disable SDL window close capability.
570
ETEXI
571

    
572
#ifdef CONFIG_SDL
573
DEF("sdl", 0, QEMU_OPTION_sdl,
574
    "-sdl            enable SDL\n")
575
#endif
576
STEXI
577
@item -sdl
578
@findex -sdl
579
Enable SDL.
580
ETEXI
581

    
582
DEF("portrait", 0, QEMU_OPTION_portrait,
583
    "-portrait       rotate graphical output 90 deg left (only PXA LCD)\n")
584
STEXI
585
@item -portrait
586
@findex -portrait
587
Rotate graphical output 90 deg left (only PXA LCD).
588
ETEXI
589

    
590
DEF("vga", HAS_ARG, QEMU_OPTION_vga,
591
    "-vga [std|cirrus|vmware|xenfb|none]\n"
592
    "                select video card type\n")
593
STEXI
594
@item -vga @var{type}
595
@findex -vga
596
Select type of VGA card to emulate. Valid values for @var{type} are
597
@table @option
598
@item cirrus
599
Cirrus Logic GD5446 Video card. All Windows versions starting from
600
Windows 95 should recognize and use this graphic card. For optimal
601
performances, use 16 bit color depth in the guest and the host OS.
602
(This one is the default)
603
@item std
604
Standard VGA card with Bochs VBE extensions.  If your guest OS
605
supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want
606
to use high resolution modes (>= 1280x1024x16) then you should use
607
this option.
608
@item vmware
609
VMWare SVGA-II compatible adapter. Use it if you have sufficiently
610
recent XFree86/XOrg server or Windows guest with a driver for this
611
card.
612
@item none
613
Disable VGA card.
614
@end table
615
ETEXI
616

    
617
DEF("full-screen", 0, QEMU_OPTION_full_screen,
618
    "-full-screen    start in full screen\n")
619
STEXI
620
@item -full-screen
621
@findex -full-screen
622
Start in full screen.
623
ETEXI
624

    
625
#if defined(TARGET_PPC) || defined(TARGET_SPARC)
626
DEF("g", 1, QEMU_OPTION_g ,
627
    "-g WxH[xDEPTH]  Set the initial graphical resolution and depth\n")
628
#endif
629
STEXI
630
@item -g @var{width}x@var{height}[x@var{depth}]
631
@findex -g
632
Set the initial graphical resolution and depth (PPC, SPARC only).
633
ETEXI
634

    
635
DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
636
    "-vnc display    start a VNC server on display\n")
637
STEXI
638
@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
639
@findex -vnc
640
Normally, QEMU uses SDL to display the VGA output.  With this option,
641
you can have QEMU listen on VNC display @var{display} and redirect the VGA
642
display over the VNC session.  It is very useful to enable the usb
643
tablet device when using this option (option @option{-usbdevice
644
tablet}). When using the VNC display, you must use the @option{-k}
645
parameter to set the keyboard layout if you are not using en-us. Valid
646
syntax for the @var{display} is
647

    
648
@table @option
649

    
650
@item @var{host}:@var{d}
651

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

    
656
@item unix:@var{path}
657

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

    
661
@item none
662

    
663
VNC is initialized but not started. The monitor @code{change} command
664
can be used to later start the VNC server.
665

    
666
@end table
667

    
668
Following the @var{display} value there may be one or more @var{option} flags
669
separated by commas. Valid options are
670

    
671
@table @option
672

    
673
@item reverse
674

    
675
Connect to a listening VNC client via a ``reverse'' connection. The
676
client is specified by the @var{display}. For reverse network
677
connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
678
is a TCP port number, not a display number.
679

    
680
@item password
681

    
682
Require that password based authentication is used for client connections.
683
The password must be set separately using the @code{change} command in the
684
@ref{pcsys_monitor}
685

    
686
@item tls
687

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

    
693
@item x509=@var{/path/to/certificate/dir}
694

    
695
Valid if @option{tls} is specified. Require that x509 credentials are used
696
for negotiating the TLS session. The server will send its x509 certificate
697
to the client. It is recommended that a password be set on the VNC server
698
to provide authentication of the client when this is used. The path following
699
this option specifies where the x509 certificates are to be loaded from.
700
See the @ref{vnc_security} section for details on generating certificates.
701

    
702
@item x509verify=@var{/path/to/certificate/dir}
703

    
704
Valid if @option{tls} is specified. Require that x509 credentials are used
705
for negotiating the TLS session. The server will send its x509 certificate
706
to the client, and request that the client send its own x509 certificate.
707
The server will validate the client's certificate against the CA certificate,
708
and reject clients when validation fails. If the certificate authority is
709
trusted, this is a sufficient authentication mechanism. You may still wish
710
to set a password on the VNC server as a second authentication layer. The
711
path following this option specifies where the x509 certificates are to
712
be loaded from. See the @ref{vnc_security} section for details on generating
713
certificates.
714

    
715
@item sasl
716

    
717
Require that the client use SASL to authenticate with the VNC server.
718
The exact choice of authentication method used is controlled from the
719
system / user's SASL configuration file for the 'qemu' service. This
720
is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
721
unprivileged user, an environment variable SASL_CONF_PATH can be used
722
to make it search alternate locations for the service config.
723
While some SASL auth methods can also provide data encryption (eg GSSAPI),
724
it is recommended that SASL always be combined with the 'tls' and
725
'x509' settings to enable use of SSL and server certificates. This
726
ensures a data encryption preventing compromise of authentication
727
credentials. See the @ref{vnc_security} section for details on using
728
SASL authentication.
729

    
730
@item acl
731

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

    
743
@end table
744
ETEXI
745

    
746
STEXI
747
@end table
748
ETEXI
749

    
750
DEFHEADING()
751

    
752
#ifdef TARGET_I386
753
DEFHEADING(i386 target only:)
754
#endif
755
STEXI
756
@table @option
757
ETEXI
758

    
759
#ifdef TARGET_I386
760
DEF("win2k-hack", 0, QEMU_OPTION_win2k_hack,
761
    "-win2k-hack     use it when installing Windows 2000 to avoid a disk full bug\n")
762
#endif
763
STEXI
764
@item -win2k-hack
765
@findex -win2k-hack
766
Use it when installing Windows 2000 to avoid a disk full bug. After
767
Windows 2000 is installed, you no longer need this option (this option
768
slows down the IDE transfers).
769
ETEXI
770

    
771
#ifdef TARGET_I386
772
HXCOMM Deprecated by -rtc
773
DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack, "")
774
#endif
775

    
776
#ifdef TARGET_I386
777
DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
778
    "-no-fd-bootchk  disable boot signature checking for floppy disks\n")
779
#endif
780
STEXI
781
@item -no-fd-bootchk
782
@findex -no-fd-bootchk
783
Disable boot signature checking for floppy disks in Bochs BIOS. It may
784
be needed to boot from old floppy disks.
785
TODO: check reference to Bochs BIOS.
786
ETEXI
787

    
788
#ifdef TARGET_I386
789
DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
790
           "-no-acpi        disable ACPI\n")
791
#endif
792
STEXI
793
@item -no-acpi
794
@findex -no-acpi
795
Disable ACPI (Advanced Configuration and Power Interface) support. Use
796
it if your guest OS complains about ACPI problems (PC target machine
797
only).
798
ETEXI
799

    
800
#ifdef TARGET_I386
801
DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
802
    "-no-hpet        disable HPET\n")
803
#endif
804
STEXI
805
@item -no-hpet
806
@findex -no-hpet
807
Disable HPET support.
808
ETEXI
809

    
810
#ifdef TARGET_I386
811
DEF("balloon", HAS_ARG, QEMU_OPTION_balloon,
812
    "-balloon none   disable balloon device\n"
813
    "-balloon virtio[,addr=str]\n"
814
    "                enable virtio balloon device (default)\n")
815
#endif
816
STEXI
817
@item -balloon none
818
@findex -balloon
819
Disable balloon device.
820
@item -balloon virtio[,addr=@var{addr}]
821
Enable virtio balloon device (default), optionally with PCI address
822
@var{addr}.
823
ETEXI
824

    
825
#ifdef TARGET_I386
826
DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
827
    "-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"
828
    "                ACPI table description\n")
829
#endif
830
STEXI
831
@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}]...]
832
@findex -acpitable
833
Add ACPI table with specified header fields and context from specified files.
834
ETEXI
835

    
836
#ifdef TARGET_I386
837
DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
838
    "-smbios file=binary\n"
839
    "                load SMBIOS entry from binary file\n"
840
    "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]\n"
841
    "                specify SMBIOS type 0 fields\n"
842
    "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n"
843
    "              [,uuid=uuid][,sku=str][,family=str]\n"
844
    "                specify SMBIOS type 1 fields\n")
845
#endif
846
STEXI
847
@item -smbios file=@var{binary}
848
@findex -smbios
849
Load SMBIOS entry from binary file.
850

    
851
@item -smbios type=0[,vendor=@var{str}][,version=@var{str}][,date=@var{str}][,release=@var{%d.%d}]
852
@findex -smbios
853
Specify SMBIOS type 0 fields
854

    
855
@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}]
856
Specify SMBIOS type 1 fields
857
ETEXI
858

    
859
#ifdef TARGET_I386
860
DEFHEADING()
861
#endif
862
STEXI
863
@end table
864
ETEXI
865

    
866
DEFHEADING(Network options:)
867
STEXI
868
@table @option
869
ETEXI
870

    
871
HXCOMM Legacy slirp options (now moved to -net user):
872
#ifdef CONFIG_SLIRP
873
DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, "")
874
DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, "")
875
DEF("redir", HAS_ARG, QEMU_OPTION_redir, "")
876
#ifndef _WIN32
877
DEF("smb", HAS_ARG, QEMU_OPTION_smb, "")
878
#endif
879
#endif
880

    
881
DEF("net", HAS_ARG, QEMU_OPTION_net,
882
    "-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]\n"
883
    "                create a new Network Interface Card and connect it to VLAN 'n'\n"
884
#ifdef CONFIG_SLIRP
885
    "-net user[,vlan=n][,name=str][,net=addr[/mask]][,host=addr][,restrict=y|n]\n"
886
    "         [,hostname=host][,dhcpstart=addr][,dns=addr][,tftp=dir][,bootfile=f]\n"
887
    "         [,hostfwd=rule][,guestfwd=rule]"
888
#ifndef _WIN32
889
                                             "[,smb=dir[,smbserver=addr]]\n"
890
#endif
891
    "                connect the user mode network stack to VLAN 'n', configure its\n"
892
    "                DHCP server and enabled optional services\n"
893
#endif
894
#ifdef _WIN32
895
    "-net tap[,vlan=n][,name=str],ifname=name\n"
896
    "                connect the host TAP network interface to VLAN 'n'\n"
897
#else
898
    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,sndbuf=nbytes][,vnet_hdr=on|off]\n"
899
    "                connect the host TAP network interface to VLAN 'n' and use the\n"
900
    "                network scripts 'file' (default=" DEFAULT_NETWORK_SCRIPT ")\n"
901
    "                and 'dfile' (default=" DEFAULT_NETWORK_DOWN_SCRIPT ")\n"
902
    "                use '[down]script=no' to disable script execution\n"
903
    "                use 'fd=h' to connect to an already opened TAP interface\n"
904
    "                use 'sndbuf=nbytes' to limit the size of the send buffer (the\n"
905
    "                default of 'sndbuf=1048576' can be disabled using 'sndbuf=0')\n"
906
    "                use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag\n"
907
    "                use vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition\n"
908
#endif
909
    "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
910
    "                connect the vlan 'n' to another VLAN using a socket connection\n"
911
    "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n"
912
    "                connect the vlan 'n' to multicast maddr and port\n"
913
#ifdef CONFIG_VDE
914
    "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
915
    "                connect the vlan 'n' to port 'n' of a vde switch running\n"
916
    "                on host and listening for incoming connections on 'socketpath'.\n"
917
    "                Use group 'groupname' and mode 'octalmode' to change default\n"
918
    "                ownership and permissions for communication port.\n"
919
#endif
920
    "-net dump[,vlan=n][,file=f][,len=n]\n"
921
    "                dump traffic on vlan 'n' to file 'f' (max n bytes per packet)\n"
922
    "-net none       use it alone to have zero network devices. If no -net option\n"
923
    "                is provided, the default is '-net nic -net user'\n")
924
DEF("netdev", HAS_ARG, QEMU_OPTION_netdev,
925
    "-netdev ["
926
#ifdef CONFIG_SLIRP
927
    "user|"
928
#endif
929
    "tap|"
930
#ifdef CONFIG_VDE
931
    "vde|"
932
#endif
933
    "socket],id=str[,option][,option][,...]\n")
934
STEXI
935
@item -net nic[,vlan=@var{n}][,macaddr=@var{mac}][,model=@var{type}] [,name=@var{name}][,addr=@var{addr}][,vectors=@var{v}]
936
@findex -net
937
Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
938
= 0 is the default). The NIC is an e1000 by default on the PC
939
target. Optionally, the MAC address can be changed to @var{mac}, the
940
device address set to @var{addr} (PCI cards only),
941
and a @var{name} can be assigned for use in monitor commands.
942
Optionally, for PCI cards, you can specify the number @var{v} of MSI-X vectors
943
that the card should have; this option currently only affects virtio cards; set
944
@var{v} = 0 to disable MSI-X. If no @option{-net} option is specified, a single
945
NIC is created.  Qemu can emulate several different models of network card.
946
Valid values for @var{type} are
947
@code{virtio}, @code{i82551}, @code{i82557b}, @code{i82559er},
948
@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
949
@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.
950
Not all devices are supported on all targets.  Use -net nic,model=?
951
for a list of available devices for your target.
952

    
953
@item -net user[,@var{option}][,@var{option}][,...]
954
Use the user mode network stack which requires no administrator
955
privilege to run. Valid options are:
956

    
957
@table @option
958
@item vlan=@var{n}
959
Connect user mode stack to VLAN @var{n} (@var{n} = 0 is the default).
960

    
961
@item name=@var{name}
962
Assign symbolic name for use in monitor commands.
963

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

    
969
@item host=@var{addr}
970
Specify the guest-visible address of the host. Default is the 2nd IP in the
971
guest network, i.e. x.x.x.2.
972

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

    
978
@item hostname=@var{name}
979
Specifies the client hostname reported by the builtin DHCP server.
980

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

    
985
@item dns=@var{addr}
986
Specify the guest-visible address of the virtual nameserver. The address must
987
be different from the host address. Default is the 3rd IP in the guest network,
988
i.e. x.x.x.3.
989

    
990
@item tftp=@var{dir}
991
When using the user mode network stack, activate a built-in TFTP
992
server. The files in @var{dir} will be exposed as the root of a TFTP server.
993
The TFTP client on the guest must be configured in binary mode (use the command
994
@code{bin} of the Unix TFTP client).
995

    
996
@item bootfile=@var{file}
997
When using the user mode network stack, broadcast @var{file} as the BOOTP
998
filename. In conjunction with @option{tftp}, this can be used to network boot
999
a guest from a local directory.
1000

    
1001
Example (using pxelinux):
1002
@example
1003
qemu -hda linux.img -boot n -net user,tftp=/path/to/tftp/files,bootfile=/pxelinux.0
1004
@end example
1005

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

    
1012
In the guest Windows OS, the line:
1013
@example
1014
10.0.2.4 smbserver
1015
@end example
1016
must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
1017
or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
1018

    
1019
Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
1020

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

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

    
1033
For example, to redirect host X11 connection from screen 1 to guest
1034
screen 0, use the following:
1035

    
1036
@example
1037
# on the host
1038
qemu -net user,hostfwd=tcp:127.0.0.1:6001-:6000 [...]
1039
# this host xterm should open in the guest X11 server
1040
xterm -display :1
1041
@end example
1042

    
1043
To redirect telnet connections from host port 5555 to telnet port on
1044
the guest, use the following:
1045

    
1046
@example
1047
# on the host
1048
qemu -net user,hostfwd=tcp::5555-:23 [...]
1049
telnet localhost 5555
1050
@end example
1051

    
1052
Then when you use on the host @code{telnet localhost 5555}, you
1053
connect to the guest telnet server.
1054

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

    
1059
@end table
1060

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

    
1066
@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}] [,script=@var{file}][,downscript=@var{dfile}]
1067
Connect the host TAP network interface @var{name} to VLAN @var{n}, use
1068
the network script @var{file} to configure it and the network script
1069
@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
1070
automatically provides one. @option{fd}=@var{h} can be used to specify
1071
the handle of an already opened host TAP interface. The default network
1072
configure script is @file{/etc/qemu-ifup} and the default network
1073
deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}
1074
or @option{downscript=no} to disable script execution. Example:
1075

    
1076
@example
1077
qemu linux.img -net nic -net tap
1078
@end example
1079

    
1080
More complicated example (two NICs, each one connected to a TAP device)
1081
@example
1082
qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
1083
               -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
1084
@end example
1085

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

    
1088
Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
1089
machine using a TCP socket connection. If @option{listen} is
1090
specified, QEMU waits for incoming connections on @var{port}
1091
(@var{host} is optional). @option{connect} is used to connect to
1092
another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
1093
specifies an already opened TCP socket.
1094

    
1095
Example:
1096
@example
1097
# launch a first QEMU instance
1098
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1099
               -net socket,listen=:1234
1100
# connect the VLAN 0 of this instance to the VLAN 0
1101
# of the first instance
1102
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
1103
               -net socket,connect=127.0.0.1:1234
1104
@end example
1105

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

    
1108
Create a VLAN @var{n} shared with another QEMU virtual
1109
machines using a UDP multicast socket, effectively making a bus for
1110
every QEMU with same multicast address @var{maddr} and @var{port}.
1111
NOTES:
1112
@enumerate
1113
@item
1114
Several QEMU can be running on different hosts and share same bus (assuming
1115
correct multicast setup for these hosts).
1116
@item
1117
mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
1118
@url{http://user-mode-linux.sf.net}.
1119
@item
1120
Use @option{fd=h} to specify an already opened UDP multicast socket.
1121
@end enumerate
1122

    
1123
Example:
1124
@example
1125
# launch one QEMU instance
1126
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1127
               -net socket,mcast=230.0.0.1:1234
1128
# launch another QEMU instance on same "bus"
1129
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
1130
               -net socket,mcast=230.0.0.1:1234
1131
# launch yet another QEMU instance on same "bus"
1132
qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
1133
               -net socket,mcast=230.0.0.1:1234
1134
@end example
1135

    
1136
Example (User Mode Linux compat.):
1137
@example
1138
# launch QEMU instance (note mcast address selected
1139
# is UML's default)
1140
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
1141
               -net socket,mcast=239.192.168.1:1102
1142
# launch UML
1143
/path/to/linux ubd0=/path/to/root_fs eth0=mcast
1144
@end example
1145

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

    
1153
Example:
1154
@example
1155
# launch vde switch
1156
vde_switch -F -sock /tmp/myswitch
1157
# launch QEMU instance
1158
qemu linux.img -net nic -net vde,sock=/tmp/myswitch
1159
@end example
1160

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

    
1166
@item -net none
1167
Indicate that no network devices should be configured. It is used to
1168
override the default configuration (@option{-net nic -net user}) which
1169
is activated if no @option{-net} options are provided.
1170

    
1171
@end table
1172
ETEXI
1173

    
1174
DEFHEADING()
1175

    
1176
DEFHEADING(Character device options:)
1177

    
1178
DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
1179
    "-chardev null,id=id\n"
1180
    "-chardev socket,id=id[,host=host],port=host[,to=to][,ipv4][,ipv6][,nodelay]\n"
1181
    "         [,server][,nowait][,telnet] (tcp)\n"
1182
    "-chardev socket,id=id,path=path[,server][,nowait][,telnet] (unix)\n"
1183
    "-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]\n"
1184
    "         [,localport=localport][,ipv4][,ipv6]\n"
1185
    "-chardev msmouse,id=id\n"
1186
    "-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]\n"
1187
    "-chardev file,id=id,path=path\n"
1188
    "-chardev pipe,id=id,path=path\n"
1189
#ifdef _WIN32
1190
    "-chardev console,id=id\n"
1191
    "-chardev serial,id=id,path=path\n"
1192
#else
1193
    "-chardev pty,id=id\n"
1194
    "-chardev stdio,id=id\n"
1195
#endif
1196
#ifdef CONFIG_BRLAPI
1197
    "-chardev braille,id=id\n"
1198
#endif
1199
#if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \
1200
        || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
1201
    "-chardev tty,id=id,path=path\n"
1202
#endif
1203
#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
1204
    "-chardev parport,id=id,path=path\n"
1205
#endif
1206
)
1207

    
1208
STEXI
1209

    
1210
The general form of a character device option is:
1211
@table @option
1212

    
1213
@item -chardev @var{backend} ,id=@var{id} [,@var{options}]
1214
@findex -chardev
1215
Backend is one of:
1216
@option{null},
1217
@option{socket},
1218
@option{udp},
1219
@option{msmouse},
1220
@option{vc},
1221
@option{file},
1222
@option{pipe},
1223
@option{console},
1224
@option{serial},
1225
@option{pty},
1226
@option{stdio},
1227
@option{braille},
1228
@option{tty},
1229
@option{parport}.
1230
The specific backend will determine the applicable options.
1231

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

    
1235
Options to each backend are described below.
1236

    
1237
@item -chardev null ,id=@var{id}
1238
A void device. This device will not emit any data, and will drop any data it
1239
receives. The null backend does not take any options.
1240

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

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

    
1247
@option{server} specifies that the socket shall be a listening socket.
1248

    
1249
@option{nowait} specifies that QEMU should not block waiting for a client to
1250
connect to a listening socket.
1251

    
1252
@option{telnet} specifies that traffic on the socket should interpret telnet
1253
escape sequences.
1254

    
1255
TCP and unix socket options are given below:
1256

    
1257
@table @option
1258

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

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

    
1265
@option{port} for a listening socket specifies the local port to be bound. For a
1266
connecting socket specifies the port on the remote host to connect to.
1267
@option{port} can be given as either a port number or a service name.
1268
@option{port} is required.
1269

    
1270
@option{to} is only relevant to listening sockets. If it is specified, and
1271
@option{port} cannot be bound, QEMU will attempt to bind to subsequent ports up
1272
to and including @option{to} until it succeeds. @option{to} must be specified
1273
as a port number.
1274

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

    
1278
@option{nodelay} disables the Nagle algorithm.
1279

    
1280
@item unix options: path=@var{path}
1281

    
1282
@option{path} specifies the local path of the unix socket. @option{path} is
1283
required.
1284

    
1285
@end table
1286

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

    
1289
Sends all traffic from the guest to a remote host over UDP.
1290

    
1291
@option{host} specifies the remote host to connect to. If not specified it
1292
defaults to @code{localhost}.
1293

    
1294
@option{port} specifies the port on the remote host to connect to. @option{port}
1295
is required.
1296

    
1297
@option{localaddr} specifies the local address to bind to. If not specified it
1298
defaults to @code{0.0.0.0}.
1299

    
1300
@option{localport} specifies the local port to bind to. If not specified any
1301
available local port will be used.
1302

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

    
1306
@item -chardev msmouse ,id=@var{id}
1307

    
1308
Forward QEMU's emulated msmouse events to the guest. @option{msmouse} does not
1309
take any options.
1310

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

    
1313
Connect to a QEMU text console. @option{vc} may optionally be given a specific
1314
size.
1315

    
1316
@option{width} and @option{height} specify the width and height respectively of
1317
the console, in pixels.
1318

    
1319
@option{cols} and @option{rows} specify that the console be sized to fit a text
1320
console with the given dimensions.
1321

    
1322
@item -chardev file ,id=@var{id} ,path=@var{path}
1323

    
1324
Log all traffic received from the guest to a file.
1325

    
1326
@option{path} specifies the path of the file to be opened. This file will be
1327
created if it does not already exist, and overwritten if it does. @option{path}
1328
is required.
1329

    
1330
@item -chardev pipe ,id=@var{id} ,path=@var{path}
1331

    
1332
Create a two-way connection to the guest. The behaviour differs slightly between
1333
Windows hosts and other hosts:
1334

    
1335
On Windows, a single duplex pipe will be created at
1336
@file{\\.pipe\@option{path}}.
1337

    
1338
On other hosts, 2 pipes will be created called @file{@option{path}.in} and
1339
@file{@option{path}.out}. Data written to @file{@option{path}.in} will be
1340
received by the guest. Data written by the guest can be read from
1341
@file{@option{path}.out}. QEMU will not create these fifos, and requires them to
1342
be present.
1343

    
1344
@option{path} forms part of the pipe path as described above. @option{path} is
1345
required.
1346

    
1347
@item -chardev console ,id=@var{id}
1348

    
1349
Send traffic from the guest to QEMU's standard output. @option{console} does not
1350
take any options.
1351

    
1352
@option{console} is only available on Windows hosts.
1353

    
1354
@item -chardev serial ,id=@var{id} ,path=@option{path}
1355

    
1356
Send traffic from the guest to a serial device on the host.
1357

    
1358
@option{serial} is
1359
only available on Windows hosts.
1360

    
1361
@option{path} specifies the name of the serial device to open.
1362

    
1363
@item -chardev pty ,id=@var{id}
1364

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

    
1368
@option{pty} is not available on Windows hosts.
1369

    
1370
@item -chardev stdio ,id=@var{id}
1371
Connect to standard input and standard output of the qemu process.
1372
@option{stdio} does not take any options. @option{stdio} is not available on
1373
Windows hosts.
1374

    
1375
@item -chardev braille ,id=@var{id}
1376

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

    
1379
@item -chardev tty ,id=@var{id} ,path=@var{path}
1380

    
1381
Connect to a local tty device.
1382

    
1383
@option{tty} is only available on Linux, Sun, FreeBSD, NetBSD, OpenBSD and
1384
DragonFlyBSD hosts.
1385

    
1386
@option{path} specifies the path to the tty. @option{path} is required.
1387

    
1388
@item -chardev parport ,id=@var{id} ,path=@var{path}
1389

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

    
1392
Connect to a local parallel port.
1393

    
1394
@option{path} specifies the path to the parallel port device. @option{path} is
1395
required.
1396

    
1397
@end table
1398
ETEXI
1399

    
1400
DEFHEADING()
1401

    
1402
DEFHEADING(Bluetooth(R) options:)
1403

    
1404
DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
1405
    "-bt hci,null    dumb bluetooth HCI - doesn't respond to commands\n" \
1406
    "-bt hci,host[:id]\n" \
1407
    "                use host's HCI with the given name\n" \
1408
    "-bt hci[,vlan=n]\n" \
1409
    "                emulate a standard HCI in virtual scatternet 'n'\n" \
1410
    "-bt vhci[,vlan=n]\n" \
1411
    "                add host computer to virtual scatternet 'n' using VHCI\n" \
1412
    "-bt device:dev[,vlan=n]\n" \
1413
    "                emulate a bluetooth device 'dev' in scatternet 'n'\n")
1414
STEXI
1415
@table @option
1416

    
1417
@item -bt hci[...]
1418
@findex -bt
1419
Defines the function of the corresponding Bluetooth HCI.  -bt options
1420
are matched with the HCIs present in the chosen machine type.  For
1421
example when emulating a machine with only one HCI built into it, only
1422
the first @code{-bt hci[...]} option is valid and defines the HCI's
1423
logic.  The Transport Layer is decided by the machine type.  Currently
1424
the machines @code{n800} and @code{n810} have one HCI and all other
1425
machines have none.
1426

    
1427
@anchor{bt-hcis}
1428
The following three types are recognized:
1429

    
1430
@table @option
1431
@item -bt hci,null
1432
(default) The corresponding Bluetooth HCI assumes no internal logic
1433
and will not respond to any HCI commands or emit events.
1434

    
1435
@item -bt hci,host[:@var{id}]
1436
(@code{bluez} only) The corresponding HCI passes commands / events
1437
to / from the physical HCI identified by the name @var{id} (default:
1438
@code{hci0}) on the computer running QEMU.  Only available on @code{bluez}
1439
capable systems like Linux.
1440

    
1441
@item -bt hci[,vlan=@var{n}]
1442
Add a virtual, standard HCI that will participate in the Bluetooth
1443
scatternet @var{n} (default @code{0}).  Similarly to @option{-net}
1444
VLANs, devices inside a bluetooth network @var{n} can only communicate
1445
with other devices in the same network (scatternet).
1446
@end table
1447

    
1448
@item -bt vhci[,vlan=@var{n}]
1449
(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
1450
to the host bluetooth stack instead of to the emulated target.  This
1451
allows the host and target machines to participate in a common scatternet
1452
and communicate.  Requires the Linux @code{vhci} driver installed.  Can
1453
be used as following:
1454

    
1455
@example
1456
qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
1457
@end example
1458

    
1459
@item -bt device:@var{dev}[,vlan=@var{n}]
1460
Emulate a bluetooth device @var{dev} and place it in network @var{n}
1461
(default @code{0}).  QEMU can only emulate one type of bluetooth devices
1462
currently:
1463

    
1464
@table @option
1465
@item keyboard
1466
Virtual wireless keyboard implementing the HIDP bluetooth profile.
1467
@end table
1468
@end table
1469
ETEXI
1470

    
1471
DEFHEADING()
1472

    
1473
DEFHEADING(Linux/Multiboot boot specific:)
1474
STEXI
1475

    
1476
When using these options, you can use a given Linux or Multiboot
1477
kernel without installing it in the disk image. It can be useful
1478
for easier testing of various kernels.
1479

    
1480
@table @option
1481
ETEXI
1482

    
1483
DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
1484
    "-kernel bzImage use 'bzImage' as kernel image\n")
1485
STEXI
1486
@item -kernel @var{bzImage}
1487
@findex -kernel
1488
Use @var{bzImage} as kernel image. The kernel can be either a Linux kernel
1489
or in multiboot format.
1490
ETEXI
1491

    
1492
DEF("append", HAS_ARG, QEMU_OPTION_append, \
1493
    "-append cmdline use 'cmdline' as kernel command line\n")
1494
STEXI
1495
@item -append @var{cmdline}
1496
@findex -append
1497
Use @var{cmdline} as kernel command line
1498
ETEXI
1499

    
1500
DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
1501
           "-initrd file    use 'file' as initial ram disk\n")
1502
STEXI
1503
@item -initrd @var{file}
1504
@findex -initrd
1505
Use @var{file} as initial ram disk.
1506

    
1507
@item -initrd "@var{file1} arg=foo,@var{file2}"
1508

    
1509
This syntax is only available with multiboot.
1510

    
1511
Use @var{file1} and @var{file2} as modules and pass arg=foo as parameter to the
1512
first module.
1513
ETEXI
1514

    
1515
STEXI
1516
@end table
1517
ETEXI
1518

    
1519
DEFHEADING()
1520

    
1521
DEFHEADING(Debug/Expert options:)
1522

    
1523
STEXI
1524
@table @option
1525
ETEXI
1526

    
1527
DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
1528
    "-serial dev     redirect the serial port to char device 'dev'\n")
1529
STEXI
1530
@item -serial @var{dev}
1531
@findex -serial
1532
Redirect the virtual serial port to host character device
1533
@var{dev}. The default device is @code{vc} in graphical mode and
1534
@code{stdio} in non graphical mode.
1535

    
1536
This option can be used several times to simulate up to 4 serial
1537
ports.
1538

    
1539
Use @code{-serial none} to disable all serial ports.
1540

    
1541
Available character devices are:
1542
@table @option
1543
@item vc[:@var{W}x@var{H}]
1544
Virtual console. Optionally, a width and height can be given in pixel with
1545
@example
1546
vc:800x600
1547
@end example
1548
It is also possible to specify width or height in characters:
1549
@example
1550
vc:80Cx24C
1551
@end example
1552
@item pty
1553
[Linux only] Pseudo TTY (a new PTY is automatically allocated)
1554
@item none
1555
No device is allocated.
1556
@item null
1557
void device
1558
@item /dev/XXX
1559
[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
1560
parameters are set according to the emulated ones.
1561
@item /dev/parport@var{N}
1562
[Linux only, parallel port only] Use host parallel port
1563
@var{N}. Currently SPP and EPP parallel port features can be used.
1564
@item file:@var{filename}
1565
Write output to @var{filename}. No character can be read.
1566
@item stdio
1567
[Unix only] standard input/output
1568
@item pipe:@var{filename}
1569
name pipe @var{filename}
1570
@item COM@var{n}
1571
[Windows only] Use host serial port @var{n}
1572
@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
1573
This implements UDP Net Console.
1574
When @var{remote_host} or @var{src_ip} are not specified
1575
they default to @code{0.0.0.0}.
1576
When not using a specified @var{src_port} a random port is automatically chosen.
1577

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

    
1583
If you plan to send characters back via netconsole or you want to stop
1584
and start qemu a lot of times, you should have qemu use the same
1585
source port each time by using something like @code{-serial
1586
udp::4555@@:4556} to qemu. Another approach is to use a patched
1587
version of netcat which can listen to a TCP port and send and receive
1588
characters via udp.  If you have a patched version of netcat which
1589
activates telnet remote echo and single char transfer, then you can
1590
use the following options to step up a netcat redirector to allow
1591
telnet on port 5555 to access the qemu port.
1592
@table @code
1593
@item Qemu Options:
1594
-serial udp::4555@@:4556
1595
@item netcat options:
1596
-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
1597
@item telnet options:
1598
localhost 5555
1599
@end table
1600

    
1601
@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
1602
The TCP Net Console has two modes of operation.  It can send the serial
1603
I/O to a location or wait for a connection from a location.  By default
1604
the TCP Net Console is sent to @var{host} at the @var{port}.  If you use
1605
the @var{server} option QEMU will wait for a client socket application
1606
to connect to the port before continuing, unless the @code{nowait}
1607
option was specified.  The @code{nodelay} option disables the Nagle buffering
1608
algorithm.  If @var{host} is omitted, 0.0.0.0 is assumed. Only
1609
one TCP connection at a time is accepted. You can use @code{telnet} to
1610
connect to the corresponding character device.
1611
@table @code
1612
@item Example to send tcp console to 192.168.0.2 port 4444
1613
-serial tcp:192.168.0.2:4444
1614
@item Example to listen and wait on port 4444 for connection
1615
-serial tcp::4444,server
1616
@item Example to not wait and listen on ip 192.168.0.100 port 4444
1617
-serial tcp:192.168.0.100:4444,server,nowait
1618
@end table
1619

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

    
1629
@item unix:@var{path}[,server][,nowait]
1630
A unix domain socket is used instead of a tcp socket.  The option works the
1631
same as if you had specified @code{-serial tcp} except the unix domain socket
1632
@var{path} is used for connections.
1633

    
1634
@item mon:@var{dev_string}
1635
This is a special option to allow the monitor to be multiplexed onto
1636
another serial port.  The monitor is accessed with key sequence of
1637
@key{Control-a} and then pressing @key{c}. See monitor access
1638
@ref{pcsys_keys} in the -nographic section for more keys.
1639
@var{dev_string} should be any one of the serial devices specified
1640
above.  An example to multiplex the monitor onto a telnet server
1641
listening on port 4444 would be:
1642
@table @code
1643
@item -serial mon:telnet::4444,server,nowait
1644
@end table
1645

    
1646
@item braille
1647
Braille device.  This will use BrlAPI to display the braille output on a real
1648
or fake device.
1649

    
1650
@item msmouse
1651
Three button serial mouse. Configure the guest to use Microsoft protocol.
1652
@end table
1653
ETEXI
1654

    
1655
DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
1656
    "-parallel dev   redirect the parallel port to char device 'dev'\n")
1657
STEXI
1658
@item -parallel @var{dev}
1659
@findex -parallel
1660
Redirect the virtual parallel port to host device @var{dev} (same
1661
devices as the serial port). On Linux hosts, @file{/dev/parportN} can
1662
be used to use hardware devices connected on the corresponding host
1663
parallel port.
1664

    
1665
This option can be used several times to simulate up to 3 parallel
1666
ports.
1667

    
1668
Use @code{-parallel none} to disable all parallel ports.
1669
ETEXI
1670

    
1671
DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
1672
    "-monitor dev    redirect the monitor to char device 'dev'\n")
1673
STEXI
1674
@item -monitor @var{dev}
1675
@findex -monitor
1676
Redirect the monitor to host device @var{dev} (same devices as the
1677
serial port).
1678
The default device is @code{vc} in graphical mode and @code{stdio} in
1679
non graphical mode.
1680
ETEXI
1681
DEF("qmp", HAS_ARG, QEMU_OPTION_qmp, \
1682
    "-qmp dev        like -monitor but opens in 'control' mode\n")
1683
STEXI
1684
@item -qmp @var{dev}
1685
@findex -qmp
1686
Like -monitor but opens in 'control' mode.
1687
ETEXI
1688

    
1689
DEF("mon", HAS_ARG, QEMU_OPTION_mon, \
1690
    "-mon chardev=[name][,mode=readline|control][,default]\n")
1691
STEXI
1692
@item -mon chardev=[name][,mode=readline|control][,default]
1693
@findex -mon
1694
Setup monitor on chardev @var{name}.
1695
ETEXI
1696

    
1697
DEF("debugcon", HAS_ARG, QEMU_OPTION_debugcon, \
1698
    "-debugcon dev   redirect the debug console to char device 'dev'\n")
1699
STEXI
1700
@item -debugcon @var{dev}
1701
@findex -debugcon
1702
Redirect the debug console to host device @var{dev} (same devices as the
1703
serial port).  The debug console is an I/O port which is typically port
1704
0xe9; writing to that I/O port sends output to this device.
1705
The default device is @code{vc} in graphical mode and @code{stdio} in
1706
non graphical mode.
1707
ETEXI
1708

    
1709
DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
1710
    "-pidfile file   write PID to 'file'\n")
1711
STEXI
1712
@item -pidfile @var{file}
1713
@findex -pidfile
1714
Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
1715
from a script.
1716
ETEXI
1717

    
1718
DEF("singlestep", 0, QEMU_OPTION_singlestep, \
1719
    "-singlestep     always run in singlestep mode\n")
1720
STEXI
1721
@item -singlestep
1722
@findex -singlestep
1723
Run the emulation in single step mode.
1724
ETEXI
1725

    
1726
DEF("S", 0, QEMU_OPTION_S, \
1727
    "-S              freeze CPU at startup (use 'c' to start execution)\n")
1728
STEXI
1729
@item -S
1730
@findex -S
1731
Do not start CPU at startup (you must type 'c' in the monitor).
1732
ETEXI
1733

    
1734
DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
1735
    "-gdb dev        wait for gdb connection on 'dev'\n")
1736
STEXI
1737
@item -gdb @var{dev}
1738
@findex -gdb
1739
Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
1740
connections will likely be TCP-based, but also UDP, pseudo TTY, or even
1741
stdio are reasonable use case. The latter is allowing to start qemu from
1742
within gdb and establish the connection via a pipe:
1743
@example
1744
(gdb) target remote | exec qemu -gdb stdio ...
1745
@end example
1746
ETEXI
1747

    
1748
DEF("s", 0, QEMU_OPTION_s, \
1749
    "-s              shorthand for -gdb tcp::" DEFAULT_GDBSTUB_PORT "\n")
1750
STEXI
1751
@item -s
1752
@findex -s
1753
Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
1754
(@pxref{gdb_usage}).
1755
ETEXI
1756

    
1757
DEF("d", HAS_ARG, QEMU_OPTION_d, \
1758
    "-d item1,...    output log to /tmp/qemu.log (use -d ? for a list of log items)\n")
1759
STEXI
1760
@item -d
1761
@findex -d
1762
Output log in /tmp/qemu.log
1763
ETEXI
1764

    
1765
DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
1766
    "-hdachs c,h,s[,t]\n" \
1767
    "                force hard disk 0 physical geometry and the optional BIOS\n" \
1768
    "                translation (t=none or lba) (usually qemu can guess them)\n")
1769
STEXI
1770
@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
1771
@findex -hdachs
1772
Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
1773
@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
1774
translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
1775
all those parameters. This option is useful for old MS-DOS disk
1776
images.
1777
ETEXI
1778

    
1779
DEF("L", HAS_ARG, QEMU_OPTION_L, \
1780
    "-L path         set the directory for the BIOS, VGA BIOS and keymaps\n")
1781
STEXI
1782
@item -L  @var{path}
1783
@findex -L
1784
Set the directory for the BIOS, VGA BIOS and keymaps.
1785
ETEXI
1786

    
1787
DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
1788
    "-bios file      set the filename for the BIOS\n")
1789
STEXI
1790
@item -bios @var{file}
1791
@findex -bios
1792
Set the filename for the BIOS.
1793
ETEXI
1794

    
1795
#ifdef CONFIG_KVM
1796
DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
1797
    "-enable-kvm     enable KVM full virtualization support\n")
1798
#endif
1799
STEXI
1800
@item -enable-kvm
1801
@findex -enable-kvm
1802
Enable KVM full virtualization support. This option is only available
1803
if KVM support is enabled when compiling.
1804
ETEXI
1805

    
1806
#ifdef CONFIG_XEN
1807
DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
1808
    "-xen-domid id   specify xen guest domain id\n")
1809
DEF("xen-create", 0, QEMU_OPTION_xen_create,
1810
    "-xen-create     create domain using xen hypercalls, bypassing xend\n"
1811
    "                warning: should not be used when xend is in use\n")
1812
DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
1813
    "-xen-attach     attach to existing xen domain\n"
1814
    "                xend will use this when starting qemu\n")
1815
#endif
1816
STEXI
1817
@item -xen-domid @var{id}
1818
@findex -xen-domid
1819
Specify xen guest domain @var{id} (XEN only).
1820
@item -xen-create
1821
@findex -xen-create
1822
Create domain using xen hypercalls, bypassing xend.
1823
Warning: should not be used when xend is in use (XEN only).
1824
@item -xen-attach
1825
@findex -xen-attach
1826
Attach to existing xen domain.
1827
xend will use this when starting qemu (XEN only).
1828
ETEXI
1829

    
1830
DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
1831
    "-no-reboot      exit instead of rebooting\n")
1832
STEXI
1833
@item -no-reboot
1834
@findex -no-reboot
1835
Exit instead of rebooting.
1836
ETEXI
1837

    
1838
DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
1839
    "-no-shutdown    stop before shutdown\n")
1840
STEXI
1841
@item -no-shutdown
1842
@findex -no-shutdown
1843
Don't exit QEMU on guest shutdown, but instead only stop the emulation.
1844
This allows for instance switching to monitor to commit changes to the
1845
disk image.
1846
ETEXI
1847

    
1848
DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
1849
    "-loadvm [tag|id]\n" \
1850
    "                start right away with a saved state (loadvm in monitor)\n")
1851
STEXI
1852
@item -loadvm @var{file}
1853
@findex -loadvm
1854
Start right away with a saved state (@code{loadvm} in monitor)
1855
ETEXI
1856

    
1857
#ifndef _WIN32
1858
DEF("daemonize", 0, QEMU_OPTION_daemonize, \
1859
    "-daemonize      daemonize QEMU after initializing\n")
1860
#endif
1861
STEXI
1862
@item -daemonize
1863
@findex -daemonize
1864
Daemonize the QEMU process after initialization.  QEMU will not detach from
1865
standard IO until it is ready to receive connections on any of its devices.
1866
This option is a useful way for external programs to launch QEMU without having
1867
to cope with initialization race conditions.
1868
ETEXI
1869

    
1870
DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
1871
    "-option-rom rom load a file, rom, into the option ROM space\n")
1872
STEXI
1873
@item -option-rom @var{file}
1874
@findex -option-rom
1875
Load the contents of @var{file} as an option ROM.
1876
This option is useful to load things like EtherBoot.
1877
ETEXI
1878

    
1879
DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
1880
    "-clock          force the use of the given methods for timer alarm.\n" \
1881
    "                To see what timers are available use -clock ?\n")
1882
STEXI
1883
@item -clock @var{method}
1884
@findex -clock
1885
Force the use of the given methods for timer alarm. To see what timers
1886
are available use -clock ?.
1887
ETEXI
1888

    
1889
HXCOMM Options deprecated by -rtc
1890
DEF("localtime", 0, QEMU_OPTION_localtime, "")
1891
DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, "")
1892

    
1893
#ifdef TARGET_I386
1894
DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
1895
    "-rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew]\n" \
1896
    "                set the RTC base and clock, enable drift fix for clock ticks\n")
1897
#else
1898
DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
1899
    "-rtc [base=utc|localtime|date][,clock=host|vm]\n" \
1900
    "                set the RTC base and clock\n")
1901
#endif
1902

    
1903
STEXI
1904

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

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

    
1918
Enable @option{driftfix} (i386 targets only) if you experience time drift problems,
1919
specifically with Windows' ACPI HAL. This option will try to figure out how
1920
many timer interrupts were not processed by the Windows guest and will
1921
re-inject them.
1922
ETEXI
1923

    
1924
DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
1925
    "-icount [N|auto]\n" \
1926
    "                enable virtual instruction counter with 2^N clock ticks per\n" \
1927
    "                instruction\n")
1928
STEXI
1929
@item -icount [@var{N}|auto]
1930
@findex -icount
1931
Enable virtual instruction counter.  The virtual cpu will execute one
1932
instruction every 2^@var{N} ns of virtual time.  If @code{auto} is specified
1933
then the virtual cpu speed will be automatically adjusted to keep virtual
1934
time within a few seconds of real time.
1935

    
1936
Note that while this option can give deterministic behavior, it does not
1937
provide cycle accurate emulation.  Modern CPUs contain superscalar out of
1938
order cores with complex cache hierarchies.  The number of instructions
1939
executed often has little or no correlation with actual performance.
1940
ETEXI
1941

    
1942
DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
1943
    "-watchdog i6300esb|ib700\n" \
1944
    "                enable virtual hardware watchdog [default=none]\n")
1945
STEXI
1946
@item -watchdog @var{model}
1947
@findex -watchdog
1948
Create a virtual hardware watchdog device.  Once enabled (by a guest
1949
action), the watchdog must be periodically polled by an agent inside
1950
the guest or else the guest will be restarted.
1951

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

    
1958
Use @code{-watchdog ?} to list available hardware models.  Only one
1959
watchdog can be enabled for a guest.
1960
ETEXI
1961

    
1962
DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
1963
    "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
1964
    "                action when watchdog fires [default=reset]\n")
1965
STEXI
1966
@item -watchdog-action @var{action}
1967

    
1968
The @var{action} controls what QEMU will do when the watchdog timer
1969
expires.
1970
The default is
1971
@code{reset} (forcefully reset the guest).
1972
Other possible actions are:
1973
@code{shutdown} (attempt to gracefully shutdown the guest),
1974
@code{poweroff} (forcefully poweroff the guest),
1975
@code{pause} (pause the guest),
1976
@code{debug} (print a debug message and continue), or
1977
@code{none} (do nothing).
1978

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

    
1984
Examples:
1985

    
1986
@table @code
1987
@item -watchdog i6300esb -watchdog-action pause
1988
@item -watchdog ib700
1989
@end table
1990
ETEXI
1991

    
1992
DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
1993
    "-echr chr       set terminal escape character instead of ctrl-a\n")
1994
STEXI
1995

    
1996
@item -echr @var{numeric_ascii_value}
1997
@findex -echr
1998
Change the escape character used for switching to the monitor when using
1999
monitor and serial sharing.  The default is @code{0x01} when using the
2000
@code{-nographic} option.  @code{0x01} is equal to pressing
2001
@code{Control-a}.  You can select a different character from the ascii
2002
control keys where 1 through 26 map to Control-a through Control-z.  For
2003
instance you could use the either of the following to change the escape
2004
character to Control-t.
2005
@table @code
2006
@item -echr 0x14
2007
@item -echr 20
2008
@end table
2009
ETEXI
2010

    
2011
DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
2012
    "-virtioconsole c\n" \
2013
    "                set virtio console\n")
2014
STEXI
2015
@item -virtioconsole @var{c}
2016
@findex -virtioconsole
2017
Set virtio console.
2018

    
2019
This option is maintained for backward compatibility.
2020

    
2021
Please use @code{-device virtconsole} for the new way of invocation.
2022
ETEXI
2023

    
2024
DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
2025
    "-show-cursor    show cursor\n")
2026
STEXI
2027
@item -show-cursor
2028
@findex -show-cursor
2029
Show cursor.
2030
ETEXI
2031

    
2032
DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
2033
    "-tb-size n      set TB size\n")
2034
STEXI
2035
@item -tb-size @var{n}
2036
@findex -tb-size
2037
Set TB size.
2038
ETEXI
2039

    
2040
DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
2041
    "-incoming p     prepare for incoming migration, listen on port p\n")
2042
STEXI
2043
@item -incoming @var{port}
2044
@findex -incoming
2045
Prepare for incoming migration, listen on @var{port}.
2046
ETEXI
2047

    
2048
DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \
2049
    "-nodefaults     don't create default devices\n")
2050
STEXI
2051
@item -nodefaults
2052
@findex -nodefaults
2053
Don't create default devices.
2054
ETEXI
2055

    
2056
#ifndef _WIN32
2057
DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
2058
    "-chroot dir     chroot to dir just before starting the VM\n")
2059
#endif
2060
STEXI
2061
@item -chroot @var{dir}
2062
@findex -chroot
2063
Immediately before starting guest execution, chroot to the specified
2064
directory.  Especially useful in combination with -runas.
2065
ETEXI
2066

    
2067
#ifndef _WIN32
2068
DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
2069
    "-runas user     change to user id user just before starting the VM\n")
2070
#endif
2071
STEXI
2072
@item -runas @var{user}
2073
@findex -runas
2074
Immediately before starting guest execution, drop root privileges, switching
2075
to the specified user.
2076
ETEXI
2077

    
2078
#if defined(TARGET_SPARC) || defined(TARGET_PPC)
2079
DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
2080
    "-prom-env variable=value\n"
2081
    "                set OpenBIOS nvram variables\n")
2082
#endif
2083
STEXI
2084
@item -prom-env @var{variable}=@var{value}
2085
@findex -prom-env
2086
Set OpenBIOS nvram @var{variable} to given @var{value} (PPC, SPARC only).
2087
ETEXI
2088
#if defined(TARGET_ARM) || defined(TARGET_M68K)
2089
DEF("semihosting", 0, QEMU_OPTION_semihosting,
2090
    "-semihosting    semihosting mode\n")
2091
#endif
2092
STEXI
2093
@item -semihosting
2094
@findex -semihosting
2095
Semihosting mode (ARM, M68K only).
2096
ETEXI
2097
#if defined(TARGET_ARM)
2098
DEF("old-param", 0, QEMU_OPTION_old_param,
2099
    "-old-param      old param mode\n")
2100
#endif
2101
STEXI
2102
@item -old-param
2103
@findex -old-param (ARM)
2104
Old param mode (ARM only).
2105
ETEXI
2106

    
2107
DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
2108
    "-readconfig <file>\n")
2109
STEXI
2110
@item -readconfig @var{file}
2111
@findex -readconfig
2112
Read device configuration from @var{file}.
2113
ETEXI
2114
DEF("writeconfig", HAS_ARG, QEMU_OPTION_writeconfig,
2115
    "-writeconfig <file>\n"
2116
    "                read/write config file\n")
2117
STEXI
2118
@item -writeconfig @var{file}
2119
@findex -writeconfig
2120
Write device configuration to @var{file}.
2121
ETEXI
2122
DEF("nodefconfig", 0, QEMU_OPTION_nodefconfig,
2123
    "-nodefconfig\n"
2124
    "                do not load default config files at startup\n")
2125
STEXI
2126
@item -nodefconfig
2127
@findex -nodefconfig
2128
Normally QEMU loads a configuration file from @var{sysconfdir}/qemu.conf and
2129
@var{sysconfdir}/target-@var{ARCH}.conf on startup.  The @code{-nodefconfig}
2130
option will prevent QEMU from loading these configuration files at startup.
2131
ETEXI
2132

    
2133
HXCOMM This is the last statement. Insert new options before this line!
2134
STEXI
2135
@end table
2136
ETEXI