Statistics
| Branch: | Revision:

root / qemu-options.hx @ bab7944c

History | View | Annotate | Download (52.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("numa", HAS_ARG, QEMU_OPTION_numa,
51
    "-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]\n")
52
STEXI
53
@item -numa @var{opts}
54
Simulate a multi node NUMA system. If mem and cpus are omitted, resources
55
are split equally.
56
ETEXI
57

    
58
DEF("fda", HAS_ARG, QEMU_OPTION_fda,
59
    "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n")
60
DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "")
61
STEXI
62
@item -fda @var{file}
63
@item -fdb @var{file}
64
Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
65
use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
66
ETEXI
67

    
68
DEF("hda", HAS_ARG, QEMU_OPTION_hda,
69
    "-hda/-hdb file  use 'file' as IDE hard disk 0/1 image\n")
70
DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "")
71
DEF("hdc", HAS_ARG, QEMU_OPTION_hdc,
72
    "-hdc/-hdd file  use 'file' as IDE hard disk 2/3 image\n")
73
DEF("hdd", HAS_ARG, QEMU_OPTION_hdd, "")
74
STEXI
75
@item -hda @var{file}
76
@item -hdb @var{file}
77
@item -hdc @var{file}
78
@item -hdd @var{file}
79
Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
80
ETEXI
81

    
82
DEF("cdrom", HAS_ARG, QEMU_OPTION_cdrom,
83
    "-cdrom file     use 'file' as IDE cdrom image (cdrom is ide1 master)\n")
84
STEXI
85
@item -cdrom @var{file}
86
Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and
87
@option{-cdrom} at the same time). You can use the host CD-ROM by
88
using @file{/dev/cdrom} as filename (@pxref{host_drives}).
89
ETEXI
90

    
91
DEF("drive", HAS_ARG, QEMU_OPTION_drive,
92
    "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]\n"
93
    "       [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n"
94
    "       [,cache=writethrough|writeback|none][,format=f][,serial=s]\n"
95
    "                use 'file' as a drive image\n")
96
STEXI
97
@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
98

    
99
Define a new drive. Valid options are:
100

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

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

    
136
Writeback caching will report data writes as completed as soon as the data is
137
present in the host page cache.  This is safe as long as you trust your host.
138
If your host crashes or loses power, then the guest may experience data
139
corruption.  When using the @option{-snapshot} option, writeback caching is
140
used by default.
141

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

    
146
Some block drivers perform badly with @option{cache=writethrough}, most notably,
147
qcow2.  If performance is more important than correctness,
148
@option{cache=writeback} should be used with qcow2.  By default, if no explicit
149
caching is specified for a qcow2 disk image, @option{cache=writeback} will be
150
used.  For all other disk types, @option{cache=writethrough} is the default.
151

    
152
Instead of @option{-cdrom} you can use:
153
@example
154
qemu -drive file=file,index=2,media=cdrom
155
@end example
156

    
157
Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
158
use:
159
@example
160
qemu -drive file=file,index=0,media=disk
161
qemu -drive file=file,index=1,media=disk
162
qemu -drive file=file,index=2,media=disk
163
qemu -drive file=file,index=3,media=disk
164
@end example
165

    
166
You can connect a CDROM to the slave of ide0:
167
@example
168
qemu -drive file=file,if=ide,index=1,media=cdrom
169
@end example
170

    
171
If you don't specify the "file=" argument, you define an empty drive:
172
@example
173
qemu -drive if=ide,index=1,media=cdrom
174
@end example
175

    
176
You can connect a SCSI disk with unit ID 6 on the bus #0:
177
@example
178
qemu -drive file=file,if=scsi,bus=0,unit=6
179
@end example
180

    
181
Instead of @option{-fda}, @option{-fdb}, you can use:
182
@example
183
qemu -drive file=file,index=0,if=floppy
184
qemu -drive file=file,index=1,if=floppy
185
@end example
186

    
187
By default, @var{interface} is "ide" and @var{index} is automatically
188
incremented:
189
@example
190
qemu -drive file=a -drive file=b"
191
@end example
192
is interpreted like:
193
@example
194
qemu -hda a -hdb b
195
@end example
196
ETEXI
197

    
198
DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
199
    "-mtdblock file  use 'file' as on-board Flash memory image\n")
200
STEXI
201

    
202
@item -mtdblock file
203
Use 'file' as on-board Flash memory image.
204
ETEXI
205

    
206
DEF("sd", HAS_ARG, QEMU_OPTION_sd,
207
    "-sd file        use 'file' as SecureDigital card image\n")
208
STEXI
209
@item -sd file
210
Use 'file' as SecureDigital card image.
211
ETEXI
212

    
213
DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
214
    "-pflash file    use 'file' as a parallel flash image\n")
215
STEXI
216
@item -pflash file
217
Use 'file' as a parallel flash image.
218
ETEXI
219

    
220
DEF("boot", HAS_ARG, QEMU_OPTION_boot,
221
    "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n")
222
STEXI
223
@item -boot [a|c|d|n]
224
Boot on floppy (a), hard disk (c), CD-ROM (d), or Etherboot (n). Hard disk boot
225
is the default.
226
ETEXI
227

    
228
DEF("snapshot", 0, QEMU_OPTION_snapshot,
229
    "-snapshot       write to temporary files instead of disk image files\n")
230
STEXI
231
@item -snapshot
232
Write to temporary files instead of disk image files. In this case,
233
the raw disk image you use is not written back. You can however force
234
the write back by pressing @key{C-a s} (@pxref{disk_images}).
235
ETEXI
236

    
237
DEF("m", HAS_ARG, QEMU_OPTION_m,
238
    "-m megs         set virtual RAM size to megs MB [default=%d]\n")
