Statistics
| Branch: | Revision:

root / qemu-options.hx @ 640f42e4

History | View | Annotate | Download (49.7 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          set the number of CPUs to 'n' [default=1]\n")
43
STEXI
44
@item -smp @var{n}
45
Simulate an SMP system with @var{n} CPUs. On the PC target, up to 255
46
CPUs are supported. On Sparc32 target, Linux limits the number of usable CPUs
47
to 4.
48
ETEXI
49

    
50
DEF("fda", HAS_ARG, QEMU_OPTION_fda,
51
    "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n")
52
DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "")
53
STEXI
54
@item -fda @var{file}
55
@item -fdb @var{file}
56
Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
57
use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
58
ETEXI
59

    
60
DEF("hda", HAS_ARG, QEMU_OPTION_hda,
61
    "-hda/-hdb file  use 'file' as IDE hard disk 0/1 image\n")
62
DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "")
63
DEF("hdc", HAS_ARG, QEMU_OPTION_hdc,
64
    "-hdc/-hdd file  use 'file' as IDE hard disk 2/3 image\n")
65
DEF("hdd", HAS_ARG, QEMU_OPTION_hdd, "")
66
STEXI
67
@item -hda @var{file}
68
@item -hdb @var{file}
69
@item -hdc @var{file}
70
@item -hdd @var{file}
71
Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
72
ETEXI
73

    
74
DEF("cdrom", HAS_ARG, QEMU_OPTION_cdrom,
75
    "-cdrom file     use 'file' as IDE cdrom image (cdrom is ide1 master)\n")
76
STEXI
77
@item -cdrom @var{file}
78
Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and
79
@option{-cdrom} at the same time). You can use the host CD-ROM by
80
using @file{/dev/cdrom} as filename (@pxref{host_drives}).
81
ETEXI
82

    
83
DEF("drive", HAS_ARG, QEMU_OPTION_drive,
84
    "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]\n"
85
    "       [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n"
86
    "       [,cache=writethrough|writeback|none][,format=f][,serial=s]\n"
87
    "                use 'file' as a drive image\n")
88
STEXI
89
@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
90

    
91
Define a new drive. Valid options are:
92

    
93
@table @code
94
@item file=@var{file}
95
This option defines which disk image (@pxref{disk_images}) to use with
96
this drive. If the filename contains comma, you must double it
97
(for instance, "file=my,,file" to use file "my,file").
98
@item if=@var{interface}
99
This option defines on which type on interface the drive is connected.
100
Available types are: ide, scsi, sd, mtd, floppy, pflash, virtio.
101
@item bus=@var{bus},unit=@var{unit}
102
These options define where is connected the drive by defining the bus number and
103
the unit id.
104
@item index=@var{index}
105
This option defines where is connected the drive by using an index in the list
106
of available connectors of a given interface type.
107
@item media=@var{media}
108
This option defines the type of the media: disk or cdrom.
109
@item cyls=@var{c},heads=@var{h},secs=@var{s}[,trans=@var{t}]
110
These options have the same definition as they have in @option{-hdachs}.
111
@item snapshot=@var{snapshot}
112
@var{snapshot} is "on" or "off" and allows to enable snapshot for given drive (see @option{-snapshot}).
113
@item cache=@var{cache}
114
@var{cache} is "none", "writeback", or "writethrough" and controls how the host cache is used to access block data.
115
@item format=@var{format}
116
Specify which disk @var{format} will be used rather than detecting
117
the format.  Can be used to specifiy format=raw to avoid interpreting
118
an untrusted format header.
119
@item serial=@var{serial}
120
This option specifies the serial number to assign to the device.
121
@end table
122

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

    
128
Writeback caching will report data writes as completed as soon as the data is
129
present in the host page cache.  This is safe as long as you trust your host.
130
If your host crashes or loses power, then the guest may experience data
131
corruption.  When using the @option{-snapshot} option, writeback caching is
132
used by default.
133

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

    
138
Some block drivers perform badly with @option{cache=writethrough}, most notably,
139
qcow2.  If performance is more important than correctness,
140
@option{cache=writeback} should be used with qcow2.  By default, if no explicit
141
caching is specified for a qcow2 disk image, @option{cache=writeback} will be
142
used.  For all other disk types, @option{cache=writethrough} is the default.
143

    
144
Instead of @option{-cdrom} you can use:
145
@example
146
qemu -drive file=file,index=2,media=cdrom
147
@end example
148

    
149
Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
150
use:
151
@example
152
qemu -drive file=file,index=0,media=disk
153
qemu -drive file=file,index=1,media=disk
154
qemu -drive file=file,index=2,media=disk
155
qemu -drive file=file,index=3,media=disk
156
@end example
157

    
158
You can connect a CDROM to the slave of ide0:
159
@example
160
qemu -drive file=file,if=ide,index=1,media=cdrom
161
@end example
162

    
163
If you don't specify the "file=" argument, you define an empty drive:
164
@example
165
qemu -drive if=ide,index=1,media=cdrom
166
@end example
167

    
168
You can connect a SCSI disk with unit ID 6 on the bus #0:
169
@example
170
qemu -drive file=file,if=scsi,bus=0,unit=6
171
@end example
172

    
173
Instead of @option{-fda}, @option{-fdb}, you can use:
174
@example
175
qemu -drive file=file,index=0,if=floppy
176
qemu -drive file=file,index=1,if=floppy
177
@end example
178

    
179
By default, @var{interface} is "ide" and @var{index} is automatically
180
incremented:
181
@example
182
qemu -drive file=a -drive file=b"
183
@end example
184
is interpreted like:
185
@example
186
qemu -hda a -hdb b
187
@end example
188
ETEXI
189

    
190
DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
191
    "-mtdblock file  use 'file' as on-board Flash memory image\n")
192
STEXI
193

    
194
@item -mtdblock file
195
Use 'file' as on-board Flash memory image.
196
ETEXI
197

    
198
DEF("sd", HAS_ARG, QEMU_OPTION_sd,
199
    "-sd file        use 'file' as SecureDigital card image\n")
200
STEXI
201
@item -sd file
202
Use 'file' as SecureDigital card image.
203
ETEXI
204

    
205
DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
206
    "-pflash file    use 'file' as a parallel flash image\n")
207
STEXI
208
@item -pflash file
209
Use 'file' as a parallel flash image.
210
ETEXI
211

    
212
DEF("boot", HAS_ARG, QEMU_OPTION_boot,
213
    "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n")
