Statistics
| Branch: | Revision:

root / qemu-options.hx @ 283c7c63

History | View | Annotate | Download (58.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
STEXI
113
@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
114

    
115
Define a new drive. Valid options are:
116

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

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

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

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

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

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

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

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

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

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

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

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

    
216
DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
217
    "-mtdblock file  use 'file' as on-board Flash memory image\n")
218
STEXI
219

    
220
@item -mtdblock file
221
Use 'file' as on-board Flash memory image.
222
ETEXI
223

    
224
DEF("sd", HAS_ARG, QEMU_OPTION_sd,
225
    "-sd file        use 'file' as SecureDigital card image\n")
226
STEXI
227
@item -sd file
228
Use 'file' as SecureDigital card image.
229
ETEXI
230

    
231
DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
232
    "-pflash file    use 'file' as a parallel flash image\n")
233
STEXI
234
@item -pflash file
235
Use 'file' as a parallel flash image.
236
ETEXI
237

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

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

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

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

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

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

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

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

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

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

    
301
The default is @code{en-us}.
302
ETEXI
303

    
304

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

    
312
Will show the audio subsystem help: list of drivers, tunable
313
parameters.
314
ETEXI
315

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

    
326
Enable audio and selected sound hardware. Use ? to print all
327
available sound hardware.
328

    
329
@example
330
qemu -soundhw sb16,adlib disk.img
331
qemu -soundhw es1370 disk.img
332
qemu -soundhw ac97 disk.img
333
qemu -soundhw all disk.img
334
qemu -soundhw ?
335
@end example
336

    
337
Note that Linux's i810_audio OSS kernel (for AC97) module might
338
require manually specifying clocking.
339

    
340
@example
341
modprobe i810_audio clocking=48000
342
@end example
343
ETEXI
344

    
345
STEXI
346
@end table
347
ETEXI
348

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

    
355
@item -usb
356
Enable the USB driver (will be the default soon)
357
ETEXI
358

    
359
DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
360
    "-usbdevice name add the host or guest USB device 'name'\n")
361
STEXI
362

    
363
@item -usbdevice @var{devname}
364
Add the USB device @var{devname}. @xref{usb_devices}.
365

    
366
@table @code
367

    
368
@item mouse
369
Virtual Mouse. This will override the PS/2 mouse emulation when activated.
370

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

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

    
381
@item host:bus.addr
382
Pass through the host device identified by bus.addr (Linux only).
383

    
384
@item host:vendor_id:product_id
385
Pass through the host device identified by vendor_id:product_id (Linux only).
386

    
387
@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
388
Serial converter to host character device @var{dev}, see @code{-serial} for the
389
available devices.
390

    
391
@item braille
392
Braille device.  This will use BrlAPI to display the braille output on a real
393
or fake device.
394

    
395
@item net:options
396
Network adapter that supports CDC ethernet and RNDIS protocols.
397

    
398
@end table
399
ETEXI
400

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

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

    
422
STEXI
423
@end table
424
ETEXI
425

    
426
DEFHEADING()
427

    
428
DEFHEADING(Display options:)
429

    
430
STEXI
431
@table @option
432
ETEXI
433

    
434
DEF("nographic", 0, QEMU_OPTION_nographic,
435
    "-nographic      disable graphical output and redirect serial I/Os to console\n")
436
STEXI
437
@item -nographic
438

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

    
446
#ifdef CONFIG_CURSES
447
DEF("curses", 0, QEMU_OPTION_curses,
448
    "-curses         use a curses/ncurses interface instead of SDL\n")
449
#endif
450
STEXI
451
@item -curses
452

    
453
Normally, QEMU uses SDL to display the VGA output.  With this option,
454
QEMU can display the VGA output when in text mode using a
455
curses/ncurses interface.  Nothing is displayed in graphical mode.
456
ETEXI
457

    
458
#ifdef CONFIG_SDL
459
DEF("no-frame", 0, QEMU_OPTION_no_frame,
460
    "-no-frame       open SDL window without a frame and window decorations\n")