239
STEXI
240
@item -m @var{megs}
241
Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB.  Optionally,
242
a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
243
gigabytes respectively.
244
ETEXI
245

    
246
DEF("k", HAS_ARG, QEMU_OPTION_k,
247
    "-k language     use keyboard layout (for example 'fr' for French)\n")
248
STEXI
249
@item -k @var{language}
250

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

    
257
The available layouts are:
258
@example
259
ar  de-ch  es  fo     fr-ca  hu  ja  mk     no  pt-br  sv
260
da  en-gb  et  fr     fr-ch  is  lt  nl     pl  ru     th
261
de  en-us  fi  fr-be  hr     it  lv  nl-be  pt  sl     tr
262
@end example
263

    
264
The default is @code{en-us}.
265
ETEXI
266

    
267

    
268
#ifdef HAS_AUDIO
269
DEF("audio-help", 0, QEMU_OPTION_audio_help,
270
    "-audio-help     print list of audio drivers and their options\n")
271
#endif
272
STEXI
273
@item -audio-help
274

    
275
Will show the audio subsystem help: list of drivers, tunable
276
parameters.
277
ETEXI
278

    
279
#ifdef HAS_AUDIO
280
DEF("soundhw", HAS_ARG, QEMU_OPTION_soundhw,
281
    "-soundhw c1,... enable audio support\n"
282
    "                and only specified sound cards (comma separated list)\n"
283
    "                use -soundhw ? to get the list of supported cards\n"
284
    "                use -soundhw all to enable all of them\n")
285
#endif
286
STEXI
287
@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
288

    
289
Enable audio and selected sound hardware. Use ? to print all
290
available sound hardware.
291

    
292
@example
293
qemu -soundhw sb16,adlib disk.img
294
qemu -soundhw es1370 disk.img
295
qemu -soundhw ac97 disk.img
296
qemu -soundhw all disk.img
297
qemu -soundhw ?
298
@end example
299

    
300
Note that Linux's i810_audio OSS kernel (for AC97) module might
301
require manually specifying clocking.
302

    
303
@example
304
modprobe i810_audio clocking=48000
305
@end example
306
ETEXI
307

    
308
STEXI
309
@end table
310
ETEXI
311

    
312
DEF("usb", 0, QEMU_OPTION_usb,
313
    "-usb            enable the USB driver (will be the default soon)\n")
314
STEXI
315
USB options:
316
@table @option
317

    
318
@item -usb
319
Enable the USB driver (will be the default soon)
320
ETEXI
321

    
322
DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
323
    "-usbdevice name add the host or guest USB device 'name'\n")
324
STEXI
325

    
326
@item -usbdevice @var{devname}
327
Add the USB device @var{devname}. @xref{usb_devices}.
328

    
329
@table @code
330

    
331
@item mouse
332
Virtual Mouse. This will override the PS/2 mouse emulation when activated.
333

    
334
@item tablet
335
Pointer device that uses absolute coordinates (like a touchscreen). This
336
means qemu is able to report the mouse position without having to grab the
337
mouse. Also overrides the PS/2 mouse emulation when activated.
338

    
339
@item disk:[format=@var{format}]:file
340
Mass storage device based on file. The optional @var{format} argument
341
will be used rather than detecting the format. Can be used to specifiy
342
format=raw to avoid interpreting an untrusted format header.
343

    
344
@item host:bus.addr
345
Pass through the host device identified by bus.addr (Linux only).
346

    
347
@item host:vendor_id:product_id
348
Pass through the host device identified by vendor_id:product_id (Linux only).
349

    
350
@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
351
Serial converter to host character device @var{dev}, see @code{-serial} for the
352
available devices.
353

    
354
@item braille
355
Braille device.  This will use BrlAPI to display the braille output on a real
356
or fake device.
357

    
358
@item net:options
359
Network adapter that supports CDC ethernet and RNDIS protocols.
360

    
361
@end table
362
ETEXI
363

    
364
DEF("name", HAS_ARG, QEMU_OPTION_name,
365
    "-name string    set the name of the guest\n")
366
STEXI
367
@item -name @var{name}
368
Sets the @var{name} of the guest.
369
This name will be displayed in the SDL window caption.
370
The @var{name} will also be used for the VNC server.
371
ETEXI
372

    
373
DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
374
    "-uuid %%08x-%%04x-%%04x-%%04x-%%012x\n"
375
    "                specify machine UUID\n")
376
STEXI
377
@item -uuid @var{uuid}
378
Set system UUID.
379
ETEXI
380

    
381
STEXI
382
@end table
383
ETEXI
384

    
385
DEFHEADING()
386

    
387
DEFHEADING(Display options:)
388

    
389
STEXI
390
@table @option
391
ETEXI
392

    
393
DEF("nographic", 0, QEMU_OPTION_nographic,
394
    "-nographic      disable graphical output and redirect serial I/Os to console\n")
395
STEXI
396
@item -nographic
397

    
398
Normally, QEMU uses SDL to display the VGA output. With this option,
399
you can totally disable graphical output so that QEMU is a simple
400
command line application. The emulated serial port is redirected on
401
the console. Therefore, you can still use QEMU to debug a Linux kernel
402
with a serial console.
403
ETEXI
404

    
405
#ifdef CONFIG_CURSES
406
DEF("curses", 0, QEMU_OPTION_curses,
407
    "-curses         use a curses/ncurses interface instead of SDL\n")