214
STEXI
215
@item -boot [a|c|d|n]
216
Boot on floppy (a), hard disk (c), CD-ROM (d), or Etherboot (n). Hard disk boot
217
is the default.
218
ETEXI
219

    
220
DEF("snapshot", 0, QEMU_OPTION_snapshot,
221
    "-snapshot       write to temporary files instead of disk image files\n")
222
STEXI
223
@item -snapshot
224
Write to temporary files instead of disk image files. In this case,
225
the raw disk image you use is not written back. You can however force
226
the write back by pressing @key{C-a s} (@pxref{disk_images}).
227
ETEXI
228

    
229
DEF("m", HAS_ARG, QEMU_OPTION_m,
230
    "-m megs         set virtual RAM size to megs MB [default=%d]\n")
231
STEXI
232
@item -m @var{megs}
233
Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB.  Optionally,
234
a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
235
gigabytes respectively.
236
ETEXI
237

    
238
DEF("k", HAS_ARG, QEMU_OPTION_k,
239
    "-k language     use keyboard layout (for example 'fr' for French)\n")
240
STEXI
241
@item -k @var{language}
242

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

    
249
The available layouts are:
250
@example
251
ar  de-ch  es  fo     fr-ca  hu  ja  mk     no  pt-br  sv
252
da  en-gb  et  fr     fr-ch  is  lt  nl     pl  ru     th
253
de  en-us  fi  fr-be  hr     it  lv  nl-be  pt  sl     tr
254
@end example
255

    
256
The default is @code{en-us}.
257
ETEXI
258

    
259

    
260
#ifdef HAS_AUDIO
261
DEF("audio-help", 0, QEMU_OPTION_audio_help,
262
    "-audio-help     print list of audio drivers and their options\n")
263
#endif
264
STEXI
265
@item -audio-help
266

    
267
Will show the audio subsystem help: list of drivers, tunable
268
parameters.
269
ETEXI
270

    
271
#ifdef HAS_AUDIO
272
DEF("soundhw", HAS_ARG, QEMU_OPTION_soundhw,
273
    "-soundhw c1,... enable audio support\n"
274
    "                and only specified sound cards (comma separated list)\n"
275
    "                use -soundhw ? to get the list of supported cards\n"
276
    "                use -soundhw all to enable all of them\n")
277
#endif
278
STEXI
279
@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
280

    
281
Enable audio and selected sound hardware. Use ? to print all
282
available sound hardware.
283

    
284
@example
285
qemu -soundhw sb16,adlib disk.img
286
qemu -soundhw es1370 disk.img
287
qemu -soundhw ac97 disk.img
288
qemu -soundhw all disk.img
289
qemu -soundhw ?
290
@end example
291

    
292
Note that Linux's i810_audio OSS kernel (for AC97) module might
293
require manually specifying clocking.
294

    
295
@example
296
modprobe i810_audio clocking=48000
297
@end example
298
ETEXI
299

    
300
STEXI
301
@end table
302
ETEXI
303

    
304
DEF("usb", 0, QEMU_OPTION_usb,
305
    "-usb            enable the USB driver (will be the default soon)\n")
306
STEXI
307
USB options:
308
@table @option
309

    
310
@item -usb
311
Enable the USB driver (will be the default soon)
312
ETEXI
313

    
314
DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
315
    "-usbdevice name add the host or guest USB device 'name'\n")
316
STEXI
317

    
318
@item -usbdevice @var{devname}
319
Add the USB device @var{devname}. @xref{usb_devices}.
320

    
321
@table @code
322

    
323
@item mouse
324
Virtual Mouse. This will override the PS/2 mouse emulation when activated.
325

    
326
@item tablet
327
Pointer device that uses absolute coordinates (like a touchscreen). This
328
means qemu is able to report the mouse position without having to grab the
329
mouse. Also overrides the PS/2 mouse emulation when activated.
330

    
331
@item disk:[format=@var{format}]:file
332
Mass storage device based on file. The optional @var{format} argument
333
will be used rather than detecting the format. Can be used to specifiy
334
format=raw to avoid interpreting an untrusted format header.
335

    
336
@item host:bus.addr
337
Pass through the host device identified by bus.addr (Linux only).
338

    
339
@item host:vendor_id:product_id
340
Pass through the host device identified by vendor_id:product_id (Linux only).
341

    
342
@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
343
Serial converter to host character device @var{dev}, see @code{-serial} for the
344
available devices.
345

    
346
@item braille
347
Braille device.  This will use BrlAPI to display the braille output on a real
348
or fake device.
349

    
350
@item net:options
351
Network adapter that supports CDC ethernet and RNDIS protocols.
352

    
353
@end table
354
ETEXI
355

    
356
DEF("name", HAS_ARG, QEMU_OPTION_name,
357
    "-name string    set the name of the guest\n")
358
STEXI
359
@item -name @var{name}
360
Sets the @var{name} of the guest.
361
This name will be displayed in the SDL window caption.
362
The @var{name} will also be used for the VNC server.
363
ETEXI
364

    
365
DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
366
    "-uuid %%08x-%%04x-%%04x-%%04x-%%012x\n"
367
    "                specify machine UUID\n")
368
STEXI
369
@item -uuid @var{uuid}
370
Set system UUID.
371
ETEXI
372

    
373
STEXI
374
@end table
375
ETEXI
376

    
377
DEFHEADING()
378

    
379
DEFHEADING(Display options:)
380

    
381
STEXI
382
@table @option
383
ETEXI
384

    
385
DEF("nographic", 0, QEMU_OPTION_nographic,
386
    "-nographic      disable graphical output and redirect serial I/Os to console\n")
387
STEXI
388
@item -nographic
389

    
390
Normally, QEMU uses SDL to display the VGA output. With this option,
391
you can totally disable graphical output so that QEMU is a simple
392
command line application. The emulated serial port is redirected on
393
the console. Therefore, you can still use QEMU to debug a Linux kernel
394
with a serial console.
395
ETEXI
396

    
397
#ifdef CONFIG_CURSES
398
DEF("curses", 0, QEMU_OPTION_curses,
399
    "-curses         use a curses/ncurses interface instead of SDL\n")
