Commit 5824d65122347c0dd06074eeb42a51f0643729cb

Authored by blueswir1
1 parent 649c9078

Syncing documentation vs. -help vs. qemu_options table

Try to keep documentation about command line switches, -help text and
qemu_options table synchronized. 

In true Qemu tradition, an include file is generated from single .hx file
containing all relevant information in one place. The include file is
parsed once for getting the enums, another time for getopt tables and
hird time for help messages. Texi documentation for the options is
generated from the same .hx file.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6884 c046a42c-6fe2-441c-8c8c-71466251a162
Makefile
@@ -283,13 +283,16 @@ cscope: @@ -283,13 +283,16 @@ cscope:
283 283
284 # documentation 284 # documentation
285 %.html: %.texi 285 %.html: %.texi
286 - texi2html -monolithic -number $< 286 + texi2html -I=. -monolithic -number $<
287 287
288 %.info: %.texi 288 %.info: %.texi
289 - makeinfo $< -o $@ 289 + makeinfo -I . $< -o $@
290 290
291 %.dvi: %.texi 291 %.dvi: %.texi
292 - texi2dvi $< 292 + texi2dvi -I . $<
  293 +
  294 +qemu-options.texi: $(SRC_PATH)/qemu-options.hx
  295 + sh ./hxtool -t < $< > $@
293 296
294 qemu.1: qemu-doc.texi 297 qemu.1: qemu-doc.texi
295 perl -Ww -- $(SRC_PATH)/texi2pod.pl $< qemu.pod 298 perl -Ww -- $(SRC_PATH)/texi2pod.pl $< qemu.pod
@@ -309,7 +312,7 @@ dvi: qemu-doc.dvi qemu-tech.dvi @@ -309,7 +312,7 @@ dvi: qemu-doc.dvi qemu-tech.dvi
309 312
310 html: qemu-doc.html qemu-tech.html 313 html: qemu-doc.html qemu-tech.html
311 314
312 -qemu-doc.dvi qemu-doc.html qemu-doc.info: qemu-img.texi qemu-nbd.texi 315 +qemu-doc.dvi qemu-doc.html qemu-doc.info: qemu-img.texi qemu-nbd.texi qemu-options.texi
313 316
314 VERSION ?= $(shell cat VERSION) 317 VERSION ?= $(shell cat VERSION)
315 FILE = qemu-$(VERSION) 318 FILE = qemu-$(VERSION)
Makefile.target
@@ -729,6 +729,8 @@ LDFLAGS+=-p @@ -729,6 +729,8 @@ LDFLAGS+=-p
729 main.o: CFLAGS+=-p 729 main.o: CFLAGS+=-p
730 endif 730 endif
731 731
  732 +vl.o: qemu-options.h
  733 +
732 $(QEMU_PROG): LIBS += $(SDL_LIBS) $(COCOA_LIBS) $(CURSES_LIBS) $(BRLAPI_LIBS) $(VDE_LIBS) 734 $(QEMU_PROG): LIBS += $(SDL_LIBS) $(COCOA_LIBS) $(CURSES_LIBS) $(BRLAPI_LIBS) $(VDE_LIBS)
733 735
734 $(QEMU_PROG): $(OBJS) ../libqemu_common.a libqemu.a 736 $(QEMU_PROG): $(OBJS) ../libqemu_common.a libqemu.a
@@ -744,8 +746,11 @@ else @@ -744,8 +746,11 @@ else
744 $(SHELL) $(SRC_PATH)/feature_to_c.sh $@ $(TARGET_XML_FILES) 746 $(SHELL) $(SRC_PATH)/feature_to_c.sh $@ $(TARGET_XML_FILES)
745 endif 747 endif
746 748
  749 +qemu-options.h: $(SRC_PATH)/qemu-options.hx
  750 + sh ../hxtool -h < $< > $@
  751 +
