Statistics
| Branch: | Revision:

root / qemu-options.hx @ 5c2f8d2d

History | View | Annotate | Download (48.3 kB)

1
HXCOMM Use DEFHEADING() to define headings in both help text and texi
2
HXCOMM Text between STEXI and ETEXI are copied to texi version and
3
HXCOMM discarded from C version
4
HXCOMM DEF(option, HAS_ARG/0, opt_enum, opt_help) is used to construct
5
HXCOMM option structures, enums and help message.
6
HXCOMM HXCOMM can be used for comments, discarded from both texi and C
7

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

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

    
20
DEF("M", HAS_ARG, QEMU_OPTION_M,
21
    "-M machine      select emulated machine (-M ? for list)\n")
22
STEXI
23
@item -M @var{machine}
24
Select the emulated @var{machine} (@code{-M ?} for list)
25
ETEXI
26

    
27
DEF("cpu", HAS_ARG, QEMU_OPTION_cpu,
28
    "-cpu cpu        select CPU (-cpu ? for list)\n")
29
STEXI
30
@item -cpu @var{model}
31
Select CPU model (-cpu ? for list and additional feature selection)
32
ETEXI
33

    
34
DEF("smp", HAS_ARG, QEMU_OPTION_smp,
35
    "-smp n          set the number of CPUs to 'n' [default=1]\n")
36
STEXI
37
@item -smp @var{n}
38
Simulate an SMP system with @var{n} CPUs. On the PC target, up to 255
39
CPUs are supported. On Sparc32 target, Linux limits the number of usable CPUs
40
to 4.
41
ETEXI
42

    
43
DEF("fda", HAS_ARG, QEMU_OPTION_fda,
44
    "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n")
45
DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "")
46
STEXI
47
@item -fda @var{file}
48
@item -fdb @var{file}
49
Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
50
use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
51
ETEXI
52

    
53
DEF("hda", HAS_ARG, QEMU_OPTION_hda,
54
    "-hda/-hdb file  use 'file' as IDE hard disk 0/1 image\n")
55
DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "")
56
DEF("hdc", HAS_ARG, QEMU_OPTION_hdc,
57
    "-hdc/-hdd file  use 'file' as IDE hard disk 2/3 image\n")
58
DEF("hdd", HAS_ARG, QEMU_OPTION_hdd, "")
59
STEXI
60
@item -hda @var{file}
61
@item -hdb @var{file}
62
@item -hdc @var{file}
63
@item -hdd @var{file}
64
Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
65
ETEXI
66

    
67
DEF("cdrom", HAS_ARG, QEMU_OPTION_cdrom,
68
    "-cdrom file     use 'file' as IDE cdrom image (cdrom is ide1 master)\n")
69
STEXI
70
@item -cdrom @var{file}
71
Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and
72
@option{-cdrom} at the same time). You can use the host CD-ROM by
73
using @file{/dev/cdrom} as filename (@pxref{host_drives}).
74
ETEXI
75

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

    
84
Define a new drive. Valid options are:
85

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

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

    
121
Writeback caching will report data writes as completed as soon as the data is
122
present in the host page cache.  This is safe as long as you trust your host.
123
If your host crashes or loses power, then the guest may experience data
124
corruption.  When using the @option{-snapshot} option, writeback caching is
125
used by default.
126

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

    
131
Some block drivers perform badly with @option{cache=writethrough}, most notably,
132
qcow2.  If performance is more important than correctness,
133
@option{cache=writeback} should be used with qcow2.  By default, if no explicit
134
caching is specified for a qcow2 disk image, @option{cache=writeback} will be
135
used.  For all other disk types, @option{cache=writethrough} is the default.
136

    
137
Instead of @option{-cdrom} you can use:
138
@example
139
qemu -drive file=file,index=2,media=cdrom
140
@end example
141

    
142
Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
143
use:
144
@example
145
qemu -drive file=file,index=0,media=disk
146
qemu -drive file=file,index=1,media=disk
147
qemu -drive file=file,index=2,media=disk
148
qemu -drive file=file,index=3,media=disk
149
@end example
150

    
151
You can connect a CDROM to the slave of ide0:
152
@example
153
qemu -drive file=file,if=ide,index=1,media=cdrom
154
@end example
155

    
156
If you don't specify the "file=" argument, you define an empty drive:
157
@example
158
qemu -drive if=ide,index=1,media=cdrom
159
@end example
160

    
161
You can connect a SCSI disk with unit ID 6 on the bus #0:
162
@example
163
qemu -drive file=file,if=scsi,bus=0,unit=6
164
@end example
165

    
166
Instead of @option{-fda}, @option{-fdb}, you can use:
167
@example
168
qemu -drive file=file,index=0,if=floppy
169
qemu -drive file=file,index=1,if=floppy
170
@end example
171

    
172
By default, @var{interface} is "ide" and @var{index} is automatically
173
incremented:
174
@example
175
qemu -drive file=a -drive file=b"
176
@end example
177
is interpreted like:
178
@example
179
qemu -hda a -hdb b
180
@end example
181
ETEXI
182

    
183
DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
184
    "-mtdblock file  use 'file' as on-board Flash memory image\n")
185
STEXI
186

    
187
@item -mtdblock file
188
Use 'file' as on-board Flash memory image.
189
ETEXI
190

    
191
DEF("sd", HAS_ARG, QEMU_OPTION_sd,
192
    "-sd file        use 'file' as SecureDigital card image\n")