400
#endif
401
STEXI
402
@item -curses
403

    
404
Normally, QEMU uses SDL to display the VGA output.  With this option,
405
QEMU can display the VGA output when in text mode using a
406
curses/ncurses interface.  Nothing is displayed in graphical mode.
407
ETEXI
408

    
409
#ifdef CONFIG_SDL
410
DEF("no-frame", 0, QEMU_OPTION_no_frame,
411
    "-no-frame       open SDL window without a frame and window decorations\n")
412
#endif
413
STEXI
414
@item -no-frame
415

    
416
Do not use decorations for SDL windows and start them using the whole
417
available screen space. This makes the using QEMU in a dedicated desktop
418
workspace more convenient.
419
ETEXI
420

    
421
#ifdef CONFIG_SDL
422
DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
423
    "-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n")
424
#endif
425
STEXI
426
@item -alt-grab
427

    
428
Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt).
429
ETEXI
430

    
431
#ifdef CONFIG_SDL
432
DEF("no-quit", 0, QEMU_OPTION_no_quit,
433
    "-no-quit        disable SDL window close capability\n")
434
#endif
435
STEXI
436
@item -no-quit
437

    
438
Disable SDL window close capability.
439
ETEXI
440

    
441
#ifdef CONFIG_SDL
442
DEF("sdl", 0, QEMU_OPTION_sdl,
443
    "-sdl            enable SDL\n")
444
#endif
445
STEXI
446
@item -sdl
447

    
448
Enable SDL.
449
ETEXI
450

    
451
DEF("portrait", 0, QEMU_OPTION_portrait,
452
    "-portrait       rotate graphical output 90 deg left (only PXA LCD)\n")
453
STEXI
454
@item -portrait
455

    
456
Rotate graphical output 90 deg left (only PXA LCD).
457
ETEXI
458

    
459
DEF("vga", HAS_ARG, QEMU_OPTION_vga,
460
    "-vga [std|cirrus|vmware|none]\n"
461
    "                select video card type\n")
462
STEXI
463
@item -vga @var{type}
464
Select type of VGA card to emulate. Valid values for @var{type} are
465
@table @code
466
@item cirrus
467
Cirrus Logic GD5446 Video card. All Windows versions starting from
468
Windows 95 should recognize and use this graphic card. For optimal
469
performances, use 16 bit color depth in the guest and the host OS.
470
(This one is the default)
471
@item std
472
Standard VGA card with Bochs VBE extensions.  If your guest OS
473
supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want
474
to use high resolution modes (>= 1280x1024x16) then you should use
475
this option.
476
@item vmware
477
VMWare SVGA-II compatible adapter. Use it if you have sufficiently
478
recent XFree86/XOrg server or Windows guest with a driver for this
479
card.
480
@item none
481
Disable VGA card.
482
@end table
483
ETEXI
484

    
485
DEF("full-screen", 0, QEMU_OPTION_full_screen,
486
    "-full-screen    start in full screen\n")
487
STEXI
488
@item -full-screen
489
Start in full screen.
490
ETEXI
491

    
492
#if defined(TARGET_PPC) || defined(TARGET_SPARC)
493
DEF("g", 1, QEMU_OPTION_g ,
494
    "-g WxH[xDEPTH]  Set the initial graphical resolution and depth\n")
495
#endif
496
STEXI
497
ETEXI
498

    
499
DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
500
    "-vnc display    start a VNC server on display\n")
501
STEXI
502
@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
503

    
504
Normally, QEMU uses SDL to display the VGA output.  With this option,
505
you can have QEMU listen on VNC display @var{display} and redirect the VGA
506
display over the VNC session.  It is very useful to enable the usb
507
tablet device when using this option (option @option{-usbdevice
508
tablet}). When using the VNC display, you must use the @option{-k}
509
parameter to set the keyboard layout if you are not using en-us. Valid
510
syntax for the @var{display} is
511

    
512
@table @code
513

    
514
@item @var{host}:@var{d}
515

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

    
520
@item @code{unix}:@var{path}
521

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

    
525
@item none
526

    
527
VNC is initialized but not started. The monitor @code{change} command
528
can be used to later start the VNC server.
529

    
530
@end table
531

    
532
Following the @var{display} value there may be one or more @var{option} flags
533
separated by commas. Valid options are
534

    
535
@table @code
536

    
537
@item reverse
538

    
539
Connect to a listening VNC client via a ``reverse'' connection. The
540
client is specified by the @var{display}. For reverse network
541
connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
542
is a TCP port number, not a display number.
543

    
544
@item password
545

    
546
Require that password based authentication is used for client connections.
547
The password must be set separately using the @code{change} command in the
548
@ref{pcsys_monitor}
549

    
550
@item tls
551

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

    
557
@item x509=@var{/path/to/certificate/dir}
558

    
559
Valid if @option{tls} is specified. Require that x509 credentials are used
560
for negotiating the TLS session. The server will send its x509 certificate
561
to the client. It is recommended that a password be set on the VNC server
562
to provide authentication of the client when this is used. The path following
563
this option specifies where the x509 certificates are to be loaded from.
564
See the @ref{vnc_security} section for details on generating certificates.
565

    
566
@item x509verify=@var{/path/to/certificate/dir}
567

    
568
Valid if @option{tls} is specified. Require that x509 credentials are used
569
for negotiating the TLS session. The server will send its x509 certificate
570
to the client, and request that the client send its own x509 certificate.
571
The server will validate the client's certificate against the CA certificate,
572
and reject clients when validation fails. If the certificate authority is
573
trusted, this is a sufficient authentication mechanism. You may still wish
574
to set a password on the VNC server as a second authentication layer. The
575
path following this option specifies where the x509 certificates are to
576
be loaded from. See the @ref{vnc_security} section for details on generating
577
certificates.
578

    
579
@item sasl
580

    
581
Require that the client use SASL to authenticate with the VNC server.
582
The exact choice of authentication method used is controlled from the
583
system / user's SASL configuration file for the 'qemu' service. This
584
is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
585
unprivileged user, an environment variable SASL_CONF_PATH can be used
586
to make it search alternate locations for the service config.
587
While some SASL auth methods can also provide data encryption (eg GSSAPI),
588
it is recommended that SASL always be combined with the 'tls' and
589
'x509' settings to enable use of SSL and server certificates. This
590
ensures a data encryption preventing compromise of authentication
591
credentials. See the @ref{vnc_security} section for details on using
592
SASL authentication.
593

    
594
@item acl
595

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

    
607
@end table
608
ETEXI
609

    
610
STEXI
611
@end table
612
ETEXI
613

    
614
DEFHEADING()
615

    
616
#ifdef TARGET_I386
617
DEFHEADING(i386 target only:)
618
#endif
619
STEXI
620
@table @option
621
ETEXI
622

    
623
#ifdef TARGET_I386
624
DEF("win2k-hack", 0, QEMU_OPTION_win2k_hack,
625
    "-win2k-hack     use it when installing Windows 2000 to avoid a disk full bug\n")