461
#endif
462
STEXI
463
@item -no-frame
464

    
465
Do not use decorations for SDL windows and start them using the whole
466
available screen space. This makes the using QEMU in a dedicated desktop
467
workspace more convenient.
468
ETEXI
469

    
470
#ifdef CONFIG_SDL
471
DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
472
    "-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n")
473
#endif
474
STEXI
475
@item -alt-grab
476

    
477
Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt).
478
ETEXI
479

    
480
#ifdef CONFIG_SDL
481
DEF("ctrl-grab", 0, QEMU_OPTION_ctrl_grab,
482
    "-ctrl-grab       use Right-Ctrl to grab mouse (instead of Ctrl-Alt)\n")
483
#endif
484
STEXI
485
@item -ctrl-grab
486

    
487
Use Right-Ctrl to grab mouse (instead of Ctrl-Alt).
488
ETEXI
489

    
490
#ifdef CONFIG_SDL
491
DEF("no-quit", 0, QEMU_OPTION_no_quit,
492
    "-no-quit        disable SDL window close capability\n")
493
#endif
494
STEXI
495
@item -no-quit
496

    
497
Disable SDL window close capability.
498
ETEXI
499

    
500
#ifdef CONFIG_SDL
501
DEF("sdl", 0, QEMU_OPTION_sdl,
502
    "-sdl            enable SDL\n")
503
#endif
504
STEXI
505
@item -sdl
506

    
507
Enable SDL.
508
ETEXI
509

    
510
DEF("portrait", 0, QEMU_OPTION_portrait,
511
    "-portrait       rotate graphical output 90 deg left (only PXA LCD)\n")
512
STEXI
513
@item -portrait
514

    
515
Rotate graphical output 90 deg left (only PXA LCD).
516
ETEXI
517

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

    
544
DEF("full-screen", 0, QEMU_OPTION_full_screen,
545
    "-full-screen    start in full screen\n")
546
STEXI
547
@item -full-screen
548
Start in full screen.
549
ETEXI
550

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

    
558
DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
559
    "-vnc display    start a VNC server on display\n")
560
STEXI
561
@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
562

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

    
571
@table @code
572

    
573
@item @var{host}:@var{d}
574

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

    
579
@item @code{unix}:@var{path}
580

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

    
584
@item none
585

    
586
VNC is initialized but not started. The monitor @code{change} command
587
can be used to later start the VNC server.
588

    
589
@end table
590

    
591
Following the @var{display} value there may be one or more @var{option} flags
592
separated by commas. Valid options are
593

    
594
@table @code
595

    
596
@item reverse
597

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

    
603
@item password
604

    
605
Require that password based authentication is used for client connections.
606
The password must be set separately using the @code{change} command in the
607
@ref{pcsys_monitor}
608

    
609
@item tls
610

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

    
616
@item x509=@var{/path/to/certificate/dir}
617

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

    
625
@item x509verify=@var{/path/to/certificate/dir}
626

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

    
638
@item sasl
639

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

    
653
@item acl
654

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

    
666
@end table
667
ETEXI
668

    
669
STEXI
670
@end table
671
ETEXI
672

    
673
DEFHEADING()
674

    
675
#ifdef TARGET_I386
676
DEFHEADING(i386 target only:)
677
#endif
678
STEXI
679
@table @option
680
ETEXI
681

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

    
693
#ifdef TARGET_I386
694
HXCOMM Deprecated by -rtc
695
DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack, "")
696
#endif
697

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

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

    
719
#ifdef TARGET_I386
720
DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
721
    "-no-hpet        disable HPET\n")
