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