1HXCOMM Use DEFHEADING() to define headings in both help text and texi
2HXCOMM Text between STEXI and ETEXI are copied to texi version and
3HXCOMM discarded from C version
4HXCOMM DEF(option, HAS_ARG/0, opt_enum, opt_help) is used to construct
5HXCOMM option structures, enums and help message.
6HXCOMM HXCOMM can be used for comments, discarded from both texi and C
7
8DEFHEADING(Standard options:)
9STEXI
10@table @option
11ETEXI
12
13DEF("help", 0, QEMU_OPTION_h,
14    "-h or -help     display this help and exit\n")
15STEXI
16@item -h
17Display help and exit
18ETEXI
19
20DEF("version", 0, QEMU_OPTION_version,
21    "-version        display version information and exit\n")
22STEXI
23@item -version
24Display version information and exit
25ETEXI
26
27DEF("M", HAS_ARG, QEMU_OPTION_M,
28    "-M machine      select emulated machine (-M ? for list)\n")
29STEXI
30@item -M @var{machine}
31Select the emulated @var{machine} (@code{-M ?} for list)
32ETEXI
33
34DEF("cpu", HAS_ARG, QEMU_OPTION_cpu,
35    "-cpu cpu        select CPU (-cpu ? for list)\n")
36STEXI
37@item -cpu @var{model}
38Select CPU model (-cpu ? for list and additional feature selection)
39ETEXI
40
41DEF("smp", HAS_ARG, QEMU_OPTION_smp,
42    "-smp n          set the number of CPUs to 'n' [default=1]\n")
43STEXI
44@item -smp @var{n}
45Simulate an SMP system with @var{n} CPUs. On the PC target, up to 255
46CPUs are supported. On Sparc32 target, Linux limits the number of usable CPUs
47to 4.
48ETEXI
49
50DEF("numa", HAS_ARG, QEMU_OPTION_numa,
51    "-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]\n")
52STEXI
53@item -numa @var{opts}
54Simulate a multi node NUMA system. If mem and cpus are omitted, resources
55are split equally.
56ETEXI
57
58DEF("fda", HAS_ARG, QEMU_OPTION_fda,
59    "-fda/-fdb file  use 'file' as floppy disk 0/1 image\n")
60DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "")
61STEXI
62@item -fda @var{file}
63@item -fdb @var{file}
64Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
65use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
66ETEXI
67
68DEF("hda", HAS_ARG, QEMU_OPTION_hda,
69    "-hda/-hdb file  use 'file' as IDE hard disk 0/1 image\n")
70DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "")
71DEF("hdc", HAS_ARG, QEMU_OPTION_hdc,
72    "-hdc/-hdd file  use 'file' as IDE hard disk 2/3 image\n")
73DEF("hdd", HAS_ARG, QEMU_OPTION_hdd, "")
74STEXI
75@item -hda @var{file}
76@item -hdb @var{file}
77@item -hdc @var{file}
78@item -hdd @var{file}
79Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
80ETEXI
81
82DEF("cdrom", HAS_ARG, QEMU_OPTION_cdrom,
83    "-cdrom file     use 'file' as IDE cdrom image (cdrom is ide1 master)\n")
84STEXI
85@item -cdrom @var{file}
86Use @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
88using @file{/dev/cdrom} as filename (@pxref{host_drives}).
89ETEXI
90
91DEF("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")
96STEXI
97@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
98
99Define a new drive. Valid options are:
100
101@table @code
102@item file=@var{file}
103This option defines which disk image (@pxref{disk_images}) to use with
104this 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}
107This option defines on which type on interface the drive is connected.
108Available types are: ide, scsi, sd, mtd, floppy, pflash, virtio.
109@item bus=@var{bus},unit=@var{unit}
110These options define where is connected the drive by defining the bus number and
111the unit id.
112@item index=@var{index}
113This option defines where is connected the drive by using an index in the list
114of available connectors of a given interface type.
115@item media=@var{media}
116This option defines the type of the media: disk or cdrom.
117@item cyls=@var{c},heads=@var{h},secs=@var{s}[,trans=@var{t}]
118These 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}
124Specify which disk @var{format} will be used rather than detecting
125the format.  Can be used to specifiy format=raw to avoid interpreting
126an untrusted format header.
127@item serial=@var{serial}
128This option specifies the serial number to assign to the device.
129@end table
130
131By default, writethrough caching is used for all block device.  This means that
132the host page cache will be used to read and write data but write notification
133will be sent to the guest only when the data has been reported as written by
134the storage subsystem.
135
136Writeback caching will report data writes as completed as soon as the data is
137present in the host page cache.  This is safe as long as you trust your host.
138If your host crashes or loses power, then the guest may experience data
139corruption.  When using the @option{-snapshot} option, writeback caching is
140used by default.
141
142The host page cache can be avoided entirely with @option{cache=none}.  This will
143attempt to do disk IO directly to the guests memory.  QEMU may still perform
144an internal copy of the data.
145
146Some block drivers perform badly with @option{cache=writethrough}, most notably,
147qcow2.  If performance is more important than correctness,
148@option{cache=writeback} should be used with qcow2.  By default, if no explicit
149caching is specified for a qcow2 disk image, @option{cache=writeback} will be
150used.  For all other disk types, @option{cache=writethrough} is the default.
151
152Instead of @option{-cdrom} you can use:
153@example
154qemu -drive file=file,index=2,media=cdrom
155@end example
156
157Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
158use:
159@example
160qemu -drive file=file,index=0,media=disk
161qemu -drive file=file,index=1,media=disk
162qemu -drive file=file,index=2,media=disk
163qemu -drive file=file,index=3,media=disk
164@end example
165
166You can connect a CDROM to the slave of ide0:
167@example
168qemu -drive file=file,if=ide,index=1,media=cdrom
169@end example
170
171If you don't specify the "file=" argument, you define an empty drive:
172@example
173qemu -drive if=ide,index=1,media=cdrom
174@end example
175
176You can connect a SCSI disk with unit ID 6 on the bus #0:
177@example
178qemu -drive file=file,if=scsi,bus=0,unit=6
179@end example
180
181Instead of @option{-fda}, @option{-fdb}, you can use:
182@example
183qemu -drive file=file,index=0,if=floppy
184qemu -drive file=file,index=1,if=floppy
185@end example
186
187By default, @var{interface} is "ide" and @var{index} is automatically
188incremented:
189@example
190qemu -drive file=a -drive file=b"
191@end example
192is interpreted like:
193@example
194qemu -hda a -hdb b
195@end example
196ETEXI
197
198DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
199    "-mtdblock file  use 'file' as on-board Flash memory image\n")
200STEXI
201
202@item -mtdblock file
203Use 'file' as on-board Flash memory image.
204ETEXI
205
206DEF("sd", HAS_ARG, QEMU_OPTION_sd,
207    "-sd file        use 'file' as SecureDigital card image\n")
208STEXI
209@item -sd file
210Use 'file' as SecureDigital card image.
211ETEXI
212
213DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
214    "-pflash file    use 'file' as a parallel flash image\n")
215STEXI
216@item -pflash file
217Use 'file' as a parallel flash image.
218ETEXI
219
220DEF("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")
222STEXI
223@item -boot [a|c|d|n]
224Boot on floppy (a), hard disk (c), CD-ROM (d), or Etherboot (n). Hard disk boot
225is the default.
226ETEXI
227
228DEF("snapshot", 0, QEMU_OPTION_snapshot,
229    "-snapshot       write to temporary files instead of disk image files\n")
230STEXI
231@item -snapshot
232Write to temporary files instead of disk image files. In this case,
233the raw disk image you use is not written back. You can however force
234the write back by pressing @key{C-a s} (@pxref{disk_images}).
235ETEXI
236
237DEF("m", HAS_ARG, QEMU_OPTION_m,
238    "-m megs         set virtual RAM size to megs MB [default=%d]\n")
239STEXI
240@item -m @var{megs}
241Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB.  Optionally,
242a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
243gigabytes respectively.
244ETEXI
245
246DEF("k", HAS_ARG, QEMU_OPTION_k,
247    "-k language     use keyboard layout (for example 'fr' for French)\n")
248STEXI
249@item -k @var{language}
250
251Use keyboard layout @var{language} (for example @code{fr} for
252French). This option is only needed where it is not easy to get raw PC
253keycodes (e.g. on Macs, with some X11 servers or with a VNC
254display). You don't normally need to use it on PC/Linux or PC/Windows
255hosts.
256
257The available layouts are:
258@example
259ar  de-ch  es  fo     fr-ca  hu  ja  mk     no  pt-br  sv
260da  en-gb  et  fr     fr-ch  is  lt  nl     pl  ru     th
261de  en-us  fi  fr-be  hr     it  lv  nl-be  pt  sl     tr
262@end example
263
264The default is @code{en-us}.
265ETEXI
266
267
268#ifdef HAS_AUDIO
269DEF("audio-help", 0, QEMU_OPTION_audio_help,
270    "-audio-help     print list of audio drivers and their options\n")
271#endif
272STEXI
273@item -audio-help
274
275Will show the audio subsystem help: list of drivers, tunable
276parameters.
277ETEXI
278
279#ifdef HAS_AUDIO
280DEF("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
286STEXI
287@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
288
289Enable audio and selected sound hardware. Use ? to print all
290available sound hardware.
291
292@example
293qemu -soundhw sb16,adlib disk.img
294qemu -soundhw es1370 disk.img
295qemu -soundhw ac97 disk.img
296qemu -soundhw all disk.img
297qemu -soundhw ?
298@end example
299
300Note that Linux's i810_audio OSS kernel (for AC97) module might
301require manually specifying clocking.
302
303@example
304modprobe i810_audio clocking=48000
305@end example
306ETEXI
307
308STEXI
309@end table
310ETEXI
311
312DEF("usb", 0, QEMU_OPTION_usb,
313    "-usb            enable the USB driver (will be the default soon)\n")
314STEXI
315USB options:
316@table @option
317
318@item -usb
319Enable the USB driver (will be the default soon)
320ETEXI
321
322DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
323    "-usbdevice name add the host or guest USB device 'name'\n")
324STEXI
325
326@item -usbdevice @var{devname}
327Add the USB device @var{devname}. @xref{usb_devices}.
328
329@table @code
330
331@item mouse
332Virtual Mouse. This will override the PS/2 mouse emulation when activated.
333
334@item tablet
335Pointer device that uses absolute coordinates (like a touchscreen). This
336means qemu is able to report the mouse position without having to grab the
337mouse. Also overrides the PS/2 mouse emulation when activated.
338
339@item disk:[format=@var{format}]:file
340Mass storage device based on file. The optional @var{format} argument
341will be used rather than detecting the format. Can be used to specifiy
342format=raw to avoid interpreting an untrusted format header.
343
344@item host:bus.addr
345Pass through the host device identified by bus.addr (Linux only).
346
347@item host:vendor_id:product_id
348Pass 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}
351Serial converter to host character device @var{dev}, see @code{-serial} for the
352available devices.
353
354@item braille
355Braille device.  This will use BrlAPI to display the braille output on a real
356or fake device.
357
358@item net:options
359Network adapter that supports CDC ethernet and RNDIS protocols.
360
361@end table
362ETEXI
363
364DEF("name", HAS_ARG, QEMU_OPTION_name,
365    "-name string    set the name of the guest\n")
366STEXI
367@item -name @var{name}
368Sets the @var{name} of the guest.
369This name will be displayed in the SDL window caption.
370The @var{name} will also be used for the VNC server.
371ETEXI
372
373DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
374    "-uuid %%08x-%%04x-%%04x-%%04x-%%012x\n"
375    "                specify machine UUID\n")
376STEXI
377@item -uuid @var{uuid}
378Set system UUID.
379ETEXI
380
381STEXI
382@end table
383ETEXI
384
385DEFHEADING()
386
387DEFHEADING(Display options:)
388
389STEXI
390@table @option
391ETEXI
392
393DEF("nographic", 0, QEMU_OPTION_nographic,
394    "-nographic      disable graphical output and redirect serial I/Os to console\n")
395STEXI
396@item -nographic
397
398Normally, QEMU uses SDL to display the VGA output. With this option,
399you can totally disable graphical output so that QEMU is a simple
400command line application. The emulated serial port is redirected on
401the console. Therefore, you can still use QEMU to debug a Linux kernel
402with a serial console.
403ETEXI
404
405#ifdef CONFIG_CURSES
406DEF("curses", 0, QEMU_OPTION_curses,
407    "-curses         use a curses/ncurses interface instead of SDL\n")
408#endif
409STEXI
410@item -curses
411
412Normally, QEMU uses SDL to display the VGA output.  With this option,
413QEMU can display the VGA output when in text mode using a
414curses/ncurses interface.  Nothing is displayed in graphical mode.
415ETEXI
416
417#ifdef CONFIG_SDL
418DEF("no-frame", 0, QEMU_OPTION_no_frame,
419    "-no-frame       open SDL window without a frame and window decorations\n")
420#endif
421STEXI
422@item -no-frame
423
424Do not use decorations for SDL windows and start them using the whole
425available screen space. This makes the using QEMU in a dedicated desktop
426workspace more convenient.
427ETEXI
428
429#ifdef CONFIG_SDL
430DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
431    "-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n")
432#endif
433STEXI
434@item -alt-grab
435
436Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt).
437ETEXI
438
439#ifdef CONFIG_SDL
440DEF("no-quit", 0, QEMU_OPTION_no_quit,
441    "-no-quit        disable SDL window close capability\n")
442#endif
443STEXI
444@item -no-quit
445
446Disable SDL window close capability.
447ETEXI
448
449#ifdef CONFIG_SDL
450DEF("sdl", 0, QEMU_OPTION_sdl,
451    "-sdl            enable SDL\n")
452#endif
453STEXI
454@item -sdl
455
456Enable SDL.
457ETEXI
458
459DEF("portrait", 0, QEMU_OPTION_portrait,
460    "-portrait       rotate graphical output 90 deg left (only PXA LCD)\n")
461STEXI
462@item -portrait
463
464Rotate graphical output 90 deg left (only PXA LCD).
465ETEXI
466
467DEF("vga", HAS_ARG, QEMU_OPTION_vga,
468    "-vga [std|cirrus|vmware|xenfb|none]\n"
469    "                select video card type\n")
470STEXI
471@item -vga @var{type}
472Select type of VGA card to emulate. Valid values for @var{type} are
473@table @code
474@item cirrus
475Cirrus Logic GD5446 Video card. All Windows versions starting from
476Windows 95 should recognize and use this graphic card. For optimal
477performances, use 16 bit color depth in the guest and the host OS.
478(This one is the default)
479@item std
480Standard VGA card with Bochs VBE extensions.  If your guest OS
481supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want
482to use high resolution modes (>= 1280x1024x16) then you should use
483this option.
484@item vmware
485VMWare SVGA-II compatible adapter. Use it if you have sufficiently
486recent XFree86/XOrg server or Windows guest with a driver for this
487card.
488@item none
489Disable VGA card.
490@end table
491ETEXI
492
493DEF("full-screen", 0, QEMU_OPTION_full_screen,
494    "-full-screen    start in full screen\n")
495STEXI
496@item -full-screen
497Start in full screen.
498ETEXI
499
500#if defined(TARGET_PPC) || defined(TARGET_SPARC)
501DEF("g", 1, QEMU_OPTION_g ,
502    "-g WxH[xDEPTH]  Set the initial graphical resolution and depth\n")
503#endif
504STEXI
505ETEXI
506
507DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
508    "-vnc display    start a VNC server on display\n")
509STEXI
510@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
511
512Normally, QEMU uses SDL to display the VGA output.  With this option,
513you can have QEMU listen on VNC display @var{display} and redirect the VGA
514display over the VNC session.  It is very useful to enable the usb
515tablet device when using this option (option @option{-usbdevice
516tablet}). When using the VNC display, you must use the @option{-k}
517parameter to set the keyboard layout if you are not using en-us. Valid
518syntax for the @var{display} is
519
520@table @code
521
522@item @var{host}:@var{d}
523
524TCP connections will only be allowed from @var{host} on display @var{d}.
525By convention the TCP port is 5900+@var{d}. Optionally, @var{host} can
526be omitted in which case the server will accept connections from any host.
527
528@item @code{unix}:@var{path}
529
530Connections will be allowed over UNIX domain sockets where @var{path} is the
531location of a unix socket to listen for connections on.
532
533@item none
534
535VNC is initialized but not started. The monitor @code{change} command
536can be used to later start the VNC server.
537
538@end table
539
540Following the @var{display} value there may be one or more @var{option} flags
541separated by commas. Valid options are
542
543@table @code
544
545@item reverse
546
547Connect to a listening VNC client via a ``reverse'' connection. The
548client is specified by the @var{display}. For reverse network
549connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
550is a TCP port number, not a display number.
551
552@item password
553
554Require that password based authentication is used for client connections.
555The password must be set separately using the @code{change} command in the
556@ref{pcsys_monitor}
557
558@item tls
559
560Require that client use TLS when communicating with the VNC server. This
561uses anonymous TLS credentials so is susceptible to a man-in-the-middle
562attack. 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
567Valid if @option{tls} is specified. Require that x509 credentials are used
568for negotiating the TLS session. The server will send its x509 certificate
569to the client. It is recommended that a password be set on the VNC server
570to provide authentication of the client when this is used. The path following
571this option specifies where the x509 certificates are to be loaded from.
572See the @ref{vnc_security} section for details on generating certificates.
573
574@item x509verify=@var{/path/to/certificate/dir}
575
576Valid if @option{tls} is specified. Require that x509 credentials are used
577for negotiating the TLS session. The server will send its x509 certificate
578to the client, and request that the client send its own x509 certificate.
579The server will validate the client's certificate against the CA certificate,
580and reject clients when validation fails. If the certificate authority is
581trusted, this is a sufficient authentication mechanism. You may still wish
582to set a password on the VNC server as a second authentication layer. The
583path following this option specifies where the x509 certificates are to
584be loaded from. See the @ref{vnc_security} section for details on generating
585certificates.
586
587@item sasl
588
589Require that the client use SASL to authenticate with the VNC server.
590The exact choice of authentication method used is controlled from the
591system / user's SASL configuration file for the 'qemu' service. This
592is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
593unprivileged user, an environment variable SASL_CONF_PATH can be used
594to make it search alternate locations for the service config.
595While some SASL auth methods can also provide data encryption (eg GSSAPI),
596it is recommended that SASL always be combined with the 'tls' and
597'x509' settings to enable use of SSL and server certificates. This
598ensures a data encryption preventing compromise of authentication
599credentials. See the @ref{vnc_security} section for details on using
600SASL authentication.
601
602@item acl
603
604Turn on access control lists for checking of the x509 client certificate
605and SASL party. For x509 certs, the ACL check is made against the
606certificate'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
608made against the username, which depending on the SASL plugin, may
609include a realm component, eg @code{bob} or @code{bob@@EXAMPLE.COM}.
610When the @option{acl} flag is set, the initial access list will be
611empty, with a @code{deny} policy. Thus no one will be allowed to
612use the VNC server until the ACLs have been loaded. This can be
613achieved using the @code{acl} monitor command.
614
615@end table
616ETEXI
617
618STEXI
619@end table
620ETEXI
621
622DEFHEADING()
623
624#ifdef TARGET_I386
625DEFHEADING(i386 target only:)
626#endif
627STEXI
628@table @option
629ETEXI
630
631#ifdef TARGET_I386
632DEF("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
635STEXI
636@item -win2k-hack
637Use it when installing Windows 2000 to avoid a disk full bug. After
638Windows 2000 is installed, you no longer need this option (this option
639slows down the IDE transfers).
640ETEXI
641
642#ifdef TARGET_I386
643DEF("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
646STEXI
647@item -rtc-td-hack
648Use it if you experience time drift problem in Windows with ACPI HAL.
649This option will try to figure out how many timer interrupts were not
650processed by the Windows guest and will re-inject them.
651ETEXI
652
653#ifdef TARGET_I386
654DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
655    "-no-fd-bootchk  disable boot signature checking for floppy disks\n")
656#endif
657STEXI
658@item -no-fd-bootchk
659Disable boot signature checking for floppy disks in Bochs BIOS. It may
660be needed to boot from old floppy disks.
661ETEXI
662
663#ifdef TARGET_I386
664DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
665           "-no-acpi        disable ACPI\n")
666#endif
667STEXI
668@item -no-acpi
669Disable ACPI (Advanced Configuration and Power Interface) support. Use
670it if your guest OS complains about ACPI problems (PC target machine
671only).
672ETEXI
673
674#ifdef TARGET_I386
675DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
676    "-no-hpet        disable HPET\n")
677#endif
678STEXI
679@item -no-hpet
680Disable HPET support.
681ETEXI
682
683#ifdef TARGET_I386
684DEF("no-virtio-balloon", 0, QEMU_OPTION_no_virtio_balloon,
685    "-no-virtio-balloon disable virtio balloon device\n")
686#endif
687STEXI
688@item -no-virtio-balloon
689Disable virtio-balloon device.
690ETEXI
691
692#ifdef TARGET_I386
693DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
694    "-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"
695    "                ACPI table description\n")
696#endif
697STEXI
698@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}]...]
699Add ACPI table with specified header fields and context from specified files.
700ETEXI
701
702#ifdef TARGET_I386
703DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
704    "-smbios file=binary\n"
705    "                Load SMBIOS entry from binary file\n"
706    "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%%d.%%d]\n"
707    "                Specify SMBIOS type 0 fields\n"
708    "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n"
709    "              [,uuid=uuid][,sku=str][,family=str]\n"
710    "                Specify SMBIOS type 1 fields\n")
711#endif
712STEXI
713@item -smbios file=@var{binary}
714Load SMBIOS entry from binary file.
715
716@item -smbios type=0[,vendor=@var{str}][,version=@var{str}][,date=@var{str}][,release=@var{%d.%d}]
717Specify SMBIOS type 0 fields
718
719@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}]
720Specify SMBIOS type 1 fields
721ETEXI
722
723#ifdef TARGET_I386
724DEFHEADING()
725#endif
726STEXI
727@end table
728ETEXI
729
730DEFHEADING(Network options:)
731STEXI
732@table @option
733ETEXI
734
735DEF("net", HAS_ARG, QEMU_OPTION_net,
736    "-net nic[,vlan=n][,macaddr=addr][,model=type][,name=str]\n"
737    "                create a new Network Interface Card and connect it to VLAN 'n'\n"
738#ifdef CONFIG_SLIRP
739    "-net user[,vlan=n][,name=str][,hostname=host]\n"
740    "                connect the user mode network stack to VLAN 'n' and send\n"
741    "                hostname 'host' to DHCP clients\n"
742#endif
743#ifdef _WIN32
744    "-net tap[,vlan=n][,name=str],ifname=name\n"
745    "                connect the host TAP network interface to VLAN 'n'\n"
746#else
747    "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n"
748    "                connect the host TAP network interface to VLAN 'n' and use the\n"
749    "                network scripts 'file' (default=%s)\n"
750    "                and 'dfile' (default=%s);\n"
751    "                use '[down]script=no' to disable script execution;\n"
752    "                use 'fd=h' to connect to an already opened TAP interface\n"
753#endif
754    "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
755    "                connect the vlan 'n' to another VLAN using a socket connection\n"
756    "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n"
757    "                connect the vlan 'n' to multicast maddr and port\n"
758#ifdef CONFIG_VDE
759    "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
760    "                connect the vlan 'n' to port 'n' of a vde switch running\n"
761    "                on host and listening for incoming connections on 'socketpath'.\n"
762    "                Use group 'groupname' and mode 'octalmode' to change default\n"
763    "                ownership and permissions for communication port.\n"
764#endif
765    "-net dump[,vlan=n][,file=f][,len=n]\n"
766    "                dump traffic on vlan 'n' to file 'f' (max n bytes per packet)\n"
767    "-net none       use it alone to have zero network devices; if no -net option\n"
768    "                is provided, the default is '-net nic -net user'\n")
769STEXI
770@item -net nic[,vlan=@var{n}][,macaddr=@var{addr}][,model=@var{type}][,name=@var{name}]
771Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
772= 0 is the default). The NIC is an ne2k_pci by default on the PC
773target. Optionally, the MAC address can be changed to @var{addr}
774and a @var{name} can be assigned for use in monitor commands. If no
775@option{-net} option is specified, a single NIC is created.
776Qemu can emulate several different models of network card.
777Valid values for @var{type} are
778@code{i82551}, @code{i82557b}, @code{i82559er},
779@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
780@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.
781Not all devices are supported on all targets.  Use -net nic,model=?
782for a list of available devices for your target.
783
784@item -net user[,vlan=@var{n}][,hostname=@var{name}][,name=@var{name}]
785Use the user mode network stack which requires no administrator
786privilege to run.  @option{hostname=name} can be used to specify the client
787hostname reported by the builtin DHCP server.
788
789@item -net channel,@var{port}:@var{dev}
790Forward @option{user} TCP connection to port @var{port} to character device @var{dev}
791
792@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}]
793Connect the host TAP network interface @var{name} to VLAN @var{n}, use
794the network script @var{file} to configure it and the network script
795@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
796automatically provides one. @option{fd}=@var{h} can be used to specify
797the handle of an already opened host TAP interface. The default network
798configure script is @file{/etc/qemu-ifup} and the default network
799deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}
800or @option{downscript=no} to disable script execution. Example:
801
802@example
803qemu linux.img -net nic -net tap
804@end example
805
806More complicated example (two NICs, each one connected to a TAP device)
807@example
808qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
809               -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
810@end example
811
812@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}]
813
814Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
815machine using a TCP socket connection. If @option{listen} is
816specified, QEMU waits for incoming connections on @var{port}
817(@var{host} is optional). @option{connect} is used to connect to
818another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
819specifies an already opened TCP socket.
820
821Example:
822@example
823# launch a first QEMU instance
824qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
825               -net socket,listen=:1234
826# connect the VLAN 0 of this instance to the VLAN 0
827# of the first instance
828qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
829               -net socket,connect=127.0.0.1:1234
830@end example
831
832@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,mcast=@var{maddr}:@var{port}]
833
834Create a VLAN @var{n} shared with another QEMU virtual
835machines using a UDP multicast socket, effectively making a bus for
836every QEMU with same multicast address @var{maddr} and @var{port}.
837NOTES:
838@enumerate
839@item
840Several QEMU can be running on different hosts and share same bus (assuming
841correct multicast setup for these hosts).
842@item
843mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
844@url{http://user-mode-linux.sf.net}.
845@item
846Use @option{fd=h} to specify an already opened UDP multicast socket.
847@end enumerate
848
849Example:
850@example
851# launch one QEMU instance
852qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
853               -net socket,mcast=230.0.0.1:1234
854# launch another QEMU instance on same "bus"
855qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
856               -net socket,mcast=230.0.0.1:1234
857# launch yet another QEMU instance on same "bus"
858qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
859               -net socket,mcast=230.0.0.1:1234
860@end example
861
862Example (User Mode Linux compat.):
863@example
864# launch QEMU instance (note mcast address selected
865# is UML's default)
866qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
867               -net socket,mcast=239.192.168.1:1102
868# launch UML
869/path/to/linux ubd0=/path/to/root_fs eth0=mcast
870@end example
871
872@item -net vde[,vlan=@var{n}][,name=@var{name}][,sock=@var{socketpath}][,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]
873Connect VLAN @var{n} to PORT @var{n} of a vde switch running on host and
874listening for incoming connections on @var{socketpath}. Use GROUP @var{groupname}
875and MODE @var{octalmode} to change default ownership and permissions for
876communication port. This option is available only if QEMU has been compiled
877with vde support enabled.
878
879Example:
880@example
881# launch vde switch
882vde_switch -F -sock /tmp/myswitch
883# launch QEMU instance
884qemu linux.img -net nic -net vde,sock=/tmp/myswitch
885@end example
886
887@item -net dump[,vlan=@var{n}][,file=@var{file}][,len=@var{len}]
888Dump network traffic on VLAN @var{n} to file @var{file} (@file{qemu-vlan0.pcap} by default).
889At most @var{len} bytes (64k by default) per packet are stored. The file format is
890libpcap, so it can be analyzed with tools such as tcpdump or Wireshark.
891
892@item -net none
893Indicate that no network devices should be configured. It is used to
894override the default configuration (@option{-net nic -net user}) which
895is activated if no @option{-net} options are provided.
896ETEXI
897
898#ifdef CONFIG_SLIRP
899DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, \
900    "-tftp dir       allow tftp access to files in dir [-net user]\n")
901#endif
902STEXI
903@item -tftp @var{dir}
904When using the user mode network stack, activate a built-in TFTP
905server. The files in @var{dir} will be exposed as the root of a TFTP server.
906The TFTP client on the guest must be configured in binary mode (use the command
907@code{bin} of the Unix TFTP client). The host IP address on the guest is as
908usual 10.0.2.2.
909ETEXI
910
911#ifdef CONFIG_SLIRP
912DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, \
913    "-bootp file     advertise file in BOOTP replies\n")
914#endif
915STEXI
916@item -bootp @var{file}
917When using the user mode network stack, broadcast @var{file} as the BOOTP
918filename.  In conjunction with @option{-tftp}, this can be used to network boot
919a guest from a local directory.
920
921Example (using pxelinux):
922@example
923qemu -hda linux.img -boot n -tftp /path/to/tftp/files -bootp /pxelinux.0
924@end example
925ETEXI
926
927#ifndef _WIN32
928DEF("smb", HAS_ARG, QEMU_OPTION_smb, \
929           "-smb dir        allow SMB access to files in 'dir' [-net user]\n")
930#endif
931STEXI
932@item -smb @var{dir}
933When using the user mode network stack, activate a built-in SMB
934server so that Windows OSes can access to the host files in @file{@var{dir}}
935transparently.
936
937In the guest Windows OS, the line:
938@example
93910.0.2.4 smbserver
940@end example
941must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
942or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
943
944Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
945
946Note that a SAMBA server must be installed on the host OS in
947@file{/usr/sbin/smbd}. QEMU was tested successfully with smbd version
9482.2.7a from the Red Hat 9 and version 3.0.10-1.fc3 from Fedora Core 3.
949ETEXI
950
951#ifdef CONFIG_SLIRP
952DEF("redir", HAS_ARG, QEMU_OPTION_redir, \
953    "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n" \
954    "                redirect TCP or UDP connections from host to guest [-net user]\n")
955#endif
956STEXI
957@item -redir [tcp|udp]:@var{host-port}:[@var{guest-host}]:@var{guest-port}
958
959When using the user mode network stack, redirect incoming TCP or UDP
960connections to the host port @var{host-port} to the guest
961@var{guest-host} on guest port @var{guest-port}. If @var{guest-host}
962is not specified, its value is 10.0.2.15 (default address given by the
963built-in DHCP server). If no connection type is specified, TCP is used.
964
965For example, to redirect host X11 connection from screen 1 to guest
966screen 0, use the following:
967
968@example
969# on the host
970qemu -redir tcp:6001::6000 [...]
971# this host xterm should open in the guest X11 server
972xterm -display :1
973@end example
974
975To redirect telnet connections from host port 5555 to telnet port on
976the guest, use the following:
977
978@example
979# on the host
980qemu -redir tcp:5555::23 [...]
981telnet localhost 5555
982@end example
983
984Then when you use on the host @code{telnet localhost 5555}, you
985connect to the guest telnet server.
986
987@end table
988ETEXI
989
990DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
991    "\n" \
992    "-bt hci,null    dumb bluetooth HCI - doesn't respond to commands\n" \
993    "-bt hci,host[:id]\n" \
994    "                use host's HCI with the given name\n" \
995    "-bt hci[,vlan=n]\n" \
996    "                emulate a standard HCI in virtual scatternet 'n'\n" \
997    "-bt vhci[,vlan=n]\n" \
998    "                add host computer to virtual scatternet 'n' using VHCI\n" \
999    "-bt device:dev[,vlan=n]\n" \
1000    "                emulate a bluetooth device 'dev' in scatternet 'n'\n")
1001STEXI
1002Bluetooth(R) options:
1003@table @option
1004
1005@item -bt hci[...]
1006Defines the function of the corresponding Bluetooth HCI.  -bt options
1007are matched with the HCIs present in the chosen machine type.  For
1008example when emulating a machine with only one HCI built into it, only
1009the first @code{-bt hci[...]} option is valid and defines the HCI's
1010logic.  The Transport Layer is decided by the machine type.  Currently
1011the machines @code{n800} and @code{n810} have one HCI and all other
1012machines have none.
1013
1014@anchor{bt-hcis}
1015The following three types are recognized:
1016
1017@table @code
1018@item -bt hci,null
1019(default) The corresponding Bluetooth HCI assumes no internal logic
1020and will not respond to any HCI commands or emit events.
1021
1022@item -bt hci,host[:@var{id}]
1023(@code{bluez} only) The corresponding HCI passes commands / events
1024to / from the physical HCI identified by the name @var{id} (default:
1025@code{hci0}) on the computer running QEMU.  Only available on @code{bluez}
1026capable systems like Linux.
1027
1028@item -bt hci[,vlan=@var{n}]
1029Add a virtual, standard HCI that will participate in the Bluetooth
1030scatternet @var{n} (default @code{0}).  Similarly to @option{-net}
1031VLANs, devices inside a bluetooth network @var{n} can only communicate
1032with other devices in the same network (scatternet).
1033@end table
1034
1035@item -bt vhci[,vlan=@var{n}]
1036(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
1037to the host bluetooth stack instead of to the emulated target.  This
1038allows the host and target machines to participate in a common scatternet
1039and communicate.  Requires the Linux @code{vhci} driver installed.  Can
1040be used as following:
1041
1042@example
1043qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
1044@end example
1045
1046@item -bt device:@var{dev}[,vlan=@var{n}]
1047Emulate a bluetooth device @var{dev} and place it in network @var{n}
1048(default @code{0}).  QEMU can only emulate one type of bluetooth devices
1049currently:
1050
1051@table @code
1052@item keyboard
1053Virtual wireless keyboard implementing the HIDP bluetooth profile.
1054@end table
1055@end table
1056ETEXI
1057
1058DEFHEADING()
1059
1060DEFHEADING(Linux boot specific:)
1061STEXI
1062When using these options, you can use a given
1063Linux kernel without installing it in the disk image. It can be useful
1064for easier testing of various kernels.
1065
1066@table @option
1067ETEXI
1068
1069DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
1070    "-kernel bzImage use 'bzImage' as kernel image\n")
1071STEXI
1072@item -kernel @var{bzImage}
1073Use @var{bzImage} as kernel image.
1074ETEXI
1075
1076DEF("append", HAS_ARG, QEMU_OPTION_append, \
1077    "-append cmdline use 'cmdline' as kernel command line\n")
1078STEXI
1079@item -append @var{cmdline}
1080Use @var{cmdline} as kernel command line
1081ETEXI
1082
1083DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
1084           "-initrd file    use 'file' as initial ram disk\n")
1085STEXI
1086@item -initrd @var{file}
1087Use @var{file} as initial ram disk.
1088ETEXI
1089
1090STEXI
1091@end table
1092ETEXI
1093
1094DEFHEADING()
1095
1096DEFHEADING(Debug/Expert options:)
1097
1098STEXI
1099@table @option
1100ETEXI
1101
1102DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
1103    "-serial dev     redirect the serial port to char device 'dev'\n")
1104STEXI
1105@item -serial @var{dev}
1106Redirect the virtual serial port to host character device
1107@var{dev}. The default device is @code{vc} in graphical mode and
1108@code{stdio} in non graphical mode.
1109
1110This option can be used several times to simulate up to 4 serial
1111ports.
1112
1113Use @code{-serial none} to disable all serial ports.
1114
1115Available character devices are:
1116@table @code
1117@item vc[:WxH]
1118Virtual console. Optionally, a width and height can be given in pixel with
1119@example
1120vc:800x600
1121@end example
1122It is also possible to specify width or height in characters:
1123@example
1124vc:80Cx24C
1125@end example
1126@item pty
1127[Linux only] Pseudo TTY (a new PTY is automatically allocated)
1128@item none
1129No device is allocated.
1130@item null
1131void device
1132@item /dev/XXX
1133[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
1134parameters are set according to the emulated ones.
1135@item /dev/parport@var{N}
1136[Linux only, parallel port only] Use host parallel port
1137@var{N}. Currently SPP and EPP parallel port features can be used.
1138@item file:@var{filename}
1139Write output to @var{filename}. No character can be read.
1140@item stdio
1141[Unix only] standard input/output
1142@item pipe:@var{filename}
1143name pipe @var{filename}
1144@item COM@var{n}
1145[Windows only] Use host serial port @var{n}
1146@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
1147This implements UDP Net Console.
1148When @var{remote_host} or @var{src_ip} are not specified
1149they default to @code{0.0.0.0}.
1150When not using a specified @var{src_port} a random port is automatically chosen.
1151@item msmouse
1152Three button serial mouse. Configure the guest to use Microsoft protocol.
1153
1154If you just want a simple readonly console you can use @code{netcat} or
1155@code{nc}, by starting qemu with: @code{-serial udp::4555} and nc as:
1156@code{nc -u -l -p 4555}. Any time qemu writes something to that port it
1157will appear in the netconsole session.
1158
1159If you plan to send characters back via netconsole or you want to stop
1160and start qemu a lot of times, you should have qemu use the same
1161source port each time by using something like @code{-serial
1162udp::4555@@:4556} to qemu. Another approach is to use a patched
1163version of netcat which can listen to a TCP port and send and receive
1164characters via udp.  If you have a patched version of netcat which
1165activates telnet remote echo and single char transfer, then you can
1166use the following options to step up a netcat redirector to allow
1167telnet on port 5555 to access the qemu port.
1168@table @code
1169@item Qemu Options:
1170-serial udp::4555@@:4556
1171@item netcat options:
1172-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
1173@item telnet options:
1174localhost 5555
1175@end table
1176
1177@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
1178The TCP Net Console has two modes of operation.  It can send the serial
1179I/O to a location or wait for a connection from a location.  By default
1180the TCP Net Console is sent to @var{host} at the @var{port}.  If you use
1181the @var{server} option QEMU will wait for a client socket application
1182to connect to the port before continuing, unless the @code{nowait}
1183option was specified.  The @code{nodelay} option disables the Nagle buffering
1184algorithm.  If @var{host} is omitted, 0.0.0.0 is assumed. Only
1185one TCP connection at a time is accepted. You can use @code{telnet} to
1186connect to the corresponding character device.
1187@table @code
1188@item Example to send tcp console to 192.168.0.2 port 4444
1189-serial tcp:192.168.0.2:4444
1190@item Example to listen and wait on port 4444 for connection
1191-serial tcp::4444,server
1192@item Example to not wait and listen on ip 192.168.0.100 port 4444
1193-serial tcp:192.168.0.100:4444,server,nowait
1194@end table
1195
1196@item telnet:@var{host}:@var{port}[,server][,nowait][,nodelay]
1197The telnet protocol is used instead of raw tcp sockets.  The options
1198work the same as if you had specified @code{-serial tcp}.  The
1199difference is that the port acts like a telnet server or client using
1200telnet option negotiation.  This will also allow you to send the
1201MAGIC_SYSRQ sequence if you use a telnet that supports sending the break
1202sequence.  Typically in unix telnet you do it with Control-] and then
1203type "send break" followed by pressing the enter key.
1204
1205@item unix:@var{path}[,server][,nowait]
1206A unix domain socket is used instead of a tcp socket.  The option works the
1207same as if you had specified @code{-serial tcp} except the unix domain socket
1208@var{path} is used for connections.
1209
1210@item mon:@var{dev_string}
1211This is a special option to allow the monitor to be multiplexed onto
1212another serial port.  The monitor is accessed with key sequence of
1213@key{Control-a} and then pressing @key{c}. See monitor access
1214@ref{pcsys_keys} in the -nographic section for more keys.
1215@var{dev_string} should be any one of the serial devices specified
1216above.  An example to multiplex the monitor onto a telnet server
1217listening on port 4444 would be:
1218@table @code
1219@item -serial mon:telnet::4444,server,nowait
1220@end table
1221
1222@item braille
1223Braille device.  This will use BrlAPI to display the braille output on a real
1224or fake device.
1225
1226@end table
1227ETEXI
1228
1229DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
1230    "-parallel dev   redirect the parallel port to char device 'dev'\n")
1231STEXI
1232@item -parallel @var{dev}
1233Redirect the virtual parallel port to host device @var{dev} (same
1234devices as the serial port). On Linux hosts, @file{/dev/parportN} can
1235be used to use hardware devices connected on the corresponding host
1236parallel port.
1237
1238This option can be used several times to simulate up to 3 parallel
1239ports.
1240
1241Use @code{-parallel none} to disable all parallel ports.
1242ETEXI
1243
1244DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
1245    "-monitor dev    redirect the monitor to char device 'dev'\n")
1246STEXI
1247@item -monitor @var{dev}
1248Redirect the monitor to host device @var{dev} (same devices as the
1249serial port).
1250The default device is @code{vc} in graphical mode and @code{stdio} in
1251non graphical mode.
1252ETEXI
1253
1254DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
1255    "-pidfile file   write PID to 'file'\n")
1256STEXI
1257@item -pidfile @var{file}
1258Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
1259from a script.
1260ETEXI
1261
1262DEF("singlestep", 0, QEMU_OPTION_singlestep, \
1263    "-singlestep   always run in singlestep mode\n")
1264STEXI
1265@item -singlestep
1266Run the emulation in single step mode.
1267ETEXI
1268
1269DEF("S", 0, QEMU_OPTION_S, \
1270    "-S              freeze CPU at startup (use 'c' to start execution)\n")
1271STEXI
1272@item -S
1273Do not start CPU at startup (you must type 'c' in the monitor).
1274ETEXI
1275
1276DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
1277    "-gdb dev        wait for gdb connection on 'dev'\n")
1278STEXI
1279@item -gdb @var{dev}
1280Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
1281connections will likely be TCP-based, but also UDP, pseudo TTY, or even
1282stdio are reasonable use case. The latter is allowing to start qemu from
1283within gdb and establish the connection via a pipe:
1284@example
1285(gdb) target remote | exec qemu -gdb stdio ...
1286@end example
1287ETEXI
1288
1289DEF("s", 0, QEMU_OPTION_s, \
1290    "-s              shorthand for -gdb tcp::%s\n")
1291STEXI
1292@item -s
1293Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
1294(@pxref{gdb_usage}).
1295ETEXI
1296
1297DEF("d", HAS_ARG, QEMU_OPTION_d, \
1298    "-d item1,...    output log to %s (use -d ? for a list of log items)\n")
1299STEXI
1300@item -d
1301Output log in /tmp/qemu.log
1302ETEXI
1303
1304DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
1305    "-hdachs c,h,s[,t]\n" \
1306    "                force hard disk 0 physical geometry and the optional BIOS\n" \
1307    "                translation (t=none or lba) (usually qemu can guess them)\n")
1308STEXI
1309@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
1310Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
1311@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
1312translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
1313all those parameters. This option is useful for old MS-DOS disk
1314images.
1315ETEXI
1316
1317DEF("L", HAS_ARG, QEMU_OPTION_L, \
1318    "-L path         set the directory for the BIOS, VGA BIOS and keymaps\n")
1319STEXI
1320@item -L  @var{path}
1321Set the directory for the BIOS, VGA BIOS and keymaps.
1322ETEXI
1323
1324DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
1325    "-bios file      set the filename for the BIOS\n")
1326STEXI
1327@item -bios @var{file}
1328Set the filename for the BIOS.
1329ETEXI
1330
1331#ifdef CONFIG_KVM
1332DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
1333    "-enable-kvm     enable KVM full virtualization support\n")
1334DEF("disable-kvm", 0, QEMU_OPTION_disable_kvm, \
1335    "-disable-kvm    disable KVM full virtualization support\n")
1336#endif
1337STEXI
1338@item -enable-kvm
1339Enable KVM full virtualization support. This option is only available
1340if KVM support is enabled when compiling.
1341ETEXI
1342
1343#ifdef CONFIG_HAX
1344DEF("enable-hax", 0, QEMU_OPTION_enable_hax, \
1345    "-enable-hax    Enable HAX full virtualization support\n")
1346DEF("disable-hax", 0, QEMU_OPTION_disable_hax, \
1347    "-disable-hax   Disable HAX full virtualization support\n")
1348#endif
1349STEXI
1350@item -enable-hax
1351Enable HAX (Hardware-based Acceleration eXecution) support. This option is
1352only supported on Max OS X and Windows platforms, if you have an Intel CPU
1353which support the VT-x extension. It does not conflict with KVM.
1354ETEXI
1355
1356STEXI
1357@item -disable-hax
1358Disable HAX (Hardware-based Acceleration eXecution) support. This
1359option will disable the default action. HAX is supported only on Mac OS X
1360and Windows platforms (if VT is present), and it does not conflict
1361with KVM.
1362ETEXI
1363
1364#ifdef CONFIG_XEN
1365DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
1366    "-xen-domid id   specify xen guest domain id\n")
1367DEF("xen-create", 0, QEMU_OPTION_xen_create,
1368    "-xen-create     create domain using xen hypercalls, bypassing xend\n"
1369    "                warning: should not be used when xend is in use\n")
1370DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
1371    "-xen-attach     attach to existing xen domain\n"
1372    "                xend will use this when starting qemu\n")
1373#endif
1374
1375DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
1376    "-no-reboot      exit instead of rebooting\n")
1377STEXI
1378@item -no-reboot
1379Exit instead of rebooting.
1380ETEXI
1381
1382DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
1383    "-no-shutdown    stop before shutdown\n")
1384STEXI
1385@item -no-shutdown
1386Don't exit QEMU on guest shutdown, but instead only stop the emulation.
1387This allows for instance switching to monitor to commit changes to the
1388disk image.
1389ETEXI
1390
1391DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
1392    "-loadvm [tag|id]\n" \
1393    "                start right away with a saved state (loadvm in monitor)\n")
1394STEXI
1395@item -loadvm @var{file}
1396Start right away with a saved state (@code{loadvm} in monitor)
1397ETEXI
1398
1399#ifndef _WIN32
1400DEF("daemonize", 0, QEMU_OPTION_daemonize, \
1401    "-daemonize      daemonize QEMU after initializing\n")
1402#endif
1403STEXI
1404@item -daemonize
1405Daemonize the QEMU process after initialization.  QEMU will not detach from
1406standard IO until it is ready to receive connections on any of its devices.
1407This option is a useful way for external programs to launch QEMU without having
1408to cope with initialization race conditions.
1409ETEXI
1410
1411DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
1412    "-option-rom rom load a file, rom, into the option ROM space\n")
1413STEXI
1414@item -option-rom @var{file}
1415Load the contents of @var{file} as an option ROM.
1416This option is useful to load things like EtherBoot.
1417ETEXI
1418
1419DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
1420    "-clock          force the use of the given methods for timer alarm.\n" \
1421    "                To see what timers are available use -clock ?\n")
1422STEXI
1423@item -clock @var{method}
1424Force the use of the given methods for timer alarm. To see what timers
1425are available use -clock ?.
1426ETEXI
1427
1428DEF("localtime", 0, QEMU_OPTION_localtime, \
1429    "-localtime      set the real time clock to local time [default=utc]\n")
1430STEXI
1431@item -localtime
1432Set the real time clock to local time (the default is to UTC
1433time). This option is needed to have correct date in MS-DOS or
1434Windows.
1435ETEXI
1436
1437DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, \
1438    "-startdate      select initial date of the clock\n")
1439STEXI
1440
1441@item -startdate @var{date}
1442Set the initial date of the real time clock. Valid formats for
1443@var{date} are: @code{now} or @code{2006-06-17T16:01:21} or
1444@code{2006-06-17}. The default value is @code{now}.
1445ETEXI
1446
1447/* Start user mode network stack restrictions */
1448DEF("drop-udp", 0, QEMU_OPTION_drop_udp, \
1449    "-drop-udp       starts filtering all UDP packets\n")
1450STEXI
1451
1452@item -drop-udp
1453Enable dropping of all UDP packets.
1454ETEXI
1455
1456
1457DEF("drop-tcp", 0, QEMU_OPTION_drop_tcp, \
1458    "-drop-tcp       starts filtering all TCP packets\n")
1459STEXI
1460
1461@item -drop-tcp
1462Enable dropping of all TCP packets.
1463ETEXI
1464
1465
1466DEF("allow-tcp", HAS_ARG, QEMU_OPTION_allow_tcp, \
1467    "-allow-tcp      Only allows TCP packets for host:port\n")
1468STEXI
1469
1470@item -allow-tcp @var{host}:@var{port}
1471Allows communication with the host named @code{host} and with
1472the port @code{port}.
1473ETEXI
1474
1475
1476DEF("drop-log", 0, QEMU_OPTION_drop_log, \
1477    "-drop-log       Creates a log for dropped connections\n")
1478STEXI
1479
1480@item -drop-log @var{file}
1481Creates a log for dropped connections in the file @code{file}.
1482ETEXI
1483
1484/* Additional network restriction options */
1485
1486DEF("max-dns-conns", HAS_ARG, QEMU_OPTION_max_dns_conns, \
1487    "-max-dns-conns limit \n"
1488    "                Limits the maximum DNS connections\n")
1489STEXI
1490@item -max-dns-conns @var{limit}
1491Limits the maximum DNS connections to @var{limit}.
1492ETEXI
1493
1494DEF("allow-udp", HAS_ARG, QEMU_OPTION_allow_udp, \
1495    "-allow-udp host:port \n"
1496    "                Allows udp connections to go through to host:port\n")
1497STEXI
1498@item -allow-udp @var{host}:@var{port}
1499Allows udp connections to go through to @var{host}:@var{port}.
1500ETEXI
1501
1502DEF("dns-log", HAS_ARG, QEMU_OPTION_dns_log, \
1503    "-dns-log file   Creates a log of DNS lookups\n")
1504STEXI
1505@item -dns-log @var{file}
1506Creates a log of DNS lookups as @var{file}.
1507ETEXI
1508
1509
1510DEF("net-forward", HAS_ARG, QEMU_OPTION_net_forward, \
1511"-net-forward dst_net:dst_mask:dst_port:redirect_ip:redirect_port:\n"
1512"                Forwards guest network traffic sent to dst_net(dst_mask):dst_port\n"
1513"                to redirect_ip:redirect_port\n")
1514
1515STEXI
1516@item -net-forward @var{settings}
1517Forwards network traffic using the settings @code{settings}.
1518ETEXI
1519
1520
1521DEF("net-forward-tcp2sink", HAS_ARG, QEMU_OPTION_net_forward_tcp2sink, \
1522"-net-forward-tcp2sink sink_ip:sink_port\n"
1523"                Forwards all dropped and non-forwarded guest network traffic\n"
1524"                to specified ip:port. \n")
1525
1526STEXI
1527@item -net-forward-tcp2sink @var{settings}
1528Forwards all dropped and non-forwarded network traffic to sink ip:port.
1529ETEXI
1530
1531
1532
1533/* End User mode network stack restrictions */
1534
1535
1536DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
1537    "-icount [N|auto]\n" \
1538    "                enable virtual instruction counter with 2^N clock ticks per\n" \
1539    "                instruction\n")
1540STEXI
1541@item -icount [N|auto]
1542Enable virtual instruction counter.  The virtual cpu will execute one
1543instruction every 2^N ns of virtual time.  If @code{auto} is specified
1544then the virtual cpu speed will be automatically adjusted to keep virtual
1545time within a few seconds of real time.
1546
1547Note that while this option can give deterministic behavior, it does not
1548provide cycle accurate emulation.  Modern CPUs contain superscalar out of
1549order cores with complex cache hierarchies.  The number of instructions
1550executed often has little or no correlation with actual performance.
1551ETEXI
1552
1553DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
1554    "-watchdog i6300esb|ib700\n" \
1555    "                enable virtual hardware watchdog [default=none]\n")
1556STEXI
1557@item -watchdog @var{model}
1558Create a virtual hardware watchdog device.  Once enabled (by a guest
1559action), the watchdog must be periodically polled by an agent inside
1560the guest or else the guest will be restarted.
1561
1562The @var{model} is the model of hardware watchdog to emulate.  Choices
1563for model are: @code{ib700} (iBASE 700) which is a very simple ISA
1564watchdog with a single timer, or @code{i6300esb} (Intel 6300ESB I/O
1565controller hub) which is a much more featureful PCI-based dual-timer
1566watchdog.  Choose a model for which your guest has drivers.
1567
1568Use @code{-watchdog ?} to list available hardware models.  Only one
1569watchdog can be enabled for a guest.
1570ETEXI
1571
1572DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
1573    "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
1574    "                action when watchdog fires [default=reset]\n")
1575STEXI
1576@item -watchdog-action @var{action}
1577
1578The @var{action} controls what QEMU will do when the watchdog timer
1579expires.
1580The default is
1581@code{reset} (forcefully reset the guest).
1582Other possible actions are:
1583@code{shutdown} (attempt to gracefully shutdown the guest),
1584@code{poweroff} (forcefully poweroff the guest),
1585@code{pause} (pause the guest),
1586@code{debug} (print a debug message and continue), or
1587@code{none} (do nothing).
1588
1589Note that the @code{shutdown} action requires that the guest responds
1590to ACPI signals, which it may not be able to do in the sort of
1591situations where the watchdog would have expired, and thus
1592@code{-watchdog-action shutdown} is not recommended for production use.
1593
1594Examples:
1595
1596@table @code
1597@item -watchdog i6300esb -watchdog-action pause
1598@item -watchdog ib700
1599@end table
1600ETEXI
1601
1602DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
1603    "-echr chr       set terminal escape character instead of ctrl-a\n")
1604STEXI
1605
1606@item -echr numeric_ascii_value
1607Change the escape character used for switching to the monitor when using
1608monitor and serial sharing.  The default is @code{0x01} when using the
1609@code{-nographic} option.  @code{0x01} is equal to pressing
1610@code{Control-a}.  You can select a different character from the ascii
1611control keys where 1 through 26 map to Control-a through Control-z.  For
1612instance you could use the either of the following to change the escape
1613character to Control-t.
1614@table @code
1615@item -echr 0x14
1616@item -echr 20
1617@end table
1618ETEXI
1619
1620DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
1621    "-virtioconsole c\n" \
1622    "                set virtio console\n")
1623STEXI
1624@item -virtioconsole @var{c}
1625Set virtio console.
1626ETEXI
1627
1628DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
1629    "-show-cursor    show cursor\n")
1630STEXI
1631ETEXI
1632
1633DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
1634    "-tb-size n      set TB size\n")
1635STEXI
1636ETEXI
1637
1638DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
1639    "-incoming p     prepare for incoming migration, listen on port p\n")
1640STEXI
1641ETEXI
1642
1643#ifndef _WIN32
1644DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
1645    "-chroot dir     Chroot to dir just before starting the VM.\n")
1646#endif
1647STEXI
1648@item -chroot dir
1649Immediately before starting guest execution, chroot to the specified
1650directory.  Especially useful in combination with -runas.
1651ETEXI
1652
1653#ifndef _WIN32
1654DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
1655    "-runas user     Change to user id user just before starting the VM.\n")
1656#endif
1657STEXI
1658@item -runas user
1659Immediately before starting guest execution, drop root privileges, switching
1660to the specified user.
1661ETEXI
1662
1663STEXI
1664@end table
1665ETEXI
1666
1667#if defined(TARGET_SPARC) || defined(TARGET_PPC)
1668DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
1669    "-prom-env variable=value\n"
1670    "                set OpenBIOS nvram variables\n")
1671#endif
1672#if defined(TARGET_ARM) || defined(TARGET_M68K)
1673DEF("semihosting", 0, QEMU_OPTION_semihosting,
1674    "-semihosting    semihosting mode\n")
1675#endif
1676#if defined(TARGET_ARM)
1677DEF("old-param", 0, QEMU_OPTION_old_param,
1678    "-old-param      old param mode\n")
1679#endif
1680
1681DEF("nand", HAS_ARG, QEMU_OPTION_nand, \
1682    "-nand <params>  enable NAND Flash partition\n")
1683
1684#ifdef CONFIG_ANDROID
1685
1686DEF("savevm-on-exit", HAS_ARG, QEMU_OPTION_savevm_on_exit, \
1687    "savevm-on-exit [tag|id]\n" \
1688    "                save state automatically on exit\n")
1689STEXI
1690@item -savevm-on-exit @var{file}
1691Save state automatically on exit (as @code{savevm} in monitor)
1692ETEXI
1693
1694DEF("mic", HAS_ARG, QEMU_OPTION_mic, \
1695    "-mic <file>     read audio input from wav file\n")
1696
1697DEF("android-ports", HAS_ARG, QEMU_OPTION_android_ports, \
1698    "-android-ports <consoleport>,<adbport>"
1699    " TCP ports used for the emulator instance and adb bridge\n")
1700
1701DEF("android-port", HAS_ARG, QEMU_OPTION_android_port, \
1702    "-android-port <consoleport>"
1703    " TCP port that will be used for the emulator instance\n")
1704
1705DEF("android-report-console", HAS_ARG, QEMU_OPTION_android_report_console, \
1706    "-android-report-console <socket>"
1707    " report console port to remote socket\n")
1708
1709DEF("http-proxy", HAS_ARG, QEMU_OPTION_http_proxy, \
1710    "-http-proxy <proxy>"
1711    " make TCP connections through a HTTP/HTTPS proxy\n")
1712
1713DEF("charmap", HAS_ARG, QEMU_OPTION_charmap, \
1714    "-charmap <file>"
1715    " use specific key character map\n")
1716
1717DEF("android-hw", HAS_ARG, QEMU_OPTION_android_hw, \
1718    "-android-hw <file> read hardware initialization from ini file\n")
1719
1720DEF("android-memcheck", HAS_ARG, QEMU_OPTION_android_memcheck, \
1721    "-android-memcheck <options> enable memory access checking on the emulated system\n")
1722
1723DEF("dns-server", HAS_ARG, QEMU_OPTION_dns_server, \
1724    "-dns-server <servers> use this DNS server(s) in the emulated system\n")
1725
1726DEF("timezone", HAS_ARG, QEMU_OPTION_timezone, \
1727    "-timezone <timezone> use this timezone instead of the host's default\n")
1728
1729DEF("android-avdname", HAS_ARG, QEMU_OPTION_android_avdname, \
1730    "-android-avdname <avdname> names the virtual device\n")
1731
1732DEF("radio", HAS_ARG, QEMU_OPTION_radio, \
1733    "-radio <device> redirect radio modem interface to character device\n")
1734
1735DEF("gps", HAS_ARG, QEMU_OPTION_gps, \
1736    "-gps <device> redirect NMEA GPS to character device\n")
1737
1738DEF("audio", HAS_ARG, QEMU_OPTION_audio, \
1739    "-audio <backend> use specific audio backend\n")
1740
1741DEF("cpu-delay", HAS_ARG, QEMU_OPTION_cpu_delay, \
1742    "-cpu-delay <cpudelay> throttle CPU emulation\n")
1743
1744DEF("show-kernel", 0, QEMU_OPTION_show_kernel, \
1745    "-show-kernel display kernel messages\n")
1746
1747#ifdef CONFIG_NAND_LIMITS
1748DEF("nand-limits", HAS_ARG, QEMU_OPTION_nand_limits, \
1749    "-nand-limits <nlimits> enforce NAND/Flash read/write thresholds\n")
1750#endif  // CONFIG_NAND_LIMITS
1751
1752DEF("netspeed", HAS_ARG, QEMU_OPTION_netspeed, \
1753    "-netspeed <speed> maximum network download/upload speeds\n")
1754
1755DEF("netdelay", HAS_ARG, QEMU_OPTION_netdelay, \
1756    "-netdelay <delay> network latency emulation\n")
1757
1758DEF("netfast", 0, QEMU_OPTION_netfast, \
1759    "-netfast disable network shaping\n")
1760
1761DEF("tcpdump", HAS_ARG, QEMU_OPTION_tcpdump, \
1762    "-tcpdump <file> capture network packets to file\n")
1763
1764DEF("boot-property", HAS_ARG, QEMU_OPTION_boot_property, \
1765    "-boot-property <name>=<value> set system property on boot\n")
1766
1767DEF("lcd-density", HAS_ARG, QEMU_OPTION_lcd_density, \
1768    "-lcd-density <density> sets LCD density system property on boot\n")
1769
1770DEF("ui-port", HAS_ARG, QEMU_OPTION_ui_port, \
1771    "-ui-port <port> socket port to report initialization completion\n")
1772
1773DEF("ui-settings", HAS_ARG, QEMU_OPTION_ui_settings, \
1774    "-ui-settings <string> opaque string containing persitent UI settings\n")
1775
1776DEF("audio-test-out", 0, QEMU_OPTION_audio_test_out, \
1777   "-audio-test-out Test audio output\n")
1778
1779DEF("snapshot-no-time-update", 0, QEMU_OPTION_snapshot_no_time_update, \
1780    "-snapshot-no-time-update Disable time update when restoring snapshots\n")
1781
1782DEF("list-webcam", 0, QEMU_OPTION_list_webcam, \
1783    "-list-webcam List web cameras available for emulation\n")
1784
1785#endif /* ANDROID */
1786