408
#endif
409
STEXI
410
@item -curses
411

    
412
Normally, QEMU uses SDL to display the VGA output.  With this option,
413
QEMU can display the VGA output when in text mode using a
414
curses/ncurses interface.  Nothing is displayed in graphical mode.
415
ETEXI
416

    
417
#ifdef CONFIG_SDL
418
DEF("no-frame", 0, QEMU_OPTION_no_frame,
419
    "-no-frame       open SDL window without a frame and window decorations\n")
420
#endif
421
STEXI
422
@item -no-frame
423

    
424
Do not use decorations for SDL windows and start them using the whole
425
available screen space. This makes the using QEMU in a dedicated desktop
426
workspace more convenient.
427
ETEXI
428

    
429
#ifdef CONFIG_SDL
430
DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
431
    "-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n")
432
#endif
433
STEXI
434
@item -alt-grab
435

    
436
Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt).
437
ETEXI
438

    
439
#ifdef CONFIG_SDL
440
DEF("no-quit", 0, QEMU_OPTION_no_quit,
441
    "-no-quit        disable SDL window close capability\n")
442
#endif
443
STEXI
444
@item -no-quit
445

    
446
Disable SDL window close capability.
447
ETEXI
448

    
449
#ifdef CONFIG_SDL
450
DEF("sdl", 0, QEMU_OPTION_sdl,
451
    "-sdl            enable SDL\n")
452
#endif
453
STEXI
454
@item -sdl
455

    
456
Enable SDL.
457
ETEXI
458

    
459
DEF("portrait", 0, QEMU_OPTION_portrait,
460
    "-portrait       rotate graphical output 90 deg left (only PXA LCD)\n")
461
STEXI
462
@item -portrait
463

    
464
Rotate graphical output 90 deg left (only PXA LCD).
465
ETEXI
466

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

    
493
DEF("full-screen", 0, QEMU_OPTION_full_screen,
494
    "-full-screen    start in full screen\n")
495
STEXI
496
@item -full-screen
497
Start in full screen.
498
ETEXI
499

    
500
#if defined(TARGET_PPC) || defined(TARGET_SPARC)
501
DEF("g", 1, QEMU_OPTION_g ,
502
    "-g WxH[xDEPTH]  Set the initial graphical resolution and depth\n")
503
#endif
504
STEXI
505
ETEXI
506

    
507
DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
508
    "-vnc display    start a VNC server on display\n")
509
STEXI
510
@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
511

    
512
Normally, QEMU uses SDL to display the VGA output.  With this option,
513
you can have QEMU listen on VNC display @var{display} and redirect the VGA
514
display over the VNC session.  It is very useful to enable the usb
515
tablet device when using this option (option @option{-usbdevice
516
tablet}). When using the VNC display, you must use the @option{-k}
517
parameter to set the keyboard layout if you are not using en-us. Valid
518
syntax for the @var{display} is
519

    
520
@table @code
521

    
522
@item @var{host}:@var{d}
523

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

    
528
@item @code{unix}:@var{path}
529

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

    
533
@item none
534

    
535
VNC is initialized but not started. The monitor @code{change} command
536
can be used to later start the VNC server.
537

    
538
@end table
539

    
540
Following the @var{display} value there may be one or more @var{option} flags
541
separated by commas. Valid options are
542

    
543
@table @code
544

    
545
@item reverse
546

    
547
Connect to a listening VNC client via a ``reverse'' connection. The
548
client is specified by the @var{display}. For reverse network
549
connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
550
is a TCP port number, not a display number.
551

    
552
@item password
553

    
554
Require that password based authentication is used for client connections.
555
The password must be set separately using the @code{change} command in the
556
@ref{pcsys_monitor}
557

    
558
@item tls
559

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

    
565
@item x509=@var{/path/to/certificate/dir}
566

    
567
Valid if @option{tls} is specified. Require that x509 credentials are used
568
for negotiating the TLS session. The server will send its x509 certificate
569
to the client. It is recommended that a password be set on the VNC server
570
to provide authentication of the client when this is used. The path following
571
this option specifies where the x509 certificates are to be loaded from.
572
See the @ref{vnc_security} section for details on generating certificates.
573

    
574
@item x509verify=@var{/path/to/certificate/dir}
575

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

    
587
@item sasl
588

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

    
602
@item acl
603

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

    
615
@end table
616
ETEXI
617

    
618
STEXI
619
@end table
620
ETEXI
621

    
622
DEFHEADING()
623

    
624
#ifdef TARGET_I386
625
DEFHEADING(i386 target only:)
626
#endif
627
STEXI
628
@table @option
629
ETEXI
630

    
631
#ifdef TARGET_I386
632
DEF("win2k-hack", 0, QEMU_OPTION_win2k_hack,
633
    "-win2k-hack     use it when installing Windows 2000 to avoid a disk full bug\n")
634
#endif
635
STEXI
636
@item -win2k-hack
637
Use it when installing Windows 2000 to avoid a disk full bug. After
638
Windows 2000 is installed, you no longer need this option (this option
639
slows down the IDE transfers).
640
ETEXI
641

    
642
#ifdef TARGET_I386
643
DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack,
644
    "-rtc-td-hack    use it to fix time drift in Windows ACPI HAL\n")
645
#endif
646
STEXI
647
@item -rtc-td-hack
648
Use it if you experience time drift problem in Windows with ACPI HAL.
649
This option will try to figure out how many timer interrupts were not
650
processed by the Windows guest and will re-inject them.
651
ETEXI
652

    
653
#ifdef TARGET_I386
654
DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
655
    "-no-fd-bootchk  disable boot signature checking for floppy disks\n")