722
#endif
723
STEXI
724
@item -no-hpet
725
Disable HPET support.
726
ETEXI
727

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

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

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

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

    
769
@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}]
770
Specify SMBIOS type 1 fields
771
ETEXI
772

    
773
#ifdef TARGET_I386
774
DEFHEADING()
775
#endif
776
STEXI
777
@end table
778
ETEXI
779

    
780
DEFHEADING(Network options:)
781
STEXI
782
@table @option
783
ETEXI
784

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

    
795
DEF("net", HAS_ARG, QEMU_OPTION_net,
796
    "-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]\n"
797
    "                create a new Network Interface Card and connect it to VLAN 'n'\n"
798
#ifdef CONFIG_SLIRP
799
    "-net user[,vlan=n][,name=str][,net=addr[/mask]][,host=addr][,restrict=y|n]\n"
800
    "         [,hostname=host][,dhcpstart=addr][,dns=addr][,tftp=dir][,bootfile=f]\n"
801
    "         [,hostfwd=rule][,guestfwd=rule]"
802
#ifndef _WIN32
803
                                             "[,smb=dir[,smbserver=addr]]\n"
804
#endif
805
    "                connect the user mode network stack to VLAN 'n', configure its\n"
806
    "                DHCP server and enabled optional services\n"
807
#endif
808
#ifdef _WIN32
809
    "-net tap[,vlan=n][,name=str],ifname=name\n"
810
    "                connect the host TAP network interface to VLAN 'n'\n"
811
#else
812
    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]"
813
#ifdef TUNSETSNDBUF
814
    "[,sndbuf=nbytes]"
815
#endif
816
    "\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
#ifdef TUNSETSNDBUF
823
    "                use 'sndbuf=nbytes' to limit the size of the send buffer; the\n"
824
    "                default of 'sndbuf=1048576' can be disabled using 'sndbuf=0'\n"
825
#endif
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 @code
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
DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
1092
    "\n" \
1093
    "-bt hci,null    dumb bluetooth HCI - doesn't respond to commands\n" \
1094
    "-bt hci,host[:id]\n" \
1095
    "                use host's HCI with the given name\n" \
1096
    "-bt hci[,vlan=n]\n" \
1097
    "                emulate a standard HCI in virtual scatternet 'n'\n" \
1098
    "-bt vhci[,vlan=n]\n" \
1099
    "                add host computer to virtual scatternet 'n' using VHCI\n" \
1100
    "-bt device:dev[,vlan=n]\n" \
1101
    "                emulate a bluetooth device 'dev' in scatternet 'n'\n")
1102
STEXI
1103
Bluetooth(R) options:
1104
@table @option
1105

    
1106
@item -bt hci[...]
1107
Defines the function of the corresponding Bluetooth HCI.  -bt options
1108
are matched with the HCIs present in the chosen machine type.  For
1109
example when emulating a machine with only one HCI built into it, only
1110
the first @code{-bt hci[...]} option is valid and defines the HCI's
1111
logic.  The Transport Layer is decided by the machine type.  Currently
1112
the machines @code{n800} and @code{n810} have one HCI and all other
1113
machines have none.
1114

    
1115
@anchor{bt-hcis}
1116
The following three types are recognized:
1117

    
1118
@table @code
1119
@item -bt hci,null
1120
(default) The corresponding Bluetooth HCI assumes no internal logic
1121
and will not respond to any HCI commands or emit events.
1122

    
1123
@item -bt hci,host[:@var{id}]
1124
(@code{bluez} only) The corresponding HCI passes commands / events
1125
to / from the physical HCI identified by the name @var{id} (default:
1126
@code{hci0}) on the computer running QEMU.  Only available on @code{bluez}
1127
capable systems like Linux.
1128

    
1129
@item -bt hci[,vlan=@var{n}]
1130
Add a virtual, standard HCI that will participate in the Bluetooth
1131
scatternet @var{n} (default @code{0}).  Similarly to @option{-net}
1132
VLANs, devices inside a bluetooth network @var{n} can only communicate
1133
with other devices in the same network (scatternet).
1134
@end table
1135

    
1136
@item -bt vhci[,vlan=@var{n}]
1137
(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
1138
to the host bluetooth stack instead of to the emulated target.  This
1139
allows the host and target machines to participate in a common scatternet
1140
and communicate.  Requires the Linux @code{vhci} driver installed.  Can
1141
be used as following:
1142

    
1143
@example
1144
qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
1145
@end example
1146

    
1147
@item -bt device:@var{dev}[,vlan=@var{n}]
1148
Emulate a bluetooth device @var{dev} and place it in network @var{n}
1149
(default @code{0}).  QEMU can only emulate one type of bluetooth devices
1150
currently:
1151

    
1152
@table @code
1153
@item keyboard
1154
Virtual wireless keyboard implementing the HIDP bluetooth profile.
1155
@end table
1156
@end table
1157
ETEXI
1158

    
1159
DEFHEADING()
1160

    
1161
DEFHEADING(Linux/Multiboot boot specific:)
1162
STEXI
1163

    
1164
When using these options, you can use a given Linux or Multiboot
1165
kernel without installing it in the disk image. It can be useful
1166
for easier testing of various kernels.
1167

    
1168
@table @option
1169
ETEXI
1170

    
1171
DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
1172
    "-kernel bzImage use 'bzImage' as kernel image\n")