626
#endif
627
STEXI
628
@item -win2k-hack
629
Use it when installing Windows 2000 to avoid a disk full bug. After
630
Windows 2000 is installed, you no longer need this option (this option
631
slows down the IDE transfers).
632
ETEXI
633

    
634
#ifdef TARGET_I386
635
DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack,
636
    "-rtc-td-hack    use it to fix time drift in Windows ACPI HAL\n")
637
#endif
638
STEXI
639
@item -rtc-td-hack
640
Use it if you experience time drift problem in Windows with ACPI HAL.
641
This option will try to figure out how many timer interrupts were not
642
processed by the Windows guest and will re-inject them.
643
ETEXI
644

    
645
#ifdef TARGET_I386
646
DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
647
    "-no-fd-bootchk  disable boot signature checking for floppy disks\n")
648
#endif
649
STEXI
650
@item -no-fd-bootchk
651
Disable boot signature checking for floppy disks in Bochs BIOS. It may
652
be needed to boot from old floppy disks.
653
ETEXI
654

    
655
#ifdef TARGET_I386
656
DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
657
           "-no-acpi        disable ACPI\n")
658
#endif
659
STEXI
660
@item -no-acpi
661
Disable ACPI (Advanced Configuration and Power Interface) support. Use
662
it if your guest OS complains about ACPI problems (PC target machine
663
only).
664
ETEXI
665

    
666
#ifdef TARGET_I386
667
DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
668
    "-no-hpet        disable HPET\n")
669
#endif
670
STEXI
671
@item -no-hpet
672
Disable HPET support.
673
ETEXI
674

    
675
#ifdef TARGET_I386
676
DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
677
    "-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"
678
    "                ACPI table description\n")
679
#endif
680
STEXI
681
@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}]...]
682
Add ACPI table with specified header fields and context from specified files.
683
ETEXI
684

    
685
#ifdef TARGET_I386
686
DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
687
    "-smbios file=binary\n"
688
    "                Load SMBIOS entry from binary file\n"
689
    "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%%d.%%d]\n"
690
    "                Specify SMBIOS type 0 fields\n"
691
    "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n"
692
    "              [,uuid=uuid][,sku=str][,family=str]\n"
693
    "                Specify SMBIOS type 1 fields\n")
694
#endif
695
STEXI
696
@item -smbios file=@var{binary}
697
Load SMBIOS entry from binary file.
698

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

    
702
@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}]
703
Specify SMBIOS type 1 fields
704
ETEXI
705

    
706
#ifdef TARGET_I386
707
DEFHEADING()
708
#endif
709
STEXI
710
@end table
711
ETEXI
712

    
713
DEFHEADING(Network options:)
714
STEXI
715
@table @option
716
ETEXI
717

    
718
DEF("net", HAS_ARG, QEMU_OPTION_net, \
719
    "-net nic[,vlan=n][,macaddr=addr][,model=type][,name=str]\n"
720
    "                create a new Network Interface Card and connect it to VLAN 'n'\n"
721
#ifdef CONFIG_SLIRP
722
    "-net user[,vlan=n][,name=str][,hostname=host]\n"
723
    "                connect the user mode network stack to VLAN 'n' and send\n"
724
    "                hostname 'host' to DHCP clients\n"
725
#endif
726
#ifdef _WIN32
727
    "-net tap[,vlan=n][,name=str],ifname=name\n"
728
    "                connect the host TAP network interface to VLAN 'n'\n"
729
#else
730
    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n"
731
    "                connect the host TAP network interface to VLAN 'n' and use the\n"
732
    "                network scripts 'file' (default=%s)\n"
733
    "                and 'dfile' (default=%s);\n"
734
    "                use '[down]script=no' to disable script execution;\n"
735
    "                use 'fd=h' to connect to an already opened TAP interface\n"
736
#endif
737
    "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
738
    "                connect the vlan 'n' to another VLAN using a socket connection\n"
739
    "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n"
740
    "                connect the vlan 'n' to multicast maddr and port\n"
741
#ifdef CONFIG_VDE
742
    "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
743
    "                connect the vlan 'n' to port 'n' of a vde switch running\n"
744
    "                on host and listening for incoming connections on 'socketpath'.\n"
745
    "                Use group 'groupname' and mode 'octalmode' to change default\n"
746
    "                ownership and permissions for communication port.\n"
747
#endif
748
    "-net none       use it alone to have zero network devices; if no -net option\n"
749
    "                is provided, the default is '-net nic -net user'\n")
750
STEXI
751
@item -net nic[,vlan=@var{n}][,macaddr=@var{addr}][,model=@var{type}][,name=@var{name}]
752
Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
753
= 0 is the default). The NIC is an ne2k_pci by default on the PC
754
target. Optionally, the MAC address can be changed to @var{addr}
755
and a @var{name} can be assigned for use in monitor commands. If no
756
@option{-net} option is specified, a single NIC is created.
757
Qemu can emulate several different models of network card.
758
Valid values for @var{type} are
759
@code{i82551}, @code{i82557b}, @code{i82559er},
760
@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
761
@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.
762
Not all devices are supported on all targets.  Use -net nic,model=?
763
for a list of available devices for your target.
764

    
765
@item -net user[,vlan=@var{n}][,hostname=@var{name}][,name=@var{name}]
766
Use the user mode network stack which requires no administrator
767
privilege to run.  @option{hostname=name} can be used to specify the client
768
hostname reported by the builtin DHCP server.
769

    
770
@item -net channel,@var{port}:@var{dev}
771
Forward @option{user} TCP connection to port @var{port} to character device @var{dev}
772

    
773
@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}]
774
Connect the host TAP network interface @var{name} to VLAN @var{n}, use
775
the network script @var{file} to configure it and the network script
776
@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
777
automatically provides one. @option{fd}=@var{h} can be used to specify
778
the handle of an already opened host TAP interface. The default network
779
configure script is @file{/etc/qemu-ifup} and the default network
780
deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}
781
or @option{downscript=no} to disable script execution. Example:
782

    
783
@example
784
qemu linux.img -net nic -net tap
785
@end example
786

    
787
More complicated example (two NICs, each one connected to a TAP device)
788
@example
789
qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
790
               -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