193
STEXI
194
@item -sd file
195
Use 'file' as SecureDigital card image.
196
ETEXI
197

    
198
DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
199
    "-pflash file    use 'file' as a parallel flash image\n")
200
STEXI
201
@item -pflash file
202
Use 'file' as a parallel flash image.
203
ETEXI
204

    
205
DEF("boot", HAS_ARG, QEMU_OPTION_boot,
206
    "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n")
207
STEXI
208
@item -boot [a|c|d|n]
209
Boot on floppy (a), hard disk (c), CD-ROM (d), or Etherboot (n). Hard disk boot
210
is the default.
211
ETEXI
212

    
213
DEF("snapshot", 0, QEMU_OPTION_snapshot,
214
    "-snapshot       write to temporary files instead of disk image files\n")
215
STEXI
216
@item -snapshot
217
Write to temporary files instead of disk image files. In this case,
218
the raw disk image you use is not written back. You can however force
219
the write back by pressing @key{C-a s} (@pxref{disk_images}).
220
ETEXI
221

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

    
231
#ifndef _WIN32
232
DEF("k", HAS_ARG, QEMU_OPTION_k,
233
    "-k language     use keyboard layout (for example 'fr' for French)\n")
234
#endif
235
STEXI
236
@item -k @var{language}
237

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

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

    
251
The default is @code{en-us}.
252
ETEXI
253

    
254

    
255
#ifdef HAS_AUDIO
256
DEF("audio-help", 0, QEMU_OPTION_audio_help,
257
    "-audio-help     print list of audio drivers and their options\n")
258
#endif
259
STEXI
260
@item -audio-help
261

    
262
Will show the audio subsystem help: list of drivers, tunable
263
parameters.
264
ETEXI
265

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

    
276
Enable audio and selected sound hardware. Use ? to print all
277
available sound hardware.
278

    
279
@example
280
qemu -soundhw sb16,adlib disk.img
281
qemu -soundhw es1370 disk.img
282
qemu -soundhw ac97 disk.img
283
qemu -soundhw all disk.img
284
qemu -soundhw ?
285
@end example
286

    
287
Note that Linux's i810_audio OSS kernel (for AC97) module might
288
require manually specifying clocking.
289

    
290
@example
291
modprobe i810_audio clocking=48000
292
@end example
293
ETEXI
294

    
295
STEXI
296
@end table
297
ETEXI
298

    
299
DEF("usb", 0, QEMU_OPTION_usb,
300
    "-usb            enable the USB driver (will be the default soon)\n")
301
STEXI
302
USB options:
303
@table @option
304

    
305
@item -usb
306
Enable the USB driver (will be the default soon)
307
ETEXI
308

    
309
DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
310
    "-usbdevice name add the host or guest USB device 'name'\n")
311
STEXI
312

    
313
@item -usbdevice @var{devname}
314
Add the USB device @var{devname}. @xref{usb_devices}.
315

    
316
@table @code
317

    
318
@item mouse
319
Virtual Mouse. This will override the PS/2 mouse emulation when activated.
320

    
321
@item tablet
322
Pointer device that uses absolute coordinates (like a touchscreen). This
323
means qemu is able to report the mouse position without having to grab the
324
mouse. Also overrides the PS/2 mouse emulation when activated.
325

    
326
@item disk:[format=@var{format}]:file
327
Mass storage device based on file. The optional @var{format} argument
328
will be used rather than detecting the format. Can be used to specifiy
329
format=raw to avoid interpreting an untrusted format header.
330

    
331
@item host:bus.addr
332
Pass through the host device identified by bus.addr (Linux only).
333

    
334
@item host:vendor_id:product_id
335
Pass through the host device identified by vendor_id:product_id (Linux only).
336

    
337
@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
338
Serial converter to host character device @var{dev}, see @code{-serial} for the
339
available devices.
340

    
341
@item braille
342
Braille device.  This will use BrlAPI to display the braille output on a real
343
or fake device.
344

    
345
@item net:options
346
Network adapter that supports CDC ethernet and RNDIS protocols.
347

    
348
@end table
349
ETEXI
350

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

    
360
DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
361
    "-uuid %%08x-%%04x-%%04x-%%04x-%%012x\n"
362
    "                specify machine UUID\n")
363
STEXI
364
@item -uuid @var{uuid}
365
Set system UUID.
366
ETEXI
367

    
368
STEXI
369
@end table
370
ETEXI
371

    
372
DEFHEADING()
373

    
374
DEFHEADING(Display options:)
375

    
376
STEXI
377
@table @option
378
ETEXI
379

    
380
DEF("nographic", 0, QEMU_OPTION_nographic,
381
    "-nographic      disable graphical output and redirect serial I/Os to console\n")
382
STEXI
383
@item -nographic
384

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

    
392
#ifdef CONFIG_CURSES
393
DEF("curses", 0, QEMU_OPTION_curses,
394
    "-curses         use a curses/ncurses interface instead of SDL\n")
395
#endif
396
STEXI
397
@item -curses
398

    
399
Normally, QEMU uses SDL to display the VGA output.  With this option,
400
QEMU can display the VGA output when in text mode using a
401
curses/ncurses interface.  Nothing is displayed in graphical mode.
402
ETEXI
403

    
404
#ifdef CONFIG_SDL
405
DEF("no-frame", 0, QEMU_OPTION_no_frame,
406
    "-no-frame       open SDL window without a frame and window decorations\n")
