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