791
@end example
792

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

    
795
Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
796
machine using a TCP socket connection. If @option{listen} is
797
specified, QEMU waits for incoming connections on @var{port}
798
(@var{host} is optional). @option{connect} is used to connect to
799
another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
800
specifies an already opened TCP socket.
801

    
802
Example:
803
@example
804
# launch a first QEMU instance
805
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
806
               -net socket,listen=:1234
807
# connect the VLAN 0 of this instance to the VLAN 0
808
# of the first instance
809
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
810
               -net socket,connect=127.0.0.1:1234
811
@end example
812

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

    
815
Create a VLAN @var{n} shared with another QEMU virtual
816
machines using a UDP multicast socket, effectively making a bus for
817
every QEMU with same multicast address @var{maddr} and @var{port}.
818
NOTES:
819
@enumerate
820
@item
821
Several QEMU can be running on different hosts and share same bus (assuming
822
correct multicast setup for these hosts).
823
@item
824
mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
825
@url{http://user-mode-linux.sf.net}.
826
@item
827
Use @option{fd=h} to specify an already opened UDP multicast socket.
828
@end enumerate
829

    
830
Example:
831
@example
832
# launch one QEMU instance
833
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
834
               -net socket,mcast=230.0.0.1:1234
835
# launch another QEMU instance on same "bus"
836
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
837
               -net socket,mcast=230.0.0.1:1234
838
# launch yet another QEMU instance on same "bus"
839
qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
840
               -net socket,mcast=230.0.0.1:1234
841
@end example
842

    
843
Example (User Mode Linux compat.):
844
@example
845
# launch QEMU instance (note mcast address selected
846
# is UML's default)
847
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
848
               -net socket,mcast=239.192.168.1:1102
849
# launch UML
850
/path/to/linux ubd0=/path/to/root_fs eth0=mcast
851
@end example
852

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

    
860
Example:
861
@example
862
# launch vde switch
863
vde_switch -F -sock /tmp/myswitch
864
# launch QEMU instance
865
qemu linux.img -net nic -net vde,sock=/tmp/myswitch
866
@end example
867

    
868
@item -net none
869
Indicate that no network devices should be configured. It is used to
870
override the default configuration (@option{-net nic -net user}) which
871
is activated if no @option{-net} options are provided.
872
ETEXI
873

    
874
#ifdef CONFIG_SLIRP
875
DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, \
876
    "-tftp dir       allow tftp access to files in dir [-net user]\n")
877
#endif
878
STEXI
879
@item -tftp @var{dir}
880
When using the user mode network stack, activate a built-in TFTP
881
server. The files in @var{dir} will be exposed as the root of a TFTP server.
882
The TFTP client on the guest must be configured in binary mode (use the command
883
@code{bin} of the Unix TFTP client). The host IP address on the guest is as
884
usual 10.0.2.2.
885
ETEXI
886

    
887
#ifdef CONFIG_SLIRP
888
DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, \
889
    "-bootp file     advertise file in BOOTP replies\n")
890
#endif
891
STEXI
892
@item -bootp @var{file}
893
When using the user mode network stack, broadcast @var{file} as the BOOTP
894
filename.  In conjunction with @option{-tftp}, this can be used to network boot
895
a guest from a local directory.
896

    
897
Example (using pxelinux):
898
@example
899
qemu -hda linux.img -boot n -tftp /path/to/tftp/files -bootp /pxelinux.0
900
@end example
901
ETEXI
902

    
903
#ifndef _WIN32
904
DEF("smb", HAS_ARG, QEMU_OPTION_smb, \
905
           "-smb dir        allow SMB access to files in 'dir' [-net user]\n")
906
#endif
907
STEXI
908
@item -smb @var{dir}
909
When using the user mode network stack, activate a built-in SMB
910
server so that Windows OSes can access to the host files in @file{@var{dir}}
911
transparently.
912

    
913
In the guest Windows OS, the line:
914
@example
915
10.0.2.4 smbserver
916
@end example
917
must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
918
or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
919

    
920
Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
921

    
922
Note that a SAMBA server must be installed on the host OS in
923
@file{/usr/sbin/smbd}. QEMU was tested successfully with smbd version
924
2.2.7a from the Red Hat 9 and version 3.0.10-1.fc3 from Fedora Core 3.
925
ETEXI
926

    
927
#ifdef CONFIG_SLIRP
928
DEF("redir", HAS_ARG, QEMU_OPTION_redir, \
929
    "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n" \
930
    "                redirect TCP or UDP connections from host to guest [-net user]\n")
931
#endif
932
STEXI
933
@item -redir [tcp|udp]:@var{host-port}:[@var{guest-host}]:@var{guest-port}
934

    
935
When using the user mode network stack, redirect incoming TCP or UDP
936
connections to the host port @var{host-port} to the guest
937
@var{guest-host} on guest port @var{guest-port}. If @var{guest-host}
938
is not specified, its value is 10.0.2.15 (default address given by the
939
built-in DHCP server).
940

    
941
For example, to redirect host X11 connection from screen 1 to guest
942
screen 0, use the following:
943

    
944
@example
945
# on the host
946
qemu -redir tcp:6001::6000 [...]
947
# this host xterm should open in the guest X11 server
948
xterm -display :1
949
@end example
950

    
951
To redirect telnet connections from host port 5555 to telnet port on
952
the guest, use the following:
953

    
954
@example
955
# on the host
956
qemu -redir tcp:5555::23 [...]
957
telnet localhost 5555
958
@end example
959

    
960
Then when you use on the host @code{telnet localhost 5555}, you
961
connect to the guest telnet server.
962

    
963
@end table
964
ETEXI
965

    
966
DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
967
    "\n" \
968
    "-bt hci,null    dumb bluetooth HCI - doesn't respond to commands\n" \
969
    "-bt hci,host[:id]\n" \
970
    "                use host's HCI with the given name\n" \
971
    "-bt hci[,vlan=n]\n" \
972
    "                emulate a standard HCI in virtual scatternet 'n'\n" \
973
    "-bt vhci[,vlan=n]\n" \
974
    "                add host computer to virtual scatternet 'n' using VHCI\n" \
975
    "-bt device:dev[,vlan=n]\n" \
976
    "                emulate a bluetooth device 'dev' in scatternet 'n'\n")