407
#endif
408
STEXI
409
@item -no-frame
410

    
411
Do not use decorations for SDL windows and start them using the whole
412
available screen space. This makes the using QEMU in a dedicated desktop
413
workspace more convenient.
414
ETEXI
415

    
416
#ifdef CONFIG_SDL
417
DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
418
    "-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n")
419
#endif
420
STEXI
421
@item -alt-grab
422

    
423
Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt).
424
ETEXI
425

    
426
#ifdef CONFIG_SDL
427
DEF("no-quit", 0, QEMU_OPTION_no_quit,
428
    "-no-quit        disable SDL window close capability\n")
429
#endif
430
STEXI
431
@item -no-quit
432

    
433
Disable SDL window close capability.
434
ETEXI
435

    
436
#ifdef CONFIG_SDL
437
DEF("sdl", 0, QEMU_OPTION_sdl,
438
    "-sdl            enable SDL\n")
439
#endif
440
STEXI
441
@item -sdl
442

    
443
Enable SDL.
444
ETEXI
445

    
446
DEF("portrait", 0, QEMU_OPTION_portrait,
447
    "-portrait       rotate graphical output 90 deg left (only PXA LCD)\n")
448
STEXI
449
@item -portrait
450

    
451
Rotate graphical output 90 deg left (only PXA LCD).
452
ETEXI
453

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

    
480
DEF("full-screen", 0, QEMU_OPTION_full_screen,
481
    "-full-screen    start in full screen\n")
482
STEXI
483
@item -full-screen
484
Start in full screen.
485
ETEXI
486

    
487
#if defined(TARGET_PPC) || defined(TARGET_SPARC)
488
DEF("g", 1, QEMU_OPTION_g ,
489
    "-g WxH[xDEPTH]  Set the initial graphical resolution and depth\n")
490
#endif
491
STEXI
492
ETEXI
493

    
494
DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
495
    "-vnc display    start a VNC server on display\n")
496
STEXI
497
@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
498

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

    
507
@table @code
508

    
509
@item @var{host}:@var{d}
510

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

    
515
@item @code{unix}:@var{path}
516

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

    
520
@item none
521

    
522
VNC is initialized but not started. The monitor @code{change} command
523
can be used to later start the VNC server.
524

    
525
@end table
526

    
527
Following the @var{display} value there may be one or more @var{option} flags
528
separated by commas. Valid options are
529

    
530
@table @code
531

    
532
@item reverse
533

    
534
Connect to a listening VNC client via a ``reverse'' connection. The
535
client is specified by the @var{display}. For reverse network
536
connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
537
is a TCP port number, not a display number.
538

    
539
@item password
540

    
541
Require that password based authentication is used for client connections.
542
The password must be set separately using the @code{change} command in the
543
@ref{pcsys_monitor}
544

    
545
@item tls
546

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

    
552
@item x509=@var{/path/to/certificate/dir}
553

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

    
561
@item x509verify=@var{/path/to/certificate/dir}
562

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

    
574
@item sasl
575

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

    
589
@item acl
590

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

    
602
@end table
603
ETEXI
604

    
605
STEXI
606
@end table
607
ETEXI
608

    
609
DEFHEADING()
610

    
611
#ifdef TARGET_I386
612
DEFHEADING(i386 target only:)
613
#endif
614
STEXI
615
@table @option
616
ETEXI
617

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

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

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

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

    
661
#ifdef TARGET_I386
662
DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
663
    "-no-hpet        disable HPET\n")
664
#endif
665
STEXI
666
@item -no-hpet
667
Disable HPET support.
668
ETEXI
669

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

    
680
#ifdef TARGET_I386
681
DEFHEADING()
682
#endif
683
STEXI
684
@end table
685
ETEXI
686

    
687
DEFHEADING(Network options:)
688
STEXI
689
@table @option
690
ETEXI
691

    
692
DEF("net", HAS_ARG, QEMU_OPTION_net, \
693
    "-net nic[,vlan=n][,macaddr=addr][,model=type][,name=str]\n"
694
    "                create a new Network Interface Card and connect it to VLAN 'n'\n"
695
#ifdef CONFIG_SLIRP
696
    "-net user[,vlan=n][,name=str][,hostname=host]\n"
697
    "                connect the user mode network stack to VLAN 'n' and send\n"
698
    "                hostname 'host' to DHCP clients\n"
699
#endif
700
#ifdef _WIN32
701
    "-net tap[,vlan=n][,name=str],ifname=name\n"
702
    "                connect the host TAP network interface to VLAN 'n'\n"
703
#else
704
    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n"
705
    "                connect the host TAP network interface to VLAN 'n' and use the\n"
706
    "                network scripts 'file' (default=%s)\n"
707
    "                and 'dfile' (default=%s);\n"
708
    "                use '[down]script=no' to disable script execution;\n"
709
    "                use 'fd=h' to connect to an already opened TAP interface\n"
710
#endif
711
    "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
712
    "                connect the vlan 'n' to another VLAN using a socket connection\n"
713
    "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n"
714
    "                connect the vlan 'n' to multicast maddr and port\n"
715
#ifdef CONFIG_VDE
716
    "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
717
    "                connect the vlan 'n' to port 'n' of a vde switch running\n"
718
    "                on host and listening for incoming connections on 'socketpath'.\n"
719
    "                Use group 'groupname' and mode 'octalmode' to change default\n"
720
    "                ownership and permissions for communication port.\n"
721
#endif
722
    "-net none       use it alone to have zero network devices; if no -net option\n"
723
    "                is provided, the default is '-net nic -net user'\n")