747 clean: 752 clean:
748 - rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o 753 + rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o qemu-options.h
749 rm -f *.d */*.d tcg/*.o 754 rm -f *.d */*.d tcg/*.o
750 755
751 install: all 756 install: all
hxtool 0 → 100644
  1 +#!/bin/sh
  2 +
  3 +hxtoh()
  4 +{
  5 + flag=1
  6 + while read str; do
  7 + case $str in
  8 + HXCOMM*)
  9 + ;;
  10 + STEXI*|ETEXI*) flag=$(($flag^1))
  11 + ;;
  12 + *)
  13 + test $flag -eq 1 && echo $str
  14 + ;;
  15 + esac
  16 + done
  17 +}
  18 +
  19 +hxtotexi()
  20 +{
  21 + flag=0
  22 + while read str; do
  23 + case "$str" in
  24 + HXCOMM*)
  25 + ;;
  26 + STEXI*|ETEXI*) flag=$(($flag^1))
  27 + ;;
  28 + DEFHEADING*)
  29 + echo $(expr "$str" : "DEFHEADING(\(.*\))")
  30 + ;;
  31 + *)
  32 + test $flag -eq 1 && echo $str
  33 + ;;
  34 + esac
  35 + done
  36 +}
  37 +
  38 +case "$1" in
  39 +"-h") hxtoh ;;
  40 +"-t") hxtotexi ;;
  41 +*) exit 1 ;;
  42 +esac
qemu-doc.texi
@@ -224,980 +224,7 @@ usage: qemu [options] [@var{disk_image}] @@ -224,980 +224,7 @@ usage: qemu [options] [@var{disk_image}]
224 @var{disk_image} is a raw hard disk image for IDE hard disk 0. Some 224 @var{disk_image} is a raw hard disk image for IDE hard disk 0. Some
225 targets do not need a disk image. 225 targets do not need a disk image.
226 226
227 -General options:  
228 -@table @option  
229 -@item -h  
230 -Display help and exit  
231 -  
232 -@item -M @var{machine}  
233 -Select the emulated @var{machine} (@code{-M ?} for list)  
234 -  
235 -@item -cpu @var{model}  
236 -Select CPU model (-cpu ? for list and additional feature selection)  
237 -  
238 -@item -smp @var{n}  
239 -Simulate an SMP system with @var{n} CPUs. On the PC target, up to 255  
240 -CPUs are supported. On Sparc32 target, Linux limits the number of usable CPUs  
241 -to 4.  
242 -  
243 -@item -fda @var{file}  
244 -@item -fdb @var{file}  
245 -Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can  
246 -use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).  
247 -  
248 -@item -hda @var{file}  
249 -@item -hdb @var{file}  
250 -@item -hdc @var{file}  
251 -@item -hdd @var{file}  
252 -Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).  
253 -  
254 -@item -cdrom @var{file}  
255 -Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and  
256 -@option{-cdrom} at the same time). You can use the host CD-ROM by  
257 -using @file{/dev/cdrom} as filename (@pxref{host_drives}).  
258 -  
259 -@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]  
260 -  
261 -Define a new drive. Valid options are:  
262 -  
263 -@table @code  
264 -@item file=@var{file}  
265 -This option defines which disk image (@pxref{disk_images}) to use with  
266 -this drive. If the filename contains comma, you must double it  
267 -(for instance, "file=my,,file" to use file "my,file").  
268 -@item if=@var{interface}  
269 -This option defines on which type on interface the drive is connected.  
270 -Available types are: ide, scsi, sd, mtd, floppy, pflash, virtio.  
271 -@item bus=@var{bus},unit=@var{unit}  
272 -These options define where is connected the drive by defining the bus number and  
273 -the unit id.  
274 -@item index=@var{index}  
275 -This option defines where is connected the drive by using an index in the list  
276 -of available connectors of a given interface type.  
277 -@item media=@var{media}  
278 -This option defines the type of the media: disk or cdrom.  
279 -@item cyls=@var{c},heads=@var{h},secs=@var{s}[,trans=@var{t}]  
280 -These options have the same definition as they have in @option{-hdachs}.  
281 -@item snapshot=@var{snapshot}  
282 -@var{snapshot} is "on" or "off" and allows to enable snapshot for given drive (see @option{-snapshot}).  
283 -@item cache=@var{cache}  
284 -@var{cache} is "none", "writeback", or "writethrough" and controls how the host cache is used to access block data.  
285 -@item format=@var{format}  
286 -Specify which disk @var{format} will be used rather than detecting  
287 -the format. Can be used to specifiy format=raw to avoid interpreting  
288 -an untrusted format header.  
289 -@item serial=@var{serial}  
290 -This option specifies the serial number to assign to the device.  
291 -@end table  
292 -  
293 -By default, writethrough caching is used for all block device. This means that  
294 -the host page cache will be used to read and write data but write notification  
295 -will be sent to the guest only when the data has been reported as written by  
296 -the storage subsystem.  
297 -  
298 -Writeback caching will report data writes as completed as soon as the data is  
299 -present in the host page cache. This is safe as long as you trust your host.  
300 -If your host crashes or loses power, then the guest may experience data  
301 -corruption. When using the @option{-snapshot} option, writeback caching is  
302 -used by default.  
303 -  
304 -The host page can be avoided entirely with @option{cache=none}. This will  
305 -attempt to do disk IO directly to the guests memory. QEMU may still perform  
306 -an internal copy of the data.  
307 -  
308 -Some block drivers perform badly with @option{cache=writethrough}, most notably,  
309 -qcow2. If performance is more important than correctness,  
310 -@option{cache=writeback} should be used with qcow2. By default, if no explicit  
311 -caching is specified for a qcow2 disk image, @option{cache=writeback} will be  
312 -used. For all other disk types, @option{cache=writethrough} is the default.  
313 -  
314 -Instead of @option{-cdrom} you can use:  
315 -@example  
316 -qemu -drive file=file,index=2,media=cdrom  
317 -@end example  
318 -  
319 -Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can  
320 -use:  
321 -@example  
322 -qemu -drive file=file,index=0,media=disk  
323 -qemu -drive file=file,index=1,media=disk  
324 -qemu -drive file=file,index=2,media=disk  
325 -qemu -drive file=file,index=3,media=disk  
326 -@end example  
327 -  
328 -You can connect a CDROM to the slave of ide0:  
329 -@example  
330 -qemu -drive file=file,if=ide,index=1,media=cdrom  
331 -@end example  
332 -  
333 -If you don't specify the "file=" argument, you define an empty drive:  
334 -@example  
335 -qemu -drive if=ide,index=1,media=cdrom  
336 -@end example  
337 -  
338 -You can connect a SCSI disk with unit ID 6 on the bus #0:  
339 -@example  
340 -qemu -drive file=file,if=scsi,bus=0,unit=6  
341 -@end example  
342 -  
343 -Instead of @option{-fda}, @option{-fdb}, you can use:  
344 -@example  
345 -qemu -drive file=file,index=0,if=floppy  
346 -qemu -drive file=file,index=1,if=floppy  
347 -@end example  
348 -  
349 -By default, @var{interface} is "ide" and @var{index} is automatically  
350 -incremented:  
351 -@example  
352 -qemu -drive file=a -drive file=b"  
353 -@end example  
354 -is interpreted like:  
355 -@example  
356 -qemu -hda a -hdb b  
357 -@end example  
358 -  
359 -@item -mtdblock file  
360 -Use 'file' as on-board Flash memory image.  
361 -  
362 -@item -sd file  
363 -Use 'file' as SecureDigital card image.  
364 -  
365 -@item -pflash file  
366 -Use 'file' as a parallel flash image.  
367 -  
368 -@item -boot [a|c|d|n]  
369 -Boot on floppy (a), hard disk (c), CD-ROM (d), or Etherboot (n). Hard disk boot  
370 -is the default.  
371 -  
372 -@item -snapshot  
373 -Write to temporary files instead of disk image files. In this case,  
374 -the raw disk image you use is not written back. You can however force  
375 -the write back by pressing @key{C-a s} (@pxref{disk_images}).  
376 -  
377 -@item -m @var{megs}  
378 -Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB. Optionally,  
379 -a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or  
380 -gigabytes respectively.  
381 -  
382 -@item -k @var{language}  
383 -  
384 -Use keyboard layout @var{language} (for example @code{fr} for  
385 -French). This option is only needed where it is not easy to get raw PC  
386 -keycodes (e.g. on Macs, with some X11 servers or with a VNC  
387 -display). You don't normally need to use it on PC/Linux or PC/Windows  
388 -hosts.  
389 -  
390 -The available layouts are:  
391 -@example  
392 -ar de-ch es fo fr-ca hu ja mk no pt-br sv  
393 -da en-gb et fr fr-ch is lt nl pl ru th  
394 -de en-us fi fr-be hr it lv nl-be pt sl tr  
395 -@end example  
396 -  
397 -The default is @code{en-us}.  
398 -  
399 -@item -audio-help  
400 -  
401 -Will show the audio subsystem help: list of drivers, tunable  
402 -parameters.  
403 -  
404 -@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all  
405 -  
406 -Enable audio and selected sound hardware. Use ? to print all  
407 -available sound hardware.  
408 -  
409 -@example  
410 -qemu -soundhw sb16,adlib disk.img  
411 -qemu -soundhw es1370 disk.img  
412 -qemu -soundhw ac97 disk.img  
413 -qemu -soundhw all disk.img  
414 -qemu -soundhw ?  
415 -@end example  
416 -  
417 -Note that Linux's i810_audio OSS kernel (for AC97) module might  
418 -require manually specifying clocking.  
419 -  
420 -@example  
421 -modprobe i810_audio clocking=48000  
422 -@end example  
423 -  
424 -@end table  
425 -  
426 -USB options:  
427 -@table @option  
428 -  
429 -@item -usb  
430 -Enable the USB driver (will be the default soon)  
431 -  
432 -@item -usbdevice @var{devname}  
433 -Add the USB device @var{devname}. @xref{usb_devices}.  
434 -  
435 -@table @code  
436 -  
437 -@item mouse  
438 -Virtual Mouse. This will override the PS/2 mouse emulation when activated.  
439 -  
440 -@item tablet  
441 -Pointer device that uses absolute coordinates (like a touchscreen). This  
442 -means qemu is able to report the mouse position without having to grab the  
443 -mouse. Also overrides the PS/2 mouse emulation when activated.  
444 -  
445 -@item disk:[format=@var{format}]:file  
446 -Mass storage device based on file. The optional @var{format} argument  
447 -will be used rather than detecting the format. Can be used to specifiy  
448 -format=raw to avoid interpreting an untrusted format header.  
449 -  
450 -@item host:bus.addr  
451 -Pass through the host device identified by bus.addr (Linux only).  
452 -  
453 -@item host:vendor_id:product_id  
454 -Pass through the host device identified by vendor_id:product_id (Linux only).  
455 -  
456 -@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}  
457 -Serial converter to host character device @var{dev}, see @code{-serial} for the  
458 -available devices.  
459 -  
460 -@item braille  
461 -Braille device. This will use BrlAPI to display the braille output on a real  
462 -or fake device.  
463 -  
464 -@item net:options  
465 -Network adapter that supports CDC ethernet and RNDIS protocols.  
466 -  
467 -@end table  
468 -  
469 -@item -name @var{name}  
470 -Sets the @var{name} of the guest.  
471 -This name will be displayed in the SDL window caption.  
472 -The @var{name} will also be used for the VNC server.  
473 -  
474 -@item -uuid @var{uuid}  
475 -Set system UUID.  
476 -  
477 -@end table  
478 -  
479 -Display options:  
480 -@table @option  
481 -  
482 -@item -nographic  
483 -  
484 -Normally, QEMU uses SDL to display the VGA output. With this option,  
485 -you can totally disable graphical output so that QEMU is a simple  
486 -command line application. The emulated serial port is redirected on  
487 -the console. Therefore, you can still use QEMU to debug a Linux kernel  
488 -with a serial console.  
489 -  
490 -@item -curses  
491 -  
492 -Normally, QEMU uses SDL to display the VGA output. With this option,  
493 -QEMU can display the VGA output when in text mode using a  
494 -curses/ncurses interface. Nothing is displayed in graphical mode.  
495 -  
496 -@item -no-frame  
497 -  
498 -Do not use decorations for SDL windows and start them using the whole  
499 -available screen space. This makes the using QEMU in a dedicated desktop  
500 -workspace more convenient.  
501 -  
502 -@item -alt-grab  
503 -  
504 -Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt).  
505 -  
506 -@item -no-quit  
507 -  
508 -Disable SDL window close capability.  
509 -  
510 -@item -sdl  
511 -  
512 -Enable SDL.  
513 -  
514 -@item -portrait  
515 -  
516 -Rotate graphical output 90 deg left (only PXA LCD).  
517 -  
518 -@item -vga @var{type}  
519 -Select type of VGA card to emulate. Valid values for @var{type} are  
520 -@table @code  
521 -@item cirrus  
522 -Cirrus Logic GD5446 Video card. All Windows versions starting from  
523 -Windows 95 should recognize and use this graphic card. For optimal  
524 -performances, use 16 bit color depth in the guest and the host OS.  
525 -(This one is the default)  
526 -@item std  
527 -Standard VGA card with Bochs VBE extensions. If your guest OS  
528 -supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want  
529 -to use high resolution modes (>= 1280x1024x16) then you should use  
530 -this option.  
531 -@item vmware  
532 -VMWare SVGA-II compatible adapter. Use it if you have sufficiently  
533 -recent XFree86/XOrg server or Windows guest with a driver for this  
534 -card.  
535 -@item none  
536 -Disable VGA card.  
537 -@end table  
538 -  
539 -@item -full-screen  
540 -Start in full screen.  
541 -  
542 -@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]  
543 -  
544 -Normally, QEMU uses SDL to display the VGA output. With this option,  
545 -you can have QEMU listen on VNC display @var{display} and redirect the VGA  
546 -display over the VNC session. It is very useful to enable the usb  
547 -tablet device when using this option (option @option{-usbdevice  
548 -tablet}). When using the VNC display, you must use the @option{-k}  
549 -parameter to set the keyboard layout if you are not using en-us. Valid  
550 -syntax for the @var{display} is  
551 -  
552 -@table @code  
553 -  
554 -@item @var{host}:@var{d}  
555 -  
556 -TCP connections will only be allowed from @var{host} on display @var{d}.  
557 -By convention the TCP port is 5900+@var{d}. Optionally, @var{host} can  
558 -be omitted in which case the server will accept connections from any host.  
559 -  
560 -@item @code{unix}:@var{path}  
561 -  
562 -Connections will be allowed over UNIX domain sockets where @var{path} is the  
563 -location of a unix socket to listen for connections on.  
564 -  
565 -@item none  
566 -  
567 -VNC is initialized but not started. The monitor @code{change} command  
568 -can be used to later start the VNC server.  
569 -  
570 -@end table  
571 -  
572 -Following the @var{display} value there may be one or more @var{option} flags  
573 -separated by commas. Valid options are  
574 -  
575 -@table @code  
576 -  
577 -@item reverse  
578 -  
579 -Connect to a listening VNC client via a ``reverse'' connection. The  
580 -client is specified by the @var{display}. For reverse network  
581 -connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument  
582 -is a TCP port number, not a display number.  
583 -  
584 -@item password  
585 -  
586 -Require that password based authentication is used for client connections.  
587 -The password must be set separately using the @code{change} command in the  
588 -@ref{pcsys_monitor}  
589 -  
590 -@item tls  
591 -  
592 -Require that client use TLS when communicating with the VNC server. This  
593 -uses anonymous TLS credentials so is susceptible to a man-in-the-middle  
594 -attack. It is recommended that this option be combined with either the  
595 -@var{x509} or @var{x509verify} options.  
596 -  
597 -@item x509=@var{/path/to/certificate/dir}  
598 -  
599 -Valid if @option{tls} is specified. Require that x509 credentials are used  
600 -for negotiating the TLS session. The server will send its x509 certificate  
601 -to the client. It is recommended that a password be set on the VNC server  
602 -to provide authentication of the client when this is used. The path following  
603 -this option specifies where the x509 certificates are to be loaded from.  
604 -See the @ref{vnc_security} section for details on generating certificates.  
605 -  
606 -@item x509verify=@var{/path/to/certificate/dir}  
607 -  
608 -Valid if @option{tls} is specified. Require that x509 credentials are used  
609 -for negotiating the TLS session. The server will send its x509 certificate  
610 -to the client, and request that the client send its own x509 certificate.  
611 -The server will validate the client's certificate against the CA certificate,  
612 -and reject clients when validation fails. If the certificate authority is  
613 -trusted, this is a sufficient authentication mechanism. You may still wish  
614 -to set a password on the VNC server as a second authentication layer. The  
615 -path following this option specifies where the x509 certificates are to  
616 -be loaded from. See the @ref{vnc_security} section for details on generating  
617 -certificates.  
618 -  
619 -@item sasl  
620 -  
621 -Require that the client use SASL to authenticate with the VNC server.  
622 -The exact choice of authentication method used is controlled from the  
623 -system / user's SASL configuration file for the 'qemu' service. This  
624 -is typically found in /etc/sasl2/qemu.conf. If running QEMU as an  
625 -unprivileged user, an environment variable SASL_CONF_PATH can be used  
626 -to make it search alternate locations for the service config.  
627 -While some SASL auth methods can also provide data encryption (eg GSSAPI),  
628 -it is recommended that SASL always be combined with the 'tls' and  
629 -'x509' settings to enable use of SSL and server certificates. This  
630 -ensures a data encryption preventing compromise of authentication  
631 -credentials. See the @ref{vnc_security} section for details on using  
632 -SASL authentication.  
633 -  
634 -@item acl  
635 -  
636 -Turn on access control lists for checking of the x509 client certificate  
637 -and SASL party. For x509 certs, the ACL check is made against the  
638 -certificate's distinguished name. This is something that looks like  
639 -@code{C=GB,O=ACME,L=Boston,CN=bob}. For SASL party, the ACL check is  
640 -made against the username, which depending on the SASL plugin, may  
641 -include a realm component, eg @code{bob} or @code{bob@@EXAMPLE.COM}.  
642 -When the @option{acl} flag is set, the initial access list will be  
643 -empty, with a @code{deny} policy. Thus no one will be allowed to  
644 -use the VNC server until the ACLs have been loaded. This can be  
645 -achieved using the @code{acl} monitor command.  
646 -  
647 -@end table  
648 -  
649 -@end table  
650 -  
651 -Network options:  
652 -  
653 -@table @option  
654 -  
655 -@item -net nic[,vlan=@var{n}][,macaddr=@var{addr}][,model=@var{type}][,name=@var{name}]  
656 -Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}  
657 -= 0 is the default). The NIC is an ne2k_pci by default on the PC  
658 -target. Optionally, the MAC address can be changed to @var{addr}  
659 -and a @var{name} can be assigned for use in monitor commands. If no  
660 -@option{-net} option is specified, a single NIC is created.  
661 -Qemu can emulate several different models of network card.  
662 -Valid values for @var{type} are  
663 -@code{i82551}, @code{i82557b}, @code{i82559er},  
664 -@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},  
665 -@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.  
666 -Not all devices are supported on all targets. Use -net nic,model=?  
667 -for a list of available devices for your target.  
668 -  
669 -@item -net user[,vlan=@var{n}][,hostname=@var{name}][,name=@var{name}]  
670 -Use the user mode network stack which requires no administrator  
671 -privilege to run. @option{hostname=name} can be used to specify the client  
672 -hostname reported by the builtin DHCP server.  
673 -  
674 -@item -net channel,@var{port}:@var{dev}  
675 -Forward @option{user} TCP connection to port @var{port} to character device @var{dev}  
676 -  
677 -@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}]  
678 -Connect the host TAP network interface @var{name} to VLAN @var{n}, use  
679 -the network script @var{file} to configure it and the network script  
680 -@var{dfile} to deconfigure it. If @var{name} is not provided, the OS  
681 -automatically provides one. @option{fd}=@var{h} can be used to specify  
682 -the handle of an already opened host TAP interface. The default network  
683 -configure script is @file{/etc/qemu-ifup} and the default network  
684 -deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}  
685 -or @option{downscript=no} to disable script execution. Example:  
686 -  
687 -@example  
688 -qemu linux.img -net nic -net tap  
689 -@end example  
690 -  
691 -More complicated example (two NICs, each one connected to a TAP device)  
692 -@example  
693 -qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \  
694 - -net nic,vlan=1 -net tap,vlan=1,ifname=tap1  
695 -@end example  
696 -  
697 -  
698 -@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}]  
699 -  
700 -Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual  
701 -machine using a TCP socket connection. If @option{listen} is  
702 -specified, QEMU waits for incoming connections on @var{port}  
703 -(@var{host} is optional). @option{connect} is used to connect to  
704 -another QEMU instance using the @option{listen} option. @option{fd}=@var{h}  
705 -specifies an already opened TCP socket.  
706 -  
707 -Example:  
708 -@example  
709 -# launch a first QEMU instance  
710 -qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \  
711 - -net socket,listen=:1234  
712 -# connect the VLAN 0 of this instance to the VLAN 0  
713 -# of the first instance  
714 -qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \  
715 - -net socket,connect=127.0.0.1:1234  
716 -@end example  
717 -  
718 -@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,mcast=@var{maddr}:@var{port}]  
719 -  
720 -Create a VLAN @var{n} shared with another QEMU virtual  
721 -machines using a UDP multicast socket, effectively making a bus for  
722 -every QEMU with same multicast address @var{maddr} and @var{port}.  
723 -NOTES:  
724 -@enumerate  
725 -@item  
726 -Several QEMU can be running on different hosts and share same bus (assuming  
727 -correct multicast setup for these hosts).  
728 -@item  
729 -mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see  
730 -@url{http://user-mode-linux.sf.net}.  
731 -@item  
732 -Use @option{fd=h} to specify an already opened UDP multicast socket.  
733 -@end enumerate  
734 -  
735 -Example:  
736 -@example  
737 -# launch one QEMU instance  
738 -qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \  
739 - -net socket,mcast=230.0.0.1:1234  
740 -# launch another QEMU instance on same "bus"  
741 -qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \  
742 - -net socket,mcast=230.0.0.1:1234  
743 -# launch yet another QEMU instance on same "bus"  
744 -qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \  
745 - -net socket,mcast=230.0.0.1:1234  
746 -@end example  
747 -  
748 -Example (User Mode Linux compat.):  
749 -@example  
750 -# launch QEMU instance (note mcast address selected  
751 -# is UML's default)  
752 -qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \  
753 - -net socket,mcast=239.192.168.1:1102  
754 -# launch UML  
755 -/path/to/linux ubd0=/path/to/root_fs eth0=mcast  
756 -@end example  
757 -  
758 -@item -net vde[,vlan=@var{n}][,name=@var{name}][,sock=@var{socketpath}][,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]  
759 -Connect VLAN @var{n} to PORT @var{n} of a vde switch running on host and  
760 -listening for incoming connections on @var{socketpath}. Use GROUP @var{groupname}  
761 -and MODE @var{octalmode} to change default ownership and permissions for  
762 -communication port. This option is available only if QEMU has been compiled  
763 -with vde support enabled.  
764 -  
765 -Example:  
766 -@example  
767 -# launch vde switch  
768 -vde_switch -F -sock /tmp/myswitch  
769 -# launch QEMU instance  
770 -qemu linux.img -net nic -net vde,sock=/tmp/myswitch  
771 -@end example  
772 -  
773 -@item -net none  
774 -Indicate that no network devices should be configured. It is used to  
775 -override the default configuration (@option{-net nic -net user}) which  
776 -is activated if no @option{-net} options are provided.  
777 -  
778 -@item -tftp @var{dir}  
779 -When using the user mode network stack, activate a built-in TFTP  
780 -server. The files in @var{dir} will be exposed as the root of a TFTP server.  
781 -The TFTP client on the guest must be configured in binary mode (use the command  
782 -@code{bin} of the Unix TFTP client). The host IP address on the guest is as  
783 -usual 10.0.2.2.  
784 -  
785 -@item -bootp @var{file}  
786 -When using the user mode network stack, broadcast @var{file} as the BOOTP  
787 -filename. In conjunction with @option{-tftp}, this can be used to network boot  
788 -a guest from a local directory.  
789 -  
790 -Example (using pxelinux):  
791 -@example  
792 -qemu -hda linux.img -boot n -tftp /path/to/tftp/files -bootp /pxelinux.0  
793 -@end example  
794 -  
795 -@item -smb @var{dir}  
796 -When using the user mode network stack, activate a built-in SMB  
797 -server so that Windows OSes can access to the host files in @file{@var{dir}}  
798 -transparently.  
799 -  
800 -In the guest Windows OS, the line:  
801 -@example  
802 -10.0.2.4 smbserver  
803 -@end example  
804 -must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)  
805 -or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).  
806 -  
807 -Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.  
808 -  
809 -Note that a SAMBA server must be installed on the host OS in  
810 -@file{/usr/sbin/smbd}. QEMU was tested successfully with smbd version  
811 -2.2.7a from the Red Hat 9 and version 3.0.10-1.fc3 from Fedora Core 3.  
812 -  
813 -@item -redir [tcp|udp]:@var{host-port}:[@var{guest-host}]:@var{guest-port}  
814 -  
815 -When using the user mode network stack, redirect incoming TCP or UDP  
816 -connections to the host port @var{host-port} to the guest  
817 -@var{guest-host} on guest port @var{guest-port}. If @var{guest-host}  
818 -is not specified, its value is 10.0.2.15 (default address given by the  
819 -built-in DHCP server).  
820 -  
821 -For example, to redirect host X11 connection from screen 1 to guest  
822 -screen 0, use the following:  
823 -  
824 -@example  
825 -# on the host  
826 -qemu -redir tcp:6001::6000 [...]  
827 -# this host xterm should open in the guest X11 server  
828 -xterm -display :1  
829 -@end example  
830 -  
831 -To redirect telnet connections from host port 5555 to telnet port on  
832 -the guest, use the following:  
833 -  
834 -@example  
835 -# on the host  
836 -qemu -redir tcp:5555::23 [...]  
837 -telnet localhost 5555  
838 -@end example  
839 -  
840 -Then when you use on the host @code{telnet localhost 5555}, you  
841 -connect to the guest telnet server.  
842 -  
843 -@end table  
844 -  
845 -Bluetooth(R) options:  
846 -@table @option  
847 -  
848 -@item -bt hci[...]  
849 -Defines the function of the corresponding Bluetooth HCI. -bt options  
850 -are matched with the HCIs present in the chosen machine type. For  
851 -example when emulating a machine with only one HCI built into it, only  
852 -the first @code{-bt hci[...]} option is valid and defines the HCI's  
853 -logic. The Transport Layer is decided by the machine type. Currently  
854 -the machines @code{n800} and @code{n810} have one HCI and all other  
855 -machines have none.  
856 -  
857 -@anchor{bt-hcis}  
858 -The following three types are recognized:  
859 -  
860 -@table @code  
861 -@item -bt hci,null  
862 -(default) The corresponding Bluetooth HCI assumes no internal logic  
863 -and will not respond to any HCI commands or emit events.  
864 -  
865 -@item -bt hci,host[:@var{id}]  
866 -(@code{bluez} only) The corresponding HCI passes commands / events  
867 -to / from the physical HCI identified by the name @var{id} (default:  
868 -@code{hci0}) on the computer running QEMU. Only available on @code{bluez}  
869 -capable systems like Linux.  
870 -  
871 -@item -bt hci[,vlan=@var{n}]  
872 -Add a virtual, standard HCI that will participate in the Bluetooth  
873 -scatternet @var{n} (default @code{0}). Similarly to @option{-net}  
874 -VLANs, devices inside a bluetooth network @var{n} can only communicate  
875 -with other devices in the same network (scatternet).  
876 -@end table  
877 -  
878 -@item -bt vhci[,vlan=@var{n}]  
879 -(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached  
880 -to the host bluetooth stack instead of to the emulated target. This  
881 -allows the host and target machines to participate in a common scatternet  
882 -and communicate. Requires the Linux @code{vhci} driver installed. Can  
883 -be used as following:  
884 -  
885 -@example  
886 -qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5  
887 -@end example  
888 -  
889 -@item -bt device:@var{dev}[,vlan=@var{n}]  
890 -Emulate a bluetooth device @var{dev} and place it in network @var{n}  
891 -(default @code{0}). QEMU can only emulate one type of bluetooth devices  
892 -currently:  
893 -  
894 -@table @code  
895 -@item keyboard  
896 -Virtual wireless keyboard implementing the HIDP bluetooth profile.  
897 -@end table  
898 -  
899 -@end table  
900 -  
901 -i386 target only:  
902 -  
903 -@table @option  
904 -  
905 -@item -win2k-hack  
906 -Use it when installing Windows 2000 to avoid a disk full bug. After  
907 -Windows 2000 is installed, you no longer need this option (this option  
908 -slows down the IDE transfers).  
909 -  
910 -@item -rtc-td-hack  
911 -Use it if you experience time drift problem in Windows with ACPI HAL.  
912 -This option will try to figure out how many timer interrupts were not  
913 -processed by the Windows guest and will re-inject them.  
914 -  
915 -@item -no-fd-bootchk  
916 -Disable boot signature checking for floppy disks in Bochs BIOS. It may  
917 -be needed to boot from old floppy disks.  
918 -  
919 -@item -no-acpi  
920 -Disable ACPI (Advanced Configuration and Power Interface) support. Use  
921 -it if your guest OS complains about ACPI problems (PC target machine  
922 -only).  
923 -  
924 -@item -no-hpet  
925 -Disable HPET support.  
926 -  
927 -@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}]...]  
928 -Add ACPI table with specified header fields and context from specified files.  
929 -  
930 -@end table  
931 -  
932 -Linux boot specific: When using these options, you can use a given  
933 -Linux kernel without installing it in the disk image. It can be useful  
934 -for easier testing of various kernels.  
935 -  
936 -@table @option  
937 -  
938 -@item -kernel @var{bzImage}  
939 -Use @var{bzImage} as kernel image.  
940 -  
941 -@item -append @var{cmdline}  
942 -Use @var{cmdline} as kernel command line  
943 -  
944 -@item -initrd @var{file}  
945 -Use @var{file} as initial ram disk.  
946 -  
947 -@end table  
948 -  
949 -Debug/Expert options:  
950 -@table @option  
951 -  
952 -@item -serial @var{dev}  
953 -Redirect the virtual serial port to host character device  
954 -@var{dev}. The default device is @code{vc} in graphical mode and  
955 -@code{stdio} in non graphical mode.  
956 -  
957 -This option can be used several times to simulate up to 4 serial  
958 -ports.  
959 -  
960 -Use @code{-serial none} to disable all serial ports.  
961 -  
962 -Available character devices are:  
963 -@table @code  
964 -@item vc[:WxH]  
965 -Virtual console. Optionally, a width and height can be given in pixel with  
966 -@example  
967 -vc:800x600  
968 -@end example  
969 -It is also possible to specify width or height in characters:  
970 -@example  
971 -vc:80Cx24C  
972 -@end example  
973 -@item pty  
974 -[Linux only] Pseudo TTY (a new PTY is automatically allocated)  
975 -@item none  
976 -No device is allocated.  
977 -@item null  
978 -void device  
979 -@item /dev/XXX  
980 -[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port  
981 -parameters are set according to the emulated ones.  
982 -@item /dev/parport@var{N}  
983 -[Linux only, parallel port only] Use host parallel port  
984 -@var{N}. Currently SPP and EPP parallel port features can be used.  
985 -@item file:@var{filename}  
986 -Write output to @var{filename}. No character can be read.  
987 -@item stdio  
988 -[Unix only] standard input/output  
989 -@item pipe:@var{filename}  
990 -name pipe @var{filename}  
991 -@item COM@var{n}  
992 -[Windows only] Use host serial port @var{n}  
993 -@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]  
994 -This implements UDP Net Console.  
995 -When @var{remote_host} or @var{src_ip} are not specified  
996 -they default to @code{0.0.0.0}.  
997 -When not using a specified @var{src_port} a random port is automatically chosen.  
998 -@item msmouse  
999 -Three button serial mouse. Configure the guest to use Microsoft protocol.  
1000 -  
1001 -If you just want a simple readonly console you can use @code{netcat} or  
1002 -@code{nc}, by starting qemu with: @code{-serial udp::4555} and nc as:  
1003 -@code{nc -u -l -p 4555}. Any time qemu writes something to that port it  
1004 -will appear in the netconsole session.  
1005 -  
1006 -If you plan to send characters back via netconsole or you want to stop  
1007 -and start qemu a lot of times, you should have qemu use the same  
1008 -source port each time by using something like @code{-serial  
1009 -udp::4555@@:4556} to qemu. Another approach is to use a patched  
1010 -version of netcat which can listen to a TCP port and send and receive  
1011 -characters via udp. If you have a patched version of netcat which  
1012 -activates telnet remote echo and single char transfer, then you can  
1013 -use the following options to step up a netcat redirector to allow  
1014 -telnet on port 5555 to access the qemu port.  
1015 -@table @code  
1016 -@item Qemu Options:  
1017 --serial udp::4555@@:4556  
1018 -@item netcat options:  
1019 --u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T  
1020 -@item telnet options:  
1021 -localhost 5555  
1022 -@end table  
1023 -  
1024 -  
1025 -@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]  
1026 -The TCP Net Console has two modes of operation. It can send the serial  
1027 -I/O to a location or wait for a connection from a location. By default  
1028 -the TCP Net Console is sent to @var{host} at the @var{port}. If you use  
1029 -the @var{server} option QEMU will wait for a client socket application  
1030 -to connect to the port before continuing, unless the @code{nowait}  
1031 -option was specified. The @code{nodelay} option disables the Nagle buffering  
1032 -algorithm. If @var{host} is omitted, 0.0.0.0 is assumed. Only  
1033 -one TCP connection at a time is accepted. You can use @code{telnet} to  
1034 -connect to the corresponding character device.  
1035 -@table @code  
1036 -@item Example to send tcp console to 192.168.0.2 port 4444  
1037 --serial tcp:192.168.0.2:4444  
1038 -@item Example to listen and wait on port 4444 for connection  
1039 --serial tcp::4444,server  
1040 -@item Example to not wait and listen on ip 192.168.0.100 port 4444  
1041 --serial tcp:192.168.0.100:4444,server,nowait  
1042 -@end table  
1043 -  
1044 -@item telnet:@var{host}:@var{port}[,server][,nowait][,nodelay]  
1045 -The telnet protocol is used instead of raw tcp sockets. The options  
1046 -work the same as if you had specified @code{-serial tcp}. The  
1047 -difference is that the port acts like a telnet server or client using  
1048 -telnet option negotiation. This will also allow you to send the  
1049 -MAGIC_SYSRQ sequence if you use a telnet that supports sending the break  
1050 -sequence. Typically in unix telnet you do it with Control-] and then  
1051 -type "send break" followed by pressing the enter key.  
1052 -  
1053 -@item unix:@var{path}[,server][,nowait]  
1054 -A unix domain socket is used instead of a tcp socket. The option works the  
1055 -same as if you had specified @code{-serial tcp} except the unix domain socket  
1056 -@var{path} is used for connections.  
1057 -  
1058 -@item mon:@var{dev_string}  
1059 -This is a special option to allow the monitor to be multiplexed onto  
1060 -another serial port. The monitor is accessed with key sequence of  
1061 -@key{Control-a} and then pressing @key{c}. See monitor access  
1062 -@ref{pcsys_keys} in the -nographic section for more keys.  
1063 -@var{dev_string} should be any one of the serial devices specified  
1064 -above. An example to multiplex the monitor onto a telnet server  
1065 -listening on port 4444 would be:  
1066 -@table @code  
1067 -@item -serial mon:telnet::4444,server,nowait  
1068 -@end table  
1069 -  
1070 -@item braille  
1071 -Braille device. This will use BrlAPI to display the braille output on a real  
1072 -or fake device.  
1073 -  
1074 -@end table  
1075 -  
1076 -@item -parallel @var{dev}  
1077 -Redirect the virtual parallel port to host device @var{dev} (same  
1078 -devices as the serial port). On Linux hosts, @file{/dev/parportN} can  
1079 -be used to use hardware devices connected on the corresponding host  
1080 -parallel port.  
1081 -  
1082 -This option can be used several times to simulate up to 3 parallel  
1083 -ports.  
1084 -  
1085 -Use @code{-parallel none} to disable all parallel ports.  
1086 -  
1087 -@item -monitor @var{dev}  
1088 -Redirect the monitor to host device @var{dev} (same devices as the  
1089 -serial port).  
1090 -The default device is @code{vc} in graphical mode and @code{stdio} in  
1091 -non graphical mode.  
1092 -  
1093 -@item -pidfile @var{file}  
1094 -Store the QEMU process PID in @var{file}. It is useful if you launch QEMU  
1095 -from a script.  
1096 -  
1097 -@item -S  
1098 -Do not start CPU at startup (you must type 'c' in the monitor).  
1099 -  
1100 -@item -s  
1101 -Wait gdb connection to port 1234 (@pxref{gdb_usage}).  
1102 -  
1103 -@item -p @var{port}  
1104 -Change gdb connection port. @var{port} can be either a decimal number  
1105 -to specify a TCP port, or a host device (same devices as the serial port).  
1106 -  
1107 -@item -d  
1108 -Output log in /tmp/qemu.log  
1109 -@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]  
1110 -Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=  
1111 -@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS  
1112 -translation mode (@var{t}=none, lba or auto). Usually QEMU can guess  
1113 -all those parameters. This option is useful for old MS-DOS disk  
1114 -images.  
1115 -  
1116 -@item -L @var{path}  
1117 -Set the directory for the BIOS, VGA BIOS and keymaps.  
1118 -  
1119 -@item -bios @var{file}  
1120 -Set the filename for the BIOS.  
1121 -  
1122 -@item -kernel-kqemu  
1123 -Enable KQEMU full virtualization (default is user mode only).  
1124 -  
1125 -@item -no-kqemu  
1126 -Disable KQEMU kernel module usage. KQEMU options are only available if  
1127 -KQEMU support is enabled when compiling.  
1128 -  
1129 -@item -enable-kvm  
1130 -Enable KVM full virtualization support. This option is only available  
1131 -if KVM support is enabled when compiling.  
1132 -  
1133 -@item -no-reboot  
1134 -Exit instead of rebooting.  
1135 -  
1136 -@item -no-shutdown  
1137 -Don't exit QEMU on guest shutdown, but instead only stop the emulation.  
1138 -This allows for instance switching to monitor to commit changes to the  
1139 -disk image.  
1140 -  
1141 -@item -loadvm @var{file}  
1142 -Start right away with a saved state (@code{loadvm} in monitor)  
1143 -  
1144 -@item -daemonize  
1145 -Daemonize the QEMU process after initialization. QEMU will not detach from  
1146 -standard IO until it is ready to receive connections on any of its devices.  
1147 -This option is a useful way for external programs to launch QEMU without having  
1148 -to cope with initialization race conditions.  
1149 -  
1150 -@item -option-rom @var{file}  
1151 -Load the contents of @var{file} as an option ROM.  
1152 -This option is useful to load things like EtherBoot.  
1153 -  
1154 -@item -clock @var{method}  
1155 -Force the use of the given methods for timer alarm. To see what timers  
1156 -are available use -clock ?.  
1157 -  
1158 -@item -localtime  
1159 -Set the real time clock to local time (the default is to UTC  
1160 -time). This option is needed to have correct date in MS-DOS or  
1161 -Windows.  
1162 -  
1163 -@item -startdate @var{date}  
1164 -Set the initial date of the real time clock. Valid formats for  
1165 -@var{date} are: @code{now} or @code{2006-06-17T16:01:21} or  
1166 -@code{2006-06-17}. The default value is @code{now}.  
1167 -  
1168 -@item -icount [N|auto]  
1169 -Enable virtual instruction counter. The virtual cpu will execute one  
1170 -instruction every 2^N ns of virtual time. If @code{auto} is specified  
1171 -then the virtual cpu speed will be automatically adjusted to keep virtual  
1172 -time within a few seconds of real time.  
1173 -  
1174 -Note that while this option can give deterministic behavior, it does not  
1175 -provide cycle accurate emulation. Modern CPUs contain superscalar out of  
1176 -order cores with complex cache hierarchies. The number of instructions  
1177 -executed often has little or no correlation with actual performance.  
1178 -  
1179 -@item -echr numeric_ascii_value  
1180 -Change the escape character used for switching to the monitor when using  
1181 -monitor and serial sharing. The default is @code{0x01} when using the  
1182 -@code{-nographic} option. @code{0x01} is equal to pressing  
1183 -@code{Control-a}. You can select a different character from the ascii  
1184 -control keys where 1 through 26 map to Control-a through Control-z. For  
1185 -instance you could use the either of the following to change the escape  
1186 -character to Control-t.  
1187 -@table @code  
1188 -@item -echr 0x14  
1189 -@item -echr 20  
1190 -@end table  
1191 -  
1192 -@item -chroot dir  
1193 -Immediately before starting guest execution, chroot to the specified  
1194 -directory. Especially useful in combination with -runas.  
1195 -  
1196 -@item -runas user  
1197 -Immediately before starting guest execution, drop root privileges, switching  
1198 -to the specified user.  
1199 -  
1200 -@end table 227 +@include qemu-options.texi
1201 228
1202 @c man end 229 @c man end
1203 230
qemu-options.hx 0 → 100644
  1 +HXCOMM Use DEFHEADING() to define headings in both help text and texi
  2 +HXCOMM Text between STEXI and ETEXI are copied to texi version and
  3 +HXCOMM discarded from C version
  4 +HXCOMM DEF(option, HAS_ARG/0, opt_enum, opt_help) is used to construct
  5 +HXCOMM option structures, enums and help message.
  6 +HXCOMM HXCOMM can be used for comments, discarded from both texi and C
  7 +
  8 +DEFHEADING(Standard options:)
  9 +STEXI
  10 +@table @option
  11 +ETEXI
  12 +
  13 +DEF("help", 0, QEMU_OPTION_h,
  14 + "-h or -help display this help and exit\n")
  15 +STEXI
  16 +@item -h
  17 +Display help and exit
  18 +ETEXI
  19 +
  20 +DEF("M", HAS_ARG, QEMU_OPTION_M,
  21 + "-M machine select emulated machine (-M ? for list)\n")
  22 +STEXI
  23 +@item -M @var{machine}
  24 +Select the emulated @var{machine} (@code{-M ?} for list)
  25 +ETEXI
  26 +
  27 +DEF("cpu", HAS_ARG, QEMU_OPTION_cpu,
  28 + "-cpu cpu select CPU (-cpu ? for list)\n")
  29 +STEXI
  30 +@item -cpu @var{model}
  31 +Select CPU model (-cpu ? for list and additional feature selection)
  32 +ETEXI
  33 +
  34 +DEF("smp", HAS_ARG, QEMU_OPTION_smp,
  35 + "-smp n set the number of CPUs to 'n' [default=1]\n")
  36 +STEXI
  37 +@item -smp @var{n}
  38 +Simulate an SMP system with @var{n} CPUs. On the PC target, up to 255
  39 +CPUs are supported. On Sparc32 target, Linux limits the number of usable CPUs
  40 +to 4.
  41 +ETEXI
  42 +
  43 +DEF("fda", HAS_ARG, QEMU_OPTION_fda,
  44 + "-fda/-fdb file use 'file' as floppy disk 0/1 image\n")
  45 +DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "")
  46 +STEXI
  47 +@item -fda @var{file}
  48 +@item -fdb @var{file}
  49 +Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
  50 +use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
  51 +ETEXI
  52 +
  53 +DEF("hda", HAS_ARG, QEMU_OPTION_hda,
  54 + "-hda/-hdb file use 'file' as IDE hard disk 0/1 image\n")
  55 +DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "")
  56 +DEF("hdc", HAS_ARG, QEMU_OPTION_hdc,
  57 + "-hdc/-hdd file use 'file' as IDE hard disk 2/3 image\n")
  58 +DEF("hdd", HAS_ARG, QEMU_OPTION_hdd, "")
  59 +STEXI
  60 +@item -hda @var{file}
  61 +@item -hdb @var{file}
  62 +@item -hdc @var{file}
  63 +@item -hdd @var{file}
  64 +Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
  65 +ETEXI
  66 +
  67 +DEF("cdrom", HAS_ARG, QEMU_OPTION_cdrom,
  68 + "-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)\n")
  69 +STEXI
  70 +@item -cdrom @var{file}
  71 +Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and
  72 +@option{-cdrom} at the same time). You can use the host CD-ROM by
  73 +using @file{/dev/cdrom} as filename (@pxref{host_drives}).
  74 +ETEXI
  75 +
  76 +DEF("drive", HAS_ARG, QEMU_OPTION_drive,
  77 + "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]\n"
  78 + " [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n"
  79 + " [,cache=writethrough|writeback|none][,format=f][,serial=s]\n"
  80 + " use 'file' as a drive image\n")
  81 +STEXI
  82 +@item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
  83 +
  84 +Define a new drive. Valid options are:
  85 +
  86 +@table @code
  87 +@item file=@var{file}
  88 +This option defines which disk image (@pxref{disk_images}) to use with
  89 +this drive. If the filename contains comma, you must double it
  90 +(for instance, "file=my,,file" to use file "my,file").
  91 +@item if=@var{interface}
  92 +This option defines on which type on interface the drive is connected.
  93 +Available types are: ide, scsi, sd, mtd, floppy, pflash, virtio.
  94 +@item bus=@var{bus},unit=@var{unit}
  95 +These options define where is connected the drive by defining the bus number and
  96 +the unit id.
  97 +@item index=@var{index}
  98 +This option defines where is connected the drive by using an index in the list
  99 +of available connectors of a given interface type.
  100 +@item media=@var{media}
  101 +This option defines the type of the media: disk or cdrom.
  102 +@item cyls=@var{c},heads=@var{h},secs=@var{s}[,trans=@var{t}]
  103 +These options have the same definition as they have in @option{-hdachs}.
  104 +@item snapshot=@var{snapshot}
  105 +@var{snapshot} is "on" or "off" and allows to enable snapshot for given drive (see @option{-snapshot}).
  106 +@item cache=@var{cache}
  107 +@var{cache} is "none", "writeback", or "writethrough" and controls how the host cache is used to access block data.
  108 +@item format=@var{format}
  109 +Specify which disk @var{format} will be used rather than detecting
  110 +the format. Can be used to specifiy format=raw to avoid interpreting
  111 +an untrusted format header.
  112 +@item serial=@var{serial}
  113 +This option specifies the serial number to assign to the device.
  114 +@end table
  115 +
  116 +By default, writethrough caching is used for all block device. This means that
  117 +the host page cache will be used to read and write data but write notification
  118 +will be sent to the guest only when the data has been reported as written by
  119 +the storage subsystem.
  120 +
  121 +Writeback caching will report data writes as completed as soon as the data is
  122 +present in the host page cache. This is safe as long as you trust your host.
  123 +If your host crashes or loses power, then the guest may experience data
  124 +corruption. When using the @option{-snapshot} option, writeback caching is
  125 +used by default.
  126 +
  127 +The host page can be avoided entirely with @option{cache=none}. This will
  128 +attempt to do disk IO directly to the guests memory. QEMU may still perform
  129 +an internal copy of the data.
  130 +
  131 +Some block drivers perform badly with @option{cache=writethrough}, most notably,
  132 +qcow2. If performance is more important than correctness,
  133 +@option{cache=writeback} should be used with qcow2. By default, if no explicit
  134 +caching is specified for a qcow2 disk image, @option{cache=writeback} will be
  135 +used. For all other disk types, @option{cache=writethrough} is the default.
  136 +
  137 +Instead of @option{-cdrom} you can use:
  138 +@example
  139 +qemu -drive file=file,index=2,media=cdrom
  140 +@end example
  141 +
  142 +Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
  143 +use:
  144 +@example
  145 +qemu -drive file=file,index=0,media=disk
  146 +qemu -drive file=file,index=1,media=disk
  147 +qemu -drive file=file,index=2,media=disk
  148 +qemu -drive file=file,index=3,media=disk
  149 +@end example
  150 +
  151 +You can connect a CDROM to the slave of ide0:
  152 +@example
  153 +qemu -drive file=file,if=ide,index=1,media=cdrom
  154 +@end example
  155 +
  156 +If you don't specify the "file=" argument, you define an empty drive:
  157 +@example
  158 +qemu -drive if=ide,index=1,media=cdrom
  159 +@end example
  160 +
  161 +You can connect a SCSI disk with unit ID 6 on the bus #0:
  162 +@example
  163 +qemu -drive file=file,if=scsi,bus=0,unit=6
  164 +@end example
  165 +
  166 +Instead of @option{-fda}, @option{-fdb}, you can use:
  167 +@example
  168 +qemu -drive file=file,index=0,if=floppy
  169 +qemu -drive file=file,index=1,if=floppy
  170 +@end example
  171 +
  172 +By default, @var{interface} is "ide" and @var{index} is automatically
  173 +incremented:
  174 +@example
  175 +qemu -drive file=a -drive file=b"
  176 +@end example
  177 +is interpreted like:
  178 +@example
  179 +qemu -hda a -hdb b
  180 +@end example
  181 +ETEXI
  182 +
  183 +DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
  184 + "-mtdblock file use 'file' as on-board Flash memory image\n")
  185 +STEXI
  186 +
  187 +@item -mtdblock file
  188 +Use 'file' as on-board Flash memory image.
  189 +ETEXI
  190 +
  191 +DEF("sd", HAS_ARG, QEMU_OPTION_sd,
  192 + "-sd file use 'file' as SecureDigital card image\n")
  193 +STEXI
  194 +@item -sd file
  195 +Use 'file' as SecureDigital card image.
  196 +ETEXI
  197 +
  198 +DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
  199 + "-pflash file use 'file' as a parallel flash image\n")
  200 +STEXI
  201 +@item -pflash file
  202 +Use 'file' as a parallel flash image.
  203 +ETEXI
  204 +
  205 +DEF("boot", HAS_ARG, QEMU_OPTION_boot,
  206 + "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n")
  207 +STEXI
  208 +@item -boot [a|c|d|n]
  209 +Boot on floppy (a), hard disk (c), CD-ROM (d), or Etherboot (n). Hard disk boot
  210 +is the default.
  211 +ETEXI
  212 +
  213 +DEF("snapshot", 0, QEMU_OPTION_snapshot,
  214 + "-snapshot write to temporary files instead of disk image files\n")
  215 +STEXI
  216 +@item -snapshot
  217 +Write to temporary files instead of disk image files. In this case,
  218 +the raw disk image you use is not written back. You can however force
  219 +the write back by pressing @key{C-a s} (@pxref{disk_images}).
  220 +ETEXI
  221 +
  222 +DEF("m", HAS_ARG, QEMU_OPTION_m,
  223 + "-m megs set virtual RAM size to megs MB [default=%d]\n")
  224 +STEXI
  225 +@item -m @var{megs}
  226 +Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB. Optionally,
  227 +a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
  228 +gigabytes respectively.
  229 +ETEXI
  230 +
  231 +#ifndef _WIN32
  232 +DEF("k", HAS_ARG, QEMU_OPTION_k,
  233 + "-k language use keyboard layout (for example \"fr\" for French)\n")
  234 +#endif
  235 +STEXI
  236 +@item -k @var{language}
  237 +
  238 +Use keyboard layout @var{language} (for example @code{fr} for
  239 +French). This option is only needed where it is not easy to get raw PC
  240 +keycodes (e.g. on Macs, with some X11 servers or with a VNC
  241 +display). You don't normally need to use it on PC/Linux or PC/Windows
  242 +hosts.
  243 +
  244 +The available layouts are:
  245 +@example
  246 +ar de-ch es fo fr-ca hu ja mk no pt-br sv
  247 +da en-gb et fr fr-ch is lt nl pl ru th
  248 +de en-us fi fr-be hr it lv nl-be pt sl tr
  249 +@end example
  250 +
  251 +The default is @code{en-us}.
  252 +ETEXI
  253 +
  254 +
  255 +#ifdef HAS_AUDIO
  256 +DEF("audio-help", 0, QEMU_OPTION_audio_help,
  257 + "-audio-help print list of audio drivers and their options\n")
  258 +#endif
  259 +STEXI
  260 +@item -audio-help
  261 +
  262 +Will show the audio subsystem help: list of drivers, tunable
  263 +parameters.
  264 +ETEXI
  265 +
  266 +#ifdef HAS_AUDIO
  267 +DEF("soundhw", HAS_ARG, QEMU_OPTION_soundhw,
  268 + "-soundhw c1,... enable audio support\n"
  269 + " and only specified sound cards (comma separated list)\n"
  270 + " use -soundhw ? to get the list of supported cards\n"
  271 + " use -soundhw all to enable all of them\n")
  272 +#endif
  273 +STEXI
  274 +@item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
  275 +
  276 +Enable audio and selected sound hardware. Use ? to print all
  277 +available sound hardware.
  278 +
  279 +@example
  280 +qemu -soundhw sb16,adlib disk.img
  281 +qemu -soundhw es1370 disk.img
  282 +qemu -soundhw ac97 disk.img
  283 +qemu -soundhw all disk.img
  284 +qemu -soundhw ?
  285 +@end example
  286 +
  287 +Note that Linux's i810_audio OSS kernel (for AC97) module might
  288 +require manually specifying clocking.
  289 +
  290 +@example
  291 +modprobe i810_audio clocking=48000
  292 +@end example
  293 +ETEXI
  294 +
  295 +STEXI
  296 +@end table
  297 +ETEXI
  298 +
  299 +DEF("usb", 0, QEMU_OPTION_usb,
  300 + "-usb enable the USB driver (will be the default soon)\n")
  301 +STEXI
  302 +USB options:
  303 +@table @option
  304 +
  305 +@item -usb
  306 +Enable the USB driver (will be the default soon)
  307 +ETEXI
  308 +
  309 +DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
  310 + "-usbdevice name add the host or guest USB device 'name'\n")
  311 +STEXI
  312 +
  313 +@item -usbdevice @var{devname}
  314 +Add the USB device @var{devname}. @xref{usb_devices}.
  315 +
  316 +@table @code
  317 +
  318 +@item mouse
  319 +Virtual Mouse. This will override the PS/2 mouse emulation when activated.
  320 +
  321 +@item tablet
  322 +Pointer device that uses absolute coordinates (like a touchscreen). This
  323 +means qemu is able to report the mouse position without having to grab the
  324 +mouse. Also overrides the PS/2 mouse emulation when activated.
  325 +
  326 +@item disk:[format=@var{format}]:file
  327 +Mass storage device based on file. The optional @var{format} argument
  328 +will be used rather than detecting the format. Can be used to specifiy
  329 +format=raw to avoid interpreting an untrusted format header.
  330 +
  331 +@item host:bus.addr
  332 +Pass through the host device identified by bus.addr (Linux only).
  333 +
  334 +@item host:vendor_id:product_id
  335 +Pass through the host device identified by vendor_id:product_id (Linux only).
  336 +
  337 +@item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
  338 +Serial converter to host character device @var{dev}, see @code{-serial} for the
  339 +available devices.
  340 +
  341 +@item braille
  342 +Braille device. This will use BrlAPI to display the braille output on a real
  343 +or fake device.
  344 +
  345 +@item net:options
  346 +Network adapter that supports CDC ethernet and RNDIS protocols.
  347 +
  348 +@end table
  349 +ETEXI
  350 +
  351 +DEF("name", HAS_ARG, QEMU_OPTION_name,
  352 + "-name string set the name of the guest\n")
  353 +STEXI
  354 +@item -name @var{name}
  355 +Sets the @var{name} of the guest.
  356 +This name will be displayed in the SDL window caption.
  357 +The @var{name} will also be used for the VNC server.
  358 +ETEXI
  359 +
  360 +DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
  361 + "-uuid %%08x-%%04x-%%04x-%%04x-%%012x\n"
  362 + " specify machine UUID\n")
  363 +STEXI
  364 +@item -uuid @var{uuid}
  365 +Set system UUID.
  366 +ETEXI
  367 +
  368 +STEXI
  369 +@end table
  370 +ETEXI
  371 +
  372 +DEFHEADING()
  373 +
  374 +DEFHEADING(Display options:)
  375 +
  376 +STEXI
  377 +@table @option
  378 +ETEXI
  379 +
  380 +DEF("nographic", 0, QEMU_OPTION_nographic,
  381 + "-nographic disable graphical output and redirect serial I/Os to console\n")
  382 +STEXI
  383 +@item -nographic
  384 +
  385 +Normally, QEMU uses SDL to display the VGA output. With this option,
  386 +you can totally disable graphical output so that QEMU is a simple
  387 +command line application. The emulated serial port is redirected on
  388 +the console. Therefore, you can still use QEMU to debug a Linux kernel
  389 +with a serial console.
  390 +ETEXI
  391 +
  392 +#ifdef CONFIG_CURSES
  393 +DEF("curses", 0, QEMU_OPTION_curses,
  394 + "-curses use a curses/ncurses interface instead of SDL\n")
  395 +#endif
  396 +STEXI
  397 +@item -curses
  398 +
  399 +Normally, QEMU uses SDL to display the VGA output. With this option,
  400 +QEMU can display the VGA output when in text mode using a
  401 +curses/ncurses interface. Nothing is displayed in graphical mode.
  402 +ETEXI
  403 +
  404 +#ifdef CONFIG_SDL
  405 +DEF("no-frame", 0, QEMU_OPTION_no_frame,
  406 + "-no-frame open SDL window without a frame and window decorations\n")
  407 +#endif
  408 +STEXI
  409 +@item -no-frame
  410 +
  411 +Do not use decorations for SDL windows and start them using the whole
  412 +available screen space. This makes the using QEMU in a dedicated desktop
  413 +workspace more convenient.
  414 +ETEXI
  415 +
  416 +#ifdef CONFIG_SDL
  417 +DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
  418 + "-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n")
  419 +#endif
  420 +STEXI
  421 +@item -alt-grab
  422 +
  423 +Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt).
  424 +ETEXI
  425 +
  426 +#ifdef CONFIG_SDL
  427 +DEF("no-quit", 0, QEMU_OPTION_no_quit,
  428 + "-no-quit disable SDL window close capability\n")
  429 +#endif
  430 +STEXI
  431 +@item -no-quit
  432 +
  433 +Disable SDL window close capability.
  434 +ETEXI
  435 +
  436 +#ifdef CONFIG_SDL
  437 +DEF("sdl", 0, QEMU_OPTION_sdl,
  438 + "-sdl enable SDL\n")
  439 +#endif
  440 +STEXI
  441 +@item -sdl
  442 +
  443 +Enable SDL.
  444 +ETEXI
  445 +
  446 +DEF("portrait", 0, QEMU_OPTION_portrait,
  447 + "-portrait rotate graphical output 90 deg left (only PXA LCD)\n")
  448 +STEXI
  449 +@item -portrait
  450 +
  451 +Rotate graphical output 90 deg left (only PXA LCD).
  452 +ETEXI
  453 +
  454 +DEF("vga", HAS_ARG, QEMU_OPTION_vga,
  455 + "-vga [std|cirrus|vmware|none]\n"
  456 + " select video card type\n")
  457 +STEXI
  458 +@item -vga @var{type}
  459 +Select type of VGA card to emulate. Valid values for @var{type} are
  460 +@table @code
  461 +@item cirrus
  462 +Cirrus Logic GD5446 Video card. All Windows versions starting from
  463 +Windows 95 should recognize and use this graphic card. For optimal
  464 +performances, use 16 bit color depth in the guest and the host OS.
  465 +(This one is the default)
  466 +@item std
  467 +Standard VGA card with Bochs VBE extensions. If your guest OS
  468 +supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want
  469 +to use high resolution modes (>= 1280x1024x16) then you should use
  470 +this option.
  471 +@item vmware
  472 +VMWare SVGA-II compatible adapter. Use it if you have sufficiently
  473 +recent XFree86/XOrg server or Windows guest with a driver for this
  474 +card.
  475 +@item none
  476 +Disable VGA card.
  477 +@end table
  478 +ETEXI
  479 +
  480 +DEF("full-screen", 0, QEMU_OPTION_full_screen,
  481 + "-full-screen start in full screen\n")
  482 +STEXI
  483 +@item -full-screen
  484 +Start in full screen.
  485 +ETEXI
  486 +
  487 +#if defined(TARGET_PPC) || defined(TARGET_SPARC)
  488 +DEF("g", 1, QEMU_OPTION_g ,
  489 + "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n")
  490 +#endif
  491 +STEXI
  492 +ETEXI
  493 +
  494 +DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
  495 + "-vnc display start a VNC server on display\n")
  496 +STEXI
  497 +@item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
  498 +
  499 +Normally, QEMU uses SDL to display the VGA output. With this option,
  500 +you can have QEMU listen on VNC display @var{display} and redirect the VGA
  501 +display over the VNC session. It is very useful to enable the usb
  502 +tablet device when using this option (option @option{-usbdevice
  503 +tablet}). When using the VNC display, you must use the @option{-k}
  504 +parameter to set the keyboard layout if you are not using en-us. Valid
  505 +syntax for the @var{display} is
  506 +
  507 +@table @code
  508 +
  509 +@item @var{host}:@var{d}
  510 +
  511 +TCP connections will only be allowed from @var{host} on display @var{d}.
  512 +By convention the TCP port is 5900+@var{d}. Optionally, @var{host} can
  513 +be omitted in which case the server will accept connections from any host.
  514 +
  515 +@item @code{unix}:@var{path}
  516 +
  517 +Connections will be allowed over UNIX domain sockets where @var{path} is the
  518 +location of a unix socket to listen for connections on.
  519 +
  520 +@item none
  521 +
  522 +VNC is initialized but not started. The monitor @code{change} command
  523 +can be used to later start the VNC server.
  524 +
  525 +@end table
  526 +
  527 +Following the @var{display} value there may be one or more @var{option} flags
  528 +separated by commas. Valid options are
  529 +
  530 +@table @code
  531 +
  532 +@item reverse
  533 +
  534 +Connect to a listening VNC client via a ``reverse'' connection. The
  535 +client is specified by the @var{display}. For reverse network
  536 +connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
  537 +is a TCP port number, not a display number.
  538 +
  539 +@item password
  540 +
  541 +Require that password based authentication is used for client connections.
  542 +The password must be set separately using the @code{change} command in the
  543 +@ref{pcsys_monitor}
  544 +
  545 +@item tls
  546 +
  547 +Require that client use TLS when communicating with the VNC server. This
  548 +uses anonymous TLS credentials so is susceptible to a man-in-the-middle
  549 +attack. It is recommended that this option be combined with either the
  550 +@var{x509} or @var{x509verify} options.
  551 +
  552 +@item x509=@var{/path/to/certificate/dir}
  553 +
  554 +Valid if @option{tls} is specified. Require that x509 credentials are used
  555 +for negotiating the TLS session. The server will send its x509 certificate
  556 +to the client. It is recommended that a password be set on the VNC server
  557 +to provide authentication of the client when this is used. The path following
  558 +this option specifies where the x509 certificates are to be loaded from.
  559 +See the @ref{vnc_security} section for details on generating certificates.
  560 +
  561 +@item x509verify=@var{/path/to/certificate/dir}
  562 +
  563 +Valid if @option{tls} is specified. Require that x509 credentials are used
  564 +for negotiating the TLS session. The server will send its x509 certificate
  565 +to the client, and request that the client send its own x509 certificate.
  566 +The server will validate the client's certificate against the CA certificate,
  567 +and reject clients when validation fails. If the certificate authority is
  568 +trusted, this is a sufficient authentication mechanism. You may still wish
  569 +to set a password on the VNC server as a second authentication layer. The
  570 +path following this option specifies where the x509 certificates are to
  571 +be loaded from. See the @ref{vnc_security} section for details on generating
  572 +certificates.
  573 +
  574 +@item sasl
  575 +
  576 +Require that the client use SASL to authenticate with the VNC server.
  577 +The exact choice of authentication method used is controlled from the
  578 +system / user's SASL configuration file for the 'qemu' service. This
  579 +is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
  580 +unprivileged user, an environment variable SASL_CONF_PATH can be used
  581 +to make it search alternate locations for the service config.
  582 +While some SASL auth methods can also provide data encryption (eg GSSAPI),
  583 +it is recommended that SASL always be combined with the 'tls' and
  584 +'x509' settings to enable use of SSL and server certificates. This
  585 +ensures a data encryption preventing compromise of authentication
  586 +credentials. See the @ref{vnc_security} section for details on using
  587 +SASL authentication.
  588 +
  589 +@item acl
  590 +
  591 +Turn on access control lists for checking of the x509 client certificate
  592 +and SASL party. For x509 certs, the ACL check is made against the
  593 +certificate's distinguished name. This is something that looks like
  594 +@code{C=GB,O=ACME,L=Boston,CN=bob}. For SASL party, the ACL check is
  595 +made against the username, which depending on the SASL plugin, may
  596 +include a realm component, eg @code{bob} or @code{bob@@EXAMPLE.COM}.
  597 +When the @option{acl} flag is set, the initial access list will be
  598 +empty, with a @code{deny} policy. Thus no one will be allowed to
  599 +use the VNC server until the ACLs have been loaded. This can be
  600 +achieved using the @code{acl} monitor command.
  601 +
  602 +@end table
  603 +ETEXI
  604 +
  605 +STEXI
  606 +@end table
  607 +ETEXI
  608 +
  609 +DEFHEADING()
  610 +
  611 +#ifdef TARGET_I386
  612 +DEFHEADING(i386 target only:)
  613 +#endif
  614 +STEXI
  615 +@table @option
  616 +ETEXI
  617 +
  618 +#ifdef TARGET_I386
  619 +DEF("win2k-hack", 0, QEMU_OPTION_win2k_hack,
  620 + "-win2k-hack use it when installing Windows 2000 to avoid a disk full bug\n")
  621 +#endif
  622 +STEXI
  623 +@item -win2k-hack
  624 +Use it when installing Windows 2000 to avoid a disk full bug. After
  625 +Windows 2000 is installed, you no longer need this option (this option
  626 +slows down the IDE transfers).
  627 +ETEXI
  628 +
  629 +#ifdef TARGET_I386
  630 +DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack,
  631 + "-rtc-td-hack use it to fix time drift in Windows ACPI HAL\n")
  632 +#endif
  633 +STEXI
  634 +@item -rtc-td-hack
  635 +Use it if you experience time drift problem in Windows with ACPI HAL.
  636 +This option will try to figure out how many timer interrupts were not
  637 +processed by the Windows guest and will re-inject them.
  638 +ETEXI
  639 +
  640 +#ifdef TARGET_I386
  641 +DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
  642 + "-no-fd-bootchk disable boot signature checking for floppy disks\n")
  643 +#endif
  644 +STEXI
  645 +@item -no-fd-bootchk
  646 +Disable boot signature checking for floppy disks in Bochs BIOS. It may
  647 +be needed to boot from old floppy disks.
  648 +ETEXI
  649 +
  650 +#ifdef TARGET_I386
  651 +DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
  652 + "-no-acpi disable ACPI\n")
  653 +#endif
  654 +STEXI
  655 +@item -no-acpi
  656 +Disable ACPI (Advanced Configuration and Power Interface) support. Use
  657 +it if your guest OS complains about ACPI problems (PC target machine
  658 +only).
  659 +ETEXI
  660 +
  661 +#ifdef TARGET_I386
  662 +DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
  663 + "-no-hpet disable HPET\n")
  664 +#endif
  665 +STEXI
  666 +@item -no-hpet
  667 +Disable HPET support.
  668 +ETEXI
  669 +
  670 +#ifdef TARGET_I386
  671 +DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
  672 + "-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"
  673 + " ACPI table description\n")
  674 +#endif
  675 +STEXI
  676 +@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}]...]
  677 +Add ACPI table with specified header fields and context from specified files.
  678 +ETEXI
  679 +
  680 +#ifdef TARGET_I386
  681 +DEFHEADING()
  682 +#endif
  683 +STEXI
  684 +@end table
  685 +ETEXI
  686 +
  687 +DEFHEADING(Network options:)
  688 +STEXI
  689 +@table @option
  690 +ETEXI
  691 +
  692 +DEF("net", HAS_ARG, QEMU_OPTION_net, \
  693 + "-net nic[,vlan=n][,macaddr=addr][,model=type][,name=str]\n"
  694 + " create a new Network Interface Card and connect it to VLAN 'n'\n"
  695 +#ifdef CONFIG_SLIRP
  696 + "-net user[,vlan=n][,name=str][,hostname=host]\n"
  697 + " connect the user mode network stack to VLAN 'n' and send\n"
  698 + " hostname 'host' to DHCP clients\n"
  699 +#endif
  700 +#ifdef _WIN32
  701 + "-net tap[,vlan=n][,name=str],ifname=name\n"
  702 + " connect the host TAP network interface to VLAN 'n'\n"
  703 +#else
  704 + "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n"
  705 + " connect the host TAP network interface to VLAN 'n' and use the\n"
  706 + " network scripts 'file' (default=%s)\n"
  707 + " and 'dfile' (default=%s);\n"
  708 + " use '[down]script=no' to disable script execution;\n"
  709 + " use 'fd=h' to connect to an already opened TAP interface\n"
  710 +#endif
  711 + "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
  712 + " connect the vlan 'n' to another VLAN using a socket connection\n"
  713 + "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n"
  714 + " connect the vlan 'n' to multicast maddr and port\n"
  715 +#ifdef CONFIG_VDE
  716 + "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
  717 + " connect the vlan 'n' to port 'n' of a vde switch running\n"
  718 + " on host and listening for incoming connections on 'socketpath'.\n"
  719 + " Use group 'groupname' and mode 'octalmode' to change default\n"
  720 + " ownership and permissions for communication port.\n"
  721 +#endif
  722 + "-net none use it alone to have zero network devices; if no -net option\n"
  723 + " is provided, the default is '-net nic -net user'\n")
  724 +STEXI
  725 +@item -net nic[,vlan=@var{n}][,macaddr=@var{addr}][,model=@var{type}][,name=@var{name}]
  726 +Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
  727 += 0 is the default). The NIC is an ne2k_pci by default on the PC
  728 +target. Optionally, the MAC address can be changed to @var{addr}
  729 +and a @var{name} can be assigned for use in monitor commands. If no
  730 +@option{-net} option is specified, a single NIC is created.
  731 +Qemu can emulate several different models of network card.
  732 +Valid values for @var{type} are
  733 +@code{i82551}, @code{i82557b}, @code{i82559er},
  734 +@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
  735 +@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.
  736 +Not all devices are supported on all targets. Use -net nic,model=?
  737 +for a list of available devices for your target.
  738 +
  739 +@item -net user[,vlan=@var{n}][,hostname=@var{name}][,name=@var{name}]
  740 +Use the user mode network stack which requires no administrator
  741 +privilege to run. @option{hostname=name} can be used to specify the client
  742 +hostname reported by the builtin DHCP server.
  743 +
  744 +@item -net channel,@var{port}:@var{dev}
  745 +Forward @option{user} TCP connection to port @var{port} to character device @var{dev}
  746 +
  747 +@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}]
  748 +Connect the host TAP network interface @var{name} to VLAN @var{n}, use
  749 +the network script @var{file} to configure it and the network script
  750 +@var{dfile} to deconfigure it. If @var{name} is not provided, the OS
  751 +automatically provides one. @option{fd}=@var{h} can be used to specify
  752 +the handle of an already opened host TAP interface. The default network
  753 +configure script is @file{/etc/qemu-ifup} and the default network
  754 +deconfigure script is @file{/etc/qemu-ifdown}. Use @option{script=no}
  755 +or @option{downscript=no} to disable script execution. Example:
  756 +
  757 +@example
  758 +qemu linux.img -net nic -net tap
  759 +@end example
  760 +
  761 +More complicated example (two NICs, each one connected to a TAP device)
  762 +@example
  763 +qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
  764 + -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
  765 +@end example
  766 +
  767 +@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}]
  768 +
  769 +Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
  770 +machine using a TCP socket connection. If @option{listen} is
  771 +specified, QEMU waits for incoming connections on @var{port}
  772 +(@var{host} is optional). @option{connect} is used to connect to
  773 +another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
  774 +specifies an already opened TCP socket.
  775 +
  776 +Example:
  777 +@example
  778 +# launch a first QEMU instance
  779 +qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
  780 + -net socket,listen=:1234
  781 +# connect the VLAN 0 of this instance to the VLAN 0
  782 +# of the first instance
  783 +qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
  784 + -net socket,connect=127.0.0.1:1234
  785 +@end example
  786 +
  787 +@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,mcast=@var{maddr}:@var{port}]
  788 +
  789 +Create a VLAN @var{n} shared with another QEMU virtual
  790 +machines using a UDP multicast socket, effectively making a bus for
  791 +every QEMU with same multicast address @var{maddr} and @var{port}.
  792 +NOTES:
  793 +@enumerate
  794 +@item
  795 +Several QEMU can be running on different hosts and share same bus (assuming
  796 +correct multicast setup for these hosts).
  797 +@item
  798 +mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
  799 +@url{http://user-mode-linux.sf.net}.
  800 +@item
  801 +Use @option{fd=h} to specify an already opened UDP multicast socket.
  802 +@end enumerate
  803 +
  804 +Example:
  805 +@example
  806 +# launch one QEMU instance
  807 +qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
  808 + -net socket,mcast=230.0.0.1:1234
  809 +# launch another QEMU instance on same "bus"
  810 +qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
  811 + -net socket,mcast=230.0.0.1:1234
  812 +# launch yet another QEMU instance on same "bus"
  813 +qemu linux.img -net nic,macaddr=52:54:00:12:34:58 \
  814 + -net socket,mcast=230.0.0.1:1234
  815 +@end example
  816 +
  817 +Example (User Mode Linux compat.):
  818 +@example
  819 +# launch QEMU instance (note mcast address selected
  820 +# is UML's default)
  821 +qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
  822 + -net socket,mcast=239.192.168.1:1102
  823 +# launch UML
  824 +/path/to/linux ubd0=/path/to/root_fs eth0=mcast
  825 +@end example
  826 +
  827 +@item -net vde[,vlan=@var{n}][,name=@var{name}][,sock=@var{socketpath}][,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]
  828 +Connect VLAN @var{n} to PORT @var{n} of a vde switch running on host and
  829 +listening for incoming connections on @var{socketpath}. Use GROUP @var{groupname}
  830 +and MODE @var{octalmode} to change default ownership and permissions for
  831 +communication port. This option is available only if QEMU has been compiled
  832 +with vde support enabled.
  833 +
  834 +Example:
  835 +@example
  836 +# launch vde switch
  837 +vde_switch -F -sock /tmp/myswitch
  838 +# launch QEMU instance
  839 +qemu linux.img -net nic -net vde,sock=/tmp/myswitch
  840 +@end example
  841 +
  842 +@item -net none
  843 +Indicate that no network devices should be configured. It is used to
  844 +override the default configuration (@option{-net nic -net user}) which
  845 +is activated if no @option{-net} options are provided.
  846 +ETEXI
  847 +
  848 +#ifdef CONFIG_SLIRP
  849 +DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, \
  850 + "-tftp dir allow tftp access to files in dir [-net user]\n")
  851 +#endif
  852 +STEXI
  853 +@item -tftp @var{dir}
  854 +When using the user mode network stack, activate a built-in TFTP
  855 +server. The files in @var{dir} will be exposed as the root of a TFTP server.
  856 +The TFTP client on the guest must be configured in binary mode (use the command
  857 +@code{bin} of the Unix TFTP client). The host IP address on the guest is as
  858 +usual 10.0.2.2.
  859 +ETEXI
  860 +
  861 +#ifdef CONFIG_SLIRP
  862 +DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, \
  863 + "-bootp file advertise file in BOOTP replies\n")
  864 +#endif
  865 +STEXI
  866 +@item -bootp @var{file}
  867 +When using the user mode network stack, broadcast @var{file} as the BOOTP
  868 +filename. In conjunction with @option{-tftp}, this can be used to network boot
  869 +a guest from a local directory.
  870 +
  871 +Example (using pxelinux):
  872 +@example
  873 +qemu -hda linux.img -boot n -tftp /path/to/tftp/files -bootp /pxelinux.0
  874 +@end example
  875 +ETEXI
  876 +
  877 +#ifndef _WIN32
  878 +DEF("smb", HAS_ARG, QEMU_OPTION_smb, \
  879 + "-smb dir allow SMB access to files in 'dir' [-net user]\n")
  880 +#endif
  881 +STEXI
  882 +@item -smb @var{dir}
  883 +When using the user mode network stack, activate a built-in SMB
  884 +server so that Windows OSes can access to the host files in @file{@var{dir}}
  885 +transparently.
  886 +
  887 +In the guest Windows OS, the line:
  888 +@example
  889 +10.0.2.4 smbserver
  890 +@end example
  891 +must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
  892 +or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
  893 +
  894 +Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
  895 +
  896 +Note that a SAMBA server must be installed on the host OS in
  897 +@file{/usr/sbin/smbd}. QEMU was tested successfully with smbd version
  898 +2.2.7a from the Red Hat 9 and version 3.0.10-1.fc3 from Fedora Core 3.
  899 +ETEXI
  900 +
  901 +#ifdef CONFIG_SLIRP
  902 +DEF("redir", HAS_ARG, QEMU_OPTION_redir, \
  903 + "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n" \
  904 + " redirect TCP or UDP connections from host to guest [-net user]\n")
  905 +#endif
  906 +STEXI
  907 +@item -redir [tcp|udp]:@var{host-port}:[@var{guest-host}]:@var{guest-port}
  908 +
  909 +When using the user mode network stack, redirect incoming TCP or UDP
  910 +connections to the host port @var{host-port} to the guest
  911 +@var{guest-host} on guest port @var{guest-port}. If @var{guest-host}
  912 +is not specified, its value is 10.0.2.15 (default address given by the
  913 +built-in DHCP server).
  914 +
  915 +For example, to redirect host X11 connection from screen 1 to guest
  916 +screen 0, use the following:
  917 +
  918 +@example
  919 +# on the host
  920 +qemu -redir tcp:6001::6000 [...]
  921 +# this host xterm should open in the guest X11 server
  922 +xterm -display :1
  923 +@end example
  924 +
  925 +To redirect telnet connections from host port 5555 to telnet port on
  926 +the guest, use the following:
  927 +
  928 +@example
  929 +# on the host
  930 +qemu -redir tcp:5555::23 [...]
  931 +telnet localhost 5555
  932 +@end example
  933 +
  934 +Then when you use on the host @code{telnet localhost 5555}, you
  935 +connect to the guest telnet server.
  936 +
  937 +@end table
  938 +ETEXI
  939 +
  940 +DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
  941 + "\n" \
  942 + "-bt hci,null dumb bluetooth HCI - doesn't respond to commands\n" \
  943 + "-bt hci,host[:id]\n" \
  944 + " use host's HCI with the given name\n" \
  945 + "-bt hci[,vlan=n]\n" \
  946 + " emulate a standard HCI in virtual scatternet 'n'\n" \
  947 + "-bt vhci[,vlan=n]\n" \
  948 + " add host computer to virtual scatternet 'n' using VHCI\n" \
  949 + "-bt device:dev[,vlan=n]\n" \
  950 + " emulate a bluetooth device 'dev' in scatternet 'n'\n")
  951 +STEXI
  952 +Bluetooth(R) options:
  953 +@table @option
  954 +
  955 +@item -bt hci[...]
  956 +Defines the function of the corresponding Bluetooth HCI. -bt options
  957 +are matched with the HCIs present in the chosen machine type. For
  958 +example when emulating a machine with only one HCI built into it, only
  959 +the first @code{-bt hci[...]} option is valid and defines the HCI's
  960 +logic. The Transport Layer is decided by the machine type. Currently
  961 +the machines @code{n800} and @code{n810} have one HCI and all other
  962 +machines have none.
  963 +
  964 +@anchor{bt-hcis}
  965 +The following three types are recognized:
  966 +
  967 +@table @code
  968 +@item -bt hci,null
  969 +(default) The corresponding Bluetooth HCI assumes no internal logic
  970 +and will not respond to any HCI commands or emit events.
  971 +
  972 +@item -bt hci,host[:@var{id}]
  973 +(@code{bluez} only) The corresponding HCI passes commands / events
  974 +to / from the physical HCI identified by the name @var{id} (default:
  975 +@code{hci0}) on the computer running QEMU. Only available on @code{bluez}
  976 +capable systems like Linux.
  977 +
  978 +@item -bt hci[,vlan=@var{n}]
  979 +Add a virtual, standard HCI that will participate in the Bluetooth
  980 +scatternet @var{n} (default @code{0}). Similarly to @option{-net}
  981 +VLANs, devices inside a bluetooth network @var{n} can only communicate
  982 +with other devices in the same network (scatternet).
  983 +@end table
  984 +
  985 +@item -bt vhci[,vlan=@var{n}]
  986 +(Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
  987 +to the host bluetooth stack instead of to the emulated target. This
  988 +allows the host and target machines to participate in a common scatternet
  989 +and communicate. Requires the Linux @code{vhci} driver installed. Can
  990 +be used as following:
  991 +
  992 +@example
  993 +qemu [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
  994 +@end example
  995 +
  996 +@item -bt device:@var{dev}[,vlan=@var{n}]
  997 +Emulate a bluetooth device @var{dev} and place it in network @var{n}
  998 +(default @code{0}). QEMU can only emulate one type of bluetooth devices
  999 +currently:
  1000 +
  1001 +@table @code
  1002 +@item keyboard
  1003 +Virtual wireless keyboard implementing the HIDP bluetooth profile.
  1004 +@end table
  1005 +@end table
  1006 +ETEXI
  1007 +
  1008 +DEFHEADING()
  1009 +
  1010 +DEFHEADING(Linux boot specific:)
  1011 +STEXI
  1012 +When using these options, you can use a given
  1013 +Linux kernel without installing it in the disk image. It can be useful
  1014 +for easier testing of various kernels.
  1015 +
  1016 +@table @option
  1017 +ETEXI
  1018 +
  1019 +DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
  1020 + "-kernel bzImage use 'bzImage' as kernel image\n")
  1021 +STEXI
  1022 +@item -kernel @var{bzImage}
  1023 +Use @var{bzImage} as kernel image.
  1024 +ETEXI
  1025 +
  1026 +DEF("append", HAS_ARG, QEMU_OPTION_append, \
  1027 + "-append cmdline use 'cmdline' as kernel command line\n")
  1028 +STEXI
  1029 +@item -append @var{cmdline}
  1030 +Use @var{cmdline} as kernel command line
  1031 +ETEXI
  1032 +
  1033 +DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
  1034 + "-initrd file use 'file' as initial ram disk\n")
  1035 +STEXI
  1036 +@item -initrd @var{file}
  1037 +Use @var{file} as initial ram disk.
  1038 +ETEXI
  1039 +
  1040 +STEXI
  1041 +@end table
  1042 +ETEXI
  1043 +
  1044 +DEFHEADING()
  1045 +
  1046 +DEFHEADING(Debug/Expert options:)
  1047 +
  1048 +STEXI
  1049 +@table @option
  1050 +ETEXI
  1051 +
  1052 +DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
  1053 + "-serial dev redirect the serial port to char device 'dev'\n")
  1054 +STEXI
  1055 +@item -serial @var{dev}
  1056 +Redirect the virtual serial port to host character device
  1057 +@var{dev}. The default device is @code{vc} in graphical mode and
  1058 +@code{stdio} in non graphical mode.
  1059 +
  1060 +This option can be used several times to simulate up to 4 serial
  1061 +ports.
  1062 +
  1063 +Use @code{-serial none} to disable all serial ports.
  1064 +
  1065 +Available character devices are:
  1066 +@table @code
  1067 +@item vc[:WxH]
  1068 +Virtual console. Optionally, a width and height can be given in pixel with
  1069 +@example
  1070 +vc:800x600
  1071 +@end example
  1072 +It is also possible to specify width or height in characters:
  1073 +@example
  1074 +vc:80Cx24C
  1075 +@end example
  1076 +@item pty
  1077 +[Linux only] Pseudo TTY (a new PTY is automatically allocated)
  1078 +@item none
  1079 +No device is allocated.
  1080 +@item null
  1081 +void device
  1082 +@item /dev/XXX
  1083 +[Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
  1084 +parameters are set according to the emulated ones.
  1085 +@item /dev/parport@var{N}
  1086 +[Linux only, parallel port only] Use host parallel port
  1087 +@var{N}. Currently SPP and EPP parallel port features can be used.
  1088 +@item file:@var{filename}
  1089 +Write output to @var{filename}. No character can be read.
  1090 +@item stdio
  1091 +[Unix only] standard input/output
  1092 +@item pipe:@var{filename}
  1093 +name pipe @var{filename}
  1094 +@item COM@var{n}
  1095 +[Windows only] Use host serial port @var{n}
  1096 +@item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
  1097 +This implements UDP Net Console.
  1098 +When @var{remote_host} or @var{src_ip} are not specified
  1099 +they default to @code{0.0.0.0}.
  1100 +When not using a specified @var{src_port} a random port is automatically chosen.
  1101 +@item msmouse
  1102 +Three button serial mouse. Configure the guest to use Microsoft protocol.
  1103 +
  1104 +If you just want a simple readonly console you can use @code{netcat} or
  1105 +@code{nc}, by starting qemu with: @code{-serial udp::4555} and nc as:
  1106 +@code{nc -u -l -p 4555}. Any time qemu writes something to that port it
  1107 +will appear in the netconsole session.
  1108 +
  1109 +If you plan to send characters back via netconsole or you want to stop
  1110 +and start qemu a lot of times, you should have qemu use the same
  1111 +source port each time by using something like @code{-serial
  1112 +udp::4555@@:4556} to qemu. Another approach is to use a patched
  1113 +version of netcat which can listen to a TCP port and send and receive
  1114 +characters via udp. If you have a patched version of netcat which
  1115 +activates telnet remote echo and single char transfer, then you can
  1116 +use the following options to step up a netcat redirector to allow
  1117 +telnet on port 5555 to access the qemu port.
  1118 +@table @code
  1119 +@item Qemu Options:
  1120 +-serial udp::4555@@:4556
  1121 +@item netcat options:
  1122 +-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
  1123 +@item telnet options:
  1124 +localhost 5555
  1125 +@end table
  1126 +
  1127 +@item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay]
  1128 +The TCP Net Console has two modes of operation. It can send the serial
  1129 +I/O to a location or wait for a connection from a location. By default
  1130 +the TCP Net Console is sent to @var{host} at the @var{port}. If you use
  1131 +the @var{server} option QEMU will wait for a client socket application
  1132 +to connect to the port before continuing, unless the @code{nowait}
  1133 +option was specified. The @code{nodelay} option disables the Nagle buffering
  1134 +algorithm. If @var{host} is omitted, 0.0.0.0 is assumed. Only
  1135 +one TCP connection at a time is accepted. You can use @code{telnet} to
  1136 +connect to the corresponding character device.
  1137 +@table @code
  1138 +@item Example to send tcp console to 192.168.0.2 port 4444
  1139 +-serial tcp:192.168.0.2:4444
  1140 +@item Example to listen and wait on port 4444 for connection
  1141 +-serial tcp::4444,server
  1142 +@item Example to not wait and listen on ip 192.168.0.100 port 4444
  1143 +-serial tcp:192.168.0.100:4444,server,nowait
  1144 +@end table
  1145 +
  1146 +@item telnet:@var{host}:@var{port}[,server][,nowait][,nodelay]
  1147 +The telnet protocol is used instead of raw tcp sockets. The options
  1148 +work the same as if you had specified @code{-serial tcp}. The
  1149 +difference is that the port acts like a telnet server or client using
  1150 +telnet option negotiation. This will also allow you to send the
  1151 +MAGIC_SYSRQ sequence if you use a telnet that supports sending the break
  1152 +sequence. Typically in unix telnet you do it with Control-] and then
  1153 +type "send break" followed by pressing the enter key.
  1154 +
  1155 +@item unix:@var{path}[,server][,nowait]
  1156 +A unix domain socket is used instead of a tcp socket. The option works the
  1157 +same as if you had specified @code{-serial tcp} except the unix domain socket
  1158 +@var{path} is used for connections.
  1159 +
  1160 +@item mon:@var{dev_string}
  1161 +This is a special option to allow the monitor to be multiplexed onto
  1162 +another serial port. The monitor is accessed with key sequence of
  1163 +@key{Control-a} and then pressing @key{c}. See monitor access
  1164 +@ref{pcsys_keys} in the -nographic section for more keys.
  1165 +@var{dev_string} should be any one of the serial devices specified
  1166 +above. An example to multiplex the monitor onto a telnet server
  1167 +listening on port 4444 would be:
  1168 +@table @code
  1169 +@item -serial mon:telnet::4444,server,nowait
  1170 +@end table
  1171 +
  1172 +@item braille
  1173 +Braille device. This will use BrlAPI to display the braille output on a real
  1174 +or fake device.
  1175 +
  1176 +@end table
  1177 +ETEXI
  1178 +
  1179 +DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
  1180 + "-parallel dev redirect the parallel port to char device 'dev'\n")
  1181 +STEXI
  1182 +@item -parallel @var{dev}
  1183 +Redirect the virtual parallel port to host device @var{dev} (same
  1184 +devices as the serial port). On Linux hosts, @file{/dev/parportN} can
  1185 +be used to use hardware devices connected on the corresponding host
  1186 +parallel port.
  1187 +
  1188 +This option can be used several times to simulate up to 3 parallel
  1189 +ports.
  1190 +
  1191 +Use @code{-parallel none} to disable all parallel ports.
  1192 +ETEXI
  1193 +
  1194 +DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
  1195 + "-monitor dev redirect the monitor to char device 'dev'\n")
  1196 +STEXI
  1197 +@item -monitor @var{dev}
  1198 +Redirect the monitor to host device @var{dev} (same devices as the
  1199 +serial port).
  1200 +The default device is @code{vc} in graphical mode and @code{stdio} in
  1201 +non graphical mode.
  1202 +ETEXI
  1203 +
  1204 +DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
  1205 + "-pidfile file write PID to 'file'\n")
  1206 +STEXI
  1207 +@item -pidfile @var{file}
  1208 +Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
  1209 +from a script.
  1210 +ETEXI
  1211 +
  1212 +DEF("S", 0, QEMU_OPTION_S, \
  1213 + "-S freeze CPU at startup (use 'c' to start execution)\n")
  1214 +STEXI
  1215 +@item -S
  1216 +Do not start CPU at startup (you must type 'c' in the monitor).
  1217 +ETEXI
  1218 +
  1219 +DEF("s", 0, QEMU_OPTION_s, \
  1220 + "-s wait gdb connection to port\n")
  1221 +STEXI
  1222 +@item -s
  1223 +Wait gdb connection to port 1234 (@pxref{gdb_usage}).
  1224 +ETEXI
  1225 +
  1226 +DEF("p", HAS_ARG, QEMU_OPTION_p, \
  1227 + "-p port set gdb connection port [default=%s]\n")
  1228 +STEXI
  1229 +@item -p @var{port}
  1230 +Change gdb connection port. @var{port} can be either a decimal number
  1231 +to specify a TCP port, or a host device (same devices as the serial port).
  1232 +ETEXI
  1233 +
  1234 +DEF("d", HAS_ARG, QEMU_OPTION_d, \
  1235 + "-d item1,... output log to %s (use -d ? for a list of log items)\n")
  1236 +STEXI
  1237 +@item -d
  1238 +Output log in /tmp/qemu.log
  1239 +ETEXI
  1240 +
  1241 +DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
  1242 + "-hdachs c,h,s[,t]\n" \
  1243 + " force hard disk 0 physical geometry and the optional BIOS\n" \
  1244 + " translation (t=none or lba) (usually qemu can guess them)\n")
  1245 +STEXI
  1246 +@item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
  1247 +Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
  1248 +@var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
  1249 +translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
  1250 +all those parameters. This option is useful for old MS-DOS disk
  1251 +images.
  1252 +ETEXI
  1253 +
  1254 +DEF("L", HAS_ARG, QEMU_OPTION_L, \
  1255 + "-L path set the directory for the BIOS, VGA BIOS and keymaps\n")
  1256 +STEXI
  1257 +@item -L @var{path}
  1258 +Set the directory for the BIOS, VGA BIOS and keymaps.
  1259 +ETEXI
  1260 +
  1261 +DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
  1262 + "-bios file set the filename for the BIOS\n")
  1263 +STEXI
  1264 +@item -bios @var{file}
  1265 +Set the filename for the BIOS.
  1266 +ETEXI
  1267 +
  1268 +#ifdef USE_KQEMU
  1269 +DEF("kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu, \
  1270 + "-kernel-kqemu enable KQEMU full virtualization (default is user mode only)\n")
  1271 +#endif
  1272 +STEXI
  1273 +@item -kernel-kqemu
  1274 +Enable KQEMU full virtualization (default is user mode only).
  1275 +ETEXI
  1276 +
  1277 +#ifdef USE_KQEMU
  1278 +DEF("no-kqemu", 0, QEMU_OPTION_no_kqemu, \
  1279 + "-no-kqemu disable KQEMU kernel module usage\n")
  1280 +#endif
  1281 +STEXI
  1282 +@item -no-kqemu
  1283 +Disable KQEMU kernel module usage. KQEMU options are only available if
  1284 +KQEMU support is enabled when compiling.
  1285 +ETEXI
  1286 +
  1287 +#ifdef CONFIG_KVM
  1288 +DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
  1289 + "-enable-kvm enable KVM full virtualization support\n")
  1290 +#endif
  1291 +STEXI
  1292 +@item -enable-kvm
  1293 +Enable KVM full virtualization support. This option is only available
  1294 +if KVM support is enabled when compiling.
  1295 +ETEXI
  1296 +
  1297 +DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
  1298 + "-no-reboot exit instead of rebooting\n")
  1299 +STEXI
  1300 +@item -no-reboot
  1301 +Exit instead of rebooting.
  1302 +ETEXI
  1303 +
  1304 +DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
  1305 + "-no-shutdown stop before shutdown\n")
  1306 +STEXI
  1307 +@item -no-shutdown
  1308 +Don't exit QEMU on guest shutdown, but instead only stop the emulation.
  1309 +This allows for instance switching to monitor to commit changes to the
  1310 +disk image.
  1311 +ETEXI
  1312 +
  1313 +DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
  1314 + "-loadvm [tag|id]\n" \
  1315 + " start right away with a saved state (loadvm in monitor)\n")
  1316 +STEXI
  1317 +@item -loadvm @var{file}
  1318 +Start right away with a saved state (@code{loadvm} in monitor)
  1319 +ETEXI
  1320 +
  1321 +#ifndef _WIN32
  1322 +DEF("daemonize", 0, QEMU_OPTION_daemonize, \
  1323 + "-daemonize daemonize QEMU after initializing\n")
  1324 +#endif
  1325 +STEXI
  1326 +@item -daemonize
  1327 +Daemonize the QEMU process after initialization. QEMU will not detach from
  1328 +standard IO until it is ready to receive connections on any of its devices.
  1329 +This option is a useful way for external programs to launch QEMU without having
  1330 +to cope with initialization race conditions.
  1331 +ETEXI
  1332 +
  1333 +DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
  1334 + "-option-rom rom load a file, rom, into the option ROM space\n")
  1335 +STEXI
  1336 +@item -option-rom @var{file}
  1337 +Load the contents of @var{file} as an option ROM.
  1338 +This option is useful to load things like EtherBoot.
  1339 +ETEXI
  1340 +
  1341 +DEF("clock", HAS_ARG, QEMU_OPTION_clock, \
  1342 + "-clock force the use of the given methods for timer alarm.\n" \
  1343 + " To see what timers are available use -clock ?\n")
  1344 +STEXI
  1345 +@item -clock @var{method}
  1346 +Force the use of the given methods for timer alarm. To see what timers
  1347 +are available use -clock ?.
  1348 +ETEXI
  1349 +
  1350 +DEF("localtime", 0, QEMU_OPTION_localtime, \
  1351 + "-localtime set the real time clock to local time [default=utc]\n")
  1352 +STEXI
  1353 +@item -localtime
  1354 +Set the real time clock to local time (the default is to UTC
  1355 +time). This option is needed to have correct date in MS-DOS or
  1356 +Windows.
  1357 +ETEXI
  1358 +
  1359 +DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, \
  1360 + "-startdate select initial date of the clock\n")
  1361 +STEXI
  1362 +
  1363 +@item -startdate @var{date}
  1364 +Set the initial date of the real time clock. Valid formats for
  1365 +@var{date} are: @code{now} or @code{2006-06-17T16:01:21} or
  1366 +@code{2006-06-17}. The default value is @code{now}.
  1367 +ETEXI
  1368 +
  1369 +DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
  1370 + "-icount [N|auto]\n" \
  1371 + " enable virtual instruction counter with 2^N clock ticks per instruction\n")
  1372 +STEXI
  1373 +@item -icount [N|auto]
  1374 +Enable virtual instruction counter. The virtual cpu will execute one
  1375 +instruction every 2^N ns of virtual time. If @code{auto} is specified
  1376 +then the virtual cpu speed will be automatically adjusted to keep virtual
  1377 +time within a few seconds of real time.
  1378 +
  1379 +Note that while this option can give deterministic behavior, it does not
  1380 +provide cycle accurate emulation. Modern CPUs contain superscalar out of
  1381 +order cores with complex cache hierarchies. The number of instructions
  1382 +executed often has little or no correlation with actual performance.
  1383 +ETEXI
  1384 +
  1385 +DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
  1386 + "-echr chr set terminal escape character instead of ctrl-a\n")
  1387 +STEXI
  1388 +
  1389 +@item -echr numeric_ascii_value
  1390 +Change the escape character used for switching to the monitor when using
  1391 +monitor and serial sharing. The default is @code{0x01} when using the
  1392 +@code{-nographic} option. @code{0x01} is equal to pressing
  1393 +@code{Control-a}. You can select a different character from the ascii
  1394 +control keys where 1 through 26 map to Control-a through Control-z. For
  1395 +instance you could use the either of the following to change the escape
  1396 +character to Control-t.
  1397 +@table @code
  1398 +@item -echr 0x14
  1399 +@item -echr 20
  1400 +@end table
  1401 +ETEXI
  1402 +
  1403 +DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
  1404 + "-virtioconsole c\n" \
  1405 + " set virtio console\n")
  1406 +STEXI
  1407 +@item -virtioconsole @var{c}
  1408 +Set virtio console.
  1409 +ETEXI
  1410 +
  1411 +DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
  1412 + "-show-cursor show cursor\n")
  1413 +STEXI
  1414 +ETEXI
  1415 +
  1416 +DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
  1417 + "-tb-size n set TB size\n")
  1418 +STEXI
  1419 +ETEXI
  1420 +
  1421 +DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
  1422 + "-incoming p prepare for incoming migration, listen on port p\n")
  1423 +STEXI
  1424 +ETEXI
  1425 +
  1426 +#ifndef _WIN32
  1427 +DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
  1428 + "-chroot dir Chroot to dir just before starting the VM.\n")
  1429 +#endif
  1430 +STEXI
  1431 +@item -chroot dir
  1432 +Immediately before starting guest execution, chroot to the specified
  1433 +directory. Especially useful in combination with -runas.
  1434 +ETEXI
  1435 +
  1436 +#ifndef _WIN32
  1437 +DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
  1438 + "-runas user Change to user id user just before starting the VM.\n")
  1439 +#endif
  1440 +STEXI
  1441 +@item -runas user
  1442 +Immediately before starting guest execution, drop root privileges, switching
  1443 +to the specified user.
  1444 +ETEXI
  1445 +
  1446 +STEXI
  1447 +@end table
  1448 +ETEXI
  1449 +
  1450 +#if defined(TARGET_SPARC) || defined(TARGET_PPC)
  1451 +DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
  1452 + "-prom-env variable=value\n"
  1453 + " set OpenBIOS nvram variables\n")
  1454 +#endif
  1455 +#if defined(TARGET_ARM) || defined(TARGET_M68K)
  1456 +DEF("semihosting", 0, QEMU_OPTION_semihosting,
  1457 + "-semihosting semihosting mode\n")
  1458 +#endif
  1459 +#if defined(TARGET_ARM)
  1460 +DEF("old-param", 0, QEMU_OPTION_old_param,
  1461 + "-old-param old param mode\n")
  1462 +#endif
@@ -3937,191 +3937,18 @@ static int main_loop(void) @@ -3937,191 +3937,18 @@ static int main_loop(void)
3937 3937
3938 static void help(int exitcode) 3938 static void help(int exitcode)
3939 { 3939 {
3940 - /* Please keep in synch with QEMU_OPTION_ enums, qemu_options[]  
3941 - and qemu-doc.texi */  
3942 printf("QEMU PC emulator version " QEMU_VERSION ", Copyright (c) 2003-2008 Fabrice Bellard\n" 3940 printf("QEMU PC emulator version " QEMU_VERSION ", Copyright (c) 2003-2008 Fabrice Bellard\n"
3943 "usage: %s [options] [disk_image]\n" 3941 "usage: %s [options] [disk_image]\n"
3944 "\n" 3942 "\n"
3945 "'disk_image' is a raw hard image image for IDE hard disk 0\n" 3943 "'disk_image' is a raw hard image image for IDE hard disk 0\n"
3946 "\n" 3944 "\n"
3947 - "Standard options:\n"  
3948 - "-h or -help display this help and exit\n"  
3949 - "-M machine select emulated machine (-M ? for list)\n"  
3950 - "-cpu cpu select CPU (-cpu ? for list)\n"  
3951 - "-smp n set the number of CPUs to 'n' [default=1]\n"  
3952 - "-fda/-fdb file use 'file' as floppy disk 0/1 image\n"  
3953 - "-hda/-hdb file use 'file' as IDE hard disk 0/1 image\n"  
3954 - "-hdc/-hdd file use 'file' as IDE hard disk 2/3 image\n"  
3955 - "-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)\n"  
3956 - "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]\n"  
3957 - " [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n"  
3958 - " [,cache=writethrough|writeback|none][,format=f][,serial=s]\n"  
3959 - " use 'file' as a drive image\n"  
3960 - "-mtdblock file use 'file' as on-board Flash memory image\n"  
3961 - "-sd file use 'file' as SecureDigital card image\n"  
3962 - "-pflash file use 'file' as a parallel flash image\n"  
3963 - "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n"  
3964 - "-snapshot write to temporary files instead of disk image files\n"  
3965 - "-m megs set virtual RAM size to megs MB [default=%d]\n"  
3966 -#ifndef _WIN32  
3967 - "-k language use keyboard layout (for example \"fr\" for French)\n"  
3968 -#endif  
3969 -#ifdef HAS_AUDIO  
3970 - "-audio-help print list of audio drivers and their options\n"  
3971 - "-soundhw c1,... enable audio support\n"  
3972 - " and only specified sound cards (comma separated list)\n"  
3973 - " use -soundhw ? to get the list of supported cards\n"  
3974 - " use -soundhw all to enable all of them\n"  
3975 -#endif  
3976 - "-usb enable the USB driver (will be the default soon)\n"  
3977 - "-usbdevice name add the host or guest USB device 'name'\n"  
3978 - "-name string set the name of the guest\n"  
3979 - "-uuid %%08x-%%04x-%%04x-%%04x-%%012x\n"  
3980 - " specify machine UUID\n"  
3981 - "\n"  
3982 - "Display options:\n"  
3983 - "-nographic disable graphical output and redirect serial I/Os to console\n"  
3984 -#ifdef CONFIG_CURSES  
3985 - "-curses use a curses/ncurses interface instead of SDL\n"  
3986 -#endif  
3987 -#ifdef CONFIG_SDL  
3988 - "-no-frame open SDL window without a frame and window decorations\n"  
3989 - "-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n"  
3990 - "-no-quit disable SDL window close capability\n"  
3991 - "-sdl enable SDL\n"  
3992 -#endif  
3993 - "-portrait rotate graphical output 90 deg left (only PXA LCD)\n"  
3994 - "-vga [std|cirrus|vmware|none]\n"  
3995 - " select video card type\n"  
3996 - "-full-screen start in full screen\n"  
3997 -#if defined(TARGET_PPC) || defined(TARGET_SPARC)  
3998 - "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n"  
3999 -#endif  
4000 - "-vnc display start a VNC server on display\n"  
4001 - "\n"  
4002 - "Network options:\n"  
4003 - "-net nic[,vlan=n][,macaddr=addr][,model=type][,name=str]\n"  
4004 - " create a new Network Interface Card and connect it to VLAN 'n'\n"  
4005 -#ifdef CONFIG_SLIRP  
4006 - "-net user[,vlan=n][,name=str][,hostname=host]\n"  
4007 - " connect the user mode network stack to VLAN 'n' and send\n"  
4008 - " hostname 'host' to DHCP clients\n"  
4009 -#endif  
4010 -#ifdef _WIN32  
4011 - "-net tap[,vlan=n][,name=str],ifname=name\n"  
4012 - " connect the host TAP network interface to VLAN 'n'\n"  
4013 -#else  
4014 - "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n"  
4015 - " connect the host TAP network interface to VLAN 'n' and use the\n"  
4016 - " network scripts 'file' (default=%s)\n"  
4017 - " and 'dfile' (default=%s);\n"  
4018 - " use '[down]script=no' to disable script execution;\n"  
4019 - " use 'fd=h' to connect to an already opened TAP interface\n"  
4020 -#endif  
4021 - "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"  
4022 - " connect the vlan 'n' to another VLAN using a socket connection\n"  
4023 - "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n"  
4024 - " connect the vlan 'n' to multicast maddr and port\n"  
4025 -#ifdef CONFIG_VDE  
4026 - "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"  
4027 - " connect the vlan 'n' to port 'n' of a vde switch running\n"  
4028 - " on host and listening for incoming connections on 'socketpath'.\n"  
4029 - " Use group 'groupname' and mode 'octalmode' to change default\n"  
4030 - " ownership and permissions for communication port.\n"  
4031 -#endif  
4032 - "-net none use it alone to have zero network devices; if no -net option\n"  
4033 - " is provided, the default is '-net nic -net user'\n"  
4034 -#ifdef CONFIG_SLIRP  
4035 - "-tftp dir allow tftp access to files in dir [-net user]\n"  
4036 - "-bootp file advertise file in BOOTP replies\n"  
4037 -#ifndef _WIN32  
4038 - "-smb dir allow SMB access to files in 'dir' [-net user]\n"  
4039 -#endif  
4040 - "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n"  
4041 - " redirect TCP or UDP connections from host to guest [-net user]\n"  
4042 -#endif  
4043 - "\n"  
4044 - "-bt hci,null dumb bluetooth HCI - doesn't respond to commands\n"  
4045 - "-bt hci,host[:id]\n"  
4046 - " use host's HCI with the given name\n"  
4047 - "-bt hci[,vlan=n]\n"  
4048 - " emulate a standard HCI in virtual scatternet 'n'\n"  
4049 - "-bt vhci[,vlan=n]\n"  
4050 - " add host computer to virtual scatternet 'n' using VHCI\n"  
4051 - "-bt device:dev[,vlan=n]\n"  
4052 - " emulate a bluetooth device 'dev' in scatternet 'n'\n"  
4053 - "\n"  
4054 -#ifdef TARGET_I386  
4055 - "\n"  
4056 - "i386 target only:\n"  
4057 - "-win2k-hack use it when installing Windows 2000 to avoid a disk full bug\n"  
4058 - "-rtc-td-hack use it to fix time drift in Windows ACPI HAL\n"  
4059 - "-no-fd-bootchk disable boot signature checking for floppy disks\n"  
4060 - "-no-acpi disable ACPI\n"  
4061 - "-no-hpet disable HPET\n"  
4062 - "-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"  
4063 - " ACPI table description\n"  
4064 -#endif  
4065 - "Linux boot specific:\n"  
4066 - "-kernel bzImage use 'bzImage' as kernel image\n"  
4067 - "-append cmdline use 'cmdline' as kernel command line\n"  
4068 - "-initrd file use 'file' as initial ram disk\n"  
4069 - "\n"  
4070 - "Debug/Expert options:\n"  
4071 - "-serial dev redirect the serial port to char device 'dev'\n"  
4072 - "-parallel dev redirect the parallel port to char device 'dev'\n"  
4073 - "-monitor dev redirect the monitor to char device 'dev'\n"  
4074 - "-pidfile file write PID to 'file'\n"  
4075 - "-S freeze CPU at startup (use 'c' to start execution)\n"  
4076 - "-s wait gdb connection to port\n"  
4077 - "-p port set gdb connection port [default=%s]\n"  
4078 - "-d item1,... output log to %s (use -d ? for a list of log items)\n"  
4079 - "-hdachs c,h,s[,t]\n"  
4080 - " force hard disk 0 physical geometry and the optional BIOS\n"  
4081 - " translation (t=none or lba) (usually qemu can guess them)\n"  
4082 - "-L path set the directory for the BIOS, VGA BIOS and keymaps\n"  
4083 - "-bios file set the filename for the BIOS\n"  
4084 -#ifdef USE_KQEMU  
4085 - "-kernel-kqemu enable KQEMU full virtualization (default is user mode only)\n"  
4086 - "-no-kqemu disable KQEMU kernel module usage\n"  
4087 -#endif  
4088 -#ifdef CONFIG_KVM  
4089 - "-enable-kvm enable KVM full virtualization support\n"  
4090 -#endif  
4091 - "-no-reboot exit instead of rebooting\n"  
4092 - "-no-shutdown stop before shutdown\n"  
4093 - "-loadvm [tag|id]\n"  
4094 - " start right away with a saved state (loadvm in monitor)\n"  
4095 -#ifndef _WIN32  
4096 - "-daemonize daemonize QEMU after initializing\n"  
4097 -#endif  
4098 - "-option-rom rom load a file, rom, into the option ROM space\n"  
4099 -#if defined(TARGET_SPARC) || defined(TARGET_PPC)  
4100 - "-prom-env variable=value\n"  
4101 - " set OpenBIOS nvram variables\n"  
4102 -#endif  
4103 - "-clock force the use of the given methods for timer alarm.\n"  
4104 - " To see what timers are available use -clock ?\n"  
4105 - "-localtime set the real time clock to local time [default=utc]\n"  
4106 - "-startdate select initial date of the clock\n"  
4107 - "-icount [N|auto]\n"  
4108 - " enable virtual instruction counter with 2^N clock ticks per instruction\n"  
4109 - "-echr chr set terminal escape character instead of ctrl-a\n"  
4110 - "-virtioconsole c\n"  
4111 - " set virtio console\n"  
4112 - "-show-cursor show cursor\n"  
4113 -#if defined(TARGET_ARM) || defined(TARGET_M68K)  
4114 - "-semihosting semihosting mode\n"  
4115 -#endif  
4116 -#if defined(TARGET_ARM)  
4117 - "-old-param old param mode\n"  
4118 -#endif  
4119 - "-tb-size n set TB size\n"  
4120 - "-incoming p prepare for incoming migration, listen on port p\n"  
4121 -#ifndef _WIN32  
4122 - "-chroot dir Chroot to dir just before starting the VM.\n"  
4123 - "-runas user Change to user id user just before starting the VM.\n"  
4124 -#endif 3945 +#define DEF(option, opt_arg, opt_enum, opt_help) \
  3946 + opt_help
  3947 +#define DEFHEADING(text) stringify(text) "\n"
  3948 +#include "qemu-options.h"
  3949 +#undef DEF
  3950 +#undef DEFHEADING
  3951 +#undef GEN_DOCS
4125 "\n" 3952 "\n"
4126 "During emulation, the following keys are useful:\n" 3953 "During emulation, the following keys are useful:\n"
4127 "ctrl-alt-f toggle full screen\n" 3954 "ctrl-alt-f toggle full screen\n"
@@ -4144,103 +3971,13 @@ static void help(int exitcode) @@ -4144,103 +3971,13 @@ static void help(int exitcode)
4144 #define HAS_ARG 0x0001 3971 #define HAS_ARG 0x0001
4145 3972
4146 enum { 3973 enum {
4147 - /* Please keep in synch with help, qemu_options[] and  
4148 - qemu-doc.texi */  
4149 - /* Standard options: */  
4150 - QEMU_OPTION_h,  
4151 - QEMU_OPTION_M,  
4152 - QEMU_OPTION_cpu,  
4153 - QEMU_OPTION_smp,  
4154 - QEMU_OPTION_fda,  
4155 - QEMU_OPTION_fdb,  
4156 - QEMU_OPTION_hda,  
4157 - QEMU_OPTION_hdb,  
4158 - QEMU_OPTION_hdc,  
4159 - QEMU_OPTION_hdd,  
4160 - QEMU_OPTION_cdrom,  
4161 - QEMU_OPTION_drive,  
4162 - QEMU_OPTION_mtdblock,  
4163 - QEMU_OPTION_sd,  
4164 - QEMU_OPTION_pflash,  
4165 - QEMU_OPTION_boot,  
4166 - QEMU_OPTION_snapshot,  
4167 - QEMU_OPTION_m,  
4168 - QEMU_OPTION_k,  
4169 - QEMU_OPTION_audio_help,  
4170 - QEMU_OPTION_soundhw,  
4171 - QEMU_OPTION_usb,  
4172 - QEMU_OPTION_usbdevice,  
4173 - QEMU_OPTION_name,  
4174 - QEMU_OPTION_uuid,  
4175 -  
4176 - /* Display options: */  
4177 - QEMU_OPTION_nographic,  
4178 - QEMU_OPTION_curses,  
4179 - QEMU_OPTION_no_frame,  
4180 - QEMU_OPTION_alt_grab,  
4181 - QEMU_OPTION_no_quit,  
4182 - QEMU_OPTION_sdl,  
4183 - QEMU_OPTION_portrait,  
4184 - QEMU_OPTION_vga,  
4185 - QEMU_OPTION_full_screen,  
4186 - QEMU_OPTION_g,  
4187 - QEMU_OPTION_vnc,  
4188 -  
4189 - /* Network options: */  
4190 - QEMU_OPTION_net,  
4191 - QEMU_OPTION_tftp,  
4192 - QEMU_OPTION_bootp,  
4193 - QEMU_OPTION_smb,  
4194 - QEMU_OPTION_redir,  
4195 - QEMU_OPTION_bt,  
4196 -  
4197 - /* i386 target only: */  
4198 - QEMU_OPTION_win2k_hack,  
4199 - QEMU_OPTION_rtc_td_hack,  
4200 - QEMU_OPTION_no_fd_bootchk,  
4201 - QEMU_OPTION_no_acpi,  
4202 - QEMU_OPTION_no_hpet,  
4203 - QEMU_OPTION_acpitable,  
4204 -  
4205 - /* Linux boot specific: */  
4206 - QEMU_OPTION_kernel,  
4207 - QEMU_OPTION_append,  
4208 - QEMU_OPTION_initrd,  
4209 -  
4210 - /* Debug/Expert options: */  
4211 - QEMU_OPTION_serial,  
4212 - QEMU_OPTION_parallel,  
4213 - QEMU_OPTION_monitor,  
4214 - QEMU_OPTION_pidfile,  
4215 - QEMU_OPTION_S,  
4216 - QEMU_OPTION_s,  
4217 - QEMU_OPTION_p,  
4218 - QEMU_OPTION_d,  
4219 - QEMU_OPTION_hdachs,  
4220 - QEMU_OPTION_L,  
4221 - QEMU_OPTION_bios,  
4222 - QEMU_OPTION_kernel_kqemu,  
4223 - QEMU_OPTION_no_kqemu,  
4224 - QEMU_OPTION_enable_kvm,  
4225 - QEMU_OPTION_no_reboot,  
4226 - QEMU_OPTION_no_shutdown,  
4227 - QEMU_OPTION_loadvm,  
4228 - QEMU_OPTION_daemonize,  
4229 - QEMU_OPTION_option_rom,  
4230 - QEMU_OPTION_prom_env,  
4231 - QEMU_OPTION_clock,  
4232 - QEMU_OPTION_localtime,  
4233 - QEMU_OPTION_startdate,  
4234 - QEMU_OPTION_icount,  
4235 - QEMU_OPTION_echr,  
4236 - QEMU_OPTION_virtiocon,  
4237 - QEMU_OPTION_show_cursor,  
4238 - QEMU_OPTION_semihosting,  
4239 - QEMU_OPTION_old_param,  
4240 - QEMU_OPTION_tb_size,  
4241 - QEMU_OPTION_incoming,  
4242 - QEMU_OPTION_chroot,  
4243 - QEMU_OPTION_runas, 3974 +#define DEF(option, opt_arg, opt_enum, opt_help) \
  3975 + opt_enum,
  3976 +#define DEFHEADING(text)
  3977 +#include "qemu-options.h"
  3978 +#undef DEF
  3979 +#undef DEFHEADING
  3980 +#undef GEN_DOCS
4244 }; 3981 };
4245 3982
4246 typedef struct QEMUOption { 3983 typedef struct QEMUOption {
@@ -4250,129 +3987,14 @@ typedef struct QEMUOption { @@ -4250,129 +3987,14 @@ typedef struct QEMUOption {
4250 } QEMUOption; 3987 } QEMUOption;
4251 3988
4252 static const QEMUOption qemu_options[] = { 3989 static const QEMUOption qemu_options[] = {
4253 - /* Please keep in synch with help, QEMU_OPTION_ enums, and  
4254 - qemu-doc.texi */  
4255 - /* Standard options: */  
4256 { "h", 0, QEMU_OPTION_h }, 3990 { "h", 0, QEMU_OPTION_h },
4257 - { "help", 0, QEMU_OPTION_h },  
4258 - { "M", HAS_ARG, QEMU_OPTION_M },  
4259 - { "cpu", HAS_ARG, QEMU_OPTION_cpu },  
4260 - { "smp", HAS_ARG, QEMU_OPTION_smp },  
4261 - { "fda", HAS_ARG, QEMU_OPTION_fda },  
4262 - { "fdb", HAS_ARG, QEMU_OPTION_fdb },  
4263 - { "hda", HAS_ARG, QEMU_OPTION_hda },  
4264 - { "hdb", HAS_ARG, QEMU_OPTION_hdb },  
4265 - { "hdc", HAS_ARG, QEMU_OPTION_hdc },  
4266 - { "hdd", HAS_ARG, QEMU_OPTION_hdd },  
4267 - { "cdrom", HAS_ARG, QEMU_OPTION_cdrom },  
4268 - { "drive", HAS_ARG, QEMU_OPTION_drive },  
4269 - { "mtdblock", HAS_ARG, QEMU_OPTION_mtdblock },  
4270 - { "sd", HAS_ARG, QEMU_OPTION_sd },  
4271 - { "pflash", HAS_ARG, QEMU_OPTION_pflash },  
4272 - { "boot", HAS_ARG, QEMU_OPTION_boot },  
4273 - { "snapshot", 0, QEMU_OPTION_snapshot },  
4274 - { "m", HAS_ARG, QEMU_OPTION_m },  
4275 -#ifndef _WIN32  
4276 - { "k", HAS_ARG, QEMU_OPTION_k },  
4277 -#endif  
4278 -#ifdef HAS_AUDIO  
4279 - { "audio-help", 0, QEMU_OPTION_audio_help },  
4280 - { "soundhw", HAS_ARG, QEMU_OPTION_soundhw },  
4281 -#endif  
4282 - { "usb", 0, QEMU_OPTION_usb },  
4283 - { "usbdevice", HAS_ARG, QEMU_OPTION_usbdevice },  
4284 - { "name", HAS_ARG, QEMU_OPTION_name },  
4285 - { "uuid", HAS_ARG, QEMU_OPTION_uuid },  
4286 -  
4287 - /* Display options: */  
4288 - { "nographic", 0, QEMU_OPTION_nographic },  
4289 -#ifdef CONFIG_CURSES  
4290 - { "curses", 0, QEMU_OPTION_curses },  
4291 -#endif  
4292 -#ifdef CONFIG_SDL  
4293 - { "no-frame", 0, QEMU_OPTION_no_frame },  
4294 - { "alt-grab", 0, QEMU_OPTION_alt_grab },  
4295 - { "no-quit", 0, QEMU_OPTION_no_quit },  
4296 - { "sdl", 0, QEMU_OPTION_sdl },  
4297 -#endif  
4298 - { "portrait", 0, QEMU_OPTION_portrait },  
4299 - { "vga", HAS_ARG, QEMU_OPTION_vga },  
4300 - { "full-screen", 0, QEMU_OPTION_full_screen },  
4301 -#if defined(TARGET_PPC) || defined(TARGET_SPARC)  
4302 - { "g", 1, QEMU_OPTION_g },  
4303 -#endif  
4304 - { "vnc", HAS_ARG, QEMU_OPTION_vnc },  
4305 -  
4306 - /* Network options: */  
4307 - { "net", HAS_ARG, QEMU_OPTION_net},  
4308 -#ifdef CONFIG_SLIRP  
4309 - { "tftp", HAS_ARG, QEMU_OPTION_tftp },  
4310 - { "bootp", HAS_ARG, QEMU_OPTION_bootp },  
4311 -#ifndef _WIN32  
4312 - { "smb", HAS_ARG, QEMU_OPTION_smb },  
4313 -#endif  
4314 - { "redir", HAS_ARG, QEMU_OPTION_redir },  
4315 -#endif  
4316 - { "bt", HAS_ARG, QEMU_OPTION_bt },  
4317 -#ifdef TARGET_I386  
4318 - /* i386 target only: */  
4319 - { "win2k-hack", 0, QEMU_OPTION_win2k_hack },  
4320 - { "rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack },  
4321 - { "no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk },  
4322 - { "no-acpi", 0, QEMU_OPTION_no_acpi },  
4323 - { "no-hpet", 0, QEMU_OPTION_no_hpet },  
4324 - { "acpitable", HAS_ARG, QEMU_OPTION_acpitable },  
4325 -#endif  
4326 -  
4327 - /* Linux boot specific: */  
4328 - { "kernel", HAS_ARG, QEMU_OPTION_kernel },  
4329 - { "append", HAS_ARG, QEMU_OPTION_append },  
4330 - { "initrd", HAS_ARG, QEMU_OPTION_initrd },  
4331 -  
4332 - /* Debug/Expert options: */  
4333 - { "serial", HAS_ARG, QEMU_OPTION_serial },  
4334 - { "parallel", HAS_ARG, QEMU_OPTION_parallel },  
4335 - { "monitor", HAS_ARG, QEMU_OPTION_monitor },  
4336 - { "pidfile", HAS_ARG, QEMU_OPTION_pidfile },  
4337 - { "S", 0, QEMU_OPTION_S },  
4338 - { "s", 0, QEMU_OPTION_s },  
4339 - { "p", HAS_ARG, QEMU_OPTION_p },  
4340 - { "d", HAS_ARG, QEMU_OPTION_d },  
4341 - { "hdachs", HAS_ARG, QEMU_OPTION_hdachs },  
4342 - { "L", HAS_ARG, QEMU_OPTION_L },  
4343 - { "bios", HAS_ARG, QEMU_OPTION_bios },  
4344 -#ifdef USE_KQEMU  
4345 - { "kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu },  
4346 - { "no-kqemu", 0, QEMU_OPTION_no_kqemu },  
4347 -#endif  
4348 -#ifdef CONFIG_KVM  
4349 - { "enable-kvm", 0, QEMU_OPTION_enable_kvm },  
4350 -#endif  
4351 - { "no-reboot", 0, QEMU_OPTION_no_reboot },  
4352 - { "no-shutdown", 0, QEMU_OPTION_no_shutdown },  
4353 - { "loadvm", HAS_ARG, QEMU_OPTION_loadvm },  
4354 - { "daemonize", 0, QEMU_OPTION_daemonize },  
4355 - { "option-rom", HAS_ARG, QEMU_OPTION_option_rom },  
4356 -#if defined(TARGET_SPARC) || defined(TARGET_PPC)  
4357 - { "prom-env", HAS_ARG, QEMU_OPTION_prom_env },  
4358 -#endif  
4359 - { "clock", HAS_ARG, QEMU_OPTION_clock },  
4360 - { "localtime", 0, QEMU_OPTION_localtime },  
4361 - { "startdate", HAS_ARG, QEMU_OPTION_startdate },  
4362 - { "icount", HAS_ARG, QEMU_OPTION_icount },  
4363 - { "echr", HAS_ARG, QEMU_OPTION_echr },  
4364 - { "virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon },  
4365 - { "show-cursor", 0, QEMU_OPTION_show_cursor },  
4366 -#if defined(TARGET_ARM) || defined(TARGET_M68K)  
4367 - { "semihosting", 0, QEMU_OPTION_semihosting },  
4368 -#endif  
4369 -#if defined(TARGET_ARM)  
4370 - { "old-param", 0, QEMU_OPTION_old_param },  
4371 -#endif  
4372 - { "tb-size", HAS_ARG, QEMU_OPTION_tb_size },  
4373 - { "incoming", HAS_ARG, QEMU_OPTION_incoming },  
4374 - { "chroot", HAS_ARG, QEMU_OPTION_chroot },  
4375 - { "runas", HAS_ARG, QEMU_OPTION_runas }, 3991 +#define DEF(option, opt_arg, opt_enum, opt_help) \
  3992 + { option, opt_arg, opt_enum },
  3993 +#define DEFHEADING(text)
  3994 +#include "qemu-options.h"
  3995 +#undef DEF
  3996 +#undef DEFHEADING
  3997 +#undef GEN_DOCS
4376 { NULL }, 3998 { NULL },
4377 }; 3999 };
4378 4000
@@ -5038,15 +4660,18 @@ int main(int argc, char **argv, char **envp) @@ -5038,15 +4660,18 @@ int main(int argc, char **argv, char **envp)
5038 case QEMU_OPTION_S: 4660 case QEMU_OPTION_S:
5039 autostart = 0; 4661 autostart = 0;
5040 break; 4662 break;
  4663 +#ifndef _WIN32
5041 case QEMU_OPTION_k: 4664 case QEMU_OPTION_k:
5042 keyboard_layout = optarg; 4665 keyboard_layout = optarg;
5043 break; 4666 break;
  4667 +#endif
5044 case QEMU_OPTION_localtime: 4668 case QEMU_OPTION_localtime:
5045 rtc_utc = 0; 4669 rtc_utc = 0;
5046 break; 4670 break;
5047 case QEMU_OPTION_vga: 4671 case QEMU_OPTION_vga:
5048 select_vgahw (optarg); 4672 select_vgahw (optarg);
5049 break; 4673 break;
  4674 +#if defined(TARGET_PPC) || defined(TARGET_SPARC)
5050 case QEMU_OPTION_g: 4675 case QEMU_OPTION_g:
5051 { 4676 {
5052 const char *p; 4677 const char *p;
@@ -5081,6 +4706,7 @@ int main(int argc, char **argv, char **envp) @@ -5081,6 +4706,7 @@ int main(int argc, char **argv, char **envp)
5081 graphic_depth = depth; 4706 graphic_depth = depth;
5082 } 4707 }
5083 break; 4708 break;
  4709 +#endif
5084 case QEMU_OPTION_echr: 4710 case QEMU_OPTION_echr:
5085 { 4711 {
5086 char *r; 4712 char *r;
@@ -5191,12 +4817,14 @@ int main(int argc, char **argv, char **envp) @@ -5191,12 +4817,14 @@ int main(int argc, char **argv, char **envp)
5191 case QEMU_OPTION_vnc: 4817 case QEMU_OPTION_vnc:
5192 vnc_display = optarg; 4818 vnc_display = optarg;
5193 break; 4819 break;
  4820 +#ifdef TARGET_I386
5194 case QEMU_OPTION_no_acpi: 4821 case QEMU_OPTION_no_acpi:
5195 acpi_enabled = 0; 4822 acpi_enabled = 0;
5196 break; 4823 break;
5197 case QEMU_OPTION_no_hpet: 4824 case QEMU_OPTION_no_hpet:
5198 no_hpet = 1; 4825 no_hpet = 1;
5199 break; 4826 break;
  4827 +#endif
5200 case QEMU_OPTION_no_reboot: 4828 case QEMU_OPTION_no_reboot:
5201 no_reboot = 1; 4829 no_reboot = 1;
5202 break; 4830 break;
@@ -5213,9 +4841,11 @@ int main(int argc, char **argv, char **envp) @@ -5213,9 +4841,11 @@ int main(int argc, char **argv, char **envp)
5213 exit(1); 4841 exit(1);
5214 } 4842 }
5215 break; 4843 break;
  4844 +#ifndef _WIN32
5216 case QEMU_OPTION_daemonize: 4845 case QEMU_OPTION_daemonize:
5217 daemonize = 1; 4846 daemonize = 1;
5218 break; 4847 break;
  4848 +#endif
5219 case QEMU_OPTION_option_rom: 4849 case QEMU_OPTION_option_rom:
5220 if (nb_option_roms >= MAX_OPTION_ROMS) { 4850 if (nb_option_roms >= MAX_OPTION_ROMS) {
5221 fprintf(stderr, "Too many option ROMs\n"); 4851 fprintf(stderr, "Too many option ROMs\n");
@@ -5224,9 +4854,11 @@ int main(int argc, char **argv, char **envp) @@ -5224,9 +4854,11 @@ int main(int argc, char **argv, char **envp)
5224 option_rom[nb_option_roms] = optarg; 4854 option_rom[nb_option_roms] = optarg;
5225 nb_option_roms++; 4855 nb_option_roms++;
5226 break; 4856 break;
  4857 +#if defined(TARGET_ARM) || defined(TARGET_M68K)
5227 case QEMU_OPTION_semihosting: 4858 case QEMU_OPTION_semihosting:
5228 semihosting_enabled = 1; 4859 semihosting_enabled = 1;
5229 break; 4860 break;
  4861 +#endif
5230 case QEMU_OPTION_name: 4862 case QEMU_OPTION_name:
5231 qemu_name = optarg; 4863 qemu_name = optarg;
5232 break; 4864 break;
@@ -5302,12 +4934,14 @@ int main(int argc, char **argv, char **envp) @@ -5302,12 +4934,14 @@ int main(int argc, char **argv, char **envp)
5302 case QEMU_OPTION_incoming: 4934 case QEMU_OPTION_incoming:
5303 incoming = optarg; 4935 incoming = optarg;
5304 break; 4936 break;
  4937 +#ifndef _WIN32
5305 case QEMU_OPTION_chroot: 4938 case QEMU_OPTION_chroot:
5306 chroot_dir = optarg; 4939 chroot_dir = optarg;
5307 break; 4940 break;
5308 case QEMU_OPTION_runas: 4941 case QEMU_OPTION_runas:
5309 run_as = optarg; 4942 run_as = optarg;
5310 break; 4943 break;
  4944 +#endif
5311 } 4945 }
5312 } 4946 }
5313 } 4947 }