656
#endif
657
STEXI
658
@item -no-fd-bootchk
659
Disable boot signature checking for floppy disks in Bochs BIOS. It may
660
be needed to boot from old floppy disks.
661
ETEXI
662

    
663
#ifdef TARGET_I386
664
DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
665
           "-no-acpi        disable ACPI\n")
666
#endif
667
STEXI
668
@item -no-acpi
669
Disable ACPI (Advanced Configuration and Power Interface) support. Use
670
it if your guest OS complains about ACPI problems (PC target machine
671
only).
672
ETEXI
673

    
674
#ifdef TARGET_I386
675
DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
676
    "-no-hpet        disable HPET\n")
677
#endif
678
STEXI
679
@item -no-hpet
680
Disable HPET support.
681
ETEXI
682

    
683
#ifdef TARGET_I386
684
DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
685
    "-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"
686
    "                ACPI table description\n")
687
#endif
688
STEXI
689
@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}]...]
690
Add ACPI table with specified header fields and context from specified files.
691
ETEXI
692

    
693
#ifdef TARGET_I386
694
DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
695
    "-smbios file=binary\n"
696
    "                Load SMBIOS entry from binary file\n"
697
    "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%%d.%%d]\n"
698
    "                Specify SMBIOS type 0 fields\n"
699
    "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n"
700
    "              [,uuid=uuid][,sku=str][,family=str]\n"
701
    "                Specify SMBIOS type 1 fields\n")
702
#endif
703
STEXI
704
@item -smbios file=@var{binary}
705
Load SMBIOS entry from binary file.
706

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

    
710
@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}]
711
Specify SMBIOS type 1 fields
712
ETEXI
713

    
714
#ifdef TARGET_I386
715
DEFHEADING()
716
#endif
717
STEXI
718
@end table
719
ETEXI
720

    
721
DEFHEADING(Network options:)
722
STEXI
723
@table @option
724
ETEXI
725

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

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

    
780
@item -net channel,@var{port}:@var{dev}
781
Forward @option{user} TCP connection to port @var{port} to character device @var{dev}
782

    
783
@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}]
784
Connect the host TAP network interface @var{name} to VLAN @var{n}, use
785
the network script @var{file} to configure it and the network script
786
@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
787
automatically provides one. @option{fd}=@var{h} can be used to specify
788
the handle of an already opened host TAP interface. The default network
789
configure script is @file{/etc/qemu-ifup} and the default network
790
deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}
791
or @option{downscript=no} to disable script execution. Example:
792

    
793
@example
794
qemu linux.img -net nic -net tap
795
@end example
796

    
797
More complicated example (two NICs, each one connected to a TAP device)
798
@example
799
qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
800
               -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
801
@end example
802

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

    
805
Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
806
machine using a TCP socket connection. If @option{listen} is
807
specified, QEMU waits for incoming connections on @var{port}
808
(@var{host} is optional). @option{connect} is used to connect to
809
another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
810
specifies an already opened TCP socket.
811

    
812
Example:
813
@example
814
# launch a first QEMU instance
815
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
816
               -net socket,listen=:1234
817
# connect the VLAN 0 of this instance to the VLAN 0
818
# of the first instance
819
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
820
               -net socket,connect=127.0.0.1:1234
821
@end example
822

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

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

    
840
Example:
841
@example
842
# launch one QEMU instance
843
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
844
               -net socket,mcast=230.0.0.1:1234
845
# launch another QEMU instance on same "bus"
846
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
847
               -net socket,mcast=230.0.0.1:1234
848
# launch yet another QEMU instance on same "bus"
849
qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
850
               -net socket,mcast=230.0.0.1:1234
851
@end example
852

    
853
Example (User Mode Linux compat.):
854
@example
855
# launch QEMU instance (note mcast address selected
856
# is UML's default)
857
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
858
               -net socket,mcast=239.192.168.1:1102
859
# launch UML
860
/path/to/linux ubd0=/path/to/root_fs eth0=mcast
861
@end example
862

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

    
870
Example:
871
@example
872
# launch vde switch
873
vde_switch -F -sock /tmp/myswitch
874
# launch QEMU instance
875
qemu linux.img -net nic -net vde,sock=/tmp/myswitch
876
@end example
877

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

    
883
@item -net none
884
Indicate that no network devices should be configured. It is used to
885
override the default configuration (@option{-net nic -net user}) which
886
is activated if no @option{-net} options are provided.
887
ETEXI
888

    
889
#ifdef CONFIG_SLIRP
890
DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, \
891
    "-tftp dir       allow tftp access to files in dir [-net user]\n")
892
#endif
893
STEXI
894
@item -tftp @var{dir}
895
When using the user mode network stack, activate a built-in TFTP
896
server. The files in @var{dir} will be exposed as the root of a TFTP server.
897
The TFTP client on the guest must be configured in binary mode (use the command
898
@code{bin} of the Unix TFTP client). The host IP address on the guest is as
899
usual 10.0.2.2.
900
ETEXI
901

    
902
#ifdef CONFIG_SLIRP
903
DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, \
904
    "-bootp file     advertise file in BOOTP replies\n")
905
#endif
906
STEXI
907
@item -bootp @var{file}
908
When using the user mode network stack, broadcast @var{file} as the BOOTP
909
filename.  In conjunction with @option{-tftp}, this can be used to network boot
910
a guest from a local directory.
911

    
912
Example (using pxelinux):
913
@example
914
qemu -hda linux.img -boot n -tftp /path/to/tftp/files -bootp /pxelinux.0
915
@end example
916
ETEXI
917

    
918
#ifndef _WIN32
919
DEF("smb", HAS_ARG, QEMU_OPTION_smb, \
920
           "-smb dir        allow SMB access to files in 'dir' [-net user]\n")