724
STEXI
725
@item -net nic[,vlan=@var{n}][,macaddr=@var{addr}][,model=@var{type}][,name=@var{name}]
726
Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
727
= 0 is the default). The NIC is an ne2k_pci by default on the PC
728
target. Optionally, the MAC address can be changed to @var{addr}
729
and a @var{name} can be assigned for use in monitor commands. If no
730
@option{-net} option is specified, a single NIC is created.
731
Qemu can emulate several different models of network card.
732
Valid values for @var{type} are
733
@code{i82551}, @code{i82557b}, @code{i82559er},
734
@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
735
@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.
736
Not all devices are supported on all targets.  Use -net nic,model=?
737
for a list of available devices for your target.
738

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

    
744
@item -net channel,@var{port}:@var{dev}
745
Forward @option{user} TCP connection to port @var{port} to character device @var{dev}
746

    
747
@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}]
748
Connect the host TAP network interface @var{name} to VLAN @var{n}, use
749
the network script @var{file} to configure it and the network script
750
@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
751
automatically provides one. @option{fd}=@var{h} can be used to specify
752
the handle of an already opened host TAP interface. The default network
753
configure script is @file{/etc/qemu-ifup} and the default network
754
deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}
755
or @option{downscript=no} to disable script execution. Example:
756

    
757
@example
758
qemu linux.img -net nic -net tap
759
@end example
760

    
761
More complicated example (two NICs, each one connected to a TAP device)
762
@example
763
qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
764
               -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
765
@end example
766

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

    
769
Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
770
machine using a TCP socket connection. If @option{listen} is
771
specified, QEMU waits for incoming connections on @var{port}
772
(@var{host} is optional). @option{connect} is used to connect to
773
another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
774
specifies an already opened TCP socket.
775

    
776
Example:
777
@example
778
# launch a first QEMU instance
779
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
780
               -net socket,listen=:1234
781
# connect the VLAN 0 of this instance to the VLAN 0
782
# of the first instance
783
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
784
               -net socket,connect=127.0.0.1:1234
785
@end example
786

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

    
789
Create a VLAN @var{n} shared with another QEMU virtual
790
machines using a UDP multicast socket, effectively making a bus for
791
every QEMU with same multicast address @var{maddr} and @var{port}.
792
NOTES:
793
@enumerate
794
@item
795
Several QEMU can be running on different hosts and share same bus (assuming
796
correct multicast setup for these hosts).
797
@item
798
mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
799
@url{http://user-mode-linux.sf.net}.
800
@item
801
Use @option{fd=h} to specify an already opened UDP multicast socket.
802
@end enumerate
803

    
804
Example:
805
@example
806
# launch one QEMU instance
807
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
808
               -net socket,mcast=230.0.0.1:1234
809
# launch another QEMU instance on same "bus"
810
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
811
               -net socket,mcast=230.0.0.1:1234
812
# launch yet another QEMU instance on same "bus"
813
qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
814
               -net socket,mcast=230.0.0.1:1234
815
@end example
816

    
817
Example (User Mode Linux compat.):
818
@example
819
# launch QEMU instance (note mcast address selected
820
# is UML's default)
821
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
822
               -net socket,mcast=239.192.168.1:1102
823
# launch UML
824
/path/to/linux ubd0=/path/to/root_fs eth0=mcast
825
@end example
826

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

    
834
Example:
835
@example
836
# launch vde switch
837
vde_switch -F -sock /tmp/myswitch
838
# launch QEMU instance
839
qemu linux.img -net nic -net vde,sock=/tmp/myswitch
840
@end example
841

    
842
@item -net none
843
Indicate that no network devices should be configured. It is used to
844
override the default configuration (@option{-net nic -net user}) which
845
is activated if no @option{-net} options are provided.
846
ETEXI
847

    
848
#ifdef CONFIG_SLIRP
849
DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, \
850
    "-tftp dir       allow tftp access to files in dir [-net user]\n")
851
#endif
852
STEXI
853
@item -tftp @var{dir}
854
When using the user mode network stack, activate a built-in TFTP
855
server. The files in @var{dir} will be exposed as the root of a TFTP server.
856
The TFTP client on the guest must be configured in binary mode (use the command
857
@code{bin} of the Unix TFTP client). The host IP address on the guest is as
858
usual 10.0.2.2.
859
ETEXI
860

    
861
#ifdef CONFIG_SLIRP
862
DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, \
863
    "-bootp file     advertise file in BOOTP replies\n")
864
#endif
865
STEXI
866
@item -bootp @var{file}
867
When using the user mode network stack, broadcast @var{file} as the BOOTP
868
filename.  In conjunction with @option{-tftp}, this can be used to network boot
869
a guest from a local directory.
870

    
871
Example (using pxelinux):
872
@example
873
qemu -hda linux.img -boot n -tftp /path/to/tftp/files -bootp /pxelinux.0
874
@end example
875
ETEXI
876

    
877
#ifndef _WIN32
878
DEF("smb", HAS_ARG, QEMU_OPTION_smb, \
879
           "-smb dir        allow SMB access to files in 'dir' [-net user]\n")