1173
STEXI
1174
@item -kernel @var{bzImage}
1175
Use @var{bzImage} as kernel image. The kernel can be either a Linux kernel
1176
or in multiboot format.
1177
ETEXI
1178

    
1179
DEF("append", HAS_ARG, QEMU_OPTION_append, \
1180
    "-append cmdline use 'cmdline' as kernel command line\n")
1181
STEXI
1182
@item -append @var{cmdline}
1183
Use @var{cmdline} as kernel command line
1184
ETEXI
1185

    
1186
DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
1187
           "-initrd file    use 'file' as initial ram disk\n")
1188
STEXI
1189
@item -initrd @var{file}
1190
Use @var{file} as initial ram disk.
1191

    
1192
@item -initrd "@var{file1} arg=foo,@var{file2}"
1193

    
1194
This syntax is only available with multiboot.
1195

    
1196
Use @var{file1} and @var{file2} as modules and pass arg=foo as parameter to the
1197
first module.
1198
ETEXI
1199

    
1200
STEXI
1201
@end table
1202
ETEXI
1203

    
1204
DEFHEADING()
1205

    
1206
DEFHEADING(Debug/Expert options:)
1207

    
1208
STEXI
1209
@table @option
1210
ETEXI
1211

    
1212
DEF("chardev", HAS_ARG, QEMU_OPTION_chardev, \
1213
    "-chardev spec   create unconnected chardev\n")
1214
DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
1215
    "-serial dev     redirect the serial port to char device 'dev'\n")
