blob: e05b2a0b8dc4bb110a7d8bea04932aa1023a8cf8 [file] [log] [blame]
blueswir15824d652009-03-28 06:44:27 +00001HXCOMM Use DEFHEADING() to define headings in both help text and texi
2HXCOMM Text between STEXI and ETEXI are copied to texi version and
3HXCOMM discarded from C version
4HXCOMM DEF(option, HAS_ARG/0, opt_enum, opt_help) is used to construct
5HXCOMM option structures, enums and help message.
6HXCOMM HXCOMM can be used for comments, discarded from both texi and C
7
8DEFHEADING(Standard options:)
9STEXI
10@table @option
11ETEXI
12
13DEF("help", 0, QEMU_OPTION_h,
14 "-h or -help display this help and exit\n")
15STEXI
16@item -h
17Display help and exit
18ETEXI
19
pbrook9bd7e6d2009-04-07 22:58:45 +000020DEF("version", 0, QEMU_OPTION_version,
21 "-version display version information and exit\n")
22STEXI
23@item -version
24Display version information and exit
25ETEXI
26
blueswir15824d652009-03-28 06:44:27 +000027DEF("M", HAS_ARG, QEMU_OPTION_M,
28 "-M machine select emulated machine (-M ? for list)\n")
29STEXI
30@item -M @var{machine}
31Select the emulated @var{machine} (@code{-M ?} for list)
32ETEXI
33
34DEF("cpu", HAS_ARG, QEMU_OPTION_cpu,
35 "-cpu cpu select CPU (-cpu ? for list)\n")
36STEXI
37@item -cpu @var{model}
38Select CPU model (-cpu ? for list and additional feature selection)
39ETEXI
40
41DEF("smp", HAS_ARG, QEMU_OPTION_smp,
Andre Przywara58a04db2009-08-28 10:49:57 +020042 "-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]\n"
Jes Sorensen6be68d72009-07-23 17:03:42 +020043 " set the number of CPUs to 'n' [default=1]\n"
44 " maxcpus= maximum number of total cpus, including\n"
Andre Przywara58a04db2009-08-28 10:49:57 +020045 " 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")
blueswir15824d652009-03-28 06:44:27 +000049STEXI
Andre Przywara58a04db2009-08-28 10:49:57 +020050@item -smp @var{n}[,cores=@var{cores}][,threads=@var{threads}][,sockets=@var{sockets}][,maxcpus=@var{maxcpus}]
blueswir15824d652009-03-28 06:44:27 +000051Simulate 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.
Andre Przywara58a04db2009-08-28 10:49:57 +020054For 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.
blueswir15824d652009-03-28 06:44:27 +000059ETEXI
60
aliguori268a3622009-04-21 22:30:27 +000061DEF("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
blueswir15824d652009-03-28 06:44:27 +000069DEF("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"
Christoph Hellwig5c6c3a62009-08-20 16:58:35 +0200106 " [,addr=A][,id=name][,aio=threads|native]\n"
blueswir15824d652009-03-28 06:44:27 +0000107 " use 'file' as a drive image\n")
Gerd Hoffmannd058fe02009-07-31 12:25:36 +0200108DEF("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")
Gerd Hoffmannd0fef6f2009-12-08 13:11:34 +0100112DEF("global", HAS_ARG, QEMU_OPTION_global,
113 "-global driver.property=value\n"
114 " set a global default for a driver property\n")
blueswir15824d652009-03-28 06:44:27 +0000115STEXI
116@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
117
118Define a new drive. Valid options are:
119
Kevin Wolfb3f046c2009-10-09 10:58:35 +0200120@table @option
blueswir15824d652009-03-28 06:44:27 +0000121@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.
Christoph Hellwig5c6c3a62009-08-20 16:58:35 +0200142@item aio=@var{aio}
143@var{aio} is "threads", or "native" and selects between pthread based disk I/O and native Linux AIO.
blueswir15824d652009-03-28 06:44:27 +0000144@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.
Markus Armbrusterc2cc47a2009-06-18 15:14:10 +0200150@item addr=@var{addr}
151Specify the controller's PCI address (if=virtio only).
blueswir15824d652009-03-28 06:44:27 +0000152@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
Aurelien Jarnoc304d312009-05-03 23:29:14 +0200165The host page cache can be avoided entirely with @option{cache=none}. This will
blueswir15824d652009-03-28 06:44:27 +0000166attempt 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,
Kevin Wolf0aa217e2009-06-30 13:06:04 +0200171@option{cache=writeback} should be used with qcow2.
blueswir15824d652009-03-28 06:44:27 +0000172
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
Kevin Wolf4e257e52009-10-09 10:58:36 +0200223@item -mtdblock @var{file}
224Use @var{file} as on-board Flash memory image.
blueswir15824d652009-03-28 06:44:27 +0000225ETEXI
226
227DEF("sd", HAS_ARG, QEMU_OPTION_sd,
228 "-sd file use 'file' as SecureDigital card image\n")
229STEXI
Kevin Wolf4e257e52009-10-09 10:58:36 +0200230@item -sd @var{file}
231Use @var{file} as SecureDigital card image.
blueswir15824d652009-03-28 06:44:27 +0000232ETEXI
233
234DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
235 "-pflash file use 'file' as a parallel flash image\n")
236STEXI
Kevin Wolf4e257e52009-10-09 10:58:36 +0200237@item -pflash @var{file}
238Use @var{file} as a parallel flash image.
blueswir15824d652009-03-28 06:44:27 +0000239ETEXI
240
241DEF("boot", HAS_ARG, QEMU_OPTION_boot,
Jan Kiszka2221dde2009-07-02 00:19:02 +0200242 "-boot [order=drives][,once=drives][,menu=on|off]\n"
243 " 'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n")
blueswir15824d652009-03-28 06:44:27 +0000244STEXI
Jan Kiszka2221dde2009-07-02 00:19:02 +0200245@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.
blueswir15824d652009-03-28 06:44:27 +0000266ETEXI
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
blueswir15824d652009-03-28 06:44:27 +0000286DEF("k", HAS_ARG, QEMU_OPTION_k,
blueswir15c2f8d22009-03-28 08:13:56 +0000287 "-k language use keyboard layout (for example 'fr' for French)\n")
blueswir15824d652009-03-28 06:44:27 +0000288STEXI
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
Kevin Wolfb3f046c2009-10-09 10:58:35 +0200369@table @option
blueswir15824d652009-03-28 06:44:27 +0000370
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
Kevin Wolf4e257e52009-10-09 10:58:36 +0200379@item disk:[format=@var{format}]:@var{file}
blueswir15824d652009-03-28 06:44:27 +0000380Mass storage device based on file. The optional @var{format} argument
381will be used rather than detecting the format. Can be used to specifiy
Kevin Wolf4e257e52009-10-09 10:58:36 +0200382@code{format=raw} to avoid interpreting an untrusted format header.
blueswir15824d652009-03-28 06:44:27 +0000383
Kevin Wolf4e257e52009-10-09 10:58:36 +0200384@item host:@var{bus}.@var{addr}
385Pass through the host device identified by @var{bus}.@var{addr} (Linux only).
blueswir15824d652009-03-28 06:44:27 +0000386
Kevin Wolf4e257e52009-10-09 10:58:36 +0200387@item host:@var{vendor_id}:@var{product_id}
388Pass through the host device identified by @var{vendor_id}:@var{product_id}
389(Linux only).
blueswir15824d652009-03-28 06:44:27 +0000390
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
Kevin Wolf4e257e52009-10-09 10:58:36 +0200399@item net:@var{options}
blueswir15824d652009-03-28 06:44:27 +0000400Network adapter that supports CDC ethernet and RNDIS protocols.
401
402@end table
403ETEXI
404
Gerd Hoffmannbd3c9482009-07-15 13:59:26 +0200405DEF("device", HAS_ARG, QEMU_OPTION_device,
406 "-device driver[,options] add device\n")
blueswir15824d652009-03-28 06:44:27 +0000407DEF("name", HAS_ARG, QEMU_OPTION_name,
Andi Kleen18894652009-07-02 09:34:17 +0200408 "-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")
blueswir15824d652009-03-28 06:44:27 +0000410STEXI
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.
Andi Kleen18894652009-07-02 09:34:17 +0200415Also optionally set the top visible process name in Linux.
blueswir15824d652009-03-28 06:44:27 +0000416ETEXI
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
484#ifdef CONFIG_SDL
Dustin Kirkland0ca9f8a2009-09-17 15:48:04 -0500485DEF("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
494#ifdef CONFIG_SDL
blueswir15824d652009-03-28 06:44:27 +0000495DEF("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,
aliguori94909d92009-04-22 15:19:53 +0000523 "-vga [std|cirrus|vmware|xenfb|none]\n"
blueswir15824d652009-03-28 06:44:27 +0000524 " select video card type\n")
525STEXI
526@item -vga @var{type}
527Select type of VGA card to emulate. Valid values for @var{type} are
Kevin Wolfb3f046c2009-10-09 10:58:35 +0200528@table @option
blueswir15824d652009-03-28 06:44:27 +0000529@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
Kevin Wolfb3f046c2009-10-09 10:58:35 +0200575@table @option
blueswir15824d652009-03-28 06:44:27 +0000576
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
Kevin Wolf4e257e52009-10-09 10:58:36 +0200583@item unix:@var{path}
blueswir15824d652009-03-28 06:44:27 +0000584
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
Kevin Wolfb3f046c2009-10-09 10:58:35 +0200598@table @option
blueswir15824d652009-03-28 06:44:27 +0000599
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
Kevin Wolf4e257e52009-10-09 10:58:36 +0200618@option{x509} or @option{x509verify} options.
blueswir15824d652009-03-28 06:44:27 +0000619
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
Jan Kiszka1ed2fc12009-09-15 13:36:04 +0200698HXCOMM Deprecated by -rtc
699DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack, "")
blueswir15824d652009-03-28 06:44:27 +0000700#endif
blueswir15824d652009-03-28 06:44:27 +0000701
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
732#ifdef TARGET_I386
Markus Armbruster7d4c3d52009-06-26 19:15:14 +0200733DEF("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")
Eduardo Habkostdf97b922009-06-10 16:34:08 -0300737#endif
738STEXI
Markus Armbruster7d4c3d52009-06-26 19:15:14 +0200739@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}.
Eduardo Habkostdf97b922009-06-10 16:34:08 -0300744ETEXI
745
746#ifdef TARGET_I386
blueswir15824d652009-03-28 06:44:27 +0000747DEF("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
756#ifdef TARGET_I386
aliguorib6f6e3d2009-04-17 18:59:56 +0000757DEF("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
777#ifdef TARGET_I386
blueswir15824d652009-03-28 06:44:27 +0000778DEFHEADING()
779#endif
780STEXI
781@end table
782ETEXI
783
784DEFHEADING(Network options:)
785STEXI
786@table @option
787ETEXI
788
Jan Kiszkaad196a92009-06-24 14:42:28 +0200789HXCOMM 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
Blue Swirlbab79442009-06-09 21:50:02 +0300799DEF("net", HAS_ARG, QEMU_OPTION_net,
Michael S. Tsirkinffe63702009-06-21 19:51:18 +0300800 "-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]\n"
blueswir15824d652009-03-28 06:44:27 +0000801 " create a new Network Interface Card and connect it to VLAN 'n'\n"
802#ifdef CONFIG_SLIRP
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200803 "-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]"
Jan Kiszkaad196a92009-06-24 14:42:28 +0200806#ifndef _WIN32
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200807 "[,smb=dir[,smbserver=addr]]\n"
Jan Kiszkaad196a92009-06-24 14:42:28 +0200808#endif
809 " connect the user mode network stack to VLAN 'n', configure its\n"
810 " DHCP server and enabled optional services\n"
blueswir15824d652009-03-28 06:44:27 +0000811#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
Mark McLoughlinbaf74c92009-10-22 17:43:37 +0100816 "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,sndbuf=nbytes][,vnet_hdr=on|off]\n"
blueswir15824d652009-03-28 06:44:27 +0000817 " 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"
Mark McLoughlinfc5b81d2009-06-30 10:02:57 +0100822 " 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"
Mark McLoughlinbaf74c92009-10-22 17:43:37 +0100824 " 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"
Mark McLoughlin0df0ff62009-06-18 18:21:34 +0100826#endif
blueswir15824d652009-03-28 06:44:27 +0000827 "-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
aliguoribb9ea792009-04-21 19:56:28 +0000838 "-net dump[,vlan=n][,file=f][,len=n]\n"
839 " dump traffic on vlan 'n' to file 'f' (max n bytes per packet)\n"
blueswir15824d652009-03-28 06:44:27 +0000840 "-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")
Mark McLoughlina1ea4582009-10-08 19:58:26 +0100842DEF("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")
blueswir15824d652009-03-28 06:44:27 +0000852STEXI
Michael S. Tsirkinffe63702009-06-21 19:51:18 +0300853@item -net nic[,vlan=@var{n}][,macaddr=@var{mac}][,model=@var{type}][,name=@var{name}][,addr=@var{addr}][,vectors=@var{v}]
blueswir15824d652009-03-28 06:44:27 +0000854Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
Anthony Liguori0d6b0b12009-08-14 11:20:47 -0500855= 0 is the default). The NIC is an e1000 by default on the PC
Markus Armbruster5607c382009-06-18 15:14:08 +0200856target. Optionally, the MAC address can be changed to @var{mac}, the
857device address set to @var{addr} (PCI cards only),
Michael S. Tsirkinffe63702009-06-21 19:51:18 +0300858and 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.
blueswir15824d652009-03-28 06:44:27 +0000863Valid values for @var{type} are
Michael S. Tsirkinffe63702009-06-21 19:51:18 +0300864@code{virtio}, @code{i82551}, @code{i82557b}, @code{i82559er},
blueswir15824d652009-03-28 06:44:27 +0000865@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
Jan Kiszkaad196a92009-06-24 14:42:28 +0200870@item -net user[,@var{option}][,@var{option}][,...]
blueswir15824d652009-03-28 06:44:27 +0000871Use the user mode network stack which requires no administrator
Jan Kiszkaad196a92009-06-24 14:42:28 +0200872privilege to run. Valid options are:
blueswir15824d652009-03-28 06:44:27 +0000873
Kevin Wolfb3f046c2009-10-09 10:58:35 +0200874@table @option
Jan Kiszkaad196a92009-06-24 14:42:28 +0200875@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
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200881@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.
Jan Kiszkaad196a92009-06-24 14:42:28 +0200889
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
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200898@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
Jan Kiszkaad196a92009-06-24 14:42:28 +0200907@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
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200911@code{bin} of the Unix TFTP client).
Jan Kiszkaad196a92009-06-24 14:42:28 +0200912
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
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200923@item smb=@var{dir}[,smbserver=@var{addr}]
Jan Kiszkaad196a92009-06-24 14:42:28 +0200924When 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}}
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200926transparently. 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.
Jan Kiszkaad196a92009-06-24 14:42:28 +0200928
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
Jan Kiszka3c6a0582009-06-24 14:42:28 +0200942@item hostfwd=[tcp|udp]:[@var{hostaddr}]:@var{hostport}-[@var{guestaddr}]:@var{guestport}
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200943Redirect 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
Jan Kiszka3c6a0582009-06-24 14:42:28 +0200946given 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
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200948used. This option can be given multiple times.
Jan Kiszkaad196a92009-06-24 14:42:28 +0200949
950For example, to redirect host X11 connection from screen 1 to guest
951screen 0, use the following:
952
953@example
954# on the host
Jan Kiszka3c6a0582009-06-24 14:42:28 +0200955qemu -net user,hostfwd=tcp:127.0.0.1:6001-:6000 [...]
Jan Kiszkaad196a92009-06-24 14:42:28 +0200956# 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
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200965qemu -net user,hostfwd=tcp:5555::23 [...]
Jan Kiszkaad196a92009-06-24 14:42:28 +0200966telnet localhost 5555
967@end example
968
969Then when you use on the host @code{telnet localhost 5555}, you
970connect to the guest telnet server.
971
Jan Kiszkac92ef6a2009-06-24 14:42:28 +0200972@item guestfwd=[tcp]:@var{server}:@var{port}-@var{dev}
Jan Kiszka3c6a0582009-06-24 14:42:28 +0200973Forward 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.
Jan Kiszkaad196a92009-06-24 14:42:28 +0200975
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.
blueswir15824d652009-03-28 06:44:27 +0000982
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
aliguoribb9ea792009-04-21 19:56:28 +00001078@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
blueswir15824d652009-03-28 06:44:27 +00001083@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.
blueswir15824d652009-03-28 06:44:27 +00001087
1088@end table
1089ETEXI
1090
Matthew Booth7273a2d2009-10-30 13:41:12 +00001091DEFHEADING()
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
blueswir15824d652009-03-28 06:44:27 +00001321DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
blueswir15824d652009-03-28 06:44:27 +00001322 "-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
blueswir15824d652009-03-28 06:44:27 +00001332@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
Kevin Wolfb3f046c2009-10-09 10:58:35 +02001346@table @option
blueswir15824d652009-03-28 06:44:27 +00001347@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
Kevin Wolfb3f046c2009-10-09 10:58:35 +02001380@table @option
blueswir15824d652009-03-28 06:44:27 +00001381@item keyboard
1382Virtual wireless keyboard implementing the HIDP bluetooth profile.
1383@end table
1384@end table
1385ETEXI
1386
1387DEFHEADING()
1388
Alexander Graf7677f052009-06-28 16:55:55 +02001389DEFHEADING(Linux/Multiboot boot specific:)
blueswir15824d652009-03-28 06:44:27 +00001390STEXI
Alexander Graf7677f052009-06-28 16:55:55 +02001391
1392When using these options, you can use a given Linux or Multiboot
1393kernel without installing it in the disk image. It can be useful
blueswir15824d652009-03-28 06:44:27 +00001394for 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}
Alexander Graf7677f052009-06-28 16:55:55 +02001403Use @var{bzImage} as kernel image. The kernel can be either a Linux kernel
1404or in multiboot format.
blueswir15824d652009-03-28 06:44:27 +00001405ETEXI
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.
Alexander Graf7677f052009-06-28 16:55:55 +02001419
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.
blueswir15824d652009-03-28 06:44:27 +00001426ETEXI
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:
Kevin Wolfb3f046c2009-10-09 10:58:35 +02001454@table @option
Kevin Wolf4e257e52009-10-09 10:58:36 +02001455@item vc[:@var{W}x@var{H}]
blueswir15824d652009-03-28 06:44:27 +00001456Virtual 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.
blueswir15824d652009-03-28 06:44:27 +00001489
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
Kevin Wolfbe8b28a2009-10-09 10:58:37 +02001562@item msmouse
1563Three button serial mouse. Configure the guest to use Microsoft protocol.
blueswir15824d652009-03-28 06:44:27 +00001564@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, \
Gerd Hoffmann4e307fc2009-12-08 13:11:37 +01001583 "-monitor dev redirect the monitor to char device 'dev'\n")
blueswir15824d652009-03-28 06:44:27 +00001584STEXI
Gerd Hoffmann4e307fc2009-12-08 13:11:37 +01001585@item -monitor @var{dev}
blueswir15824d652009-03-28 06:44:27 +00001586Redirect 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
1591
1592DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
1593 "-pidfile file write PID to 'file'\n")
1594STEXI
1595@item -pidfile @var{file}
1596Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
1597from a script.
1598ETEXI
1599
aurel321b530a62009-04-05 20:08:59 +00001600DEF("singlestep", 0, QEMU_OPTION_singlestep, \
1601 "-singlestep always run in singlestep mode\n")
1602STEXI
1603@item -singlestep
1604Run the emulation in single step mode.
1605ETEXI
1606
blueswir15824d652009-03-28 06:44:27 +00001607DEF("S", 0, QEMU_OPTION_S, \
1608 "-S freeze CPU at startup (use 'c' to start execution)\n")
1609STEXI
1610@item -S
1611Do not start CPU at startup (you must type 'c' in the monitor).
1612ETEXI
1613
aliguori59030a82009-04-05 18:43:41 +00001614DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
1615 "-gdb dev wait for gdb connection on 'dev'\n")
blueswir15824d652009-03-28 06:44:27 +00001616STEXI
aliguori59030a82009-04-05 18:43:41 +00001617@item -gdb @var{dev}
1618Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
1619connections will likely be TCP-based, but also UDP, pseudo TTY, or even
1620stdio are reasonable use case. The latter is allowing to start qemu from
1621within gdb and establish the connection via a pipe:
1622@example
1623(gdb) target remote | exec qemu -gdb stdio ...
1624@end example
blueswir15824d652009-03-28 06:44:27 +00001625ETEXI
1626
aliguori59030a82009-04-05 18:43:41 +00001627DEF("s", 0, QEMU_OPTION_s, \
1628 "-s shorthand for -gdb tcp::%s\n")
blueswir15824d652009-03-28 06:44:27 +00001629STEXI
aliguori59030a82009-04-05 18:43:41 +00001630@item -s
1631Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
1632(@pxref{gdb_usage}).
blueswir15824d652009-03-28 06:44:27 +00001633ETEXI
1634
1635DEF("d", HAS_ARG, QEMU_OPTION_d, \
1636 "-d item1,... output log to %s (use -d ? for a list of log items)\n")
1637STEXI
1638@item -d
1639Output log in /tmp/qemu.log
1640ETEXI
1641
1642DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
1643 "-hdachs c,h,s[,t]\n" \
1644 " force hard disk 0 physical geometry and the optional BIOS\n" \
1645 " translation (t=none or lba) (usually qemu can guess them)\n")
1646STEXI
1647@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
1648Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
1649@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
1650translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
1651all those parameters. This option is useful for old MS-DOS disk
1652images.
1653ETEXI
1654
1655DEF("L", HAS_ARG, QEMU_OPTION_L, \
1656 "-L path set the directory for the BIOS, VGA BIOS and keymaps\n")
1657STEXI
1658@item -L @var{path}
1659Set the directory for the BIOS, VGA BIOS and keymaps.
1660ETEXI
1661
1662DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
1663 "-bios file set the filename for the BIOS\n")
1664STEXI
1665@item -bios @var{file}
1666Set the filename for the BIOS.
1667ETEXI
1668
blueswir15824d652009-03-28 06:44:27 +00001669#ifdef CONFIG_KVM
1670DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
1671 "-enable-kvm enable KVM full virtualization support\n")
1672#endif
1673STEXI
1674@item -enable-kvm
1675Enable KVM full virtualization support. This option is only available
1676if KVM support is enabled when compiling.
1677ETEXI
1678
aliguorie37630c2009-04-22 15:19:10 +00001679#ifdef CONFIG_XEN
1680DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
1681 "-xen-domid id specify xen guest domain id\n")
1682DEF("xen-create", 0, QEMU_OPTION_xen_create,
1683 "-xen-create create domain using xen hypercalls, bypassing xend\n"
1684 " warning: should not be used when xend is in use\n")
1685DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
1686 "-xen-attach attach to existing xen domain\n"
1687 " xend will use this when starting qemu\n")
1688#endif
1689
blueswir15824d652009-03-28 06:44:27 +00001690DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
1691 "-no-reboot exit instead of rebooting\n")
1692STEXI
1693@item -no-reboot
1694Exit instead of rebooting.
1695ETEXI
1696
1697DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
1698 "-no-shutdown stop before shutdown\n")
1699STEXI
1700@item -no-shutdown
1701Don't exit QEMU on guest shutdown, but instead only stop the emulation.
1702This allows for instance switching to monitor to commit changes to the
1703disk image.
1704ETEXI
1705
1706DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
1707 "-loadvm [tag|id]\n" \
1708 " start right away with a saved state (loadvm in monitor)\n")
1709STEXI
1710@item -loadvm @var{file}
1711Start right away with a saved state (@code{loadvm} in monitor)
1712ETEXI
1713
1714#ifndef _WIN32
1715DEF("daemonize", 0, QEMU_OPTION_daemonize, \
1716 "-daemonize daemonize QEMU after initializing\n")
1717#endif
1718STEXI
1719@item -daemonize
1720Daemonize the QEMU process after initialization. QEMU will not detach from
1721standard IO until it is ready to receive connections on any of its devices.
1722This option is a useful way for external programs to launch QEMU without having
1723to cope with initialization race conditions.
1724ETEXI
1725
1726DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
1727 "-option-rom rom load a file, rom, into the option ROM space\n")
1728STEXI
1729@item -option-rom @var{file}
1730Load the contents of @var{file} as an option ROM.
1731This option is useful to load things like EtherBoot.
1732ETEXI
1733
1734DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
1735 "-clock force the use of the given methods for timer alarm.\n" \
1736 " To see what timers are available use -clock ?\n")
1737STEXI
1738@item -clock @var{method}
1739Force the use of the given methods for timer alarm. To see what timers
1740are available use -clock ?.
1741ETEXI
1742
Jan Kiszka1ed2fc12009-09-15 13:36:04 +02001743HXCOMM Options deprecated by -rtc
1744DEF("localtime", 0, QEMU_OPTION_localtime, "")
1745DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, "")
blueswir15824d652009-03-28 06:44:27 +00001746
Jan Kiszka1ed2fc12009-09-15 13:36:04 +02001747#ifdef TARGET_I386
1748DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
Jan Kiszka68752042009-09-15 13:36:04 +02001749 "-rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew]\n" \
1750 " set the RTC base and clock, enable drift fix for clock ticks\n")
Jan Kiszka1ed2fc12009-09-15 13:36:04 +02001751#else
1752DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
Jan Kiszka68752042009-09-15 13:36:04 +02001753 "-rtc [base=utc|localtime|date][,clock=host|vm]\n" \
Jan Kiszka1ed2fc12009-09-15 13:36:04 +02001754 " set the RTC base and clock\n")
1755#endif
1756
blueswir15824d652009-03-28 06:44:27 +00001757STEXI
1758
Jan Kiszka68752042009-09-15 13:36:04 +02001759@item -rtc [base=utc|localtime|@var{date}][,clock=host|vm][,driftfix=none|slew]
Jan Kiszka1ed2fc12009-09-15 13:36:04 +02001760Specify @option{base} as @code{utc} or @code{localtime} to let the RTC start at the current
1761UTC or local time, respectively. @code{localtime} is required for correct date in
1762MS-DOS or Windows. To start at a specific point in time, provide @var{date} in the
1763format @code{2006-06-17T16:01:21} or @code{2006-06-17}. The default base is UTC.
1764
Jan Kiszka68752042009-09-15 13:36:04 +02001765By default the RTC is driven by the host system time. This allows to use the
1766RTC as accurate reference clock inside the guest, specifically if the host
1767time is smoothly following an accurate external reference clock, e.g. via NTP.
1768If you want to isolate the guest time from the host, even prevent it from
1769progressing during suspension, you can set @option{clock} to @code{vm} instead.
1770
Jan Kiszka1ed2fc12009-09-15 13:36:04 +02001771Enable @option{driftfix} (i386 targets only) if you experience time drift problems,
1772specifically with Windows' ACPI HAL. This option will try to figure out how
1773many timer interrupts were not processed by the Windows guest and will
1774re-inject them.
blueswir15824d652009-03-28 06:44:27 +00001775ETEXI
1776
1777DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
1778 "-icount [N|auto]\n" \
aliguoribc14ca22009-04-05 18:43:37 +00001779 " enable virtual instruction counter with 2^N clock ticks per\n" \
1780 " instruction\n")
blueswir15824d652009-03-28 06:44:27 +00001781STEXI
Kevin Wolf4e257e52009-10-09 10:58:36 +02001782@item -icount [@var{N}|auto]
blueswir15824d652009-03-28 06:44:27 +00001783Enable virtual instruction counter. The virtual cpu will execute one
Kevin Wolf4e257e52009-10-09 10:58:36 +02001784instruction every 2^@var{N} ns of virtual time. If @code{auto} is specified
blueswir15824d652009-03-28 06:44:27 +00001785then the virtual cpu speed will be automatically adjusted to keep virtual
1786time within a few seconds of real time.
1787
1788Note that while this option can give deterministic behavior, it does not
1789provide cycle accurate emulation. Modern CPUs contain superscalar out of
1790order cores with complex cache hierarchies. The number of instructions
1791executed often has little or no correlation with actual performance.
1792ETEXI
1793
Richard W.M. Jones9dd986c2009-04-25 13:56:19 +01001794DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
1795 "-watchdog i6300esb|ib700\n" \
1796 " enable virtual hardware watchdog [default=none]\n")
1797STEXI
1798@item -watchdog @var{model}
1799Create a virtual hardware watchdog device. Once enabled (by a guest
1800action), the watchdog must be periodically polled by an agent inside
1801the guest or else the guest will be restarted.
1802
1803The @var{model} is the model of hardware watchdog to emulate. Choices
1804for model are: @code{ib700} (iBASE 700) which is a very simple ISA
1805watchdog with a single timer, or @code{i6300esb} (Intel 6300ESB I/O
1806controller hub) which is a much more featureful PCI-based dual-timer
1807watchdog. Choose a model for which your guest has drivers.
1808
1809Use @code{-watchdog ?} to list available hardware models. Only one
1810watchdog can be enabled for a guest.
1811ETEXI
1812
1813DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
1814 "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
1815 " action when watchdog fires [default=reset]\n")
1816STEXI
1817@item -watchdog-action @var{action}
1818
1819The @var{action} controls what QEMU will do when the watchdog timer
1820expires.
1821The default is
1822@code{reset} (forcefully reset the guest).
1823Other possible actions are:
1824@code{shutdown} (attempt to gracefully shutdown the guest),
1825@code{poweroff} (forcefully poweroff the guest),
1826@code{pause} (pause the guest),
1827@code{debug} (print a debug message and continue), or
1828@code{none} (do nothing).
1829
1830Note that the @code{shutdown} action requires that the guest responds
1831to ACPI signals, which it may not be able to do in the sort of
1832situations where the watchdog would have expired, and thus
1833@code{-watchdog-action shutdown} is not recommended for production use.
1834
1835Examples:
1836
1837@table @code
1838@item -watchdog i6300esb -watchdog-action pause
1839@item -watchdog ib700
1840@end table
1841ETEXI
1842
blueswir15824d652009-03-28 06:44:27 +00001843DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
1844 "-echr chr set terminal escape character instead of ctrl-a\n")
1845STEXI
1846
Kevin Wolf4e257e52009-10-09 10:58:36 +02001847@item -echr @var{numeric_ascii_value}
blueswir15824d652009-03-28 06:44:27 +00001848Change the escape character used for switching to the monitor when using
1849monitor and serial sharing. The default is @code{0x01} when using the
1850@code{-nographic} option. @code{0x01} is equal to pressing
1851@code{Control-a}. You can select a different character from the ascii
1852control keys where 1 through 26 map to Control-a through Control-z. For
1853instance you could use the either of the following to change the escape
1854character to Control-t.
1855@table @code
1856@item -echr 0x14
1857@item -echr 20
1858@end table
1859ETEXI
1860
1861DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
1862 "-virtioconsole c\n" \
1863 " set virtio console\n")
1864STEXI
1865@item -virtioconsole @var{c}
1866Set virtio console.
1867ETEXI
1868
1869DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
1870 "-show-cursor show cursor\n")
1871STEXI
1872ETEXI
1873
1874DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
1875 "-tb-size n set TB size\n")
1876STEXI
1877ETEXI
1878
1879DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
1880 "-incoming p prepare for incoming migration, listen on port p\n")
1881STEXI
1882ETEXI
1883
Gerd Hoffmannd8c208d2009-12-08 13:11:46 +01001884DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \
1885 "-nodefaults don't create default devices.\n")
1886STEXI
1887ETEXI
1888
blueswir15824d652009-03-28 06:44:27 +00001889#ifndef _WIN32
1890DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
1891 "-chroot dir Chroot to dir just before starting the VM.\n")
1892#endif
1893STEXI
Kevin Wolf4e257e52009-10-09 10:58:36 +02001894@item -chroot @var{dir}
blueswir15824d652009-03-28 06:44:27 +00001895Immediately before starting guest execution, chroot to the specified
1896directory. Especially useful in combination with -runas.
1897ETEXI
1898
1899#ifndef _WIN32
1900DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
1901 "-runas user Change to user id user just before starting the VM.\n")
1902#endif
1903STEXI
Kevin Wolf4e257e52009-10-09 10:58:36 +02001904@item -runas @var{user}
blueswir15824d652009-03-28 06:44:27 +00001905Immediately before starting guest execution, drop root privileges, switching
1906to the specified user.
1907ETEXI
1908
1909STEXI
1910@end table
1911ETEXI
1912
1913#if defined(TARGET_SPARC) || defined(TARGET_PPC)
1914DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
1915 "-prom-env variable=value\n"
1916 " set OpenBIOS nvram variables\n")
1917#endif
1918#if defined(TARGET_ARM) || defined(TARGET_M68K)
1919DEF("semihosting", 0, QEMU_OPTION_semihosting,
1920 "-semihosting semihosting mode\n")
1921#endif
1922#if defined(TARGET_ARM)
1923DEF("old-param", 0, QEMU_OPTION_old_param,
1924 "-old-param old param mode\n")
1925#endif
Gerd Hoffmann715a6642009-10-14 10:39:28 +02001926DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
1927 "-readconfig <file>\n")
1928DEF("writeconfig", HAS_ARG, QEMU_OPTION_writeconfig,
1929 "-writeconfig <file>\n"
1930 " read/write config file")