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