1216
STEXI
1217
@item -serial @var{dev}
1218
Redirect the virtual serial port to host character device
1219
@var{dev}. The default device is @code{vc} in graphical mode and
1220
@code{stdio} in non graphical mode.
1221

    
1222
This option can be used several times to simulate up to 4 serial
1223
ports.
1224

    
1225
Use @code{-serial none} to disable all serial ports.
1226

    
1227
Available character devices are:
1228
@table @code
1229
@item vc[:WxH]
1230
Virtual console. Optionally, a width and height can be given in pixel with
1231
@example
1232
vc:800x600
1233
@end example
1234
It is also possible to specify width or height in characters:
1235
@example
1236
vc:80Cx24C
1237
@end example
1238
@item pty
1239
[Linux only] Pseudo TTY (a new PTY is automatically allocated)
1240
@item none
1241
No device is allocated.
1242
@item null
1243
void device
1244
@item /dev/XXX
1245
[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
1246
parameters are set according to the emulated ones.
1247
@item /dev/parport@var{N}
1248
[Linux only, parallel port only] Use host parallel port
1249
@var{N}. Currently SPP and EPP parallel port features can be used.
1250
@item file:@var{filename}
1251
Write output to @var{filename}. No character can be read.
1252
@item stdio
1253
[Unix only] standard input/output
1254
@item pipe:@var{filename}
1255
name pipe @var{filename}
1256
@item COM@var{n}
1257
[Windows only] Use host serial port @var{n}
1258
@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
1259
This implements UDP Net Console.
1260
When @var{remote_host} or @var{src_ip} are not specified
1261
they default to @code{0.0.0.0}.
1262
When not using a specified @var{src_port} a random port is automatically chosen.
1263
@item msmouse
1264
Three button serial mouse. Configure the guest to use Microsoft protocol.
1265

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

    
1271
If you plan to send characters back via netconsole or you want to stop
1272
and start qemu a lot of times, you should have qemu use the same
1273
source port each time by using something like @code{-serial
1274
udp::4555@@:4556} to qemu. Another approach is to use a patched
1275
version of netcat which can listen to a TCP port and send and receive
1276
characters via udp.  If you have a patched version of netcat which
1277
activates telnet remote echo and single char transfer, then you can
1278
use the following options to step up a netcat redirector to allow
1279
telnet on port 5555 to access the qemu port.
1280
@table @code
1281
@item Qemu Options:
1282
-serial udp::4555@@:4556
1283
@item netcat options:
1284
-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
1285
@item telnet options:
1286
localhost 5555
1287
@end table
1288

    
1289
@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
1290
The TCP Net Console has two modes of operation.  It can send the serial
1291
I/O to a location or wait for a connection from a location.  By default
1292
the TCP Net Console is sent to @var{host} at the @var{port}.  If you use
1293
the @var{server} option QEMU will wait for a client socket application
1294
to connect to the port before continuing, unless the @code{nowait}
1295
option was specified.  The @code{nodelay} option disables the Nagle buffering
1296
algorithm.  If @var{host} is omitted, 0.0.0.0 is assumed. Only
1297
one TCP connection at a time is accepted. You can use @code{telnet} to
1298
connect to the corresponding character device.
1299
@table @code
1300
@item Example to send tcp console to 192.168.0.2 port 4444
1301
-serial tcp:192.168.0.2:4444
1302
@item Example to listen and wait on port 4444 for connection
1303
-serial tcp::4444,server
1304
@item Example to not wait and listen on ip 192.168.0.100 port 4444
1305
-serial tcp:192.168.0.100:4444,server,nowait
1306
@end table
1307

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

    
1317
@item unix:@var{path}[,server][,nowait]
1318
A unix domain socket is used instead of a tcp socket.  The option works the
1319
same as if you had specified @code{-serial tcp} except the unix domain socket
1320
@var{path} is used for connections.
1321

    
1322
@item mon:@var{dev_string}
1323
This is a special option to allow the monitor to be multiplexed onto
1324
another serial port.  The monitor is accessed with key sequence of
1325
@key{Control-a} and then pressing @key{c}. See monitor access
1326
@ref{pcsys_keys} in the -nographic section for more keys.
1327
@var{dev_string} should be any one of the serial devices specified
1328
above.  An example to multiplex the monitor onto a telnet server
1329
listening on port 4444 would be:
1330
@table @code
1331
@item -serial mon:telnet::4444,server,nowait
1332
@end table
1333

    
1334
@item braille
1335
Braille device.  This will use BrlAPI to display the braille output on a real
1336
or fake device.
1337

    
1338
@end table
1339
ETEXI
1340

    
1341
DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
1342
    "-parallel dev   redirect the parallel port to char device 'dev'\n")
1343
STEXI
1344
@item -parallel @var{dev}
1345
Redirect the virtual parallel port to host device @var{dev} (same
1346
devices as the serial port). On Linux hosts, @file{/dev/parportN} can
1347
be used to use hardware devices connected on the corresponding host
1348
parallel port.
1349

    
1350
This option can be used several times to simulate up to 3 parallel
1351
ports.
1352

    
1353
Use @code{-parallel none} to disable all parallel ports.
1354
ETEXI
1355

    
1356
DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
1357
    "-monitor dev    redirect the monitor to char device 'dev'\n")
