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 283  
284 284 # documentation
285 285 %.html: %.texi
286   - texi2html -monolithic -number $<
  286 + texi2html -I=. -monolithic -number $<
287 287  
288 288 %.info: %.texi
289   - makeinfo $< -o $@
  289 + makeinfo -I . $< -o $@
290 290  
291 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 297 qemu.1: qemu-doc.texi
295 298 perl -Ww -- $(SRC_PATH)/texi2pod.pl $< qemu.pod
... ... @@ -309,7 +312,7 @@ dvi: qemu-doc.dvi qemu-tech.dvi
309 312  
310 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 317 VERSION ?= $(shell cat VERSION)
315 318 FILE = qemu-$(VERSION)
... ...
Makefile.target
... ... @@ -729,6 +729,8 @@ LDFLAGS+=-p
729 729 main.o: CFLAGS+=-p
730 730 endif
731 731  
  732 +vl.o: qemu-options.h
  733 +
732 734 $(QEMU_PROG): LIBS += $(SDL_LIBS) $(COCOA_LIBS) $(CURSES_LIBS) $(BRLAPI_LIBS) $(VDE_LIBS)
733 735  
734 736 $(QEMU_PROG): $(OBJS) ../libqemu_common.a libqemu.a
... ... @@ -744,8 +746,11 @@ else
744 746 $(SHELL) $(SRC_PATH)/feature_to_c.sh $@ $(TARGET_XML_FILES)
745 747 endif
746 748  
  749 +qemu-options.h: $(SRC_PATH)/qemu-options.hx
  750 + sh ../hxtool -h < $< > $@
  751 +
747 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 754 rm -f *.d */*.d tcg/*.o
750 755  
751 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 224 @var{disk_image} is a raw hard disk image for IDE hard disk 0. Some
225 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 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 3937  
3938 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 3940 printf("QEMU PC emulator version " QEMU_VERSION ", Copyright (c) 2003-2008 Fabrice Bellard\n"
3943 3941 "usage: %s [options] [disk_image]\n"
3944 3942 "\n"
3945 3943 "'disk_image' is a raw hard image image for IDE hard disk 0\n"
3946 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 3952 "\n"
4126 3953 "During emulation, the following keys are useful:\n"
4127 3954 "ctrl-alt-f toggle full screen\n"
... ... @@ -4144,103 +3971,13 @@ static void help(int exitcode)
4144 3971 #define HAS_ARG 0x0001
4145 3972  
4146 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 3983 typedef struct QEMUOption {
... ... @@ -4250,129 +3987,14 @@ typedef struct QEMUOption {
4250 3987 } QEMUOption;
4251 3988  
4252 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 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 3998 { NULL },
4377 3999 };
4378 4000  
... ... @@ -5038,15 +4660,18 @@ int main(int argc, char **argv, char **envp)
5038 4660 case QEMU_OPTION_S:
5039 4661 autostart = 0;
5040 4662 break;
  4663 +#ifndef _WIN32
5041 4664 case QEMU_OPTION_k:
5042 4665 keyboard_layout = optarg;
5043 4666 break;
  4667 +#endif
5044 4668 case QEMU_OPTION_localtime:
5045 4669 rtc_utc = 0;
5046 4670 break;
5047 4671 case QEMU_OPTION_vga:
5048 4672 select_vgahw (optarg);
5049 4673 break;
  4674 +#if defined(TARGET_PPC) || defined(TARGET_SPARC)
5050 4675 case QEMU_OPTION_g:
5051 4676 {
5052 4677 const char *p;
... ... @@ -5081,6 +4706,7 @@ int main(int argc, char **argv, char **envp)
5081 4706 graphic_depth = depth;
5082 4707 }
5083 4708 break;
  4709 +#endif
5084 4710 case QEMU_OPTION_echr:
5085 4711 {
5086 4712 char *r;
... ... @@ -5191,12 +4817,14 @@ int main(int argc, char **argv, char **envp)
5191 4817 case QEMU_OPTION_vnc:
5192 4818 vnc_display = optarg;
5193 4819 break;
  4820 +#ifdef TARGET_I386
5194 4821 case QEMU_OPTION_no_acpi:
5195 4822 acpi_enabled = 0;
5196 4823 break;
5197 4824 case QEMU_OPTION_no_hpet:
5198 4825 no_hpet = 1;
5199 4826 break;
  4827 +#endif
5200 4828 case QEMU_OPTION_no_reboot:
5201 4829 no_reboot = 1;
5202 4830 break;
... ... @@ -5213,9 +4841,11 @@ int main(int argc, char **argv, char **envp)
5213 4841 exit(1);
5214 4842 }
5215 4843 break;
  4844 +#ifndef _WIN32
5216 4845 case QEMU_OPTION_daemonize:
5217 4846 daemonize = 1;
5218 4847 break;
  4848 +#endif
5219 4849 case QEMU_OPTION_option_rom:
5220 4850 if (nb_option_roms >= MAX_OPTION_ROMS) {
5221 4851 fprintf(stderr, "Too many option ROMs\n");
... ... @@ -5224,9 +4854,11 @@ int main(int argc, char **argv, char **envp)
5224 4854 option_rom[nb_option_roms] = optarg;
5225 4855 nb_option_roms++;
5226 4856 break;
  4857 +#if defined(TARGET_ARM) || defined(TARGET_M68K)
5227 4858 case QEMU_OPTION_semihosting:
5228 4859 semihosting_enabled = 1;
5229 4860 break;
  4861 +#endif
5230 4862 case QEMU_OPTION_name:
5231 4863 qemu_name = optarg;
5232 4864 break;
... ... @@ -5302,12 +4934,14 @@ int main(int argc, char **argv, char **envp)
5302 4934 case QEMU_OPTION_incoming:
5303 4935 incoming = optarg;
5304 4936 break;
  4937 +#ifndef _WIN32
5305 4938 case QEMU_OPTION_chroot:
5306 4939 chroot_dir = optarg;
5307 4940 break;
5308 4941 case QEMU_OPTION_runas:
5309 4942 run_as = optarg;
5310 4943 break;
  4944 +#endif
5311 4945 }
5312 4946 }
5313 4947 }
... ...