880
#endif
881
STEXI
882
@item -smb @var{dir}
883
When using the user mode network stack, activate a built-in SMB
884
server so that Windows OSes can access to the host files in @file{@var{dir}}
885
transparently.
886

    
887
In the guest Windows OS, the line:
888
@example
889
10.0.2.4 smbserver
890
@end example
891
must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
892
or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
893

    
894
Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
895

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

    
901
#ifdef CONFIG_SLIRP
902
DEF("redir", HAS_ARG, QEMU_OPTION_redir, \
903
    "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n" \
904
    "                redirect TCP or UDP connections from host to guest [-net user]\n")
905
#endif
906
STEXI
907
@item -redir [tcp|udp]:@var{host-port}:[@var{guest-host}]:@var{guest-port}
908

    
909
When using the user mode network stack, redirect incoming TCP or UDP
910
connections to the host port @var{host-port} to the guest
911
@var{guest-host} on guest port @var{guest-port}. If @var{guest-host}
912
is not specified, its value is 10.0.2.15 (default address given by the
913
built-in DHCP server).
914

    
915
For example, to redirect host X11 connection from screen 1 to guest
916
screen 0, use the following:
917

    
918
@example
919
# on the host
920
qemu -redir tcp:6001::6000 [...]
921
# this host xterm should open in the guest X11 server
922
xterm -display :1
923
@end example
924

    
925
To redirect telnet connections from host port 5555 to telnet port on
926
the guest, use the following:
927

    
928
@example
929
# on the host
930
qemu -redir tcp:5555::23 [...]
931
telnet localhost 5555
932
@end example
933

    
934
Then when you use on the host @code{telnet localhost 5555}, you
935
connect to the guest telnet server.
936

    
937
@end table
938
ETEXI
939

    
940
DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
941
    "\n" \
942
    "-bt hci,null    dumb bluetooth HCI - doesn't respond to commands\n" \
943
    "-bt hci,host[:id]\n" \
944
    "                use host's HCI with the given name\n" \
945
    "-bt hci[,vlan=n]\n" \
946
    "                emulate a standard HCI in virtual scatternet 'n'\n" \
947
    "-bt vhci[,vlan=n]\n" \
948
    "                add host computer to virtual scatternet 'n' using VHCI\n" \
949
    "-bt device:dev[,vlan=n]\n" \
950
    "                emulate a bluetooth device 'dev' in scatternet 'n'\n")
951
STEXI
952
Bluetooth(R) options:
953
@table @option
954

    
955
@item -bt hci[...]
956
Defines the function of the corresponding Bluetooth HCI.  -bt options
957
are matched with the HCIs present in the chosen machine type.  For
958
example when emulating a machine with only one HCI built into it, only
959
the first @code{-bt hci[...]} option is valid and defines the HCI's
960
logic.  The Transport Layer is decided by the machine type.  Currently
961
the machines @code{n800} and @code{n810} have one HCI and all other
962
machines have none.
963

    
964
@anchor{bt-hcis}
965
The following three types are recognized:
966

    
967
@table @code
968
@item -bt hci,null
969
(default) The corresponding Bluetooth HCI assumes no internal logic
970
and will not respond to any HCI commands or emit events.
971

    
972
@item -bt hci,host[:@var{id}]
973
(@code{bluez} only) The corresponding HCI passes commands / events
974
to / from the physical HCI identified by the name @var{id} (default:
975
@code{hci0}) on the computer running QEMU.  Only available on @code{bluez}
976
capable systems like Linux.
977

    
978
@item -bt hci[,vlan=@var{n}]
979
Add a virtual, standard HCI that will participate in the Bluetooth
980
scatternet @var{n} (default @code{0}).  Similarly to @option{-net}
981
VLANs, devices inside a bluetooth network @var{n} can only communicate
982
with other devices in the same network (scatternet).
983
@end table
984

    
985
@item -bt vhci[,vlan=@var{n}]
986
(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
987
to the host bluetooth stack instead of to the emulated target.  This
988
allows the host and target machines to participate in a common scatternet
989
and communicate.  Requires the Linux @code{vhci} driver installed.  Can
990
be used as following:
991

    
992
@example
993
qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
994
@end example
995

    
996
@item -bt device:@var{dev}[,vlan=@var{n}]
997
Emulate a bluetooth device @var{dev} and place it in network @var{n}
998
(default @code{0}).  QEMU can only emulate one type of bluetooth devices
999
currently:
1000

    
1001
@table @code
1002
@item keyboard
1003
Virtual wireless keyboard implementing the HIDP bluetooth profile.
1004
@end table
1005
@end table
1006
ETEXI
1007

    
1008
DEFHEADING()
1009

    
1010
DEFHEADING(Linux boot specific:)
1011
STEXI
1012
When using these options, you can use a given
1013
Linux kernel without installing it in the disk image. It can be useful
1014
for easier testing of various kernels.
1015

    
1016
@table @option
1017
ETEXI
1018

    
1019
DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
1020
    "-kernel bzImage use 'bzImage' as kernel image\n")
1021
STEXI
1022
@item -kernel @var{bzImage}
1023
Use @var{bzImage} as kernel image.
1024
ETEXI
1025

    
1026
DEF("append", HAS_ARG, QEMU_OPTION_append, \
1027
    "-append cmdline use 'cmdline' as kernel command line\n")
