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