1QEMU(1) QEMU(1)
2
3
4
6 qemu-doc - QEMU Emulator User Documentation
7
9 usage: qemu-kvm [options] [disk_image]
10
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
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
2249 The HTML documentation of QEMU for more precise information and Linux
2250 user mode emulator invocation.
2251
2253 Fabrice Bellard
2254
2255
2256
2257 2019-05-14 QEMU(1)