921
#endif
922
STEXI
923
@item -smb @var{dir}
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.
927

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

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

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

    
942
#ifdef CONFIG_SLIRP
943
DEF("redir", HAS_ARG, QEMU_OPTION_redir, \
944
    "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n" \
945
    "                redirect TCP or UDP connections from host to guest [-net user]\n")
946
#endif
947
STEXI
948
@item -redir [tcp|udp]:@var{host-port}:[@var{guest-host}]:@var{guest-port}
949

    
950
When using the user mode network stack, redirect incoming TCP or UDP
951
connections to the host port @var{host-port} to the guest
952
@var{guest-host} on guest port @var{guest-port}. If @var{guest-host}
953
is not specified, its value is 10.0.2.15 (default address given by the
954
built-in DHCP server). If no connection type is specified, TCP is used.
955

    
956
For example, to redirect host X11 connection from screen 1 to guest
957
screen 0, use the following:
958

    
959
@example
960
# on the host
961
qemu -redir tcp:6001::6000 [...]
962
# this host xterm should open in the guest X11 server
963
xterm -display :1
964
@end example
965

    
966
To redirect telnet connections from host port 5555 to telnet port on
967
the guest, use the following:
968

    
969
@example
970
# on the host
971
qemu -redir tcp:5555::23 [...]
972
telnet localhost 5555
973
@end example
974

    
975
Then when you use on the host @code{telnet localhost 5555}, you
976
connect to the guest telnet server.
977

    
978
@end table
979
ETEXI
980

    
981
DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
982
    "\n" \
983
    "-bt hci,null    dumb bluetooth HCI - doesn't respond to commands\n" \
984
    "-bt hci,host[:id]\n" \
985
    "                use host's HCI with the given name\n" \
986
    "-bt hci[,vlan=n]\n" \
987
    "                emulate a standard HCI in virtual scatternet 'n'\n" \
988
    "-bt vhci[,vlan=n]\n" \
989
    "                add host computer to virtual scatternet 'n' using VHCI\n" \
990
    "-bt device:dev[,vlan=n]\n" \
991
    "                emulate a bluetooth device 'dev' in scatternet 'n'\n")
992
STEXI
993
Bluetooth(R) options:
994
@table @option
995

    
996
@item -bt hci[...]
997
Defines the function of the corresponding Bluetooth HCI.  -bt options
998
are matched with the HCIs present in the chosen machine type.  For
999
example when emulating a machine with only one HCI built into it, only
1000
the first @code{-bt hci[...]} option is valid and defines the HCI's
1001
logic.  The Transport Layer is decided by the machine type.  Currently
1002
the machines @code{n800} and @code{n810} have one HCI and all other
1003
machines have none.
1004

    
1005
@anchor{bt-hcis}
1006
The following three types are recognized:
1007

    
1008
@table @code
1009
@item -bt hci,null
1010
(default) The corresponding Bluetooth HCI assumes no internal logic
1011
and will not respond to any HCI commands or emit events.
1012

    
1013
@item -bt hci,host[:@var{id}]
1014
(@code{bluez} only) The corresponding HCI passes commands / events
1015
to / from the physical HCI identified by the name @var{id} (default:
1016
@code{hci0}) on the computer running QEMU.  Only available on @code{bluez}
1017
capable systems like Linux.
1018

    
1019
@item -bt hci[,vlan=@var{n}]
1020
Add a virtual, standard HCI that will participate in the Bluetooth
1021
scatternet @var{n} (default @code{0}).  Similarly to @option{-net}
1022
VLANs, devices inside a bluetooth network @var{n} can only communicate
1023
with other devices in the same network (scatternet).
1024
@end table
1025

    
1026
@item -bt vhci[,vlan=@var{n}]
1027
(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
1028
to the host bluetooth stack instead of to the emulated target.  This
1029
allows the host and target machines to participate in a common scatternet
1030
and communicate.  Requires the Linux @code{vhci} driver installed.  Can
1031
be used as following:
1032

    
1033
@example
1034
qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
1035
@end example
1036

    
1037
@item -bt device:@var{dev}[,vlan=@var{n}]
1038
Emulate a bluetooth device @var{dev} and place it in network @var{n}
1039
(default @code{0}).  QEMU can only emulate one type of bluetooth devices
1040
currently:
1041

    
1042
@table @code
1043
@item keyboard
1044
Virtual wireless keyboard implementing the HIDP bluetooth profile.
1045
@end table
1046
@end table
1047
ETEXI
1048

    
1049
DEFHEADING()
1050

    
1051
DEFHEADING(Linux boot specific:)
1052
STEXI
1053
When using these options, you can use a given
1054
Linux kernel without installing it in the disk image. It can be useful
1055
for easier testing of various kernels.
1056

    
1057
@table @option
1058
ETEXI
1059

    
1060
DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
1061
    "-kernel bzImage use 'bzImage' as kernel image\n")
1062
STEXI
1063
@item -kernel @var{bzImage}
1064
Use @var{bzImage} as kernel image.
1065
ETEXI
1066

    
1067
DEF("append", HAS_ARG, QEMU_OPTION_append, \
1068
    "-append cmdline use 'cmdline' as kernel command line\n")
1069
STEXI
1070
@item -append @var{cmdline}
1071
Use @var{cmdline} as kernel command line
1072
ETEXI
1073

    
1074
DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
1075
           "-initrd file    use 'file' as initial ram disk\n")