1358
STEXI
1359
@item -monitor @var{dev}
1360
Redirect the monitor to host device @var{dev} (same devices as the
1361
serial port).
1362
The default device is @code{vc} in graphical mode and @code{stdio} in
1363
non graphical mode.
1364
ETEXI
1365

    
1366
DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
1367
    "-pidfile file   write PID to 'file'\n")
1368
STEXI
1369
@item -pidfile @var{file}
1370
Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
1371
from a script.
1372
ETEXI
1373

    
1374
DEF("singlestep", 0, QEMU_OPTION_singlestep, \
1375
    "-singlestep   always run in singlestep mode\n")
1376
STEXI
1377
@item -singlestep
1378
Run the emulation in single step mode.
1379
ETEXI
1380

    
1381
DEF("S", 0, QEMU_OPTION_S, \
1382
    "-S              freeze CPU at startup (use 'c' to start execution)\n")
1383
STEXI
1384
@item -S
1385
Do not start CPU at startup (you must type 'c' in the monitor).
1386
ETEXI
1387

    
1388
DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
1389
    "-gdb dev        wait for gdb connection on 'dev'\n")
1390
STEXI
1391
@item -gdb @var{dev}
1392
Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
1393
connections will likely be TCP-based, but also UDP, pseudo TTY, or even
1394
stdio are reasonable use case. The latter is allowing to start qemu from
1395
within gdb and establish the connection via a pipe:
1396
@example
1397
(gdb) target remote | exec qemu -gdb stdio ...
1398
@end example
1399
ETEXI
1400

    
1401
DEF("s", 0, QEMU_OPTION_s, \
1402
    "-s              shorthand for -gdb tcp::%s\n")
1403
STEXI
1404
@item -s
1405
Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
1406
(@pxref{gdb_usage}).
1407
ETEXI
1408

    
1409
DEF("d", HAS_ARG, QEMU_OPTION_d, \
1410
    "-d item1,...    output log to %s (use -d ? for a list of log items)\n")
1411
STEXI
1412
@item -d
1413
Output log in /tmp/qemu.log
1414
ETEXI
1415

    
1416
DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
1417
    "-hdachs c,h,s[,t]\n" \
1418
    "                force hard disk 0 physical geometry and the optional BIOS\n" \
1419
    "                translation (t=none or lba) (usually qemu can guess them)\n")
1420
STEXI
1421
@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
1422
Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
1423
@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
1424
translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
1425
all those parameters. This option is useful for old MS-DOS disk
1426
images.
1427
ETEXI
1428

    
1429
DEF("L", HAS_ARG, QEMU_OPTION_L, \
1430
    "-L path         set the directory for the BIOS, VGA BIOS and keymaps\n")
1431
STEXI
1432
@item -L  @var{path}
1433
Set the directory for the BIOS, VGA BIOS and keymaps.
1434
ETEXI
1435

    
1436
DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
1437
    "-bios file      set the filename for the BIOS\n")
1438
STEXI
1439
@item -bios @var{file}
1440
Set the filename for the BIOS.
1441
ETEXI
1442

    
1443
#ifdef CONFIG_KVM
1444
DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
1445
    "-enable-kvm     enable KVM full virtualization support\n")
1446
#endif
1447
STEXI
1448
@item -enable-kvm
1449
Enable KVM full virtualization support. This option is only available
1450
if KVM support is enabled when compiling.
1451
ETEXI
1452

    
1453
#ifdef CONFIG_XEN
1454
DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
1455
    "-xen-domid id   specify xen guest domain id\n")
1456
DEF("xen-create", 0, QEMU_OPTION_xen_create,
1457
    "-xen-create     create domain using xen hypercalls, bypassing xend\n"
1458
    "                warning: should not be used when xend is in use\n")
