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