1076
STEXI
1077
@item -initrd @var{file}
1078
Use @var{file} as initial ram disk.
1079
ETEXI
1080

    
1081
STEXI
1082
@end table
1083
ETEXI
1084

    
1085
DEFHEADING()
1086

    
1087
DEFHEADING(Debug/Expert options:)
1088

    
1089
STEXI
1090
@table @option
1091
ETEXI
1092

    
1093
DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
1094
    "-serial dev     redirect the serial port to char device 'dev'\n")
1095
STEXI
1096
@item -serial @var{dev}
1097
Redirect the virtual serial port to host character device
1098
@var{dev}. The default device is @code{vc} in graphical mode and
1099
@code{stdio} in non graphical mode.
1100

    
1101
This option can be used several times to simulate up to 4 serial
1102
ports.
1103

    
1104
Use @code{-serial none} to disable all serial ports.
1105

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

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

    
1150
If you plan to send characters back via netconsole or you want to stop
1151
and start qemu a lot of times, you should have qemu use the same
1152
source port each time by using something like @code{-serial
1153
udp::4555@@:4556} to qemu. Another approach is to use a patched
1154
version of netcat which can listen to a TCP port and send and receive
1155
characters via udp.  If you have a patched version of netcat which
1156
activates telnet remote echo and single char transfer, then you can
1157
use the following options to step up a netcat redirector to allow
1158
telnet on port 5555 to access the qemu port.
1159
@table @code
1160
@item Qemu Options:
1161
-serial udp::4555@@:4556
1162
@item netcat options:
1163
-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
1164
@item telnet options:
1165
localhost 5555
1166
@end table
1167

    
1168
@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
1169
The TCP Net Console has two modes of operation.  It can send the serial
1170
I/O to a location or wait for a connection from a location.  By default
1171
the TCP Net Console is sent to @var{host} at the @var{port}.  If you use
1172
the @var{server} option QEMU will wait for a client socket application
1173
to connect to the port before continuing, unless the @code{nowait}
1174
option was specified.  The @code{nodelay} option disables the Nagle buffering
1175
algorithm.  If @var{host} is omitted, 0.0.0.0 is assumed. Only
1176
one TCP connection at a time is accepted. You can use @code{telnet} to
1177
connect to the corresponding character device.
1178
@table @code
1179
@item Example to send tcp console to 192.168.0.2 port 4444
1180
-serial tcp:192.168.0.2:4444
1181
@item Example to listen and wait on port 4444 for connection
1182
-serial tcp::4444,server
1183
@item Example to not wait and listen on ip 192.168.0.100 port 4444
1184
-serial tcp:192.168.0.100:4444,server,nowait
1185
@end table
1186

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

    
1196
@item unix:@var{path}[,server][,nowait]
1197
A unix domain socket is used instead of a tcp socket.  The option works the
1198
same as if you had specified @code{-serial tcp} except the unix domain socket
1199
@var{path} is used for connections.
1200

    
1201
@item mon:@var{dev_string}
1202
This is a special option to allow the monitor to be multiplexed onto
1203
another serial port.  The monitor is accessed with key sequence of
1204
@key{Control-a} and then pressing @key{c}. See monitor access
1205
@ref{pcsys_keys} in the -nographic section for more keys.
1206
@var{dev_string} should be any one of the serial devices specified
1207
above.  An example to multiplex the monitor onto a telnet server
1208
listening on port 4444 would be:
1209
@table @code
1210
@item -serial mon:telnet::4444,server,nowait
1211
@end table
1212

    
1213
@item braille
1214
Braille device.  This will use BrlAPI to display the braille output on a real
1215
or fake device.
1216

    
1217
@end table
1218
ETEXI
1219

    
1220
DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
1221
    "-parallel dev   redirect the parallel port to char device 'dev'\n")
1222
STEXI
1223
@item -parallel @var{dev}
1224
Redirect the virtual parallel port to host device @var{dev} (same
1225
devices as the serial port). On Linux hosts, @file{/dev/parportN} can
1226
be used to use hardware devices connected on the corresponding host
1227
parallel port.
1228

    
1229
This option can be used several times to simulate up to 3 parallel
1230
ports.
1231

    
1232
Use @code{-parallel none} to disable all parallel ports.
1233
ETEXI
1234

    
1235
DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
1236
    "-monitor dev    redirect the monitor to char device 'dev'\n")
1237
STEXI
1238
@item -monitor @var{dev}
1239
Redirect the monitor to host device @var{dev} (same devices as the
1240
serial port).
1241
The default device is @code{vc} in graphical mode and @code{stdio} in
1242
non graphical mode.
1243
ETEXI
1244

    
1245
DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
1246
    "-pidfile file   write PID to 'file'\n")
1247
STEXI
1248
@item -pidfile @var{file}
1249
Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
1250
from a script.
1251
ETEXI
1252

    
1253
DEF("singlestep", 0, QEMU_OPTION_singlestep, \
1254
    "-singlestep   always run in singlestep mode\n")
1255
STEXI
1256
@item -singlestep
1257
Run the emulation in single step mode.
1258
ETEXI
1259

    
1260
DEF("S", 0, QEMU_OPTION_S, \
1261
    "-S              freeze CPU at startup (use 'c' to start execution)\n")
1262
STEXI
1263
@item -S
1264
Do not start CPU at startup (you must type 'c' in the monitor).
1265
ETEXI
1266

    
1267
DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
1268
    "-gdb dev        wait for gdb connection on 'dev'\n")