977
STEXI
978
Bluetooth(R) options:
979
@table @option
980

    
981
@item -bt hci[...]
982
Defines the function of the corresponding Bluetooth HCI.  -bt options
983
are matched with the HCIs present in the chosen machine type.  For
984
example when emulating a machine with only one HCI built into it, only
985
the first @code{-bt hci[...]} option is valid and defines the HCI's
986
logic.  The Transport Layer is decided by the machine type.  Currently
987
the machines @code{n800} and @code{n810} have one HCI and all other
988
machines have none.
989

    
990
@anchor{bt-hcis}
991
The following three types are recognized:
992

    
993
@table @code
994
@item -bt hci,null
995
(default) The corresponding Bluetooth HCI assumes no internal logic
996
and will not respond to any HCI commands or emit events.
997

    
998
@item -bt hci,host[:@var{id}]
999
(@code{bluez} only) The corresponding HCI passes commands / events
1000
to / from the physical HCI identified by the name @var{id} (default:
1001
@code{hci0}) on the computer running QEMU.  Only available on @code{bluez}
1002
capable systems like Linux.
1003

    
1004
@item -bt hci[,vlan=@var{n}]
1005
Add a virtual, standard HCI that will participate in the Bluetooth
1006
scatternet @var{n} (default @code{0}).  Similarly to @option{-net}
1007
VLANs, devices inside a bluetooth network @var{n} can only communicate
1008
with other devices in the same network (scatternet).
1009
@end table
1010

    
1011
@item -bt vhci[,vlan=@var{n}]
1012
(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
1013
to the host bluetooth stack instead of to the emulated target.  This
1014
allows the host and target machines to participate in a common scatternet
1015
and communicate.  Requires the Linux @code{vhci} driver installed.  Can
1016
be used as following:
1017

    
1018
@example
1019
qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
1020
@end example
1021

    
1022
@item -bt device:@var{dev}[,vlan=@var{n}]
1023
Emulate a bluetooth device @var{dev} and place it in network @var{n}
1024
(default @code{0}).  QEMU can only emulate one type of bluetooth devices
1025
currently:
1026

    
1027
@table @code
1028
@item keyboard
1029
Virtual wireless keyboard implementing the HIDP bluetooth profile.
1030
@end table
1031
@end table
1032
ETEXI
1033

    
1034
DEFHEADING()
1035

    
1036
DEFHEADING(Linux boot specific:)
1037
STEXI
1038
When using these options, you can use a given
1039
Linux kernel without installing it in the disk image. It can be useful
1040
for easier testing of various kernels.
1041

    
1042
@table @option
1043
ETEXI
1044

    
1045
DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
1046
    "-kernel bzImage use 'bzImage' as kernel image\n")
1047
STEXI
1048
@item -kernel @var{bzImage}
1049
Use @var{bzImage} as kernel image.
1050
ETEXI
1051

    
1052
DEF("append", HAS_ARG, QEMU_OPTION_append, \
1053
    "-append cmdline use 'cmdline' as kernel command line\n")
1054
STEXI
1055
@item -append @var{cmdline}
1056
Use @var{cmdline} as kernel command line
1057
ETEXI
1058

    
1059
DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
1060
           "-initrd file    use 'file' as initial ram disk\n")
1061
STEXI
1062
@item -initrd @var{file}
1063
Use @var{file} as initial ram disk.
1064
ETEXI
1065

    
1066
STEXI
1067
@end table
1068
ETEXI
1069

    
1070
DEFHEADING()
1071

    
1072
DEFHEADING(Debug/Expert options:)
1073

    
1074
STEXI
1075
@table @option
1076
ETEXI
1077

    
1078
DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
1079
    "-serial dev     redirect the serial port to char device 'dev'\n")
1080
STEXI
1081
@item -serial @var{dev}
1082
Redirect the virtual serial port to host character device
1083
@var{dev}. The default device is @code{vc} in graphical mode and
1084
@code{stdio} in non graphical mode.
1085

    
1086
This option can be used several times to simulate up to 4 serial
1087
ports.
1088

    
1089
Use @code{-serial none} to disable all serial ports.
1090

    
1091
Available character devices are:
1092
@table @code
1093
@item vc[:WxH]
1094
Virtual console. Optionally, a width and height can be given in pixel with
1095
@example
1096
vc:800x600
1097
@end example
1098
It is also possible to specify width or height in characters:
1099
@example
1100
vc:80Cx24C
1101
@end example
1102
@item pty
1103
[Linux only] Pseudo TTY (a new PTY is automatically allocated)
1104
@item none
1105
No device is allocated.
1106
@item null
1107
void device
1108
@item /dev/XXX
1109
[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
1110
parameters are set according to the emulated ones.
1111
@item /dev/parport@var{N}
1112
[Linux only, parallel port only] Use host parallel port
1113
@var{N}. Currently SPP and EPP parallel port features can be used.
1114
@item file:@var{filename}
1115
Write output to @var{filename}. No character can be read.
1116
@item stdio
1117
[Unix only] standard input/output
1118
@item pipe:@var{filename}
1119
name pipe @var{filename}
1120
@item COM@var{n}
1121
[Windows only] Use host serial port @var{n}
1122
@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
1123
This implements UDP Net Console.
1124
When @var{remote_host} or @var{src_ip} are not specified
1125
they default to @code{0.0.0.0}.
1126
When not using a specified @var{src_port} a random port is automatically chosen.
1127
@item msmouse
1128
Three button serial mouse. Configure the guest to use Microsoft protocol.
1129

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

    
1135
If you plan to send characters back via netconsole or you want to stop
1136
and start qemu a lot of times, you should have qemu use the same
1137
source port each time by using something like @code{-serial
1138
udp::4555@@:4556} to qemu. Another approach is to use a patched
1139
version of netcat which can listen to a TCP port and send and receive
1140
characters via udp.  If you have a patched version of netcat which
1141
activates telnet remote echo and single char transfer, then you can
1142
use the following options to step up a netcat redirector to allow
1143
telnet on port 5555 to access the qemu port.
1144
@table @code
1145
@item Qemu Options:
1146
-serial udp::4555@@:4556
1147
@item netcat options:
1148
-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
1149
@item telnet options:
1150
localhost 5555
1151
@end table
1152

    
1153
@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
1154
The TCP Net Console has two modes of operation.  It can send the serial
1155
I/O to a location or wait for a connection from a location.  By default
1156
the TCP Net Console is sent to @var{host} at the @var{port}.  If you use
1157
the @var{server} option QEMU will wait for a client socket application
1158
to connect to the port before continuing, unless the @code{nowait}
1159
option was specified.  The @code{nodelay} option disables the Nagle buffering
1160
algorithm.  If @var{host} is omitted, 0.0.0.0 is assumed. Only
1161
one TCP connection at a time is accepted. You can use @code{telnet} to
1162
connect to the corresponding character device.
1163
@table @code
1164
@item Example to send tcp console to 192.168.0.2 port 4444
1165
-serial tcp:192.168.0.2:4444
1166
@item Example to listen and wait on port 4444 for connection
1167
-serial tcp::4444,server
1168
@item Example to not wait and listen on ip 192.168.0.100 port 4444
1169
-serial tcp:192.168.0.100:4444,server,nowait
1170
@end table
1171

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

    
1181
@item unix:@var{path}[,server][,nowait]
1182
A unix domain socket is used instead of a tcp socket.  The option works the
1183
same as if you had specified @code{-serial tcp} except the unix domain socket
1184
@var{path} is used for connections.
1185

    
1186
@item mon:@var{dev_string}
1187
This is a special option to allow the monitor to be multiplexed onto
1188
another serial port.  The monitor is accessed with key sequence of
1189
@key{Control-a} and then pressing @key{c}. See monitor access
1190
@ref{pcsys_keys} in the -nographic section for more keys.
1191
@var{dev_string} should be any one of the serial devices specified
1192
above.  An example to multiplex the monitor onto a telnet server
1193
listening on port 4444 would be:
1194
@table @code
1195
@item -serial mon:telnet::4444,server,nowait
1196
@end table
1197

    
1198
@item braille
1199
Braille device.  This will use BrlAPI to display the braille output on a real
1200
or fake device.
1201

    
1202
@end table
1203
ETEXI
1204

    
1205
DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
1206
    "-parallel dev   redirect the parallel port to char device 'dev'\n")
