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