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