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