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