1207
STEXI
1208
@item -parallel @var{dev}
1209
Redirect the virtual parallel port to host device @var{dev} (same
1210
devices as the serial port). On Linux hosts, @file{/dev/parportN} can
1211
be used to use hardware devices connected on the corresponding host
1212
parallel port.
1213

    
1214
This option can be used several times to simulate up to 3 parallel
1215
ports.
1216

    
1217
Use @code{-parallel none} to disable all parallel ports.
1218
ETEXI
1219

    
1220
DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
1221
    "-monitor dev    redirect the monitor to char device 'dev'\n")
1222
STEXI
1223
@item -monitor @var{dev}
1224
Redirect the monitor to host device @var{dev} (same devices as the
1225
serial port).
1226
The default device is @code{vc} in graphical mode and @code{stdio} in
1227
non graphical mode.
1228
ETEXI
1229

    
1230
DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
1231
    "-pidfile file   write PID to 'file'\n")
1232
STEXI
1233
@item -pidfile @var{file}
1234
Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
1235
from a script.
1236
ETEXI
1237

    
1238
DEF("singlestep", 0, QEMU_OPTION_singlestep, \
1239
    "-singlestep   always run in singlestep mode\n")
1240
STEXI
1241
@item -singlestep
1242
Run the emulation in single step mode.
1243
ETEXI
1244

    
1245
DEF("S", 0, QEMU_OPTION_S, \
1246
    "-S              freeze CPU at startup (use 'c' to start execution)\n")
1247
STEXI
1248
@item -S
1249
Do not start CPU at startup (you must type 'c' in the monitor).
1250
ETEXI
1251

    
1252
DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
1253
    "-gdb dev        wait for gdb connection on 'dev'\n")
1254
STEXI
1255
@item -gdb @var{dev}
1256
Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
1257
connections will likely be TCP-based, but also UDP, pseudo TTY, or even
1258
stdio are reasonable use case. The latter is allowing to start qemu from
1259
within gdb and establish the connection via a pipe:
1260
@example
1261
(gdb) target remote | exec qemu -gdb stdio ...
1262
@end example
1263
ETEXI
1264

    
1265
DEF("s", 0, QEMU_OPTION_s, \
1266
    "-s              shorthand for -gdb tcp::%s\n")
1267
STEXI
1268
@item -s
1269
Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
1270
(@pxref{gdb_usage}).
1271
ETEXI
1272

    
1273
DEF("d", HAS_ARG, QEMU_OPTION_d, \
1274
    "-d item1,...    output log to %s (use -d ? for a list of log items)\n")
1275
STEXI
1276
@item -d
1277
Output log in /tmp/qemu.log
1278
ETEXI
1279

    
1280
DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
1281
    "-hdachs c,h,s[,t]\n" \
1282
    "                force hard disk 0 physical geometry and the optional BIOS\n" \
1283
    "                translation (t=none or lba) (usually qemu can guess them)\n")
1284
STEXI
1285
@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
1286
Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
1287
@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
1288
translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
1289
all those parameters. This option is useful for old MS-DOS disk
1290
images.
1291
ETEXI
1292

    
1293
DEF("L", HAS_ARG, QEMU_OPTION_L, \
1294
    "-L path         set the directory for the BIOS, VGA BIOS and keymaps\n")
1295
STEXI
1296
@item -L  @var{path}
1297
Set the directory for the BIOS, VGA BIOS and keymaps.
1298
ETEXI
1299

    
1300
DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
1301
    "-bios file      set the filename for the BIOS\n")
1302
STEXI
1303
@item -bios @var{file}
1304
Set the filename for the BIOS.
1305
ETEXI
1306

    
1307
#ifdef CONFIG_KQEMU
1308
DEF("kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu, \
1309
    "-kernel-kqemu   enable KQEMU full virtualization (default is user mode only)\n")
1310
#endif
1311
STEXI
1312
@item -kernel-kqemu
1313
Enable KQEMU full virtualization (default is user mode only).
1314
ETEXI
1315

    
1316
#ifdef CONFIG_KQEMU
1317
DEF("no-kqemu", 0, QEMU_OPTION_no_kqemu, \
1318
    "-no-kqemu       disable KQEMU kernel module usage\n")
1319
#endif
1320
STEXI
1321
@item -no-kqemu
1322
Disable KQEMU kernel module usage. KQEMU options are only available if
1323
KQEMU support is enabled when compiling.
1324
ETEXI
1325

    
1326
#ifdef CONFIG_KVM
1327
DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
1328
    "-enable-kvm     enable KVM full virtualization support\n")