1459
DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
1460
    "-xen-attach     attach to existing xen domain\n"
1461
    "                xend will use this when starting qemu\n")
1462
#endif
1463

    
1464
DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
1465
    "-no-reboot      exit instead of rebooting\n")
1466
STEXI
1467
@item -no-reboot
1468
Exit instead of rebooting.
1469
ETEXI
1470

    
1471
DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
1472
    "-no-shutdown    stop before shutdown\n")
1473
STEXI
1474
@item -no-shutdown
1475
Don't exit QEMU on guest shutdown, but instead only stop the emulation.
1476
This allows for instance switching to monitor to commit changes to the
1477
disk image.
1478
ETEXI
1479

    
1480
DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
1481
    "-loadvm [tag|id]\n" \
1482
    "                start right away with a saved state (loadvm in monitor)\n")
1483
STEXI
1484
@item -loadvm @var{file}
1485
Start right away with a saved state (@code{loadvm} in monitor)
1486
ETEXI
1487

    
1488
#ifndef _WIN32
1489
DEF("daemonize", 0, QEMU_OPTION_daemonize, \
1490
    "-daemonize      daemonize QEMU after initializing\n")
1491
#endif
1492
STEXI
1493
@item -daemonize
1494
Daemonize the QEMU process after initialization.  QEMU will not detach from
1495
standard IO until it is ready to receive connections on any of its devices.
1496
This option is a useful way for external programs to launch QEMU without having
1497
to cope with initialization race conditions.
1498
ETEXI
1499

    
1500
DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
1501
    "-option-rom rom load a file, rom, into the option ROM space\n")
1502
STEXI
1503
@item -option-rom @var{file}
1504
Load the contents of @var{file} as an option ROM.
1505
This option is useful to load things like EtherBoot.
1506
ETEXI
1507

    
1508
DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
1509
    "-clock          force the use of the given methods for timer alarm.\n" \
1510
    "                To see what timers are available use -clock ?\n")
1511
STEXI
1512
@item -clock @var{method}
1513
Force the use of the given methods for timer alarm. To see what timers
1514
are available use -clock ?.
1515
ETEXI
1516

    
1517
HXCOMM Options deprecated by -rtc
1518
DEF("localtime", 0, QEMU_OPTION_localtime, "")
1519
DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, "")
1520

    
1521
#ifdef TARGET_I386
1522
DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
1523
    "-rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew]\n" \
1524
    "                set the RTC base and clock, enable drift fix for clock ticks\n")
1525
#else
1526
DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
1527
    "-rtc [base=utc|localtime|date][,clock=host|vm]\n" \
1528
    "                set the RTC base and clock\n")
1529
#endif
1530

    
1531
STEXI
1532

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

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

    
1545
Enable @option{driftfix} (i386 targets only) if you experience time drift problems,
1546
specifically with Windows' ACPI HAL. This option will try to figure out how
1547
many timer interrupts were not processed by the Windows guest and will
1548
re-inject them.
1549
ETEXI
1550

    
1551
DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
1552
    "-icount [N|auto]\n" \
1553
    "                enable virtual instruction counter with 2^N clock ticks per\n" \
1554
    "                instruction\n")
1555
STEXI
1556
@item -icount [N|auto]
1557
Enable virtual instruction counter.  The virtual cpu will execute one
1558
instruction every 2^N ns of virtual time.  If @code{auto} is specified
1559
then the virtual cpu speed will be automatically adjusted to keep virtual
1560
time within a few seconds of real time.
1561

    
1562
Note that while this option can give deterministic behavior, it does not
1563
provide cycle accurate emulation.  Modern CPUs contain superscalar out of
1564
order cores with complex cache hierarchies.  The number of instructions
1565
executed often has little or no correlation with actual performance.
1566
ETEXI
1567

    
1568
DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
1569
    "-watchdog i6300esb|ib700\n" \
1570
    "                enable virtual hardware watchdog [default=none]\n")