1269
STEXI
1270
@item -gdb @var{dev}
1271
Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
1272
connections will likely be TCP-based, but also UDP, pseudo TTY, or even
1273
stdio are reasonable use case. The latter is allowing to start qemu from
1274
within gdb and establish the connection via a pipe:
1275
@example
1276
(gdb) target remote | exec qemu -gdb stdio ...
1277
@end example
1278
ETEXI
1279

    
1280
DEF("s", 0, QEMU_OPTION_s, \
1281
    "-s              shorthand for -gdb tcp::%s\n")
1282
STEXI
1283
@item -s
1284
Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
1285
(@pxref{gdb_usage}).
1286
ETEXI
1287

    
1288
DEF("d", HAS_ARG, QEMU_OPTION_d, \
1289
    "-d item1,...    output log to %s (use -d ? for a list of log items)\n")
1290
STEXI
1291
@item -d
1292
Output log in /tmp/qemu.log
1293
ETEXI
1294

    
1295
DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
1296
    "-hdachs c,h,s[,t]\n" \
1297
    "                force hard disk 0 physical geometry and the optional BIOS\n" \
1298
    "                translation (t=none or lba) (usually qemu can guess them)\n")
1299
STEXI
1300
@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
1301
Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
1302
@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
1303
translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
1304
all those parameters. This option is useful for old MS-DOS disk
1305
images.
1306
ETEXI
1307

    
1308
DEF("L", HAS_ARG, QEMU_OPTION_L, \
1309
    "-L path         set the directory for the BIOS, VGA BIOS and keymaps\n")
1310
STEXI
1311
@item -L  @var{path}
1312
Set the directory for the BIOS, VGA BIOS and keymaps.
1313
ETEXI
1314

    
1315
DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
1316
    "-bios file      set the filename for the BIOS\n")
1317
STEXI
1318
@item -bios @var{file}
1319
Set the filename for the BIOS.
1320
ETEXI
1321

    
1322
#ifdef CONFIG_KQEMU
1323
DEF("kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu, \
1324
    "-kernel-kqemu   enable KQEMU full virtualization (default is user mode only)\n")
1325
#endif
1326
STEXI
1327
@item -kernel-kqemu
1328
Enable KQEMU full virtualization (default is user mode only).
1329
ETEXI
1330

    
1331
#ifdef CONFIG_KQEMU
1332
DEF("no-kqemu", 0, QEMU_OPTION_no_kqemu, \
1333
    "-no-kqemu       disable KQEMU kernel module usage\n")
1334
#endif
1335
STEXI
1336
@item -no-kqemu
1337
Disable KQEMU kernel module usage. KQEMU options are only available if
1338
KQEMU support is enabled when compiling.
1339
ETEXI
1340

    
1341
#ifdef CONFIG_KVM
1342
DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
1343
    "-enable-kvm     enable KVM full virtualization support\n")
1344
#endif
1345
STEXI
1346
@item -enable-kvm
1347
Enable KVM full virtualization support. This option is only available
1348
if KVM support is enabled when compiling.
1349
ETEXI
1350

    
1351
#ifdef CONFIG_XEN
1352
DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
1353
    "-xen-domid id   specify xen guest domain id\n")
1354
DEF("xen-create", 0, QEMU_OPTION_xen_create,
1355
    "-xen-create     create domain using xen hypercalls, bypassing xend\n"
1356
    "                warning: should not be used when xend is in use\n")
1357
DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
1358
    "-xen-attach     attach to existing xen domain\n"
1359
    "                xend will use this when starting qemu\n")
1360
#endif
1361

    
1362
DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
1363
    "-no-reboot      exit instead of rebooting\n")
1364
STEXI
1365
@item -no-reboot
1366
Exit instead of rebooting.
1367
ETEXI
1368

    
1369
DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
1370
    "-no-shutdown    stop before shutdown\n")
1371
STEXI
1372
@item -no-shutdown
1373
Don't exit QEMU on guest shutdown, but instead only stop the emulation.
1374
This allows for instance switching to monitor to commit changes to the
1375
disk image.
1376
ETEXI
1377

    
1378
DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
1379
    "-loadvm [tag|id]\n" \
1380
    "                start right away with a saved state (loadvm in monitor)\n")
1381
STEXI
1382
@item -loadvm @var{file}
1383
Start right away with a saved state (@code{loadvm} in monitor)
1384
ETEXI
1385

    
1386
#ifndef _WIN32
1387
DEF("daemonize", 0, QEMU_OPTION_daemonize, \
1388
    "-daemonize      daemonize QEMU after initializing\n")
1389
#endif
1390
STEXI
1391
@item -daemonize
1392
Daemonize the QEMU process after initialization.  QEMU will not detach from
1393
standard IO until it is ready to receive connections on any of its devices.
1394
This option is a useful way for external programs to launch QEMU without having
1395
to cope with initialization race conditions.
1396
ETEXI
1397

    
1398
DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
1399
    "-option-rom rom load a file, rom, into the option ROM space\n")
1400
STEXI
1401
@item -option-rom @var{file}
1402
Load the contents of @var{file} as an option ROM.
1403
This option is useful to load things like EtherBoot.
1404
ETEXI
1405

    
1406
DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
1407
    "-clock          force the use of the given methods for timer alarm.\n" \
1408
    "                To see what timers are available use -clock ?\n")
1409
STEXI
1410
@item -clock @var{method}
1411
Force the use of the given methods for timer alarm. To see what timers
1412
are available use -clock ?.
1413
ETEXI
1414

    
1415
DEF("localtime", 0, QEMU_OPTION_localtime, \
1416
    "-localtime      set the real time clock to local time [default=utc]\n")