1028
STEXI
1029
@item -append @var{cmdline}
1030
Use @var{cmdline} as kernel command line
1031
ETEXI
1032

    
1033
DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
1034
           "-initrd file    use 'file' as initial ram disk\n")
1035
STEXI
1036
@item -initrd @var{file}
1037
Use @var{file} as initial ram disk.
1038
ETEXI
1039

    
1040
STEXI
1041
@end table
1042
ETEXI
1043

    
1044
DEFHEADING()
1045

    
1046
DEFHEADING(Debug/Expert options:)
1047

    
1048
STEXI
1049
@table @option
1050
ETEXI
1051

    
1052
DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
1053
    "-serial dev     redirect the serial port to char device 'dev'\n")
1054
STEXI
1055
@item -serial @var{dev}
1056
Redirect the virtual serial port to host character device
1057
@var{dev}. The default device is @code{vc} in graphical mode and
1058
@code{stdio} in non graphical mode.
1059

    
1060
This option can be used several times to simulate up to 4 serial
1061
ports.
1062

    
1063
Use @code{-serial none} to disable all serial ports.
1064

    
1065
Available character devices are:
1066
@table @code
1067
@item vc[:WxH]
1068
Virtual console. Optionally, a width and height can be given in pixel with
1069
@example
1070
vc:800x600
1071
@end example
1072
It is also possible to specify width or height in characters:
1073
@example
1074
vc:80Cx24C
1075
@end example
1076
@item pty
1077
[Linux only] Pseudo TTY (a new PTY is automatically allocated)
1078
@item none
1079
No device is allocated.
1080
@item null
1081
void device
1082
@item /dev/XXX
1083
[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
1084
parameters are set according to the emulated ones.
1085
@item /dev/parport@var{N}
1086
[Linux only, parallel port only] Use host parallel port
1087
@var{N}. Currently SPP and EPP parallel port features can be used.
1088
@item file:@var{filename}
1089
Write output to @var{filename}. No character can be read.
1090
@item stdio
1091
[Unix only] standard input/output
1092
@item pipe:@var{filename}
1093
name pipe @var{filename}
1094
@item COM@var{n}
1095
[Windows only] Use host serial port @var{n}
1096
@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
1097
This implements UDP Net Console.
1098
When @var{remote_host} or @var{src_ip} are not specified
1099
they default to @code{0.0.0.0}.
1100
When not using a specified @var{src_port} a random port is automatically chosen.
1101
@item msmouse
1102
Three button serial mouse. Configure the guest to use Microsoft protocol.
1103

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

    
1109
If you plan to send characters back via netconsole or you want to stop
1110
and start qemu a lot of times, you should have qemu use the same
1111
source port each time by using something like @code{-serial
1112
udp::4555@@:4556} to qemu. Another approach is to use a patched
1113
version of netcat which can listen to a TCP port and send and receive
1114
characters via udp.  If you have a patched version of netcat which
1115
activates telnet remote echo and single char transfer, then you can
1116
use the following options to step up a netcat redirector to allow
1117
telnet on port 5555 to access the qemu port.
1118
@table @code
1119
@item Qemu Options:
1120
-serial udp::4555@@:4556
1121
@item netcat options:
1122
-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
1123
@item telnet options:
1124
localhost 5555
1125
@end table
1126

    
1127
@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
1128
The TCP Net Console has two modes of operation.  It can send the serial
1129
I/O to a location or wait for a connection from a location.  By default
1130
the TCP Net Console is sent to @var{host} at the @var{port}.  If you use
1131
the @var{server} option QEMU will wait for a client socket application
1132
to connect to the port before continuing, unless the @code{nowait}
1133
option was specified.  The @code{nodelay} option disables the Nagle buffering
1134
algorithm.  If @var{host} is omitted, 0.0.0.0 is assumed. Only
1135
one TCP connection at a time is accepted. You can use @code{telnet} to
1136
connect to the corresponding character device.
1137
@table @code
1138
@item Example to send tcp console to 192.168.0.2 port 4444
1139
-serial tcp:192.168.0.2:4444
1140
@item Example to listen and wait on port 4444 for connection
1141
-serial tcp::4444,server
1142
@item Example to not wait and listen on ip 192.168.0.100 port 4444
1143
-serial tcp:192.168.0.100:4444,server,nowait
1144
@end table
1145

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

    
1155
@item unix:@var{path}[,server][,nowait]
1156
A unix domain socket is used instead of a tcp socket.  The option works the
1157
same as if you had specified @code{-serial tcp} except the unix domain socket
1158
@var{path} is used for connections.
1159

    
1160
@item mon:@var{dev_string}
1161
This is a special option to allow the monitor to be multiplexed onto
1162
another serial port.  The monitor is accessed with key sequence of
1163
@key{Control-a} and then pressing @key{c}. See monitor access
1164
@ref{pcsys_keys} in the -nographic section for more keys.
1165
@var{dev_string} should be any one of the serial devices specified
1166
above.  An example to multiplex the monitor onto a telnet server
1167
listening on port 4444 would be:
1168
@table @code
1169
@item -serial mon:telnet::4444,server,nowait
1170
@end table
1171

    
1172
@item braille
1173
Braille device.  This will use BrlAPI to display the braille output on a real
1174
or fake device.
1175

    
1176
@end table
1177
ETEXI
1178

    
1179
DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
1180
    "-parallel dev   redirect the parallel port to char device 'dev'\n")
