1QEMU(1)                                                                QEMU(1)
2
3
4

NAME

6       qemu-doc - QEMU Emulator User Documentation
7

SYNOPSIS

9       usage: qemu-kvm [options] [disk_image]
10

DESCRIPTION

12       The QEMU PC System emulator simulates the following peripherals:
13
14       -   i440FX host PCI bridge and PIIX3 PCI to ISA bridge
15
16       -   Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA
17           extensions (hardware level, including all non standard modes).
18
19       -   PS/2 mouse and keyboard
20
21       -   2 PCI IDE interfaces with hard disk and CD-ROM support
22
23       -   Floppy disk
24
25       -   PCI and ISA network adapters
26
27       -   Serial ports
28
29       -   Creative SoundBlaster 16 sound card
30
31       -   ENSONIQ AudioPCI ES1370 sound card
32
33       -   Intel 82801AA AC97 Audio compatible sound card
34
35       -   Intel HD Audio Controller and HDA codec
36
37       -   Adlib (OPL2) - Yamaha YM3812 compatible chip
38
39       -   Gravis Ultrasound GF1 sound card
40
41       -   CS4231A compatible sound card
42
43       -   PCI UHCI USB controller and a virtual USB hub.
44
45       SMP is supported with up to 255 CPUs.
46
47       QEMU uses the PC BIOS from the Bochs project and the Plex86/Bochs LGPL
48       VGA BIOS.
49
50       QEMU uses YM3812 emulation by Tatsuyuki Satoh.
51
52       QEMU uses GUS emulation (GUSEMU32 <http://www.deinmeister.de/gusemu/>)
53       by Tibor "TS" Schütz.
54
55       Note that, by default, GUS shares IRQ(7) with parallel ports and so
56       QEMU must be told to not have parallel ports to have working GUS.
57
58               qemu-kvm dos.img -soundhw gus -parallel none
59
60       Alternatively:
61
62               qemu-kvm dos.img -device gus,irq=5
63
64       Or some other unclaimed IRQ.
65
66       CS4231A is the chip used in Windows Sound System and GUSMAX products
67

OPTIONS

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

SEE ALSO

2249       The HTML documentation of QEMU for more precise information and Linux
2250       user mode emulator invocation.
2251

AUTHOR

2253       Fabrice Bellard
2254
2255
2256
2257                                  2019-05-14                           QEMU(1)
Impressum