1571
STEXI
1572
@item -watchdog @var{model}
1573
Create a virtual hardware watchdog device.  Once enabled (by a guest
1574
action), the watchdog must be periodically polled by an agent inside
1575
the guest or else the guest will be restarted.
1576

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

    
1583
Use @code{-watchdog ?} to list available hardware models.  Only one
1584
watchdog can be enabled for a guest.
1585
ETEXI
1586

    
1587
DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
1588
    "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
1589
    "                action when watchdog fires [default=reset]\n")
1590
STEXI
1591
@item -watchdog-action @var{action}
1592

    
1593
The @var{action} controls what QEMU will do when the watchdog timer
1594
expires.
1595
The default is
1596
@code{reset} (forcefully reset the guest).
1597
Other possible actions are:
1598
@code{shutdown} (attempt to gracefully shutdown the guest),
1599
@code{poweroff} (forcefully poweroff the guest),
1600
@code{pause} (pause the guest),
1601
@code{debug} (print a debug message and continue), or
1602
@code{none} (do nothing).
1603

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

    
1609
Examples:
1610

    
1611
@table @code
1612
@item -watchdog i6300esb -watchdog-action pause
1613
@item -watchdog ib700
1614
@end table
1615
ETEXI
1616

    
1617
DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
1618
    "-echr chr       set terminal escape character instead of ctrl-a\n")
1619
STEXI
1620

    
1621
@item -echr numeric_ascii_value
1622
Change the escape character used for switching to the monitor when using
1623
monitor and serial sharing.  The default is @code{0x01} when using the
1624
@code{-nographic} option.  @code{0x01} is equal to pressing
1625
@code{Control-a}.  You can select a different character from the ascii
1626
control keys where 1 through 26 map to Control-a through Control-z.  For
1627
instance you could use the either of the following to change the escape
1628
character to Control-t.
1629
@table @code
1630
@item -echr 0x14
1631
@item -echr 20
1632
@end table
1633
ETEXI
1634

    
1635
DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
1636
    "-virtioconsole c\n" \
1637
    "                set virtio console\n")
1638
STEXI
1639
@item -virtioconsole @var{c}
1640
Set virtio console.
1641
ETEXI
1642

    
1643
DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
1644
    "-show-cursor    show cursor\n")
1645
STEXI
1646
ETEXI
1647

    
1648
DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
1649
    "-tb-size n      set TB size\n")
1650
STEXI
1651
ETEXI
1652

    
1653
DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
1654
    "-incoming p     prepare for incoming migration, listen on port p\n")
1655
STEXI
1656
ETEXI
1657

    
1658
#ifndef _WIN32
1659
DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
1660
    "-chroot dir     Chroot to dir just before starting the VM.\n")
1661
#endif
1662
STEXI
1663
@item -chroot dir
1664
Immediately before starting guest execution, chroot to the specified
1665
directory.  Especially useful in combination with -runas.
1666
ETEXI
1667

    
1668
#ifndef _WIN32
1669
DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
1670
    "-runas user     Change to user id user just before starting the VM.\n")
1671
#endif
1672
STEXI
1673
@item -runas user
1674
Immediately before starting guest execution, drop root privileges, switching
1675
to the specified user.
1676
ETEXI
1677

    
1678
STEXI
1679
@end table
1680
ETEXI
1681

    
1682
#if defined(TARGET_SPARC) || defined(TARGET_PPC)
1683
DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
1684
    "-prom-env variable=value\n"
1685
    "                set OpenBIOS nvram variables\n")
1686
#endif
1687
#if defined(TARGET_ARM) || defined(TARGET_M68K)
1688
DEF("semihosting", 0, QEMU_OPTION_semihosting,
1689
    "-semihosting    semihosting mode\n")
1690
#endif
1691
#if defined(TARGET_ARM)
1692
DEF("old-param", 0, QEMU_OPTION_old_param,
1693
    "-old-param      old param mode\n")
1694
#endif