1329
#endif
1330
STEXI
1331
@item -enable-kvm
1332
Enable KVM full virtualization support. This option is only available
1333
if KVM support is enabled when compiling.
1334
ETEXI
1335

    
1336
DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
1337
    "-no-reboot      exit instead of rebooting\n")
1338
STEXI
1339
@item -no-reboot
1340
Exit instead of rebooting.
1341
ETEXI
1342

    
1343
DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
1344
    "-no-shutdown    stop before shutdown\n")
1345
STEXI
1346
@item -no-shutdown
1347
Don't exit QEMU on guest shutdown, but instead only stop the emulation.
1348
This allows for instance switching to monitor to commit changes to the
1349
disk image.
1350
ETEXI
1351

    
1352
DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
1353
    "-loadvm [tag|id]\n" \
1354
    "                start right away with a saved state (loadvm in monitor)\n")
1355
STEXI
1356
@item -loadvm @var{file}
1357
Start right away with a saved state (@code{loadvm} in monitor)
1358
ETEXI
1359

    
1360
#ifndef _WIN32
1361
DEF("daemonize", 0, QEMU_OPTION_daemonize, \
1362
    "-daemonize      daemonize QEMU after initializing\n")
1363
#endif
1364
STEXI
1365
@item -daemonize
1366
Daemonize the QEMU process after initialization.  QEMU will not detach from
1367
standard IO until it is ready to receive connections on any of its devices.
1368
This option is a useful way for external programs to launch QEMU without having
1369
to cope with initialization race conditions.
1370
ETEXI
1371

    
1372
DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
1373
    "-option-rom rom load a file, rom, into the option ROM space\n")
1374
STEXI
1375
@item -option-rom @var{file}
1376
Load the contents of @var{file} as an option ROM.
1377
This option is useful to load things like EtherBoot.
1378
ETEXI
1379

    
1380
DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
1381
    "-clock          force the use of the given methods for timer alarm.\n" \
1382
    "                To see what timers are available use -clock ?\n")
1383
STEXI
1384
@item -clock @var{method}
1385
Force the use of the given methods for timer alarm. To see what timers
1386
are available use -clock ?.
1387
ETEXI
1388

    
1389
DEF("localtime", 0, QEMU_OPTION_localtime, \
1390
    "-localtime      set the real time clock to local time [default=utc]\n")
1391
STEXI
1392
@item -localtime
1393
Set the real time clock to local time (the default is to UTC
1394
time). This option is needed to have correct date in MS-DOS or
1395
Windows.
1396
ETEXI
1397

    
1398
DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, \
1399
    "-startdate      select initial date of the clock\n")
1400
STEXI
1401

    
1402
@item -startdate @var{date}
1403
Set the initial date of the real time clock. Valid formats for
1404
@var{date} are: @code{now} or @code{2006-06-17T16:01:21} or
1405
@code{2006-06-17}. The default value is @code{now}.
1406
ETEXI
1407

    
1408
DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
1409
    "-icount [N|auto]\n" \
1410
    "                enable virtual instruction counter with 2^N clock ticks per\n" \
1411
    "                instruction\n")
1412
STEXI
1413
@item -icount [N|auto]
1414
Enable virtual instruction counter.  The virtual cpu will execute one
1415
instruction every 2^N ns of virtual time.  If @code{auto} is specified
1416
then the virtual cpu speed will be automatically adjusted to keep virtual
1417
time within a few seconds of real time.
1418

    
1419
Note that while this option can give deterministic behavior, it does not
1420
provide cycle accurate emulation.  Modern CPUs contain superscalar out of
1421
order cores with complex cache hierarchies.  The number of instructions
1422
executed often has little or no correlation with actual performance.
1423
ETEXI
1424

    
1425
DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
1426
    "-echr chr       set terminal escape character instead of ctrl-a\n")
1427
STEXI
1428

    
1429
@item -echr numeric_ascii_value
1430
Change the escape character used for switching to the monitor when using
1431
monitor and serial sharing.  The default is @code{0x01} when using the
1432
@code{-nographic} option.  @code{0x01} is equal to pressing
1433
@code{Control-a}.  You can select a different character from the ascii
1434
control keys where 1 through 26 map to Control-a through Control-z.  For
1435
instance you could use the either of the following to change the escape
1436
character to Control-t.
1437
@table @code
1438
@item -echr 0x14
1439
@item -echr 20
1440
@end table
1441
ETEXI
1442

    
1443
DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
1444
    "-virtioconsole c\n" \
1445
    "                set virtio console\n")
1446
STEXI
1447
@item -virtioconsole @var{c}
1448
Set virtio console.
1449
ETEXI
1450

    
1451
DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
1452
    "-show-cursor    show cursor\n")
1453
STEXI
1454
ETEXI
1455

    
1456
DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
1457
    "-tb-size n      set TB size\n")
1458
STEXI
1459
ETEXI
1460

    
1461
DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
1462
    "-incoming p     prepare for incoming migration, listen on port p\n")
1463
STEXI
1464
ETEXI
1465

    
1466
#ifndef _WIN32
1467
DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
1468
    "-chroot dir     Chroot to dir just before starting the VM.\n")
1469
#endif
1470
STEXI
1471
@item -chroot dir
1472
Immediately before starting guest execution, chroot to the specified
1473
directory.  Especially useful in combination with -runas.
1474
ETEXI
1475

    
1476
#ifndef _WIN32
1477
DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
1478
    "-runas user     Change to user id user just before starting the VM.\n")
1479
#endif
1480
STEXI
1481
@item -runas user
1482
Immediately before starting guest execution, drop root privileges, switching
1483
to the specified user.
1484
ETEXI
1485

    
1486
STEXI
1487
@end table
1488
ETEXI
1489

    
1490
#if defined(TARGET_SPARC) || defined(TARGET_PPC)
1491
DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
1492
    "-prom-env variable=value\n"
1493
    "                set OpenBIOS nvram variables\n")
1494
#endif
1495
#if defined(TARGET_ARM) || defined(TARGET_M68K)
1496
DEF("semihosting", 0, QEMU_OPTION_semihosting,
1497
    "-semihosting    semihosting mode\n")
1498
#endif
1499
#if defined(TARGET_ARM)
1500
DEF("old-param", 0, QEMU_OPTION_old_param,
1501
    "-old-param      old param mode\n")
1502
#endif