1417
STEXI
1418
@item -localtime
1419
Set the real time clock to local time (the default is to UTC
1420
time). This option is needed to have correct date in MS-DOS or
1421
Windows.
1422
ETEXI
1423

    
1424
DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, \
1425
    "-startdate      select initial date of the clock\n")
1426
STEXI
1427

    
1428
@item -startdate @var{date}
1429
Set the initial date of the real time clock. Valid formats for
1430
@var{date} are: @code{now} or @code{2006-06-17T16:01:21} or
1431
@code{2006-06-17}. The default value is @code{now}.
1432
ETEXI
1433

    
1434
DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
1435
    "-icount [N|auto]\n" \
1436
    "                enable virtual instruction counter with 2^N clock ticks per\n" \
1437
    "                instruction\n")
1438
STEXI
1439
@item -icount [N|auto]
1440
Enable virtual instruction counter.  The virtual cpu will execute one
1441
instruction every 2^N ns of virtual time.  If @code{auto} is specified
1442
then the virtual cpu speed will be automatically adjusted to keep virtual
1443
time within a few seconds of real time.
1444

    
1445
Note that while this option can give deterministic behavior, it does not
1446
provide cycle accurate emulation.  Modern CPUs contain superscalar out of
1447
order cores with complex cache hierarchies.  The number of instructions
1448
executed often has little or no correlation with actual performance.
1449
ETEXI
1450

    
1451
DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
1452
    "-watchdog i6300esb|ib700\n" \
1453
    "                enable virtual hardware watchdog [default=none]\n")
1454
STEXI
1455
@item -watchdog @var{model}
1456
Create a virtual hardware watchdog device.  Once enabled (by a guest
1457
action), the watchdog must be periodically polled by an agent inside
1458
the guest or else the guest will be restarted.
1459

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

    
1466
Use @code{-watchdog ?} to list available hardware models.  Only one
1467
watchdog can be enabled for a guest.
1468
ETEXI
1469

    
1470
DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
1471
    "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
1472
    "                action when watchdog fires [default=reset]\n")
1473
STEXI
1474
@item -watchdog-action @var{action}
1475

    
1476
The @var{action} controls what QEMU will do when the watchdog timer
1477
expires.
1478
The default is
1479
@code{reset} (forcefully reset the guest).
1480
Other possible actions are:
1481
@code{shutdown} (attempt to gracefully shutdown the guest),
1482
@code{poweroff} (forcefully poweroff the guest),
1483
@code{pause} (pause the guest),
1484
@code{debug} (print a debug message and continue), or
1485
@code{none} (do nothing).
1486

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

    
1492
Examples:
1493

    
1494
@table @code
1495
@item -watchdog i6300esb -watchdog-action pause
1496
@item -watchdog ib700
1497
@end table
1498
ETEXI
1499

    
1500
DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
1501
    "-echr chr       set terminal escape character instead of ctrl-a\n")
1502
STEXI
1503

    
1504
@item -echr numeric_ascii_value
1505
Change the escape character used for switching to the monitor when using
1506
monitor and serial sharing.  The default is @code{0x01} when using the
1507
@code{-nographic} option.  @code{0x01} is equal to pressing
1508
@code{Control-a}.  You can select a different character from the ascii
1509
control keys where 1 through 26 map to Control-a through Control-z.  For
1510
instance you could use the either of the following to change the escape
1511
character to Control-t.
1512
@table @code
1513
@item -echr 0x14
1514
@item -echr 20
1515
@end table
1516
ETEXI
1517

    
1518
DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
1519
    "-virtioconsole c\n" \
1520
    "                set virtio console\n")
1521
STEXI
1522
@item -virtioconsole @var{c}
1523
Set virtio console.
1524
ETEXI
1525

    
1526
DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
1527
    "-show-cursor    show cursor\n")
1528
STEXI
1529
ETEXI
1530

    
1531
DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
1532
    "-tb-size n      set TB size\n")
1533
STEXI
1534
ETEXI
1535

    
1536
DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
1537
    "-incoming p     prepare for incoming migration, listen on port p\n")
1538
STEXI
1539
ETEXI
1540

    
1541
#ifndef _WIN32
1542
DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
1543
    "-chroot dir     Chroot to dir just before starting the VM.\n")
1544
#endif
1545
STEXI
1546
@item -chroot dir
1547
Immediately before starting guest execution, chroot to the specified
1548
directory.  Especially useful in combination with -runas.
1549
ETEXI
1550

    
1551
#ifndef _WIN32
1552
DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
1553
    "-runas user     Change to user id user just before starting the VM.\n")
1554
#endif
1555
STEXI
1556
@item -runas user
1557
Immediately before starting guest execution, drop root privileges, switching
1558
to the specified user.
1559
ETEXI
1560

    
1561
STEXI
1562
@end table
1563
ETEXI
1564

    
1565
#if defined(TARGET_SPARC) || defined(TARGET_PPC)
1566
DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
1567
    "-prom-env variable=value\n"
1568
    "                set OpenBIOS nvram variables\n")
1569
#endif
1570
#if defined(TARGET_ARM) || defined(TARGET_M68K)
1571
DEF("semihosting", 0, QEMU_OPTION_semihosting,
1572
    "-semihosting    semihosting mode\n")
1573
#endif
1574
#if defined(TARGET_ARM)
1575
DEF("old-param", 0, QEMU_OPTION_old_param,
1576
    "-old-param      old param mode\n")
1577
#endif