1181
STEXI
1182
@item -parallel @var{dev}
1183
Redirect the virtual parallel port to host device @var{dev} (same
1184
devices as the serial port). On Linux hosts, @file{/dev/parportN} can
1185
be used to use hardware devices connected on the corresponding host
1186
parallel port.
1187

    
1188
This option can be used several times to simulate up to 3 parallel
1189
ports.
1190

    
1191
Use @code{-parallel none} to disable all parallel ports.
1192
ETEXI
1193

    
1194
DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
1195
    "-monitor dev    redirect the monitor to char device 'dev'\n")
1196
STEXI
1197
@item -monitor @var{dev}
1198
Redirect the monitor to host device @var{dev} (same devices as the
1199
serial port).
1200
The default device is @code{vc} in graphical mode and @code{stdio} in
1201
non graphical mode.
1202
ETEXI
1203

    
1204
DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
1205
    "-pidfile file   write PID to 'file'\n")
1206
STEXI
1207
@item -pidfile @var{file}
1208
Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
1209
from a script.
1210
ETEXI
1211

    
1212
DEF("S", 0, QEMU_OPTION_S, \
1213
    "-S              freeze CPU at startup (use 'c' to start execution)\n")
1214
STEXI
1215
@item -S
1216
Do not start CPU at startup (you must type 'c' in the monitor).
1217
ETEXI
1218

    
1219
DEF("s", 0, QEMU_OPTION_s, \
1220
    "-s              wait gdb connection to port\n")
1221
STEXI
1222
@item -s
1223
Wait gdb connection to port 1234 (@pxref{gdb_usage}).
1224
ETEXI
1225

    
1226
DEF("p", HAS_ARG, QEMU_OPTION_p, \
1227
    "-p port         set gdb connection port [default=%s]\n")
1228
STEXI
1229
@item -p @var{port}
1230
Change gdb connection port.  @var{port} can be either a decimal number
1231
to specify a TCP port, or a host device (same devices as the serial port).
1232
ETEXI
1233

    
1234
DEF("d", HAS_ARG, QEMU_OPTION_d, \
1235
    "-d item1,...    output log to %s (use -d ? for a list of log items)\n")
1236
STEXI
1237
@item -d
1238
Output log in /tmp/qemu.log
1239
ETEXI
1240

    
1241
DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
1242
    "-hdachs c,h,s[,t]\n" \
1243
    "                force hard disk 0 physical geometry and the optional BIOS\n" \
1244
    "                translation (t=none or lba) (usually qemu can guess them)\n")
1245
STEXI
1246
@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
1247
Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
1248
@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
1249
translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
1250
all those parameters. This option is useful for old MS-DOS disk
1251
images.
1252
ETEXI
1253

    
1254
DEF("L", HAS_ARG, QEMU_OPTION_L, \
1255
    "-L path         set the directory for the BIOS, VGA BIOS and keymaps\n")
1256
STEXI
1257
@item -L  @var{path}
1258
Set the directory for the BIOS, VGA BIOS and keymaps.
1259
ETEXI
1260

    
1261
DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
1262
    "-bios file      set the filename for the BIOS\n")
1263
STEXI
1264
@item -bios @var{file}
1265
Set the filename for the BIOS.
1266
ETEXI
1267

    
1268
#ifdef USE_KQEMU
1269
DEF("kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu, \
1270
    "-kernel-kqemu   enable KQEMU full virtualization (default is user mode only)\n")
1271
#endif
1272
STEXI
1273
@item -kernel-kqemu
1274
Enable KQEMU full virtualization (default is user mode only).
1275
ETEXI
1276

    
1277
#ifdef USE_KQEMU
1278
DEF("no-kqemu", 0, QEMU_OPTION_no_kqemu, \
1279
    "-no-kqemu       disable KQEMU kernel module usage\n")
1280
#endif
1281
STEXI
1282
@item -no-kqemu
1283
Disable KQEMU kernel module usage. KQEMU options are only available if
1284
KQEMU support is enabled when compiling.
1285
ETEXI
1286

    
1287
#ifdef CONFIG_KVM
1288
DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
1289
    "-enable-kvm     enable KVM full virtualization support\n")
1290
#endif
1291
STEXI
1292
@item -enable-kvm
1293
Enable KVM full virtualization support. This option is only available
1294
if KVM support is enabled when compiling.
1295
ETEXI
1296

    
1297
DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
1298
    "-no-reboot      exit instead of rebooting\n")
1299
STEXI
1300
@item -no-reboot
1301
Exit instead of rebooting.
1302
ETEXI
1303

    
1304
DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
1305
    "-no-shutdown    stop before shutdown\n")
1306
STEXI
1307
@item -no-shutdown
1308
Don't exit QEMU on guest shutdown, but instead only stop the emulation.
1309
This allows for instance switching to monitor to commit changes to the
1310
disk image.
1311
ETEXI
1312

    
1313
DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
1314
    "-loadvm [tag|id]\n" \
1315
    "                start right away with a saved state (loadvm in monitor)\n")
