blob: fdeda108844b704ed309797929e331e2e66db2ad [file] [log] [blame]
blueswir15824d652009-03-28 06:44:27 +00001HXCOMM 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
pbrook9bd7e6d2009-04-07 22:58:45 +000020DEF("version", 0, QEMU_OPTION_version,
21 "-version display version information and exit\n")
22STEXI
23@item -version
24Display version information and exit
25ETEXI
26
blueswir15824d652009-03-28 06:44:27 +000027DEF("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
aliguori268a3622009-04-21 22:30:27 +000050DEF("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
blueswir15824d652009-03-28 06:44:27 +000058DEF("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"
Markus Armbrusterc2cc47a2009-06-18 15:14:10 +020095 " [,addr=A]\n"
blueswir15824d652009-03-28 06:44:27 +000096 " use 'file' as a drive image\n")
97STEXI
98@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
99
100Define a new drive. Valid options are:
101
102@table @code
103@item file=@var{file}
104This option defines which disk image (@pxref{disk_images}) to use with
105this drive. If the filename contains comma, you must double it
106(for instance, "file=my,,file" to use file "my,file").
107@item if=@var{interface}
108This option defines on which type on interface the drive is connected.
109Available types are: ide, scsi, sd, mtd, floppy, pflash, virtio.
110@item bus=@var{bus},unit=@var{unit}
111These options define where is connected the drive by defining the bus number and
112the unit id.
113@item index=@var{index}
114This option defines where is connected the drive by using an index in the list
115of available connectors of a given interface type.
116@item media=@var{media}
117This option defines the type of the media: disk or cdrom.
118@item cyls=@var{c},heads=@var{h},secs=@var{s}[,trans=@var{t}]
119These options have the same definition as they have in @option{-hdachs}.
120@item snapshot=@var{snapshot}
121@var{snapshot} is "on" or "off" and allows to enable snapshot for given drive (see @option{-snapshot}).
122@item cache=@var{cache}
123@var{cache} is "none", "writeback", or "writethrough" and controls how the host cache is used to access block data.
124@item format=@var{format}
125Specify which disk @var{format} will be used rather than detecting
126the format. Can be used to specifiy format=raw to avoid interpreting
127an untrusted format header.
128@item serial=@var{serial}
129This option specifies the serial number to assign to the device.
Markus Armbrusterc2cc47a2009-06-18 15:14:10 +0200130@item addr=@var{addr}
131Specify the controller's PCI address (if=virtio only).
blueswir15824d652009-03-28 06:44:27 +0000132@end table
133
134By default, writethrough caching is used for all block device. This means that
135the host page cache will be used to read and write data but write notification
136will be sent to the guest only when the data has been reported as written by
137the storage subsystem.
138
139Writeback caching will report data writes as completed as soon as the data is
140present in the host page cache. This is safe as long as you trust your host.
141If your host crashes or loses power, then the guest may experience data
142corruption. When using the @option{-snapshot} option, writeback caching is
143used by default.
144
Aurelien Jarnoc304d312009-05-03 23:29:14 +0200145The host page cache can be avoided entirely with @option{cache=none}. This will
blueswir15824d652009-03-28 06:44:27 +0000146attempt to do disk IO directly to the guests memory. QEMU may still perform
147an internal copy of the data.
148
149Some block drivers perform badly with @option{cache=writethrough}, most notably,
150qcow2. If performance is more important than correctness,
151@option{cache=writeback} should be used with qcow2. By default, if no explicit
152caching is specified for a qcow2 disk image, @option{cache=writeback} will be
153used. For all other disk types, @option{cache=writethrough} is the default.
154
155Instead of @option{-cdrom} you can use:
156@example
157qemu -drive file=file,index=2,media=cdrom
158@end example
159
160Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
161use:
162@example
163qemu -drive file=file,index=0,media=disk
164qemu -drive file=file,index=1,media=disk
165qemu -drive file=file,index=2,media=disk
166qemu -drive file=file,index=3,media=disk
167@end example
168
169You can connect a CDROM to the slave of ide0:
170@example
171qemu -drive file=file,if=ide,index=1,media=cdrom
172@end example
173
174If you don't specify the "file=" argument, you define an empty drive:
175@example
176qemu -drive if=ide,index=1,media=cdrom
177@end example
178
179You can connect a SCSI disk with unit ID 6 on the bus #0:
180@example
181qemu -drive file=file,if=scsi,bus=0,unit=6
182@end example
183
184Instead of @option{-fda}, @option{-fdb}, you can use:
185@example
186qemu -drive file=file,index=0,if=floppy
187qemu -drive file=file,index=1,if=floppy
188@end example
189
190By default, @var{interface} is "ide" and @var{index} is automatically
191incremented:
192@example
193qemu -drive file=a -drive file=b"
194@end example
195is interpreted like:
196@example
197qemu -hda a -hdb b
198@end example
199ETEXI
200
201DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
202 "-mtdblock file use 'file' as on-board Flash memory image\n")
203STEXI
204
205@item -mtdblock file
206Use 'file' as on-board Flash memory image.
207ETEXI
208
209DEF("sd", HAS_ARG, QEMU_OPTION_sd,
210 "-sd file use 'file' as SecureDigital card image\n")
211STEXI
212@item -sd file
213Use 'file' as SecureDigital card image.
214ETEXI
215
216DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
217 "-pflash file use 'file' as a parallel flash image\n")
218STEXI
219@item -pflash file
220Use 'file' as a parallel flash image.
221ETEXI
222
223DEF("boot", HAS_ARG, QEMU_OPTION_boot,
224 "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n")
225STEXI
226@item -boot [a|c|d|n]
227Boot on floppy (a), hard disk (c), CD-ROM (d), or Etherboot (n). Hard disk boot
228is the default.
229ETEXI
230
231DEF("snapshot", 0, QEMU_OPTION_snapshot,
232 "-snapshot write to temporary files instead of disk image files\n")
233STEXI
234@item -snapshot
235Write to temporary files instead of disk image files. In this case,
236the raw disk image you use is not written back. You can however force
237the write back by pressing @key{C-a s} (@pxref{disk_images}).
238ETEXI
239
240DEF("m", HAS_ARG, QEMU_OPTION_m,
241 "-m megs set virtual RAM size to megs MB [default=%d]\n")
242STEXI
243@item -m @var{megs}
244Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB. Optionally,
245a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
246gigabytes respectively.
247ETEXI
248
blueswir15824d652009-03-28 06:44:27 +0000249DEF("k", HAS_ARG, QEMU_OPTION_k,
blueswir15c2f8d22009-03-28 08:13:56 +0000250 "-k language use keyboard layout (for example 'fr' for French)\n")
blueswir15824d652009-03-28 06:44:27 +0000251STEXI
252@item -k @var{language}
253
254Use keyboard layout @var{language} (for example @code{fr} for
255French). This option is only needed where it is not easy to get raw PC
256keycodes (e.g. on Macs, with some X11 servers or with a VNC
257display). You don't normally need to use it on PC/Linux or PC/Windows
258hosts.
259
260The available layouts are:
261@example
262ar de-ch es fo fr-ca hu ja mk no pt-br sv
263da en-gb et fr fr-ch is lt nl pl ru th
264de en-us fi fr-be hr it lv nl-be pt sl tr
265@end example
266
267The default is @code{en-us}.
268ETEXI
269
270
271#ifdef HAS_AUDIO
272DEF("audio-help", 0, QEMU_OPTION_audio_help,
273 "-audio-help print list of audio drivers and their options\n")
274#endif
275STEXI
276@item -audio-help
277
278Will show the audio subsystem help: list of drivers, tunable
279parameters.
280ETEXI
281
282#ifdef HAS_AUDIO
283DEF("soundhw", HAS_ARG, QEMU_OPTION_soundhw,
284 "-soundhw c1,... enable audio support\n"
285 " and only specified sound cards (comma separated list)\n"
286 " use -soundhw ? to get the list of supported cards\n"
287 " use -soundhw all to enable all of them\n")
288#endif
289STEXI
290@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
291
292Enable audio and selected sound hardware. Use ? to print all
293available sound hardware.
294
295@example
296qemu -soundhw sb16,adlib disk.img
297qemu -soundhw es1370 disk.img
298qemu -soundhw ac97 disk.img
299qemu -soundhw all disk.img
300qemu -soundhw ?
301@end example
302
303Note that Linux's i810_audio OSS kernel (for AC97) module might
304require manually specifying clocking.
305
306@example
307modprobe i810_audio clocking=48000
308@end example
309ETEXI
310
311STEXI
312@end table
313ETEXI
314
315DEF("usb", 0, QEMU_OPTION_usb,
316 "-usb enable the USB driver (will be the default soon)\n")
317STEXI
318USB options:
319@table @option
320
321@item -usb
322Enable the USB driver (will be the default soon)
323ETEXI
324
325DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
326 "-usbdevice name add the host or guest USB device 'name'\n")
327STEXI
328
329@item -usbdevice @var{devname}
330Add the USB device @var{devname}. @xref{usb_devices}.
331
332@table @code
333
334@item mouse
335Virtual Mouse. This will override the PS/2 mouse emulation when activated.
336
337@item tablet
338Pointer device that uses absolute coordinates (like a touchscreen). This
339means qemu is able to report the mouse position without having to grab the
340mouse. Also overrides the PS/2 mouse emulation when activated.
341
342@item disk:[format=@var{format}]:file
343Mass storage device based on file. The optional @var{format} argument
344will be used rather than detecting the format. Can be used to specifiy
345format=raw to avoid interpreting an untrusted format header.
346
347@item host:bus.addr
348Pass through the host device identified by bus.addr (Linux only).
349
350@item host:vendor_id:product_id
351Pass through the host device identified by vendor_id:product_id (Linux only).
352
353@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
354Serial converter to host character device @var{dev}, see @code{-serial} for the
355available devices.
356
357@item braille
358Braille device. This will use BrlAPI to display the braille output on a real
359or fake device.
360
361@item net:options
362Network adapter that supports CDC ethernet and RNDIS protocols.
363
364@end table
365ETEXI
366
367DEF("name", HAS_ARG, QEMU_OPTION_name,
368 "-name string set the name of the guest\n")
369STEXI
370@item -name @var{name}
371Sets the @var{name} of the guest.
372This name will be displayed in the SDL window caption.
373The @var{name} will also be used for the VNC server.
374ETEXI
375
376DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
377 "-uuid %%08x-%%04x-%%04x-%%04x-%%012x\n"
378 " specify machine UUID\n")
379STEXI
380@item -uuid @var{uuid}
381Set system UUID.
382ETEXI
383
384STEXI
385@end table
386ETEXI
387
388DEFHEADING()
389
390DEFHEADING(Display options:)
391
392STEXI
393@table @option
394ETEXI
395
396DEF("nographic", 0, QEMU_OPTION_nographic,
397 "-nographic disable graphical output and redirect serial I/Os to console\n")
398STEXI
399@item -nographic
400
401Normally, QEMU uses SDL to display the VGA output. With this option,
402you can totally disable graphical output so that QEMU is a simple
403command line application. The emulated serial port is redirected on
404the console. Therefore, you can still use QEMU to debug a Linux kernel
405with a serial console.
406ETEXI
407
408#ifdef CONFIG_CURSES
409DEF("curses", 0, QEMU_OPTION_curses,
410 "-curses use a curses/ncurses interface instead of SDL\n")
411#endif
412STEXI
413@item -curses
414
415Normally, QEMU uses SDL to display the VGA output. With this option,
416QEMU can display the VGA output when in text mode using a
417curses/ncurses interface. Nothing is displayed in graphical mode.
418ETEXI
419
420#ifdef CONFIG_SDL
421DEF("no-frame", 0, QEMU_OPTION_no_frame,
422 "-no-frame open SDL window without a frame and window decorations\n")
423#endif
424STEXI
425@item -no-frame
426
427Do not use decorations for SDL windows and start them using the whole
428available screen space. This makes the using QEMU in a dedicated desktop
429workspace more convenient.
430ETEXI
431
432#ifdef CONFIG_SDL
433DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
434 "-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n")
435#endif
436STEXI
437@item -alt-grab
438
439Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt).
440ETEXI
441
442#ifdef CONFIG_SDL
443DEF("no-quit", 0, QEMU_OPTION_no_quit,
444 "-no-quit disable SDL window close capability\n")
445#endif
446STEXI
447@item -no-quit
448
449Disable SDL window close capability.
450ETEXI
451
452#ifdef CONFIG_SDL
453DEF("sdl", 0, QEMU_OPTION_sdl,
454 "-sdl enable SDL\n")
455#endif
456STEXI
457@item -sdl
458
459Enable SDL.
460ETEXI
461
462DEF("portrait", 0, QEMU_OPTION_portrait,
463 "-portrait rotate graphical output 90 deg left (only PXA LCD)\n")
464STEXI
465@item -portrait
466
467Rotate graphical output 90 deg left (only PXA LCD).
468ETEXI
469
470DEF("vga", HAS_ARG, QEMU_OPTION_vga,
aliguori94909d92009-04-22 15:19:53 +0000471 "-vga [std|cirrus|vmware|xenfb|none]\n"
blueswir15824d652009-03-28 06:44:27 +0000472 " select video card type\n")
473STEXI
474@item -vga @var{type}
475Select type of VGA card to emulate. Valid values for @var{type} are
476@table @code
477@item cirrus
478Cirrus Logic GD5446 Video card. All Windows versions starting from
479Windows 95 should recognize and use this graphic card. For optimal
480performances, use 16 bit color depth in the guest and the host OS.
481(This one is the default)
482@item std
483Standard VGA card with Bochs VBE extensions. If your guest OS
484supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want
485to use high resolution modes (>= 1280x1024x16) then you should use
486this option.
487@item vmware
488VMWare SVGA-II compatible adapter. Use it if you have sufficiently
489recent XFree86/XOrg server or Windows guest with a driver for this
490card.
491@item none
492Disable VGA card.
493@end table
494ETEXI
495
496DEF("full-screen", 0, QEMU_OPTION_full_screen,
497 "-full-screen start in full screen\n")
498STEXI
499@item -full-screen
500Start in full screen.
501ETEXI
502
503#if defined(TARGET_PPC) || defined(TARGET_SPARC)
504DEF("g", 1, QEMU_OPTION_g ,
505 "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n")
506#endif
507STEXI
508ETEXI
509
510DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
511 "-vnc display start a VNC server on display\n")
512STEXI
513@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
514
515Normally, QEMU uses SDL to display the VGA output. With this option,
516you can have QEMU listen on VNC display @var{display} and redirect the VGA
517display over the VNC session. It is very useful to enable the usb
518tablet device when using this option (option @option{-usbdevice
519tablet}). When using the VNC display, you must use the @option{-k}
520parameter to set the keyboard layout if you are not using en-us. Valid
521syntax for the @var{display} is
522
523@table @code
524
525@item @var{host}:@var{d}
526
527TCP connections will only be allowed from @var{host} on display @var{d}.
528By convention the TCP port is 5900+@var{d}. Optionally, @var{host} can
529be omitted in which case the server will accept connections from any host.
530
531@item @code{unix}:@var{path}
532
533Connections will be allowed over UNIX domain sockets where @var{path} is the
534location of a unix socket to listen for connections on.
535
536@item none
537
538VNC is initialized but not started. The monitor @code{change} command
539can be used to later start the VNC server.
540
541@end table
542
543Following the @var{display} value there may be one or more @var{option} flags
544separated by commas. Valid options are
545
546@table @code
547
548@item reverse
549
550Connect to a listening VNC client via a ``reverse'' connection. The
551client is specified by the @var{display}. For reverse network
552connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
553is a TCP port number, not a display number.
554
555@item password
556
557Require that password based authentication is used for client connections.
558The password must be set separately using the @code{change} command in the
559@ref{pcsys_monitor}
560
561@item tls
562
563Require that client use TLS when communicating with the VNC server. This
564uses anonymous TLS credentials so is susceptible to a man-in-the-middle
565attack. It is recommended that this option be combined with either the
566@var{x509} or @var{x509verify} options.
567
568@item x509=@var{/path/to/certificate/dir}
569
570Valid if @option{tls} is specified. Require that x509 credentials are used
571for negotiating the TLS session. The server will send its x509 certificate
572to the client. It is recommended that a password be set on the VNC server
573to provide authentication of the client when this is used. The path following
574this option specifies where the x509 certificates are to be loaded from.
575See the @ref{vnc_security} section for details on generating certificates.
576
577@item x509verify=@var{/path/to/certificate/dir}
578
579Valid if @option{tls} is specified. Require that x509 credentials are used
580for negotiating the TLS session. The server will send its x509 certificate
581to the client, and request that the client send its own x509 certificate.
582The server will validate the client's certificate against the CA certificate,
583and reject clients when validation fails. If the certificate authority is
584trusted, this is a sufficient authentication mechanism. You may still wish
585to set a password on the VNC server as a second authentication layer. The
586path following this option specifies where the x509 certificates are to
587be loaded from. See the @ref{vnc_security} section for details on generating
588certificates.
589
590@item sasl
591
592Require that the client use SASL to authenticate with the VNC server.
593The exact choice of authentication method used is controlled from the
594system / user's SASL configuration file for the 'qemu' service. This
595is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
596unprivileged user, an environment variable SASL_CONF_PATH can be used
597to make it search alternate locations for the service config.
598While some SASL auth methods can also provide data encryption (eg GSSAPI),
599it is recommended that SASL always be combined with the 'tls' and
600'x509' settings to enable use of SSL and server certificates. This
601ensures a data encryption preventing compromise of authentication
602credentials. See the @ref{vnc_security} section for details on using
603SASL authentication.
604
605@item acl
606
607Turn on access control lists for checking of the x509 client certificate
608and SASL party. For x509 certs, the ACL check is made against the
609certificate's distinguished name. This is something that looks like
610@code{C=GB,O=ACME,L=Boston,CN=bob}. For SASL party, the ACL check is
611made against the username, which depending on the SASL plugin, may
612include a realm component, eg @code{bob} or @code{bob@@EXAMPLE.COM}.
613When the @option{acl} flag is set, the initial access list will be
614empty, with a @code{deny} policy. Thus no one will be allowed to
615use the VNC server until the ACLs have been loaded. This can be
616achieved using the @code{acl} monitor command.
617
618@end table
619ETEXI
620
621STEXI
622@end table
623ETEXI
624
625DEFHEADING()
626
627#ifdef TARGET_I386
628DEFHEADING(i386 target only:)
629#endif
630STEXI
631@table @option
632ETEXI
633
634#ifdef TARGET_I386
635DEF("win2k-hack", 0, QEMU_OPTION_win2k_hack,
636 "-win2k-hack use it when installing Windows 2000 to avoid a disk full bug\n")
637#endif
638STEXI
639@item -win2k-hack
640Use it when installing Windows 2000 to avoid a disk full bug. After
641Windows 2000 is installed, you no longer need this option (this option
642slows down the IDE transfers).
643ETEXI
644
645#ifdef TARGET_I386
646DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack,
647 "-rtc-td-hack use it to fix time drift in Windows ACPI HAL\n")
648#endif
649STEXI
650@item -rtc-td-hack
651Use it if you experience time drift problem in Windows with ACPI HAL.
652This option will try to figure out how many timer interrupts were not
653processed by the Windows guest and will re-inject them.
654ETEXI
655
656#ifdef TARGET_I386
657DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
658 "-no-fd-bootchk disable boot signature checking for floppy disks\n")
659#endif
660STEXI
661@item -no-fd-bootchk
662Disable boot signature checking for floppy disks in Bochs BIOS. It may
663be needed to boot from old floppy disks.
664ETEXI
665
666#ifdef TARGET_I386
667DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
668 "-no-acpi disable ACPI\n")
669#endif
670STEXI
671@item -no-acpi
672Disable ACPI (Advanced Configuration and Power Interface) support. Use
673it if your guest OS complains about ACPI problems (PC target machine
674only).
675ETEXI
676
677#ifdef TARGET_I386
678DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
679 "-no-hpet disable HPET\n")
680#endif
681STEXI
682@item -no-hpet
683Disable HPET support.
684ETEXI
685
686#ifdef TARGET_I386
Eduardo Habkostdf97b922009-06-10 16:34:08 -0300687DEF("no-virtio-balloon", 0, QEMU_OPTION_no_virtio_balloon,
688 "-no-virtio-balloon disable virtio balloon device\n")
689#endif
690STEXI
691@item -no-virtio-balloon
692Disable virtio-balloon device.
693ETEXI
694
695#ifdef TARGET_I386
blueswir15824d652009-03-28 06:44:27 +0000696DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
697 "-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"
698 " ACPI table description\n")
699#endif
700STEXI
701@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}]...]
702Add ACPI table with specified header fields and context from specified files.
703ETEXI
704
705#ifdef TARGET_I386
aliguorib6f6e3d2009-04-17 18:59:56 +0000706DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
707 "-smbios file=binary\n"
708 " Load SMBIOS entry from binary file\n"
709 "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%%d.%%d]\n"
710 " Specify SMBIOS type 0 fields\n"
711 "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n"
712 " [,uuid=uuid][,sku=str][,family=str]\n"
713 " Specify SMBIOS type 1 fields\n")
714#endif
715STEXI
716@item -smbios file=@var{binary}
717Load SMBIOS entry from binary file.
718
719@item -smbios type=0[,vendor=@var{str}][,version=@var{str}][,date=@var{str}][,release=@var{%d.%d}]
720Specify SMBIOS type 0 fields
721
722@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}]
723Specify SMBIOS type 1 fields
724ETEXI
725
726#ifdef TARGET_I386
blueswir15824d652009-03-28 06:44:27 +0000727DEFHEADING()
728#endif
729STEXI
730@end table
731ETEXI
732
733DEFHEADING(Network options:)
734STEXI
735@table @option
736ETEXI
737
Blue Swirlbab79442009-06-09 21:50:02 +0300738DEF("net", HAS_ARG, QEMU_OPTION_net,
Markus Armbruster5607c382009-06-18 15:14:08 +0200739 "-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str]\n"
blueswir15824d652009-03-28 06:44:27 +0000740 " create a new Network Interface Card and connect it to VLAN 'n'\n"
741#ifdef CONFIG_SLIRP
742 "-net user[,vlan=n][,name=str][,hostname=host]\n"
743 " connect the user mode network stack to VLAN 'n' and send\n"
744 " hostname 'host' to DHCP clients\n"
745#endif
746#ifdef _WIN32
747 "-net tap[,vlan=n][,name=str],ifname=name\n"
748 " connect the host TAP network interface to VLAN 'n'\n"
749#else
750 "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n"
751 " connect the host TAP network interface to VLAN 'n' and use the\n"
752 " network scripts 'file' (default=%s)\n"
753 " and 'dfile' (default=%s);\n"
754 " use '[down]script=no' to disable script execution;\n"
755 " use 'fd=h' to connect to an already opened TAP interface\n"
756#endif
757 "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
758 " connect the vlan 'n' to another VLAN using a socket connection\n"
759 "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n"
760 " connect the vlan 'n' to multicast maddr and port\n"
761#ifdef CONFIG_VDE
762 "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
763 " connect the vlan 'n' to port 'n' of a vde switch running\n"
764 " on host and listening for incoming connections on 'socketpath'.\n"
765 " Use group 'groupname' and mode 'octalmode' to change default\n"
766 " ownership and permissions for communication port.\n"
767#endif
aliguoribb9ea792009-04-21 19:56:28 +0000768 "-net dump[,vlan=n][,file=f][,len=n]\n"
769 " dump traffic on vlan 'n' to file 'f' (max n bytes per packet)\n"
blueswir15824d652009-03-28 06:44:27 +0000770 "-net none use it alone to have zero network devices; if no -net option\n"
771 " is provided, the default is '-net nic -net user'\n")
772STEXI
Markus Armbruster5607c382009-06-18 15:14:08 +0200773@item -net nic[,vlan=@var{n}][,macaddr=@var{mac}][,model=@var{type}][,name=@var{name}][,addr=@var{addr}]
blueswir15824d652009-03-28 06:44:27 +0000774Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
775= 0 is the default). The NIC is an ne2k_pci by default on the PC
Markus Armbruster5607c382009-06-18 15:14:08 +0200776target. Optionally, the MAC address can be changed to @var{mac}, the
777device address set to @var{addr} (PCI cards only),
blueswir15824d652009-03-28 06:44:27 +0000778and a @var{name} can be assigned for use in monitor commands. If no
779@option{-net} option is specified, a single NIC is created.
780Qemu can emulate several different models of network card.
781Valid values for @var{type} are
782@code{i82551}, @code{i82557b}, @code{i82559er},
783@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
784@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.
785Not all devices are supported on all targets. Use -net nic,model=?
786for a list of available devices for your target.
787
788@item -net user[,vlan=@var{n}][,hostname=@var{name}][,name=@var{name}]
789Use the user mode network stack which requires no administrator
790privilege to run. @option{hostname=name} can be used to specify the client
791hostname reported by the builtin DHCP server.
792
793@item -net channel,@var{port}:@var{dev}
794Forward @option{user} TCP connection to port @var{port} to character device @var{dev}
795
796@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}]
797Connect the host TAP network interface @var{name} to VLAN @var{n}, use
798the network script @var{file} to configure it and the network script
799@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
800automatically provides one. @option{fd}=@var{h} can be used to specify
801the handle of an already opened host TAP interface. The default network
802configure script is @file{/etc/qemu-ifup} and the default network
803deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}
804or @option{downscript=no} to disable script execution. Example:
805
806@example
807qemu linux.img -net nic -net tap
808@end example
809
810More complicated example (two NICs, each one connected to a TAP device)
811@example
812qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
813 -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
814@end example
815
816@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}]
817
818Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
819machine using a TCP socket connection. If @option{listen} is
820specified, QEMU waits for incoming connections on @var{port}
821(@var{host} is optional). @option{connect} is used to connect to
822another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
823specifies an already opened TCP socket.
824
825Example:
826@example
827# launch a first QEMU instance
828qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
829 -net socket,listen=:1234
830# connect the VLAN 0 of this instance to the VLAN 0
831# of the first instance
832qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
833 -net socket,connect=127.0.0.1:1234
834@end example
835
836@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,mcast=@var{maddr}:@var{port}]
837
838Create a VLAN @var{n} shared with another QEMU virtual
839machines using a UDP multicast socket, effectively making a bus for
840every QEMU with same multicast address @var{maddr} and @var{port}.
841NOTES:
842@enumerate
843@item
844Several QEMU can be running on different hosts and share same bus (assuming
845correct multicast setup for these hosts).
846@item
847mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
848@url{http://user-mode-linux.sf.net}.
849@item
850Use @option{fd=h} to specify an already opened UDP multicast socket.
851@end enumerate
852
853Example:
854@example
855# launch one QEMU instance
856qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
857 -net socket,mcast=230.0.0.1:1234
858# launch another QEMU instance on same "bus"
859qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
860 -net socket,mcast=230.0.0.1:1234
861# launch yet another QEMU instance on same "bus"
862qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
863 -net socket,mcast=230.0.0.1:1234
864@end example
865
866Example (User Mode Linux compat.):
867@example
868# launch QEMU instance (note mcast address selected
869# is UML's default)
870qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
871 -net socket,mcast=239.192.168.1:1102
872# launch UML
873/path/to/linux ubd0=/path/to/root_fs eth0=mcast
874@end example
875
876@item -net vde[,vlan=@var{n}][,name=@var{name}][,sock=@var{socketpath}][,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]
877Connect VLAN @var{n} to PORT @var{n} of a vde switch running on host and
878listening for incoming connections on @var{socketpath}. Use GROUP @var{groupname}
879and MODE @var{octalmode} to change default ownership and permissions for
880communication port. This option is available only if QEMU has been compiled
881with vde support enabled.
882
883Example:
884@example
885# launch vde switch
886vde_switch -F -sock /tmp/myswitch
887# launch QEMU instance
888qemu linux.img -net nic -net vde,sock=/tmp/myswitch
889@end example
890
aliguoribb9ea792009-04-21 19:56:28 +0000891@item -net dump[,vlan=@var{n}][,file=@var{file}][,len=@var{len}]
892Dump network traffic on VLAN @var{n} to file @var{file} (@file{qemu-vlan0.pcap} by default).
893At most @var{len} bytes (64k by default) per packet are stored. The file format is
894libpcap, so it can be analyzed with tools such as tcpdump or Wireshark.
895
blueswir15824d652009-03-28 06:44:27 +0000896@item -net none
897Indicate that no network devices should be configured. It is used to
898override the default configuration (@option{-net nic -net user}) which
899is activated if no @option{-net} options are provided.
900ETEXI
901
902#ifdef CONFIG_SLIRP
903DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, \
904 "-tftp dir allow tftp access to files in dir [-net user]\n")
905#endif
906STEXI
907@item -tftp @var{dir}
908When using the user mode network stack, activate a built-in TFTP
909server. The files in @var{dir} will be exposed as the root of a TFTP server.
910The TFTP client on the guest must be configured in binary mode (use the command
911@code{bin} of the Unix TFTP client). The host IP address on the guest is as
912usual 10.0.2.2.
913ETEXI
914
915#ifdef CONFIG_SLIRP
916DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, \
917 "-bootp file advertise file in BOOTP replies\n")
918#endif
919STEXI
920@item -bootp @var{file}
921When using the user mode network stack, broadcast @var{file} as the BOOTP
922filename. In conjunction with @option{-tftp}, this can be used to network boot
923a guest from a local directory.
924
925Example (using pxelinux):
926@example
927qemu -hda linux.img -boot n -tftp /path/to/tftp/files -bootp /pxelinux.0
928@end example
929ETEXI
930
931#ifndef _WIN32
932DEF("smb", HAS_ARG, QEMU_OPTION_smb, \
933 "-smb dir allow SMB access to files in 'dir' [-net user]\n")
934#endif
935STEXI
936@item -smb @var{dir}
937When using the user mode network stack, activate a built-in SMB
938server so that Windows OSes can access to the host files in @file{@var{dir}}
939transparently.
940
941In the guest Windows OS, the line:
942@example
94310.0.2.4 smbserver
944@end example
945must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
946or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
947
948Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
949
950Note that a SAMBA server must be installed on the host OS in
951@file{/usr/sbin/smbd}. QEMU was tested successfully with smbd version
9522.2.7a from the Red Hat 9 and version 3.0.10-1.fc3 from Fedora Core 3.
953ETEXI
954
955#ifdef CONFIG_SLIRP
956DEF("redir", HAS_ARG, QEMU_OPTION_redir, \
957 "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n" \
958 " redirect TCP or UDP connections from host to guest [-net user]\n")
959#endif
960STEXI
961@item -redir [tcp|udp]:@var{host-port}:[@var{guest-host}]:@var{guest-port}
962
963When using the user mode network stack, redirect incoming TCP or UDP
964connections to the host port @var{host-port} to the guest
965@var{guest-host} on guest port @var{guest-port}. If @var{guest-host}
966is not specified, its value is 10.0.2.15 (default address given by the
aliguorid4ebe192009-04-21 19:56:44 +0000967built-in DHCP server). If no connection type is specified, TCP is used.
blueswir15824d652009-03-28 06:44:27 +0000968
969For example, to redirect host X11 connection from screen 1 to guest
970screen 0, use the following:
971
972@example
973# on the host
974qemu -redir tcp:6001::6000 [...]
975# this host xterm should open in the guest X11 server
976xterm -display :1
977@end example
978
979To redirect telnet connections from host port 5555 to telnet port on
980the guest, use the following:
981
982@example
983# on the host
984qemu -redir tcp:5555::23 [...]
985telnet localhost 5555
986@end example
987
988Then when you use on the host @code{telnet localhost 5555}, you
989connect to the guest telnet server.
990
991@end table
992ETEXI
993
994DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
995 "\n" \
996 "-bt hci,null dumb bluetooth HCI - doesn't respond to commands\n" \
997 "-bt hci,host[:id]\n" \
998 " use host's HCI with the given name\n" \
999 "-bt hci[,vlan=n]\n" \
1000 " emulate a standard HCI in virtual scatternet 'n'\n" \
1001 "-bt vhci[,vlan=n]\n" \
1002 " add host computer to virtual scatternet 'n' using VHCI\n" \
1003 "-bt device:dev[,vlan=n]\n" \
1004 " emulate a bluetooth device 'dev' in scatternet 'n'\n")
1005STEXI
1006Bluetooth(R) options:
1007@table @option
1008
1009@item -bt hci[...]
1010Defines the function of the corresponding Bluetooth HCI. -bt options
1011are matched with the HCIs present in the chosen machine type. For
1012example when emulating a machine with only one HCI built into it, only
1013the first @code{-bt hci[...]} option is valid and defines the HCI's
1014logic. The Transport Layer is decided by the machine type. Currently
1015the machines @code{n800} and @code{n810} have one HCI and all other
1016machines have none.
1017
1018@anchor{bt-hcis}
1019The following three types are recognized:
1020
1021@table @code
1022@item -bt hci,null
1023(default) The corresponding Bluetooth HCI assumes no internal logic
1024and will not respond to any HCI commands or emit events.
1025
1026@item -bt hci,host[:@var{id}]
1027(@code{bluez} only) The corresponding HCI passes commands / events
1028to / from the physical HCI identified by the name @var{id} (default:
1029@code{hci0}) on the computer running QEMU. Only available on @code{bluez}
1030capable systems like Linux.
1031
1032@item -bt hci[,vlan=@var{n}]
1033Add a virtual, standard HCI that will participate in the Bluetooth
1034scatternet @var{n} (default @code{0}). Similarly to @option{-net}
1035VLANs, devices inside a bluetooth network @var{n} can only communicate
1036with other devices in the same network (scatternet).
1037@end table
1038
1039@item -bt vhci[,vlan=@var{n}]
1040(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
1041to the host bluetooth stack instead of to the emulated target. This
1042allows the host and target machines to participate in a common scatternet
1043and communicate. Requires the Linux @code{vhci} driver installed. Can
1044be used as following:
1045
1046@example
1047qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
1048@end example
1049
1050@item -bt device:@var{dev}[,vlan=@var{n}]
1051Emulate a bluetooth device @var{dev} and place it in network @var{n}
1052(default @code{0}). QEMU can only emulate one type of bluetooth devices
1053currently:
1054
1055@table @code
1056@item keyboard
1057Virtual wireless keyboard implementing the HIDP bluetooth profile.
1058@end table
1059@end table
1060ETEXI
1061
1062DEFHEADING()
1063
1064DEFHEADING(Linux boot specific:)
1065STEXI
1066When using these options, you can use a given
1067Linux kernel without installing it in the disk image. It can be useful
1068for easier testing of various kernels.
1069
1070@table @option
1071ETEXI
1072
1073DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
1074 "-kernel bzImage use 'bzImage' as kernel image\n")
1075STEXI
1076@item -kernel @var{bzImage}
1077Use @var{bzImage} as kernel image.
1078ETEXI
1079
1080DEF("append", HAS_ARG, QEMU_OPTION_append, \
1081 "-append cmdline use 'cmdline' as kernel command line\n")
1082STEXI
1083@item -append @var{cmdline}
1084Use @var{cmdline} as kernel command line
1085ETEXI
1086
1087DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
1088 "-initrd file use 'file' as initial ram disk\n")
1089STEXI
1090@item -initrd @var{file}
1091Use @var{file} as initial ram disk.
1092ETEXI
1093
1094STEXI
1095@end table
1096ETEXI
1097
1098DEFHEADING()
1099
1100DEFHEADING(Debug/Expert options:)
1101
1102STEXI
1103@table @option
1104ETEXI
1105
1106DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
1107 "-serial dev redirect the serial port to char device 'dev'\n")
1108STEXI
1109@item -serial @var{dev}
1110Redirect the virtual serial port to host character device
1111@var{dev}. The default device is @code{vc} in graphical mode and
1112@code{stdio} in non graphical mode.
1113
1114This option can be used several times to simulate up to 4 serial
1115ports.
1116
1117Use @code{-serial none} to disable all serial ports.
1118
1119Available character devices are:
1120@table @code
1121@item vc[:WxH]
1122Virtual console. Optionally, a width and height can be given in pixel with
1123@example
1124vc:800x600
1125@end example
1126It is also possible to specify width or height in characters:
1127@example
1128vc:80Cx24C
1129@end example
1130@item pty
1131[Linux only] Pseudo TTY (a new PTY is automatically allocated)
1132@item none
1133No device is allocated.
1134@item null
1135void device
1136@item /dev/XXX
1137[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
1138parameters are set according to the emulated ones.
1139@item /dev/parport@var{N}
1140[Linux only, parallel port only] Use host parallel port
1141@var{N}. Currently SPP and EPP parallel port features can be used.
1142@item file:@var{filename}
1143Write output to @var{filename}. No character can be read.
1144@item stdio
1145[Unix only] standard input/output
1146@item pipe:@var{filename}
1147name pipe @var{filename}
1148@item COM@var{n}
1149[Windows only] Use host serial port @var{n}
1150@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
1151This implements UDP Net Console.
1152When @var{remote_host} or @var{src_ip} are not specified
1153they default to @code{0.0.0.0}.
1154When not using a specified @var{src_port} a random port is automatically chosen.
1155@item msmouse
1156Three button serial mouse. Configure the guest to use Microsoft protocol.
1157
1158If you just want a simple readonly console you can use @code{netcat} or
1159@code{nc}, by starting qemu with: @code{-serial udp::4555} and nc as:
1160@code{nc -u -l -p 4555}. Any time qemu writes something to that port it
1161will appear in the netconsole session.
1162
1163If you plan to send characters back via netconsole or you want to stop
1164and start qemu a lot of times, you should have qemu use the same
1165source port each time by using something like @code{-serial
1166udp::4555@@:4556} to qemu. Another approach is to use a patched
1167version of netcat which can listen to a TCP port and send and receive
1168characters via udp. If you have a patched version of netcat which
1169activates telnet remote echo and single char transfer, then you can
1170use the following options to step up a netcat redirector to allow
1171telnet on port 5555 to access the qemu port.
1172@table @code
1173@item Qemu Options:
1174-serial udp::4555@@:4556
1175@item netcat options:
1176-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
1177@item telnet options:
1178localhost 5555
1179@end table
1180
1181@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
1182The TCP Net Console has two modes of operation. It can send the serial
1183I/O to a location or wait for a connection from a location. By default
1184the TCP Net Console is sent to @var{host} at the @var{port}. If you use
1185the @var{server} option QEMU will wait for a client socket application
1186to connect to the port before continuing, unless the @code{nowait}
1187option was specified. The @code{nodelay} option disables the Nagle buffering
1188algorithm. If @var{host} is omitted, 0.0.0.0 is assumed. Only
1189one TCP connection at a time is accepted. You can use @code{telnet} to
1190connect to the corresponding character device.
1191@table @code
1192@item Example to send tcp console to 192.168.0.2 port 4444
1193-serial tcp:192.168.0.2:4444
1194@item Example to listen and wait on port 4444 for connection
1195-serial tcp::4444,server
1196@item Example to not wait and listen on ip 192.168.0.100 port 4444
1197-serial tcp:192.168.0.100:4444,server,nowait
1198@end table
1199
1200@item telnet:@var{host}:@var{port}[,server][,nowait][,nodelay]
1201The telnet protocol is used instead of raw tcp sockets. The options
1202work the same as if you had specified @code{-serial tcp}. The
1203difference is that the port acts like a telnet server or client using
1204telnet option negotiation. This will also allow you to send the
1205MAGIC_SYSRQ sequence if you use a telnet that supports sending the break
1206sequence. Typically in unix telnet you do it with Control-] and then
1207type "send break" followed by pressing the enter key.
1208
1209@item unix:@var{path}[,server][,nowait]
1210A unix domain socket is used instead of a tcp socket. The option works the
1211same as if you had specified @code{-serial tcp} except the unix domain socket
1212@var{path} is used for connections.
1213
1214@item mon:@var{dev_string}
1215This is a special option to allow the monitor to be multiplexed onto
1216another serial port. The monitor is accessed with key sequence of
1217@key{Control-a} and then pressing @key{c}. See monitor access
1218@ref{pcsys_keys} in the -nographic section for more keys.
1219@var{dev_string} should be any one of the serial devices specified
1220above. An example to multiplex the monitor onto a telnet server
1221listening on port 4444 would be:
1222@table @code
1223@item -serial mon:telnet::4444,server,nowait
1224@end table
1225
1226@item braille
1227Braille device. This will use BrlAPI to display the braille output on a real
1228or fake device.
1229
1230@end table
1231ETEXI
1232
1233DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
1234 "-parallel dev redirect the parallel port to char device 'dev'\n")
1235STEXI
1236@item -parallel @var{dev}
1237Redirect the virtual parallel port to host device @var{dev} (same
1238devices as the serial port). On Linux hosts, @file{/dev/parportN} can
1239be used to use hardware devices connected on the corresponding host
1240parallel port.
1241
1242This option can be used several times to simulate up to 3 parallel
1243ports.
1244
1245Use @code{-parallel none} to disable all parallel ports.
1246ETEXI
1247
1248DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
1249 "-monitor dev redirect the monitor to char device 'dev'\n")
1250STEXI
1251@item -monitor @var{dev}
1252Redirect the monitor to host device @var{dev} (same devices as the
1253serial port).
1254The default device is @code{vc} in graphical mode and @code{stdio} in
1255non graphical mode.
1256ETEXI
1257
1258DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
1259 "-pidfile file write PID to 'file'\n")
1260STEXI
1261@item -pidfile @var{file}
1262Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
1263from a script.
1264ETEXI
1265
aurel321b530a62009-04-05 20:08:59 +00001266DEF("singlestep", 0, QEMU_OPTION_singlestep, \
1267 "-singlestep always run in singlestep mode\n")
1268STEXI
1269@item -singlestep
1270Run the emulation in single step mode.
1271ETEXI
1272
blueswir15824d652009-03-28 06:44:27 +00001273DEF("S", 0, QEMU_OPTION_S, \
1274 "-S freeze CPU at startup (use 'c' to start execution)\n")
1275STEXI
1276@item -S
1277Do not start CPU at startup (you must type 'c' in the monitor).
1278ETEXI
1279
aliguori59030a82009-04-05 18:43:41 +00001280DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
1281 "-gdb dev wait for gdb connection on 'dev'\n")
blueswir15824d652009-03-28 06:44:27 +00001282STEXI
aliguori59030a82009-04-05 18:43:41 +00001283@item -gdb @var{dev}
1284Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
1285connections will likely be TCP-based, but also UDP, pseudo TTY, or even
1286stdio are reasonable use case. The latter is allowing to start qemu from
1287within gdb and establish the connection via a pipe:
1288@example
1289(gdb) target remote | exec qemu -gdb stdio ...
1290@end example
blueswir15824d652009-03-28 06:44:27 +00001291ETEXI
1292
aliguori59030a82009-04-05 18:43:41 +00001293DEF("s", 0, QEMU_OPTION_s, \
1294 "-s shorthand for -gdb tcp::%s\n")
blueswir15824d652009-03-28 06:44:27 +00001295STEXI
aliguori59030a82009-04-05 18:43:41 +00001296@item -s
1297Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
1298(@pxref{gdb_usage}).
blueswir15824d652009-03-28 06:44:27 +00001299ETEXI
1300
1301DEF("d", HAS_ARG, QEMU_OPTION_d, \
1302 "-d item1,... output log to %s (use -d ? for a list of log items)\n")
1303STEXI
1304@item -d
1305Output log in /tmp/qemu.log
1306ETEXI
1307
1308DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
1309 "-hdachs c,h,s[,t]\n" \
1310 " force hard disk 0 physical geometry and the optional BIOS\n" \
1311 " translation (t=none or lba) (usually qemu can guess them)\n")
1312STEXI
1313@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
1314Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
1315@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
1316translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
1317all those parameters. This option is useful for old MS-DOS disk
1318images.
1319ETEXI
1320
1321DEF("L", HAS_ARG, QEMU_OPTION_L, \
1322 "-L path set the directory for the BIOS, VGA BIOS and keymaps\n")
1323STEXI
1324@item -L @var{path}
1325Set the directory for the BIOS, VGA BIOS and keymaps.
1326ETEXI
1327
1328DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
1329 "-bios file set the filename for the BIOS\n")
1330STEXI
1331@item -bios @var{file}
1332Set the filename for the BIOS.
1333ETEXI
1334
blueswir1640f42e2009-04-19 10:18:01 +00001335#ifdef CONFIG_KQEMU
blueswir15824d652009-03-28 06:44:27 +00001336DEF("kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu, \
1337 "-kernel-kqemu enable KQEMU full virtualization (default is user mode only)\n")
1338#endif
1339STEXI
1340@item -kernel-kqemu
1341Enable KQEMU full virtualization (default is user mode only).
1342ETEXI
1343
blueswir1640f42e2009-04-19 10:18:01 +00001344#ifdef CONFIG_KQEMU
blueswir15824d652009-03-28 06:44:27 +00001345DEF("no-kqemu", 0, QEMU_OPTION_no_kqemu, \
1346 "-no-kqemu disable KQEMU kernel module usage\n")
1347#endif
1348STEXI
1349@item -no-kqemu
1350Disable KQEMU kernel module usage. KQEMU options are only available if
1351KQEMU support is enabled when compiling.
1352ETEXI
1353
1354#ifdef CONFIG_KVM
1355DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
1356 "-enable-kvm enable KVM full virtualization support\n")
1357#endif
1358STEXI
1359@item -enable-kvm
1360Enable KVM full virtualization support. This option is only available
1361if KVM support is enabled when compiling.
1362ETEXI
1363
aliguorie37630c2009-04-22 15:19:10 +00001364#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
blueswir15824d652009-03-28 06:44:27 +00001375DEF("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
1447DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
1448 "-icount [N|auto]\n" \
aliguoribc14ca22009-04-05 18:43:37 +00001449 " enable virtual instruction counter with 2^N clock ticks per\n" \
1450 " instruction\n")
blueswir15824d652009-03-28 06:44:27 +00001451STEXI
1452@item -icount [N|auto]
1453Enable virtual instruction counter. The virtual cpu will execute one
1454instruction every 2^N ns of virtual time. If @code{auto} is specified
1455then the virtual cpu speed will be automatically adjusted to keep virtual
1456time within a few seconds of real time.
1457
1458Note that while this option can give deterministic behavior, it does not
1459provide cycle accurate emulation. Modern CPUs contain superscalar out of
1460order cores with complex cache hierarchies. The number of instructions
1461executed often has little or no correlation with actual performance.
1462ETEXI
1463
Richard W.M. Jones9dd986c2009-04-25 13:56:19 +01001464DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
1465 "-watchdog i6300esb|ib700\n" \
1466 " enable virtual hardware watchdog [default=none]\n")
1467STEXI
1468@item -watchdog @var{model}
1469Create a virtual hardware watchdog device. Once enabled (by a guest
1470action), the watchdog must be periodically polled by an agent inside
1471the guest or else the guest will be restarted.
1472
1473The @var{model} is the model of hardware watchdog to emulate. Choices
1474for model are: @code{ib700} (iBASE 700) which is a very simple ISA
1475watchdog with a single timer, or @code{i6300esb} (Intel 6300ESB I/O
1476controller hub) which is a much more featureful PCI-based dual-timer
1477watchdog. Choose a model for which your guest has drivers.
1478
1479Use @code{-watchdog ?} to list available hardware models. Only one
1480watchdog can be enabled for a guest.
1481ETEXI
1482
1483DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
1484 "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
1485 " action when watchdog fires [default=reset]\n")
1486STEXI
1487@item -watchdog-action @var{action}
1488
1489The @var{action} controls what QEMU will do when the watchdog timer
1490expires.
1491The default is
1492@code{reset} (forcefully reset the guest).
1493Other possible actions are:
1494@code{shutdown} (attempt to gracefully shutdown the guest),
1495@code{poweroff} (forcefully poweroff the guest),
1496@code{pause} (pause the guest),
1497@code{debug} (print a debug message and continue), or
1498@code{none} (do nothing).
1499
1500Note that the @code{shutdown} action requires that the guest responds
1501to ACPI signals, which it may not be able to do in the sort of
1502situations where the watchdog would have expired, and thus
1503@code{-watchdog-action shutdown} is not recommended for production use.
1504
1505Examples:
1506
1507@table @code
1508@item -watchdog i6300esb -watchdog-action pause
1509@item -watchdog ib700
1510@end table
1511ETEXI
1512
blueswir15824d652009-03-28 06:44:27 +00001513DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
1514 "-echr chr set terminal escape character instead of ctrl-a\n")
1515STEXI
1516
1517@item -echr numeric_ascii_value
1518Change the escape character used for switching to the monitor when using
1519monitor and serial sharing. The default is @code{0x01} when using the
1520@code{-nographic} option. @code{0x01} is equal to pressing
1521@code{Control-a}. You can select a different character from the ascii
1522control keys where 1 through 26 map to Control-a through Control-z. For
1523instance you could use the either of the following to change the escape
1524character to Control-t.
1525@table @code
1526@item -echr 0x14
1527@item -echr 20
1528@end table
1529ETEXI
1530
1531DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
1532 "-virtioconsole c\n" \
1533 " set virtio console\n")
1534STEXI
1535@item -virtioconsole @var{c}
1536Set virtio console.
1537ETEXI
1538
1539DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
1540 "-show-cursor show cursor\n")
1541STEXI
1542ETEXI
1543
1544DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
1545 "-tb-size n set TB size\n")
1546STEXI
1547ETEXI
1548
1549DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
1550 "-incoming p prepare for incoming migration, listen on port p\n")
1551STEXI
1552ETEXI
1553
1554#ifndef _WIN32
1555DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
1556 "-chroot dir Chroot to dir just before starting the VM.\n")
1557#endif
1558STEXI
1559@item -chroot dir
1560Immediately before starting guest execution, chroot to the specified
1561directory. Especially useful in combination with -runas.
1562ETEXI
1563
1564#ifndef _WIN32
1565DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
1566 "-runas user Change to user id user just before starting the VM.\n")
1567#endif
1568STEXI
1569@item -runas user
1570Immediately before starting guest execution, drop root privileges, switching
1571to the specified user.
1572ETEXI
1573
1574STEXI
1575@end table
1576ETEXI
1577
1578#if defined(TARGET_SPARC) || defined(TARGET_PPC)
1579DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
1580 "-prom-env variable=value\n"
1581 " set OpenBIOS nvram variables\n")
1582#endif
1583#if defined(TARGET_ARM) || defined(TARGET_M68K)
1584DEF("semihosting", 0, QEMU_OPTION_semihosting,
1585 "-semihosting semihosting mode\n")
1586#endif
1587#if defined(TARGET_ARM)
1588DEF("old-param", 0, QEMU_OPTION_old_param,
1589 "-old-param old param mode\n")
1590#endif