1316
STEXI
1317
@item -loadvm @var{file}
1318
Start right away with a saved state (@code{loadvm} in monitor)
1319
ETEXI
1320

    
1321
#ifndef _WIN32
1322
DEF("daemonize", 0, QEMU_OPTION_daemonize, \
1323
    "-daemonize      daemonize QEMU after initializing\n")
1324
#endif
1325
STEXI
1326
@item -daemonize
1327
Daemonize the QEMU process after initialization.  QEMU will not detach from
1328
standard IO until it is ready to receive connections on any of its devices.
1329
This option is a useful way for external programs to launch QEMU without having
1330
to cope with initialization race conditions.
1331
ETEXI
1332

    
1333
DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
1334
    "-option-rom rom load a file, rom, into the option ROM space\n")
1335
STEXI
1336
@item -option-rom @var{file}
1337
Load the contents of @var{file} as an option ROM.
1338
This option is useful to load things like EtherBoot.
1339
ETEXI
1340

    
1341
DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
1342
    "-clock          force the use of the given methods for timer alarm.\n" \
1343
    "                To see what timers are available use -clock ?\n")
1344
STEXI
1345
@item -clock @var{method}
1346
Force the use of the given methods for timer alarm. To see what timers
1347
are available use -clock ?.
1348
ETEXI
1349

    
1350
DEF("localtime", 0, QEMU_OPTION_localtime, \
1351
    "-localtime      set the real time clock to local time [default=utc]\n")
1352
STEXI
1353
@item -localtime
1354
Set the real time clock to local time (the default is to UTC
1355
time). This option is needed to have correct date in MS-DOS or
1356
Windows.
1357
ETEXI
1358

    
1359
DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, \
1360
    "-startdate      select initial date of the clock\n")
1361
STEXI
1362

    
1363
@item -startdate @var{date}
1364
Set the initial date of the real time clock. Valid formats for
1365
@var{date} are: @code{now} or @code{2006-06-17T16:01:21} or
1366
@code{2006-06-17}. The default value is @code{now}.
1367
ETEXI
1368

    
1369
DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
1370
    "-icount [N|auto]\n" \
1371
    "                enable virtual instruction counter with 2^N clock ticks per instruction\n")
1372
STEXI
1373
@item -icount [N|auto]
1374
Enable virtual instruction counter.  The virtual cpu will execute one
1375
instruction every 2^N ns of virtual time.  If @code{auto} is specified
1376
then the virtual cpu speed will be automatically adjusted to keep virtual
1377
time within a few seconds of real time.
1378

    
1379
Note that while this option can give deterministic behavior, it does not
1380
provide cycle accurate emulation.  Modern CPUs contain superscalar out of
1381
order cores with complex cache hierarchies.  The number of instructions
1382
executed often has little or no correlation with actual performance.
1383
ETEXI
1384

    
1385
DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
1386
    "-echr chr       set terminal escape character instead of ctrl-a\n")
1387
STEXI
1388

    
1389
@item -echr numeric_ascii_value
1390
Change the escape character used for switching to the monitor when using
1391
monitor and serial sharing.  The default is @code{0x01} when using the
1392
@code{-nographic} option.  @code{0x01} is equal to pressing
1393
@code{Control-a}.  You can select a different character from the ascii
1394
control keys where 1 through 26 map to Control-a through Control-z.  For
1395
instance you could use the either of the following to change the escape
1396
character to Control-t.
1397
@table @code
1398
@item -echr 0x14
1399
@item -echr 20
1400
@end table
1401
ETEXI
1402

    
1403
DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
1404
    "-virtioconsole c\n" \
1405
    "                set virtio console\n")
1406
STEXI
1407
@item -virtioconsole @var{c}
1408
Set virtio console.
1409
ETEXI
1410

    
1411
DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
1412
    "-show-cursor    show cursor\n")
1413
STEXI
1414
ETEXI
1415

    
1416
DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
1417
    "-tb-size n      set TB size\n")
1418
STEXI
1419
ETEXI
1420

    
1421
DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
1422
    "-incoming p     prepare for incoming migration, listen on port p\n")
1423
STEXI
1424
ETEXI
1425

    
1426
#ifndef _WIN32
1427
DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
1428
    "-chroot dir     Chroot to dir just before starting the VM.\n")
1429
#endif
1430
STEXI
1431
@item -chroot dir
1432
Immediately before starting guest execution, chroot to the specified
1433
directory.  Especially useful in combination with -runas.
1434
ETEXI
1435

    
1436
#ifndef _WIN32
1437
DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
1438
    "-runas user     Change to user id user just before starting the VM.\n")
1439
#endif
1440
STEXI
1441
@item -runas user
1442
Immediately before starting guest execution, drop root privileges, switching
1443
to the specified user.
1444
ETEXI
1445

    
1446
STEXI
1447
@end table
1448
ETEXI
1449

    
1450
#if defined(TARGET_SPARC) || defined(TARGET_PPC)
1451
DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
1452
    "-prom-env variable=value\n"
1453
    "                set OpenBIOS nvram variables\n")
1454
#endif
1455
#if defined(TARGET_ARM) || defined(TARGET_M68K)
1456
DEF("semihosting", 0, QEMU_OPTION_semihosting,
1457
    "-semihosting    semihosting mode\n")
1458
#endif
1459
#if defined(TARGET_ARM)
1460
DEF("old-param", 0, QEMU_OPTION_old_param,
1461
    "-old-param      old param mode\n")
1462
#endif