qemu-options.hx 126 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383
  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, arch_mask) is used to
  5. HXCOMM construct option structures, enums and help message for specified
  6. HXCOMM architectures.
  7. HXCOMM HXCOMM can be used for comments, discarded from both texi and C
  8. DEFHEADING(Standard options:)
  9. STEXI
  10. @table @option
  11. ETEXI
  12. DEF("help", 0, QEMU_OPTION_h,
  13. "-h or -help display this help and exit\n", QEMU_ARCH_ALL)
  14. STEXI
  15. @item -h
  16. @findex -h
  17. Display help and exit
  18. ETEXI
  19. DEF("version", 0, QEMU_OPTION_version,
  20. "-version display version information and exit\n", QEMU_ARCH_ALL)
  21. STEXI
  22. @item -version
  23. @findex -version
  24. Display version information and exit
  25. ETEXI
  26. DEF("machine", HAS_ARG, QEMU_OPTION_machine, \
  27. "-machine [type=]name[,prop[=value][,...]]\n"
  28. " selects emulated machine ('-machine help' for list)\n"
  29. " property accel=accel1[:accel2[:...]] selects accelerator\n"
  30. " supported accelerators are kvm, xen, tcg (default: tcg)\n"
  31. " kernel_irqchip=on|off controls accelerated irqchip support\n"
  32. " vmport=on|off|auto controls emulation of vmport (default: auto)\n"
  33. " kvm_shadow_mem=size of KVM shadow MMU\n"
  34. " dump-guest-core=on|off include guest memory in a core dump (default=on)\n"
  35. " mem-merge=on|off controls memory merge support (default: on)\n"
  36. " iommu=on|off controls emulated Intel IOMMU (VT-d) support (default=off)\n",
  37. QEMU_ARCH_ALL)
  38. STEXI
  39. @item -machine [type=]@var{name}[,prop=@var{value}[,...]]
  40. @findex -machine
  41. Select the emulated machine by @var{name}. Use @code{-machine help} to list
  42. available machines. Supported machine properties are:
  43. @table @option
  44. @item accel=@var{accels1}[:@var{accels2}[:...]]
  45. This is used to enable an accelerator. Depending on the target architecture,
  46. kvm, xen, or tcg can be available. By default, tcg is used. If there is more
  47. than one accelerator specified, the next one is used if the previous one fails
  48. to initialize.
  49. @item kernel_irqchip=on|off
  50. Enables in-kernel irqchip support for the chosen accelerator when available.
  51. @item vmport=on|off|auto
  52. Enables emulation of VMWare IO port, for vmmouse etc. auto says to select the
  53. value based on accel. For accel=xen the default is off otherwise the default
  54. is on.
  55. @item kvm_shadow_mem=size
  56. Defines the size of the KVM shadow MMU.
  57. @item dump-guest-core=on|off
  58. Include guest memory in a core dump. The default is on.
  59. @item mem-merge=on|off
  60. Enables or disables memory merge support. This feature, when supported by
  61. the host, de-duplicates identical memory pages among VMs instances
  62. (enabled by default).
  63. @item iommu=on|off
  64. Enables or disables emulated Intel IOMMU (VT-d) support. The default is off.
  65. @end table
  66. ETEXI
  67. HXCOMM Deprecated by -machine
  68. DEF("M", HAS_ARG, QEMU_OPTION_M, "", QEMU_ARCH_ALL)
  69. DEF("cpu", HAS_ARG, QEMU_OPTION_cpu,
  70. "-cpu cpu select CPU ('-cpu help' for list)\n", QEMU_ARCH_ALL)
  71. STEXI
  72. @item -cpu @var{model}
  73. @findex -cpu
  74. Select CPU model (@code{-cpu help} for list and additional feature selection)
  75. ETEXI
  76. DEF("smp", HAS_ARG, QEMU_OPTION_smp,
  77. "-smp [cpus=]n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]\n"
  78. " set the number of CPUs to 'n' [default=1]\n"
  79. " maxcpus= maximum number of total cpus, including\n"
  80. " offline CPUs for hotplug, etc\n"
  81. " cores= number of CPU cores on one socket\n"
  82. " threads= number of threads on one CPU core\n"
  83. " sockets= number of discrete sockets in the system\n",
  84. QEMU_ARCH_ALL)
  85. STEXI
  86. @item -smp [cpus=]@var{n}[,cores=@var{cores}][,threads=@var{threads}][,sockets=@var{sockets}][,maxcpus=@var{maxcpus}]
  87. @findex -smp
  88. Simulate an SMP system with @var{n} CPUs. On the PC target, up to 255
  89. CPUs are supported. On Sparc32 target, Linux limits the number of usable CPUs
  90. to 4.
  91. For the PC target, the number of @var{cores} per socket, the number
  92. of @var{threads} per cores and the total number of @var{sockets} can be
  93. specified. Missing values will be computed. If any on the three values is
  94. given, the total number of CPUs @var{n} can be omitted. @var{maxcpus}
  95. specifies the maximum number of hotpluggable CPUs.
  96. ETEXI
  97. DEF("numa", HAS_ARG, QEMU_OPTION_numa,
  98. "-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]\n"
  99. "-numa node[,memdev=id][,cpus=cpu[-cpu]][,nodeid=node]\n", QEMU_ARCH_ALL)
  100. STEXI
  101. @item -numa node[,mem=@var{size}][,cpus=@var{cpu[-cpu]}][,nodeid=@var{node}]
  102. @item -numa node[,memdev=@var{id}][,cpus=@var{cpu[-cpu]}][,nodeid=@var{node}]
  103. @findex -numa
  104. Simulate a multi node NUMA system. If @samp{mem}, @samp{memdev}
  105. and @samp{cpus} are omitted, resources are split equally. Also, note
  106. that the -@option{numa} option doesn't allocate any of the specified
  107. resources. That is, it just assigns existing resources to NUMA nodes. This
  108. means that one still has to use the @option{-m}, @option{-smp} options
  109. to allocate RAM and VCPUs respectively, and possibly @option{-object}
  110. to specify the memory backend for the @samp{memdev} suboption.
  111. @samp{mem} and @samp{memdev} are mutually exclusive. Furthermore, if one
  112. node uses @samp{memdev}, all of them have to use it.
  113. ETEXI
  114. DEF("add-fd", HAS_ARG, QEMU_OPTION_add_fd,
  115. "-add-fd fd=fd,set=set[,opaque=opaque]\n"
  116. " Add 'fd' to fd 'set'\n", QEMU_ARCH_ALL)
  117. STEXI
  118. @item -add-fd fd=@var{fd},set=@var{set}[,opaque=@var{opaque}]
  119. @findex -add-fd
  120. Add a file descriptor to an fd set. Valid options are:
  121. @table @option
  122. @item fd=@var{fd}
  123. This option defines the file descriptor of which a duplicate is added to fd set.
  124. The file descriptor cannot be stdin, stdout, or stderr.
  125. @item set=@var{set}
  126. This option defines the ID of the fd set to add the file descriptor to.
  127. @item opaque=@var{opaque}
  128. This option defines a free-form string that can be used to describe @var{fd}.
  129. @end table
  130. You can open an image using pre-opened file descriptors from an fd set:
  131. @example
  132. qemu-system-i386
  133. -add-fd fd=3,set=2,opaque="rdwr:/path/to/file"
  134. -add-fd fd=4,set=2,opaque="rdonly:/path/to/file"
  135. -drive file=/dev/fdset/2,index=0,media=disk
  136. @end example
  137. ETEXI
  138. DEF("set", HAS_ARG, QEMU_OPTION_set,
  139. "-set group.id.arg=value\n"
  140. " set <arg> parameter for item <id> of type <group>\n"
  141. " i.e. -set drive.$id.file=/path/to/image\n", QEMU_ARCH_ALL)
  142. STEXI
  143. @item -set @var{group}.@var{id}.@var{arg}=@var{value}
  144. @findex -set
  145. Set parameter @var{arg} for item @var{id} of type @var{group}\n"
  146. ETEXI
  147. DEF("global", HAS_ARG, QEMU_OPTION_global,
  148. "-global driver.prop=value\n"
  149. " set a global default for a driver property\n",
  150. QEMU_ARCH_ALL)
  151. STEXI
  152. @item -global @var{driver}.@var{prop}=@var{value}
  153. @findex -global
  154. Set default value of @var{driver}'s property @var{prop} to @var{value}, e.g.:
  155. @example
  156. qemu-system-i386 -global ide-drive.physical_block_size=4096 -drive file=file,if=ide,index=0,media=disk
  157. @end example
  158. In particular, you can use this to set driver properties for devices which are
  159. created automatically by the machine model. To create a device which is not
  160. created automatically and set properties on it, use -@option{device}.
  161. ETEXI
  162. DEF("boot", HAS_ARG, QEMU_OPTION_boot,
  163. "-boot [order=drives][,once=drives][,menu=on|off]\n"
  164. " [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time][,strict=on|off]\n"
  165. " 'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)\n"
  166. " 'sp_name': the file's name that would be passed to bios as logo picture, if menu=on\n"
  167. " 'sp_time': the period that splash picture last if menu=on, unit is ms\n"
  168. " 'rb_timeout': the timeout before guest reboot when boot failed, unit is ms\n",
  169. QEMU_ARCH_ALL)
  170. STEXI
  171. @item -boot [order=@var{drives}][,once=@var{drives}][,menu=on|off][,splash=@var{sp_name}][,splash-time=@var{sp_time}][,reboot-timeout=@var{rb_timeout}][,strict=on|off]
  172. @findex -boot
  173. Specify boot order @var{drives} as a string of drive letters. Valid
  174. drive letters depend on the target achitecture. The x86 PC uses: a, b
  175. (floppy 1 and 2), c (first hard disk), d (first CD-ROM), n-p (Etherboot
  176. from network adapter 1-4), hard disk boot is the default. To apply a
  177. particular boot order only on the first startup, specify it via
  178. @option{once}.
  179. Interactive boot menus/prompts can be enabled via @option{menu=on} as far
  180. as firmware/BIOS supports them. The default is non-interactive boot.
  181. A splash picture could be passed to bios, enabling user to show it as logo,
  182. when option splash=@var{sp_name} is given and menu=on, If firmware/BIOS
  183. supports them. Currently Seabios for X86 system support it.
  184. limitation: The splash file could be a jpeg file or a BMP file in 24 BPP
  185. format(true color). The resolution should be supported by the SVGA mode, so
  186. the recommended is 320x240, 640x480, 800x640.
  187. A timeout could be passed to bios, guest will pause for @var{rb_timeout} ms
  188. when boot failed, then reboot. If @var{rb_timeout} is '-1', guest will not
  189. reboot, qemu passes '-1' to bios by default. Currently Seabios for X86
  190. system support it.
  191. Do strict boot via @option{strict=on} as far as firmware/BIOS
  192. supports it. This only effects when boot priority is changed by
  193. bootindex options. The default is non-strict boot.
  194. @example
  195. # try to boot from network first, then from hard disk
  196. qemu-system-i386 -boot order=nc
  197. # boot from CD-ROM first, switch back to default order after reboot
  198. qemu-system-i386 -boot once=d
  199. # boot with a splash picture for 5 seconds.
  200. qemu-system-i386 -boot menu=on,splash=/root/boot.bmp,splash-time=5000
  201. @end example
  202. Note: The legacy format '-boot @var{drives}' is still supported but its
  203. use is discouraged as it may be removed from future versions.
  204. ETEXI
  205. DEF("m", HAS_ARG, QEMU_OPTION_m,
  206. "-m[emory] [size=]megs[,slots=n,maxmem=size]\n"
  207. " configure guest RAM\n"
  208. " size: initial amount of guest memory (default: "
  209. stringify(DEFAULT_RAM_SIZE) "MiB)\n"
  210. " slots: number of hotplug slots (default: none)\n"
  211. " maxmem: maximum amount of guest memory (default: none)\n"
  212. "NOTE: Some architectures might enforce a specific granularity\n",
  213. QEMU_ARCH_ALL)
  214. STEXI
  215. @item -m [size=]@var{megs}
  216. @findex -m
  217. Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB. Optionally,
  218. a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
  219. gigabytes respectively. Optional pair @var{slots}, @var{maxmem} could be used
  220. to set amount of hotluggable memory slots and possible maximum amount of memory.
  221. ETEXI
  222. DEF("mem-path", HAS_ARG, QEMU_OPTION_mempath,
  223. "-mem-path FILE provide backing storage for guest RAM\n", QEMU_ARCH_ALL)
  224. STEXI
  225. @item -mem-path @var{path}
  226. @findex -mem-path
  227. Allocate guest RAM from a temporarily created file in @var{path}.
  228. ETEXI
  229. DEF("mem-prealloc", 0, QEMU_OPTION_mem_prealloc,
  230. "-mem-prealloc preallocate guest memory (use with -mem-path)\n",
  231. QEMU_ARCH_ALL)
  232. STEXI
  233. @item -mem-prealloc
  234. @findex -mem-prealloc
  235. Preallocate memory when using -mem-path.
  236. ETEXI
  237. DEF("k", HAS_ARG, QEMU_OPTION_k,
  238. "-k language use keyboard layout (for example 'fr' for French)\n",
  239. QEMU_ARCH_ALL)
  240. STEXI
  241. @item -k @var{language}
  242. @findex -k
  243. Use keyboard layout @var{language} (for example @code{fr} for
  244. French). This option is only needed where it is not easy to get raw PC
  245. keycodes (e.g. on Macs, with some X11 servers or with a VNC
  246. display). You don't normally need to use it on PC/Linux or PC/Windows
  247. hosts.
  248. The available layouts are:
  249. @example
  250. ar de-ch es fo fr-ca hu ja mk no pt-br sv
  251. da en-gb et fr fr-ch is lt nl pl ru th
  252. de en-us fi fr-be hr it lv nl-be pt sl tr
  253. @end example
  254. The default is @code{en-us}.
  255. ETEXI
  256. DEF("audio-help", 0, QEMU_OPTION_audio_help,
  257. "-audio-help print list of audio drivers and their options\n",
  258. QEMU_ARCH_ALL)
  259. STEXI
  260. @item -audio-help
  261. @findex -audio-help
  262. Will show the audio subsystem help: list of drivers, tunable
  263. parameters.
  264. ETEXI
  265. DEF("soundhw", HAS_ARG, QEMU_OPTION_soundhw,
  266. "-soundhw c1,... enable audio support\n"
  267. " and only specified sound cards (comma separated list)\n"
  268. " use '-soundhw help' to get the list of supported cards\n"
  269. " use '-soundhw all' to enable all of them\n", QEMU_ARCH_ALL)
  270. STEXI
  271. @item -soundhw @var{card1}[,@var{card2},...] or -soundhw all
  272. @findex -soundhw
  273. Enable audio and selected sound hardware. Use 'help' to print all
  274. available sound hardware.
  275. @example
  276. qemu-system-i386 -soundhw sb16,adlib disk.img
  277. qemu-system-i386 -soundhw es1370 disk.img
  278. qemu-system-i386 -soundhw ac97 disk.img
  279. qemu-system-i386 -soundhw hda disk.img
  280. qemu-system-i386 -soundhw all disk.img
  281. qemu-system-i386 -soundhw help
  282. @end example
  283. Note that Linux's i810_audio OSS kernel (for AC97) module might
  284. require manually specifying clocking.
  285. @example
  286. modprobe i810_audio clocking=48000
  287. @end example
  288. ETEXI
  289. DEF("balloon", HAS_ARG, QEMU_OPTION_balloon,
  290. "-balloon none disable balloon device\n"
  291. "-balloon virtio[,addr=str]\n"
  292. " enable virtio balloon device (default)\n", QEMU_ARCH_ALL)
  293. STEXI
  294. @item -balloon none
  295. @findex -balloon
  296. Disable balloon device.
  297. @item -balloon virtio[,addr=@var{addr}]
  298. Enable virtio balloon device (default), optionally with PCI address
  299. @var{addr}.
  300. ETEXI
  301. DEF("device", HAS_ARG, QEMU_OPTION_device,
  302. "-device driver[,prop[=value][,...]]\n"
  303. " add device (based on driver)\n"
  304. " prop=value,... sets driver properties\n"
  305. " use '-device help' to print all possible drivers\n"
  306. " use '-device driver,help' to print all possible properties\n",
  307. QEMU_ARCH_ALL)
  308. STEXI
  309. @item -device @var{driver}[,@var{prop}[=@var{value}][,...]]
  310. @findex -device
  311. Add device @var{driver}. @var{prop}=@var{value} sets driver
  312. properties. Valid properties depend on the driver. To get help on
  313. possible drivers and properties, use @code{-device help} and
  314. @code{-device @var{driver},help}.
  315. ETEXI
  316. DEF("name", HAS_ARG, QEMU_OPTION_name,
  317. "-name string1[,process=string2][,debug-threads=on|off]\n"
  318. " set the name of the guest\n"
  319. " string1 sets the window title and string2 the process name (on Linux)\n"
  320. " When debug-threads is enabled, individual threads are given a separate name (on Linux)\n"
  321. " NOTE: The thread names are for debugging and not a stable API.\n",
  322. QEMU_ARCH_ALL)
  323. STEXI
  324. @item -name @var{name}
  325. @findex -name
  326. Sets the @var{name} of the guest.
  327. This name will be displayed in the SDL window caption.
  328. The @var{name} will also be used for the VNC server.
  329. Also optionally set the top visible process name in Linux.
  330. Naming of individual threads can also be enabled on Linux to aid debugging.
  331. ETEXI
  332. DEF("uuid", HAS_ARG, QEMU_OPTION_uuid,
  333. "-uuid %08x-%04x-%04x-%04x-%012x\n"
  334. " specify machine UUID\n", QEMU_ARCH_ALL)
  335. STEXI
  336. @item -uuid @var{uuid}
  337. @findex -uuid
  338. Set system UUID.
  339. ETEXI
  340. STEXI
  341. @end table
  342. ETEXI
  343. DEFHEADING()
  344. DEFHEADING(Block device options:)
  345. STEXI
  346. @table @option
  347. ETEXI
  348. DEF("fda", HAS_ARG, QEMU_OPTION_fda,
  349. "-fda/-fdb file use 'file' as floppy disk 0/1 image\n", QEMU_ARCH_ALL)
  350. DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "", QEMU_ARCH_ALL)
  351. STEXI
  352. @item -fda @var{file}
  353. @item -fdb @var{file}
  354. @findex -fda
  355. @findex -fdb
  356. Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
  357. use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
  358. ETEXI
  359. DEF("hda", HAS_ARG, QEMU_OPTION_hda,
  360. "-hda/-hdb file use 'file' as IDE hard disk 0/1 image\n", QEMU_ARCH_ALL)
  361. DEF("hdb", HAS_ARG, QEMU_OPTION_hdb, "", QEMU_ARCH_ALL)
  362. DEF("hdc", HAS_ARG, QEMU_OPTION_hdc,
  363. "-hdc/-hdd file use 'file' as IDE hard disk 2/3 image\n", QEMU_ARCH_ALL)
  364. DEF("hdd", HAS_ARG, QEMU_OPTION_hdd, "", QEMU_ARCH_ALL)
  365. STEXI
  366. @item -hda @var{file}
  367. @item -hdb @var{file}
  368. @item -hdc @var{file}
  369. @item -hdd @var{file}
  370. @findex -hda
  371. @findex -hdb
  372. @findex -hdc
  373. @findex -hdd
  374. Use @var{file} as hard disk 0, 1, 2 or 3 image (@pxref{disk_images}).
  375. ETEXI
  376. DEF("cdrom", HAS_ARG, QEMU_OPTION_cdrom,
  377. "-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)\n",
  378. QEMU_ARCH_ALL)
  379. STEXI
  380. @item -cdrom @var{file}
  381. @findex -cdrom
  382. Use @var{file} as CD-ROM image (you cannot use @option{-hdc} and
  383. @option{-cdrom} at the same time). You can use the host CD-ROM by
  384. using @file{/dev/cdrom} as filename (@pxref{host_drives}).
  385. ETEXI
  386. DEF("drive", HAS_ARG, QEMU_OPTION_drive,
  387. "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]\n"
  388. " [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n"
  389. " [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]\n"
  390. " [,serial=s][,addr=A][,rerror=ignore|stop|report]\n"
  391. " [,werror=ignore|stop|report|enospc][,id=name][,aio=threads|native]\n"
  392. " [,readonly=on|off][,copy-on-read=on|off]\n"
  393. " [,discard=ignore|unmap][,detect-zeroes=on|off|unmap]\n"
  394. " [[,bps=b]|[[,bps_rd=r][,bps_wr=w]]]\n"
  395. " [[,iops=i]|[[,iops_rd=r][,iops_wr=w]]]\n"
  396. " [[,bps_max=bm]|[[,bps_rd_max=rm][,bps_wr_max=wm]]]\n"
  397. " [[,iops_max=im]|[[,iops_rd_max=irm][,iops_wr_max=iwm]]]\n"
  398. " [[,iops_size=is]]\n"
  399. " use 'file' as a drive image\n", QEMU_ARCH_ALL)
  400. STEXI
  401. @item -drive @var{option}[,@var{option}[,@var{option}[,...]]]
  402. @findex -drive
  403. Define a new drive. Valid options are:
  404. @table @option
  405. @item file=@var{file}
  406. This option defines which disk image (@pxref{disk_images}) to use with
  407. this drive. If the filename contains comma, you must double it
  408. (for instance, "file=my,,file" to use file "my,file").
  409. Special files such as iSCSI devices can be specified using protocol
  410. specific URLs. See the section for "Device URL Syntax" for more information.
  411. @item if=@var{interface}
  412. This option defines on which type on interface the drive is connected.
  413. Available types are: ide, scsi, sd, mtd, floppy, pflash, virtio.
  414. @item bus=@var{bus},unit=@var{unit}
  415. These options define where is connected the drive by defining the bus number and
  416. the unit id.
  417. @item index=@var{index}
  418. This option defines where is connected the drive by using an index in the list
  419. of available connectors of a given interface type.
  420. @item media=@var{media}
  421. This option defines the type of the media: disk or cdrom.
  422. @item cyls=@var{c},heads=@var{h},secs=@var{s}[,trans=@var{t}]
  423. These options have the same definition as they have in @option{-hdachs}.
  424. @item snapshot=@var{snapshot}
  425. @var{snapshot} is "on" or "off" and controls snapshot mode for the given drive
  426. (see @option{-snapshot}).
  427. @item cache=@var{cache}
  428. @var{cache} is "none", "writeback", "unsafe", "directsync" or "writethrough" and controls how the host cache is used to access block data.
  429. @item aio=@var{aio}
  430. @var{aio} is "threads", or "native" and selects between pthread based disk I/O and native Linux AIO.
  431. @item discard=@var{discard}
  432. @var{discard} is one of "ignore" (or "off") or "unmap" (or "on") and controls whether @dfn{discard} (also known as @dfn{trim} or @dfn{unmap}) requests are ignored or passed to the filesystem. Some machine types may not support discard requests.
  433. @item format=@var{format}
  434. Specify which disk @var{format} will be used rather than detecting
  435. the format. Can be used to specifiy format=raw to avoid interpreting
  436. an untrusted format header.
  437. @item serial=@var{serial}
  438. This option specifies the serial number to assign to the device.
  439. @item addr=@var{addr}
  440. Specify the controller's PCI address (if=virtio only).
  441. @item werror=@var{action},rerror=@var{action}
  442. Specify which @var{action} to take on write and read errors. Valid actions are:
  443. "ignore" (ignore the error and try to continue), "stop" (pause QEMU),
  444. "report" (report the error to the guest), "enospc" (pause QEMU only if the
  445. host disk is full; report the error to the guest otherwise).
  446. The default setting is @option{werror=enospc} and @option{rerror=report}.
  447. @item readonly
  448. Open drive @option{file} as read-only. Guest write attempts will fail.
  449. @item copy-on-read=@var{copy-on-read}
  450. @var{copy-on-read} is "on" or "off" and enables whether to copy read backing
  451. file sectors into the image file.
  452. @item detect-zeroes=@var{detect-zeroes}
  453. @var{detect-zeroes} is "off", "on" or "unmap" and enables the automatic
  454. conversion of plain zero writes by the OS to driver specific optimized
  455. zero write commands. You may even choose "unmap" if @var{discard} is set
  456. to "unmap" to allow a zero write to be converted to an UNMAP operation.
  457. @end table
  458. By default, the @option{cache=writeback} mode is used. It will report data
  459. writes as completed as soon as the data is present in the host page cache.
  460. This is safe as long as your guest OS makes sure to correctly flush disk caches
  461. where needed. If your guest OS does not handle volatile disk write caches
  462. correctly and your host crashes or loses power, then the guest may experience
  463. data corruption.
  464. For such guests, you should consider using @option{cache=writethrough}. This
  465. means that the host page cache will be used to read and write data, but write
  466. notification will be sent to the guest only after QEMU has made sure to flush
  467. each write to the disk. Be aware that this has a major impact on performance.
  468. The host page cache can be avoided entirely with @option{cache=none}. This will
  469. attempt to do disk IO directly to the guest's memory. QEMU may still perform
  470. an internal copy of the data. Note that this is considered a writeback mode and
  471. the guest OS must handle the disk write cache correctly in order to avoid data
  472. corruption on host crashes.
  473. The host page cache can be avoided while only sending write notifications to
  474. the guest when the data has been flushed to the disk using
  475. @option{cache=directsync}.
  476. In case you don't care about data integrity over host failures, use
  477. @option{cache=unsafe}. This option tells QEMU that it never needs to write any
  478. data to the disk but can instead keep things in cache. If anything goes wrong,
  479. like your host losing power, the disk storage getting disconnected accidentally,
  480. etc. your image will most probably be rendered unusable. When using
  481. the @option{-snapshot} option, unsafe caching is always used.
  482. Copy-on-read avoids accessing the same backing file sectors repeatedly and is
  483. useful when the backing file is over a slow network. By default copy-on-read
  484. is off.
  485. Instead of @option{-cdrom} you can use:
  486. @example
  487. qemu-system-i386 -drive file=file,index=2,media=cdrom
  488. @end example
  489. Instead of @option{-hda}, @option{-hdb}, @option{-hdc}, @option{-hdd}, you can
  490. use:
  491. @example
  492. qemu-system-i386 -drive file=file,index=0,media=disk
  493. qemu-system-i386 -drive file=file,index=1,media=disk
  494. qemu-system-i386 -drive file=file,index=2,media=disk
  495. qemu-system-i386 -drive file=file,index=3,media=disk
  496. @end example
  497. You can open an image using pre-opened file descriptors from an fd set:
  498. @example
  499. qemu-system-i386
  500. -add-fd fd=3,set=2,opaque="rdwr:/path/to/file"
  501. -add-fd fd=4,set=2,opaque="rdonly:/path/to/file"
  502. -drive file=/dev/fdset/2,index=0,media=disk
  503. @end example
  504. You can connect a CDROM to the slave of ide0:
  505. @example
  506. qemu-system-i386 -drive file=file,if=ide,index=1,media=cdrom
  507. @end example
  508. If you don't specify the "file=" argument, you define an empty drive:
  509. @example
  510. qemu-system-i386 -drive if=ide,index=1,media=cdrom
  511. @end example
  512. You can connect a SCSI disk with unit ID 6 on the bus #0:
  513. @example
  514. qemu-system-i386 -drive file=file,if=scsi,bus=0,unit=6
  515. @end example
  516. Instead of @option{-fda}, @option{-fdb}, you can use:
  517. @example
  518. qemu-system-i386 -drive file=file,index=0,if=floppy
  519. qemu-system-i386 -drive file=file,index=1,if=floppy
  520. @end example
  521. By default, @var{interface} is "ide" and @var{index} is automatically
  522. incremented:
  523. @example
  524. qemu-system-i386 -drive file=a -drive file=b"
  525. @end example
  526. is interpreted like:
  527. @example
  528. qemu-system-i386 -hda a -hdb b
  529. @end example
  530. ETEXI
  531. DEF("mtdblock", HAS_ARG, QEMU_OPTION_mtdblock,
  532. "-mtdblock file use 'file' as on-board Flash memory image\n",
  533. QEMU_ARCH_ALL)
  534. STEXI
  535. @item -mtdblock @var{file}
  536. @findex -mtdblock
  537. Use @var{file} as on-board Flash memory image.
  538. ETEXI
  539. DEF("sd", HAS_ARG, QEMU_OPTION_sd,
  540. "-sd file use 'file' as SecureDigital card image\n", QEMU_ARCH_ALL)
  541. STEXI
  542. @item -sd @var{file}
  543. @findex -sd
  544. Use @var{file} as SecureDigital card image.
  545. ETEXI
  546. DEF("pflash", HAS_ARG, QEMU_OPTION_pflash,
  547. "-pflash file use 'file' as a parallel flash image\n", QEMU_ARCH_ALL)
  548. STEXI
  549. @item -pflash @var{file}
  550. @findex -pflash
  551. Use @var{file} as a parallel flash image.
  552. ETEXI
  553. DEF("snapshot", 0, QEMU_OPTION_snapshot,
  554. "-snapshot write to temporary files instead of disk image files\n",
  555. QEMU_ARCH_ALL)
  556. STEXI
  557. @item -snapshot
  558. @findex -snapshot
  559. Write to temporary files instead of disk image files. In this case,
  560. the raw disk image you use is not written back. You can however force
  561. the write back by pressing @key{C-a s} (@pxref{disk_images}).
  562. ETEXI
  563. DEF("hdachs", HAS_ARG, QEMU_OPTION_hdachs, \
  564. "-hdachs c,h,s[,t]\n" \
  565. " force hard disk 0 physical geometry and the optional BIOS\n" \
  566. " translation (t=none or lba) (usually QEMU can guess them)\n",
  567. QEMU_ARCH_ALL)
  568. STEXI
  569. @item -hdachs @var{c},@var{h},@var{s},[,@var{t}]
  570. @findex -hdachs
  571. Force hard disk 0 physical geometry (1 <= @var{c} <= 16383, 1 <=
  572. @var{h} <= 16, 1 <= @var{s} <= 63) and optionally force the BIOS
  573. translation mode (@var{t}=none, lba or auto). Usually QEMU can guess
  574. all those parameters. This option is useful for old MS-DOS disk
  575. images.
  576. ETEXI
  577. DEF("fsdev", HAS_ARG, QEMU_OPTION_fsdev,
  578. "-fsdev fsdriver,id=id[,path=path,][security_model={mapped-xattr|mapped-file|passthrough|none}]\n"
  579. " [,writeout=immediate][,readonly][,socket=socket|sock_fd=sock_fd]\n",
  580. QEMU_ARCH_ALL)
  581. STEXI
  582. @item -fsdev @var{fsdriver},id=@var{id},path=@var{path},[security_model=@var{security_model}][,writeout=@var{writeout}][,readonly][,socket=@var{socket}|sock_fd=@var{sock_fd}]
  583. @findex -fsdev
  584. Define a new file system device. Valid options are:
  585. @table @option
  586. @item @var{fsdriver}
  587. This option specifies the fs driver backend to use.
  588. Currently "local", "handle" and "proxy" file system drivers are supported.
  589. @item id=@var{id}
  590. Specifies identifier for this device
  591. @item path=@var{path}
  592. Specifies the export path for the file system device. Files under
  593. this path will be available to the 9p client on the guest.
  594. @item security_model=@var{security_model}
  595. Specifies the security model to be used for this export path.
  596. Supported security models are "passthrough", "mapped-xattr", "mapped-file" and "none".
  597. In "passthrough" security model, files are stored using the same
  598. credentials as they are created on the guest. This requires QEMU
  599. to run as root. In "mapped-xattr" security model, some of the file
  600. attributes like uid, gid, mode bits and link target are stored as
  601. file attributes. For "mapped-file" these attributes are stored in the
  602. hidden .virtfs_metadata directory. Directories exported by this security model cannot
  603. interact with other unix tools. "none" security model is same as
  604. passthrough except the sever won't report failures if it fails to
  605. set file attributes like ownership. Security model is mandatory
  606. only for local fsdriver. Other fsdrivers (like handle, proxy) don't take
  607. security model as a parameter.
  608. @item writeout=@var{writeout}
  609. This is an optional argument. The only supported value is "immediate".
  610. This means that host page cache will be used to read and write data but
  611. write notification will be sent to the guest only when the data has been
  612. reported as written by the storage subsystem.
  613. @item readonly
  614. Enables exporting 9p share as a readonly mount for guests. By default
  615. read-write access is given.
  616. @item socket=@var{socket}
  617. Enables proxy filesystem driver to use passed socket file for communicating
  618. with virtfs-proxy-helper
  619. @item sock_fd=@var{sock_fd}
  620. Enables proxy filesystem driver to use passed socket descriptor for
  621. communicating with virtfs-proxy-helper. Usually a helper like libvirt
  622. will create socketpair and pass one of the fds as sock_fd
  623. @end table
  624. -fsdev option is used along with -device driver "virtio-9p-pci".
  625. @item -device virtio-9p-pci,fsdev=@var{id},mount_tag=@var{mount_tag}
  626. Options for virtio-9p-pci driver are:
  627. @table @option
  628. @item fsdev=@var{id}
  629. Specifies the id value specified along with -fsdev option
  630. @item mount_tag=@var{mount_tag}
  631. Specifies the tag name to be used by the guest to mount this export point
  632. @end table
  633. ETEXI
  634. DEF("virtfs", HAS_ARG, QEMU_OPTION_virtfs,
  635. "-virtfs local,path=path,mount_tag=tag,security_model=[mapped-xattr|mapped-file|passthrough|none]\n"
  636. " [,writeout=immediate][,readonly][,socket=socket|sock_fd=sock_fd]\n",
  637. QEMU_ARCH_ALL)
  638. STEXI
  639. @item -virtfs @var{fsdriver}[,path=@var{path}],mount_tag=@var{mount_tag}[,security_model=@var{security_model}][,writeout=@var{writeout}][,readonly][,socket=@var{socket}|sock_fd=@var{sock_fd}]
  640. @findex -virtfs
  641. The general form of a Virtual File system pass-through options are:
  642. @table @option
  643. @item @var{fsdriver}
  644. This option specifies the fs driver backend to use.
  645. Currently "local", "handle" and "proxy" file system drivers are supported.
  646. @item id=@var{id}
  647. Specifies identifier for this device
  648. @item path=@var{path}
  649. Specifies the export path for the file system device. Files under
  650. this path will be available to the 9p client on the guest.
  651. @item security_model=@var{security_model}
  652. Specifies the security model to be used for this export path.
  653. Supported security models are "passthrough", "mapped-xattr", "mapped-file" and "none".
  654. In "passthrough" security model, files are stored using the same
  655. credentials as they are created on the guest. This requires QEMU
  656. to run as root. In "mapped-xattr" security model, some of the file
  657. attributes like uid, gid, mode bits and link target are stored as
  658. file attributes. For "mapped-file" these attributes are stored in the
  659. hidden .virtfs_metadata directory. Directories exported by this security model cannot
  660. interact with other unix tools. "none" security model is same as
  661. passthrough except the sever won't report failures if it fails to
  662. set file attributes like ownership. Security model is mandatory only
  663. for local fsdriver. Other fsdrivers (like handle, proxy) don't take security
  664. model as a parameter.
  665. @item writeout=@var{writeout}
  666. This is an optional argument. The only supported value is "immediate".
  667. This means that host page cache will be used to read and write data but
  668. write notification will be sent to the guest only when the data has been
  669. reported as written by the storage subsystem.
  670. @item readonly
  671. Enables exporting 9p share as a readonly mount for guests. By default
  672. read-write access is given.
  673. @item socket=@var{socket}
  674. Enables proxy filesystem driver to use passed socket file for
  675. communicating with virtfs-proxy-helper. Usually a helper like libvirt
  676. will create socketpair and pass one of the fds as sock_fd
  677. @item sock_fd
  678. Enables proxy filesystem driver to use passed 'sock_fd' as the socket
  679. descriptor for interfacing with virtfs-proxy-helper
  680. @end table
  681. ETEXI
  682. DEF("virtfs_synth", 0, QEMU_OPTION_virtfs_synth,
  683. "-virtfs_synth Create synthetic file system image\n",
  684. QEMU_ARCH_ALL)
  685. STEXI
  686. @item -virtfs_synth
  687. @findex -virtfs_synth
  688. Create synthetic file system image
  689. ETEXI
  690. STEXI
  691. @end table
  692. ETEXI
  693. DEFHEADING()
  694. DEFHEADING(USB options:)
  695. STEXI
  696. @table @option
  697. ETEXI
  698. DEF("usb", 0, QEMU_OPTION_usb,
  699. "-usb enable the USB driver (will be the default soon)\n",
  700. QEMU_ARCH_ALL)
  701. STEXI
  702. @item -usb
  703. @findex -usb
  704. Enable the USB driver (will be the default soon)
  705. ETEXI
  706. DEF("usbdevice", HAS_ARG, QEMU_OPTION_usbdevice,
  707. "-usbdevice name add the host or guest USB device 'name'\n",
  708. QEMU_ARCH_ALL)
  709. STEXI
  710. @item -usbdevice @var{devname}
  711. @findex -usbdevice
  712. Add the USB device @var{devname}. @xref{usb_devices}.
  713. @table @option
  714. @item mouse
  715. Virtual Mouse. This will override the PS/2 mouse emulation when activated.
  716. @item tablet
  717. Pointer device that uses absolute coordinates (like a touchscreen). This
  718. means QEMU is able to report the mouse position without having to grab the
  719. mouse. Also overrides the PS/2 mouse emulation when activated.
  720. @item disk:[format=@var{format}]:@var{file}
  721. Mass storage device based on file. The optional @var{format} argument
  722. will be used rather than detecting the format. Can be used to specifiy
  723. @code{format=raw} to avoid interpreting an untrusted format header.
  724. @item host:@var{bus}.@var{addr}
  725. Pass through the host device identified by @var{bus}.@var{addr} (Linux only).
  726. @item host:@var{vendor_id}:@var{product_id}
  727. Pass through the host device identified by @var{vendor_id}:@var{product_id}
  728. (Linux only).
  729. @item serial:[vendorid=@var{vendor_id}][,productid=@var{product_id}]:@var{dev}
  730. Serial converter to host character device @var{dev}, see @code{-serial} for the
  731. available devices.
  732. @item braille
  733. Braille device. This will use BrlAPI to display the braille output on a real
  734. or fake device.
  735. @item net:@var{options}
  736. Network adapter that supports CDC ethernet and RNDIS protocols.
  737. @end table
  738. ETEXI
  739. STEXI
  740. @end table
  741. ETEXI
  742. DEFHEADING()
  743. DEFHEADING(Display options:)
  744. STEXI
  745. @table @option
  746. ETEXI
  747. DEF("display", HAS_ARG, QEMU_OPTION_display,
  748. "-display sdl[,frame=on|off][,alt_grab=on|off][,ctrl_grab=on|off]\n"
  749. " [,window_close=on|off]|curses|none|\n"
  750. " gtk[,grab_on_hover=on|off]|\n"
  751. " vnc=<display>[,<optargs>]\n"
  752. " select display type\n", QEMU_ARCH_ALL)
  753. STEXI
  754. @item -display @var{type}
  755. @findex -display
  756. Select type of display to use. This option is a replacement for the
  757. old style -sdl/-curses/... options. Valid values for @var{type} are
  758. @table @option
  759. @item sdl
  760. Display video output via SDL (usually in a separate graphics
  761. window; see the SDL documentation for other possibilities).
  762. @item curses
  763. Display video output via curses. For graphics device models which
  764. support a text mode, QEMU can display this output using a
  765. curses/ncurses interface. Nothing is displayed when the graphics
  766. device is in graphical mode or if the graphics device does not support
  767. a text mode. Generally only the VGA device models support text mode.
  768. @item none
  769. Do not display video output. The guest will still see an emulated
  770. graphics card, but its output will not be displayed to the QEMU
  771. user. This option differs from the -nographic option in that it
  772. only affects what is done with video output; -nographic also changes
  773. the destination of the serial and parallel port data.
  774. @item gtk
  775. Display video output in a GTK window. This interface provides drop-down
  776. menus and other UI elements to configure and control the VM during
  777. runtime.
  778. @item vnc
  779. Start a VNC server on display <arg>
  780. @end table
  781. ETEXI
  782. DEF("nographic", 0, QEMU_OPTION_nographic,
  783. "-nographic disable graphical output and redirect serial I/Os to console\n",
  784. QEMU_ARCH_ALL)
  785. STEXI
  786. @item -nographic
  787. @findex -nographic
  788. Normally, QEMU uses SDL to display the VGA output. With this option,
  789. you can totally disable graphical output so that QEMU is a simple
  790. command line application. The emulated serial port is redirected on
  791. the console and muxed with the monitor (unless redirected elsewhere
  792. explicitly). Therefore, you can still use QEMU to debug a Linux kernel
  793. with a serial console. Use @key{C-a h} for help on switching between
  794. the console and monitor.
  795. ETEXI
  796. DEF("curses", 0, QEMU_OPTION_curses,
  797. "-curses use a curses/ncurses interface instead of SDL\n",
  798. QEMU_ARCH_ALL)
  799. STEXI
  800. @item -curses
  801. @findex -curses
  802. Normally, QEMU uses SDL to display the VGA output. With this option,
  803. QEMU can display the VGA output when in text mode using a
  804. curses/ncurses interface. Nothing is displayed in graphical mode.
  805. ETEXI
  806. DEF("no-frame", 0, QEMU_OPTION_no_frame,
  807. "-no-frame open SDL window without a frame and window decorations\n",
  808. QEMU_ARCH_ALL)
  809. STEXI
  810. @item -no-frame
  811. @findex -no-frame
  812. Do not use decorations for SDL windows and start them using the whole
  813. available screen space. This makes the using QEMU in a dedicated desktop
  814. workspace more convenient.
  815. ETEXI
  816. DEF("alt-grab", 0, QEMU_OPTION_alt_grab,
  817. "-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n",
  818. QEMU_ARCH_ALL)
  819. STEXI
  820. @item -alt-grab
  821. @findex -alt-grab
  822. Use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt). Note that this also
  823. affects the special keys (for fullscreen, monitor-mode switching, etc).
  824. ETEXI
  825. DEF("ctrl-grab", 0, QEMU_OPTION_ctrl_grab,
  826. "-ctrl-grab use Right-Ctrl to grab mouse (instead of Ctrl-Alt)\n",
  827. QEMU_ARCH_ALL)
  828. STEXI
  829. @item -ctrl-grab
  830. @findex -ctrl-grab
  831. Use Right-Ctrl to grab mouse (instead of Ctrl-Alt). Note that this also
  832. affects the special keys (for fullscreen, monitor-mode switching, etc).
  833. ETEXI
  834. DEF("no-quit", 0, QEMU_OPTION_no_quit,
  835. "-no-quit disable SDL window close capability\n", QEMU_ARCH_ALL)
  836. STEXI
  837. @item -no-quit
  838. @findex -no-quit
  839. Disable SDL window close capability.
  840. ETEXI
  841. DEF("sdl", 0, QEMU_OPTION_sdl,
  842. "-sdl enable SDL\n", QEMU_ARCH_ALL)
  843. STEXI
  844. @item -sdl
  845. @findex -sdl
  846. Enable SDL.
  847. ETEXI
  848. DEF("spice", HAS_ARG, QEMU_OPTION_spice,
  849. "-spice [port=port][,tls-port=secured-port][,x509-dir=<dir>]\n"
  850. " [,x509-key-file=<file>][,x509-key-password=<file>]\n"
  851. " [,x509-cert-file=<file>][,x509-cacert-file=<file>]\n"
  852. " [,x509-dh-key-file=<file>][,addr=addr][,ipv4|ipv6]\n"
  853. " [,tls-ciphers=<list>]\n"
  854. " [,tls-channel=[main|display|cursor|inputs|record|playback]]\n"
  855. " [,plaintext-channel=[main|display|cursor|inputs|record|playback]]\n"
  856. " [,sasl][,password=<secret>][,disable-ticketing]\n"
  857. " [,image-compression=[auto_glz|auto_lz|quic|glz|lz|off]]\n"
  858. " [,jpeg-wan-compression=[auto|never|always]]\n"
  859. " [,zlib-glz-wan-compression=[auto|never|always]]\n"
  860. " [,streaming-video=[off|all|filter]][,disable-copy-paste]\n"
  861. " [,disable-agent-file-xfer][,agent-mouse=[on|off]]\n"
  862. " [,playback-compression=[on|off]][,seamless-migration=[on|off]]\n"
  863. " enable spice\n"
  864. " at least one of {port, tls-port} is mandatory\n",
  865. QEMU_ARCH_ALL)
  866. STEXI
  867. @item -spice @var{option}[,@var{option}[,...]]
  868. @findex -spice
  869. Enable the spice remote desktop protocol. Valid options are
  870. @table @option
  871. @item port=<nr>
  872. Set the TCP port spice is listening on for plaintext channels.
  873. @item addr=<addr>
  874. Set the IP address spice is listening on. Default is any address.
  875. @item ipv4
  876. @item ipv6
  877. Force using the specified IP version.
  878. @item password=<secret>
  879. Set the password you need to authenticate.
  880. @item sasl
  881. Require that the client use SASL to authenticate with the spice.
  882. The exact choice of authentication method used is controlled from the
  883. system / user's SASL configuration file for the 'qemu' service. This
  884. is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
  885. unprivileged user, an environment variable SASL_CONF_PATH can be used
  886. to make it search alternate locations for the service config.
  887. While some SASL auth methods can also provide data encryption (eg GSSAPI),
  888. it is recommended that SASL always be combined with the 'tls' and
  889. 'x509' settings to enable use of SSL and server certificates. This
  890. ensures a data encryption preventing compromise of authentication
  891. credentials.
  892. @item disable-ticketing
  893. Allow client connects without authentication.
  894. @item disable-copy-paste
  895. Disable copy paste between the client and the guest.
  896. @item disable-agent-file-xfer
  897. Disable spice-vdagent based file-xfer between the client and the guest.
  898. @item tls-port=<nr>
  899. Set the TCP port spice is listening on for encrypted channels.
  900. @item x509-dir=<dir>
  901. Set the x509 file directory. Expects same filenames as -vnc $display,x509=$dir
  902. @item x509-key-file=<file>
  903. @item x509-key-password=<file>
  904. @item x509-cert-file=<file>
  905. @item x509-cacert-file=<file>
  906. @item x509-dh-key-file=<file>
  907. The x509 file names can also be configured individually.
  908. @item tls-ciphers=<list>
  909. Specify which ciphers to use.
  910. @item tls-channel=[main|display|cursor|inputs|record|playback]
  911. @item plaintext-channel=[main|display|cursor|inputs|record|playback]
  912. Force specific channel to be used with or without TLS encryption. The
  913. options can be specified multiple times to configure multiple
  914. channels. The special name "default" can be used to set the default
  915. mode. For channels which are not explicitly forced into one mode the
  916. spice client is allowed to pick tls/plaintext as he pleases.
  917. @item image-compression=[auto_glz|auto_lz|quic|glz|lz|off]
  918. Configure image compression (lossless).
  919. Default is auto_glz.
  920. @item jpeg-wan-compression=[auto|never|always]
  921. @item zlib-glz-wan-compression=[auto|never|always]
  922. Configure wan image compression (lossy for slow links).
  923. Default is auto.
  924. @item streaming-video=[off|all|filter]
  925. Configure video stream detection. Default is filter.
  926. @item agent-mouse=[on|off]
  927. Enable/disable passing mouse events via vdagent. Default is on.
  928. @item playback-compression=[on|off]
  929. Enable/disable audio stream compression (using celt 0.5.1). Default is on.
  930. @item seamless-migration=[on|off]
  931. Enable/disable spice seamless migration. Default is off.
  932. @end table
  933. ETEXI
  934. DEF("portrait", 0, QEMU_OPTION_portrait,
  935. "-portrait rotate graphical output 90 deg left (only PXA LCD)\n",
  936. QEMU_ARCH_ALL)
  937. STEXI
  938. @item -portrait
  939. @findex -portrait
  940. Rotate graphical output 90 deg left (only PXA LCD).
  941. ETEXI
  942. DEF("rotate", HAS_ARG, QEMU_OPTION_rotate,
  943. "-rotate <deg> rotate graphical output some deg left (only PXA LCD)\n",
  944. QEMU_ARCH_ALL)
  945. STEXI
  946. @item -rotate @var{deg}
  947. @findex -rotate
  948. Rotate graphical output some deg left (only PXA LCD).
  949. ETEXI
  950. DEF("vga", HAS_ARG, QEMU_OPTION_vga,
  951. "-vga [std|cirrus|vmware|qxl|xenfb|tcx|cg3|none]\n"
  952. " select video card type\n", QEMU_ARCH_ALL)
  953. STEXI
  954. @item -vga @var{type}
  955. @findex -vga
  956. Select type of VGA card to emulate. Valid values for @var{type} are
  957. @table @option
  958. @item cirrus
  959. Cirrus Logic GD5446 Video card. All Windows versions starting from
  960. Windows 95 should recognize and use this graphic card. For optimal
  961. performances, use 16 bit color depth in the guest and the host OS.
  962. (This one is the default)
  963. @item std
  964. Standard VGA card with Bochs VBE extensions. If your guest OS
  965. supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want
  966. to use high resolution modes (>= 1280x1024x16) then you should use
  967. this option.
  968. @item vmware
  969. VMWare SVGA-II compatible adapter. Use it if you have sufficiently
  970. recent XFree86/XOrg server or Windows guest with a driver for this
  971. card.
  972. @item qxl
  973. QXL paravirtual graphic card. It is VGA compatible (including VESA
  974. 2.0 VBE support). Works best with qxl guest drivers installed though.
  975. Recommended choice when using the spice protocol.
  976. @item tcx
  977. (sun4m only) Sun TCX framebuffer. This is the default framebuffer for
  978. sun4m machines and offers both 8-bit and 24-bit colour depths at a
  979. fixed resolution of 1024x768.
  980. @item cg3
  981. (sun4m only) Sun cgthree framebuffer. This is a simple 8-bit framebuffer
  982. for sun4m machines available in both 1024x768 (OpenBIOS) and 1152x900 (OBP)
  983. resolutions aimed at people wishing to run older Solaris versions.
  984. @item none
  985. Disable VGA card.
  986. @end table
  987. ETEXI
  988. DEF("full-screen", 0, QEMU_OPTION_full_screen,
  989. "-full-screen start in full screen\n", QEMU_ARCH_ALL)
  990. STEXI
  991. @item -full-screen
  992. @findex -full-screen
  993. Start in full screen.
  994. ETEXI
  995. DEF("g", 1, QEMU_OPTION_g ,
  996. "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n",
  997. QEMU_ARCH_PPC | QEMU_ARCH_SPARC)
  998. STEXI
  999. @item -g @var{width}x@var{height}[x@var{depth}]
  1000. @findex -g
  1001. Set the initial graphical resolution and depth (PPC, SPARC only).
  1002. ETEXI
  1003. DEF("vnc", HAS_ARG, QEMU_OPTION_vnc ,
  1004. "-vnc display start a VNC server on display\n", QEMU_ARCH_ALL)
  1005. STEXI
  1006. @item -vnc @var{display}[,@var{option}[,@var{option}[,...]]]
  1007. @findex -vnc
  1008. Normally, QEMU uses SDL to display the VGA output. With this option,
  1009. you can have QEMU listen on VNC display @var{display} and redirect the VGA
  1010. display over the VNC session. It is very useful to enable the usb
  1011. tablet device when using this option (option @option{-usbdevice
  1012. tablet}). When using the VNC display, you must use the @option{-k}
  1013. parameter to set the keyboard layout if you are not using en-us. Valid
  1014. syntax for the @var{display} is
  1015. @table @option
  1016. @item @var{host}:@var{d}
  1017. TCP connections will only be allowed from @var{host} on display @var{d}.
  1018. By convention the TCP port is 5900+@var{d}. Optionally, @var{host} can
  1019. be omitted in which case the server will accept connections from any host.
  1020. @item unix:@var{path}
  1021. Connections will be allowed over UNIX domain sockets where @var{path} is the
  1022. location of a unix socket to listen for connections on.
  1023. @item none
  1024. VNC is initialized but not started. The monitor @code{change} command
  1025. can be used to later start the VNC server.
  1026. @end table
  1027. Following the @var{display} value there may be one or more @var{option} flags
  1028. separated by commas. Valid options are
  1029. @table @option
  1030. @item reverse
  1031. Connect to a listening VNC client via a ``reverse'' connection. The
  1032. client is specified by the @var{display}. For reverse network
  1033. connections (@var{host}:@var{d},@code{reverse}), the @var{d} argument
  1034. is a TCP port number, not a display number.
  1035. @item websocket
  1036. Opens an additional TCP listening port dedicated to VNC Websocket connections.
  1037. By definition the Websocket port is 5700+@var{display}. If @var{host} is
  1038. specified connections will only be allowed from this host.
  1039. As an alternative the Websocket port could be specified by using
  1040. @code{websocket}=@var{port}.
  1041. TLS encryption for the Websocket connection is supported if the required
  1042. certificates are specified with the VNC option @option{x509}.
  1043. @item password
  1044. Require that password based authentication is used for client connections.
  1045. The password must be set separately using the @code{set_password} command in
  1046. the @ref{pcsys_monitor}. The syntax to change your password is:
  1047. @code{set_password <protocol> <password>} where <protocol> could be either
  1048. "vnc" or "spice".
  1049. If you would like to change <protocol> password expiration, you should use
  1050. @code{expire_password <protocol> <expiration-time>} where expiration time could
  1051. be one of the following options: now, never, +seconds or UNIX time of
  1052. expiration, e.g. +60 to make password expire in 60 seconds, or 1335196800
  1053. to make password expire on "Mon Apr 23 12:00:00 EDT 2012" (UNIX time for this
  1054. date and time).
  1055. You can also use keywords "now" or "never" for the expiration time to
  1056. allow <protocol> password to expire immediately or never expire.
  1057. @item tls
  1058. Require that client use TLS when communicating with the VNC server. This
  1059. uses anonymous TLS credentials so is susceptible to a man-in-the-middle
  1060. attack. It is recommended that this option be combined with either the
  1061. @option{x509} or @option{x509verify} options.
  1062. @item x509=@var{/path/to/certificate/dir}
  1063. Valid if @option{tls} is specified. Require that x509 credentials are used
  1064. for negotiating the TLS session. The server will send its x509 certificate
  1065. to the client. It is recommended that a password be set on the VNC server
  1066. to provide authentication of the client when this is used. The path following
  1067. this option specifies where the x509 certificates are to be loaded from.
  1068. See the @ref{vnc_security} section for details on generating certificates.
  1069. @item x509verify=@var{/path/to/certificate/dir}
  1070. Valid if @option{tls} is specified. Require that x509 credentials are used
  1071. for negotiating the TLS session. The server will send its x509 certificate
  1072. to the client, and request that the client send its own x509 certificate.
  1073. The server will validate the client's certificate against the CA certificate,
  1074. and reject clients when validation fails. If the certificate authority is
  1075. trusted, this is a sufficient authentication mechanism. You may still wish
  1076. to set a password on the VNC server as a second authentication layer. The
  1077. path following this option specifies where the x509 certificates are to
  1078. be loaded from. See the @ref{vnc_security} section for details on generating
  1079. certificates.
  1080. @item sasl
  1081. Require that the client use SASL to authenticate with the VNC server.
  1082. The exact choice of authentication method used is controlled from the
  1083. system / user's SASL configuration file for the 'qemu' service. This
  1084. is typically found in /etc/sasl2/qemu.conf. If running QEMU as an
  1085. unprivileged user, an environment variable SASL_CONF_PATH can be used
  1086. to make it search alternate locations for the service config.
  1087. While some SASL auth methods can also provide data encryption (eg GSSAPI),
  1088. it is recommended that SASL always be combined with the 'tls' and
  1089. 'x509' settings to enable use of SSL and server certificates. This
  1090. ensures a data encryption preventing compromise of authentication
  1091. credentials. See the @ref{vnc_security} section for details on using
  1092. SASL authentication.
  1093. @item acl
  1094. Turn on access control lists for checking of the x509 client certificate
  1095. and SASL party. For x509 certs, the ACL check is made against the
  1096. certificate's distinguished name. This is something that looks like
  1097. @code{C=GB,O=ACME,L=Boston,CN=bob}. For SASL party, the ACL check is
  1098. made against the username, which depending on the SASL plugin, may
  1099. include a realm component, eg @code{bob} or @code{bob@@EXAMPLE.COM}.
  1100. When the @option{acl} flag is set, the initial access list will be
  1101. empty, with a @code{deny} policy. Thus no one will be allowed to
  1102. use the VNC server until the ACLs have been loaded. This can be
  1103. achieved using the @code{acl} monitor command.
  1104. @item lossy
  1105. Enable lossy compression methods (gradient, JPEG, ...). If this
  1106. option is set, VNC client may receive lossy framebuffer updates
  1107. depending on its encoding settings. Enabling this option can save
  1108. a lot of bandwidth at the expense of quality.
  1109. @item non-adaptive
  1110. Disable adaptive encodings. Adaptive encodings are enabled by default.
  1111. An adaptive encoding will try to detect frequently updated screen regions,
  1112. and send updates in these regions using a lossy encoding (like JPEG).
  1113. This can be really helpful to save bandwidth when playing videos. Disabling
  1114. adaptive encodings restores the original static behavior of encodings
  1115. like Tight.
  1116. @item share=[allow-exclusive|force-shared|ignore]
  1117. Set display sharing policy. 'allow-exclusive' allows clients to ask
  1118. for exclusive access. As suggested by the rfb spec this is
  1119. implemented by dropping other connections. Connecting multiple
  1120. clients in parallel requires all clients asking for a shared session
  1121. (vncviewer: -shared switch). This is the default. 'force-shared'
  1122. disables exclusive client access. Useful for shared desktop sessions,
  1123. where you don't want someone forgetting specify -shared disconnect
  1124. everybody else. 'ignore' completely ignores the shared flag and
  1125. allows everybody connect unconditionally. Doesn't conform to the rfb
  1126. spec but is traditional QEMU behavior.
  1127. @end table
  1128. ETEXI
  1129. STEXI
  1130. @end table
  1131. ETEXI
  1132. ARCHHEADING(, QEMU_ARCH_I386)
  1133. ARCHHEADING(i386 target only:, QEMU_ARCH_I386)
  1134. STEXI
  1135. @table @option
  1136. ETEXI
  1137. DEF("win2k-hack", 0, QEMU_OPTION_win2k_hack,
  1138. "-win2k-hack use it when installing Windows 2000 to avoid a disk full bug\n",
  1139. QEMU_ARCH_I386)
  1140. STEXI
  1141. @item -win2k-hack
  1142. @findex -win2k-hack
  1143. Use it when installing Windows 2000 to avoid a disk full bug. After
  1144. Windows 2000 is installed, you no longer need this option (this option
  1145. slows down the IDE transfers).
  1146. ETEXI
  1147. HXCOMM Deprecated by -rtc
  1148. DEF("rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack, "", QEMU_ARCH_I386)
  1149. DEF("no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk,
  1150. "-no-fd-bootchk disable boot signature checking for floppy disks\n",
  1151. QEMU_ARCH_I386)
  1152. STEXI
  1153. @item -no-fd-bootchk
  1154. @findex -no-fd-bootchk
  1155. Disable boot signature checking for floppy disks in BIOS. May
  1156. be needed to boot from old floppy disks.
  1157. ETEXI
  1158. DEF("no-acpi", 0, QEMU_OPTION_no_acpi,
  1159. "-no-acpi disable ACPI\n", QEMU_ARCH_I386)
  1160. STEXI
  1161. @item -no-acpi
  1162. @findex -no-acpi
  1163. Disable ACPI (Advanced Configuration and Power Interface) support. Use
  1164. it if your guest OS complains about ACPI problems (PC target machine
  1165. only).
  1166. ETEXI
  1167. DEF("no-hpet", 0, QEMU_OPTION_no_hpet,
  1168. "-no-hpet disable HPET\n", QEMU_ARCH_I386)
  1169. STEXI
  1170. @item -no-hpet
  1171. @findex -no-hpet
  1172. Disable HPET support.
  1173. ETEXI
  1174. DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
  1175. "-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,{data|file}=file1[:file2]...]\n"
  1176. " ACPI table description\n", QEMU_ARCH_I386)
  1177. STEXI
  1178. @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}]...]
  1179. @findex -acpitable
  1180. Add ACPI table with specified header fields and context from specified files.
  1181. For file=, take whole ACPI table from the specified files, including all
  1182. ACPI headers (possible overridden by other options).
  1183. For data=, only data
  1184. portion of the table is used, all header information is specified in the
  1185. command line.
  1186. ETEXI
  1187. DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
  1188. "-smbios file=binary\n"
  1189. " load SMBIOS entry from binary file\n"
  1190. "-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d][,uefi=on|off]\n"
  1191. " specify SMBIOS type 0 fields\n"
  1192. "-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]\n"
  1193. " [,uuid=uuid][,sku=str][,family=str]\n"
  1194. " specify SMBIOS type 1 fields\n", QEMU_ARCH_I386)
  1195. STEXI
  1196. @item -smbios file=@var{binary}
  1197. @findex -smbios
  1198. Load SMBIOS entry from binary file.
  1199. @item -smbios type=0[,vendor=@var{str}][,version=@var{str}][,date=@var{str}][,release=@var{%d.%d}][,uefi=on|off]
  1200. Specify SMBIOS type 0 fields
  1201. @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}]
  1202. Specify SMBIOS type 1 fields
  1203. ETEXI
  1204. STEXI
  1205. @end table
  1206. ETEXI
  1207. DEFHEADING()
  1208. DEFHEADING(Network options:)
  1209. STEXI
  1210. @table @option
  1211. ETEXI
  1212. HXCOMM Legacy slirp options (now moved to -net user):
  1213. #ifdef CONFIG_SLIRP
  1214. DEF("tftp", HAS_ARG, QEMU_OPTION_tftp, "", QEMU_ARCH_ALL)
  1215. DEF("bootp", HAS_ARG, QEMU_OPTION_bootp, "", QEMU_ARCH_ALL)
  1216. DEF("redir", HAS_ARG, QEMU_OPTION_redir, "", QEMU_ARCH_ALL)
  1217. #ifndef _WIN32
  1218. DEF("smb", HAS_ARG, QEMU_OPTION_smb, "", QEMU_ARCH_ALL)
  1219. #endif
  1220. #endif
  1221. DEF("net", HAS_ARG, QEMU_OPTION_net,
  1222. "-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]\n"
  1223. " create a new Network Interface Card and connect it to VLAN 'n'\n"
  1224. #ifdef CONFIG_SLIRP
  1225. "-net user[,vlan=n][,name=str][,net=addr[/mask]][,host=addr][,restrict=on|off]\n"
  1226. " [,hostname=host][,dhcpstart=addr][,dns=addr][,dnssearch=domain][,tftp=dir]\n"
  1227. " [,bootfile=f][,hostfwd=rule][,guestfwd=rule]"
  1228. #ifndef _WIN32
  1229. "[,smb=dir[,smbserver=addr]]\n"
  1230. #endif
  1231. " connect the user mode network stack to VLAN 'n', configure its\n"
  1232. " DHCP server and enabled optional services\n"
  1233. #endif
  1234. #ifdef _WIN32
  1235. "-net tap[,vlan=n][,name=str],ifname=name\n"
  1236. " connect the host TAP network interface to VLAN 'n'\n"
  1237. #else
  1238. "-net tap[,vlan=n][,name=str][,fd=h][,fds=x:y:...:z][,ifname=name][,script=file][,downscript=dfile][,helper=helper][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostfds=x:y:...:z][,vhostforce=on|off][,queues=n]\n"
  1239. " connect the host TAP network interface to VLAN 'n'\n"
  1240. " use network scripts 'file' (default=" DEFAULT_NETWORK_SCRIPT ")\n"
  1241. " to configure it and 'dfile' (default=" DEFAULT_NETWORK_DOWN_SCRIPT ")\n"
  1242. " to deconfigure it\n"
  1243. " use '[down]script=no' to disable script execution\n"
  1244. " use network helper 'helper' (default=" DEFAULT_BRIDGE_HELPER ") to\n"
  1245. " configure it\n"
  1246. " use 'fd=h' to connect to an already opened TAP interface\n"
  1247. " use 'fds=x:y:...:z' to connect to already opened multiqueue capable TAP interfaces\n"
  1248. " use 'sndbuf=nbytes' to limit the size of the send buffer (the\n"
  1249. " default is disabled 'sndbuf=0' to enable flow control set 'sndbuf=1048576')\n"
  1250. " use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag\n"
  1251. " use vnet_hdr=on to make the lack of IFF_VNET_HDR support an error condition\n"
  1252. " use vhost=on to enable experimental in kernel accelerator\n"
  1253. " (only has effect for virtio guests which use MSIX)\n"
  1254. " use vhostforce=on to force vhost on for non-MSIX virtio guests\n"
  1255. " use 'vhostfd=h' to connect to an already opened vhost net device\n"
  1256. " use 'vhostfds=x:y:...:z to connect to multiple already opened vhost net devices\n"
  1257. " use 'queues=n' to specify the number of queues to be created for multiqueue TAP\n"
  1258. "-net bridge[,vlan=n][,name=str][,br=bridge][,helper=helper]\n"
  1259. " connects a host TAP network interface to a host bridge device 'br'\n"
  1260. " (default=" DEFAULT_BRIDGE_INTERFACE ") using the program 'helper'\n"
  1261. " (default=" DEFAULT_BRIDGE_HELPER ")\n"
  1262. #endif
  1263. #ifdef __linux__
  1264. "-net l2tpv3[,vlan=n][,name=str],src=srcaddr,dst=dstaddr[,srcport=srcport][,dstport=dstport],txsession=txsession[,rxsession=rxsession][,ipv6=on/off][,udp=on/off][,cookie64=on/off][,counter][,pincounter][,txcookie=txcookie][,rxcookie=rxcookie][,offset=offset]\n"
  1265. " connect the VLAN to an Ethernet over L2TPv3 pseudowire\n"
  1266. " Linux kernel 3.3+ as well as most routers can talk\n"
  1267. " L2TPv3. This transport allows connecting a VM to a VM,\n"
  1268. " VM to a router and even VM to Host. It is a nearly-universal\n"
  1269. " standard (RFC3391). Note - this implementation uses static\n"
  1270. " pre-configured tunnels (same as the Linux kernel).\n"
  1271. " use 'src=' to specify source address\n"
  1272. " use 'dst=' to specify destination address\n"
  1273. " use 'udp=on' to specify udp encapsulation\n"
  1274. " use 'srcport=' to specify source udp port\n"
  1275. " use 'dstport=' to specify destination udp port\n"
  1276. " use 'ipv6=on' to force v6\n"
  1277. " L2TPv3 uses cookies to prevent misconfiguration as\n"
  1278. " well as a weak security measure\n"
  1279. " use 'rxcookie=0x012345678' to specify a rxcookie\n"
  1280. " use 'txcookie=0x012345678' to specify a txcookie\n"
  1281. " use 'cookie64=on' to set cookie size to 64 bit, otherwise 32\n"
  1282. " use 'counter=off' to force a 'cut-down' L2TPv3 with no counter\n"
  1283. " use 'pincounter=on' to work around broken counter handling in peer\n"
  1284. " use 'offset=X' to add an extra offset between header and data\n"
  1285. #endif
  1286. "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
  1287. " connect the vlan 'n' to another VLAN using a socket connection\n"
  1288. "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port[,localaddr=addr]]\n"
  1289. " connect the vlan 'n' to multicast maddr and port\n"
  1290. " use 'localaddr=addr' to specify the host address to send packets from\n"
  1291. "-net socket[,vlan=n][,name=str][,fd=h][,udp=host:port][,localaddr=host:port]\n"
  1292. " connect the vlan 'n' to another VLAN using an UDP tunnel\n"
  1293. #ifdef CONFIG_VDE
  1294. "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
  1295. " connect the vlan 'n' to port 'n' of a vde switch running\n"
  1296. " on host and listening for incoming connections on 'socketpath'.\n"
  1297. " Use group 'groupname' and mode 'octalmode' to change default\n"
  1298. " ownership and permissions for communication port.\n"
  1299. #endif
  1300. #ifdef CONFIG_NETMAP
  1301. "-net netmap,ifname=name[,devname=nmname]\n"
  1302. " attach to the existing netmap-enabled network interface 'name', or to a\n"
  1303. " VALE port (created on the fly) called 'name' ('nmname' is name of the \n"
  1304. " netmap device, defaults to '/dev/netmap')\n"
  1305. #endif
  1306. "-net dump[,vlan=n][,file=f][,len=n]\n"
  1307. " dump traffic on vlan 'n' to file 'f' (max n bytes per packet)\n"
  1308. "-net none use it alone to have zero network devices. If no -net option\n"
  1309. " is provided, the default is '-net nic -net user'\n", QEMU_ARCH_ALL)
  1310. DEF("netdev", HAS_ARG, QEMU_OPTION_netdev,
  1311. "-netdev ["
  1312. #ifdef CONFIG_SLIRP
  1313. "user|"
  1314. #endif
  1315. "tap|"
  1316. "bridge|"
  1317. #ifdef CONFIG_VDE
  1318. "vde|"
  1319. #endif
  1320. #ifdef CONFIG_NETMAP
  1321. "netmap|"
  1322. #endif
  1323. "vhost-user|"
  1324. "socket|"
  1325. "hubport],id=str[,option][,option][,...]\n", QEMU_ARCH_ALL)
  1326. STEXI
  1327. @item -net nic[,vlan=@var{n}][,macaddr=@var{mac}][,model=@var{type}] [,name=@var{name}][,addr=@var{addr}][,vectors=@var{v}]
  1328. @findex -net
  1329. Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
  1330. = 0 is the default). The NIC is an e1000 by default on the PC
  1331. target. Optionally, the MAC address can be changed to @var{mac}, the
  1332. device address set to @var{addr} (PCI cards only),
  1333. and a @var{name} can be assigned for use in monitor commands.
  1334. Optionally, for PCI cards, you can specify the number @var{v} of MSI-X vectors
  1335. that the card should have; this option currently only affects virtio cards; set
  1336. @var{v} = 0 to disable MSI-X. If no @option{-net} option is specified, a single
  1337. NIC is created. QEMU can emulate several different models of network card.
  1338. Valid values for @var{type} are
  1339. @code{virtio}, @code{i82551}, @code{i82557b}, @code{i82559er},
  1340. @code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
  1341. @code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}.
  1342. Not all devices are supported on all targets. Use @code{-net nic,model=help}
  1343. for a list of available devices for your target.
  1344. @item -netdev user,id=@var{id}[,@var{option}][,@var{option}][,...]
  1345. @findex -netdev
  1346. @item -net user[,@var{option}][,@var{option}][,...]
  1347. Use the user mode network stack which requires no administrator
  1348. privilege to run. Valid options are:
  1349. @table @option
  1350. @item vlan=@var{n}
  1351. Connect user mode stack to VLAN @var{n} (@var{n} = 0 is the default).
  1352. @item id=@var{id}
  1353. @item name=@var{name}
  1354. Assign symbolic name for use in monitor commands.
  1355. @item net=@var{addr}[/@var{mask}]
  1356. Set IP network address the guest will see. Optionally specify the netmask,
  1357. either in the form a.b.c.d or as number of valid top-most bits. Default is
  1358. 10.0.2.0/24.
  1359. @item host=@var{addr}
  1360. Specify the guest-visible address of the host. Default is the 2nd IP in the
  1361. guest network, i.e. x.x.x.2.
  1362. @item restrict=on|off
  1363. If this option is enabled, the guest will be isolated, i.e. it will not be
  1364. able to contact the host and no guest IP packets will be routed over the host
  1365. to the outside. This option does not affect any explicitly set forwarding rules.
  1366. @item hostname=@var{name}
  1367. Specifies the client hostname reported by the built-in DHCP server.
  1368. @item dhcpstart=@var{addr}
  1369. Specify the first of the 16 IPs the built-in DHCP server can assign. Default
  1370. is the 15th to 31st IP in the guest network, i.e. x.x.x.15 to x.x.x.31.
  1371. @item dns=@var{addr}
  1372. Specify the guest-visible address of the virtual nameserver. The address must
  1373. be different from the host address. Default is the 3rd IP in the guest network,
  1374. i.e. x.x.x.3.
  1375. @item dnssearch=@var{domain}
  1376. Provides an entry for the domain-search list sent by the built-in
  1377. DHCP server. More than one domain suffix can be transmitted by specifying
  1378. this option multiple times. If supported, this will cause the guest to
  1379. automatically try to append the given domain suffix(es) in case a domain name
  1380. can not be resolved.
  1381. Example:
  1382. @example
  1383. qemu -net user,dnssearch=mgmt.example.org,dnssearch=example.org [...]
  1384. @end example
  1385. @item tftp=@var{dir}
  1386. When using the user mode network stack, activate a built-in TFTP
  1387. server. The files in @var{dir} will be exposed as the root of a TFTP server.
  1388. The TFTP client on the guest must be configured in binary mode (use the command
  1389. @code{bin} of the Unix TFTP client).
  1390. @item bootfile=@var{file}
  1391. When using the user mode network stack, broadcast @var{file} as the BOOTP
  1392. filename. In conjunction with @option{tftp}, this can be used to network boot
  1393. a guest from a local directory.
  1394. Example (using pxelinux):
  1395. @example
  1396. qemu-system-i386 -hda linux.img -boot n -net user,tftp=/path/to/tftp/files,bootfile=/pxelinux.0
  1397. @end example
  1398. @item smb=@var{dir}[,smbserver=@var{addr}]
  1399. When using the user mode network stack, activate a built-in SMB
  1400. server so that Windows OSes can access to the host files in @file{@var{dir}}
  1401. transparently. The IP address of the SMB server can be set to @var{addr}. By
  1402. default the 4th IP in the guest network is used, i.e. x.x.x.4.
  1403. In the guest Windows OS, the line:
  1404. @example
  1405. 10.0.2.4 smbserver
  1406. @end example
  1407. must be added in the file @file{C:\WINDOWS\LMHOSTS} (for windows 9x/Me)
  1408. or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000).
  1409. Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}.
  1410. Note that a SAMBA server must be installed on the host OS.
  1411. QEMU was tested successfully with smbd versions from Red Hat 9,
  1412. Fedora Core 3 and OpenSUSE 11.x.
  1413. @item hostfwd=[tcp|udp]:[@var{hostaddr}]:@var{hostport}-[@var{guestaddr}]:@var{guestport}
  1414. Redirect incoming TCP or UDP connections to the host port @var{hostport} to
  1415. the guest IP address @var{guestaddr} on guest port @var{guestport}. If
  1416. @var{guestaddr} is not specified, its value is x.x.x.15 (default first address
  1417. given by the built-in DHCP server). By specifying @var{hostaddr}, the rule can
  1418. be bound to a specific host interface. If no connection type is set, TCP is
  1419. used. This option can be given multiple times.
  1420. For example, to redirect host X11 connection from screen 1 to guest
  1421. screen 0, use the following:
  1422. @example
  1423. # on the host
  1424. qemu-system-i386 -net user,hostfwd=tcp:127.0.0.1:6001-:6000 [...]
  1425. # this host xterm should open in the guest X11 server
  1426. xterm -display :1
  1427. @end example
  1428. To redirect telnet connections from host port 5555 to telnet port on
  1429. the guest, use the following:
  1430. @example
  1431. # on the host
  1432. qemu-system-i386 -net user,hostfwd=tcp::5555-:23 [...]
  1433. telnet localhost 5555
  1434. @end example
  1435. Then when you use on the host @code{telnet localhost 5555}, you
  1436. connect to the guest telnet server.
  1437. @item guestfwd=[tcp]:@var{server}:@var{port}-@var{dev}
  1438. @item guestfwd=[tcp]:@var{server}:@var{port}-@var{cmd:command}
  1439. Forward guest TCP connections to the IP address @var{server} on port @var{port}
  1440. to the character device @var{dev} or to a program executed by @var{cmd:command}
  1441. which gets spawned for each connection. This option can be given multiple times.
  1442. You can either use a chardev directly and have that one used throughout QEMU's
  1443. lifetime, like in the following example:
  1444. @example
  1445. # open 10.10.1.1:4321 on bootup, connect 10.0.2.100:1234 to it whenever
  1446. # the guest accesses it
  1447. qemu -net user,guestfwd=tcp:10.0.2.100:1234-tcp:10.10.1.1:4321 [...]
  1448. @end example
  1449. Or you can execute a command on every TCP connection established by the guest,
  1450. so that QEMU behaves similar to an inetd process for that virtual server:
  1451. @example
  1452. # call "netcat 10.10.1.1 4321" on every TCP connection to 10.0.2.100:1234
  1453. # and connect the TCP stream to its stdin/stdout
  1454. qemu -net 'user,guestfwd=tcp:10.0.2.100:1234-cmd:netcat 10.10.1.1 4321'
  1455. @end example
  1456. @end table
  1457. Note: Legacy stand-alone options -tftp, -bootp, -smb and -redir are still
  1458. processed and applied to -net user. Mixing them with the new configuration
  1459. syntax gives undefined results. Their use for new applications is discouraged
  1460. as they will be removed from future versions.
  1461. @item -netdev tap,id=@var{id}[,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}][,helper=@var{helper}]
  1462. @item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}][,helper=@var{helper}]
  1463. Connect the host TAP network interface @var{name} to VLAN @var{n}.
  1464. Use the network script @var{file} to configure it and the network script
  1465. @var{dfile} to deconfigure it. If @var{name} is not provided, the OS
  1466. automatically provides one. The default network configure script is
  1467. @file{/etc/qemu-ifup} and the default network deconfigure script is
  1468. @file{/etc/qemu-ifdown}. Use @option{script=no} or @option{downscript=no}
  1469. to disable script execution.
  1470. If running QEMU as an unprivileged user, use the network helper
  1471. @var{helper} to configure the TAP interface. The default network
  1472. helper executable is @file{/path/to/qemu-bridge-helper}.
  1473. @option{fd}=@var{h} can be used to specify the handle of an already
  1474. opened host TAP interface.
  1475. Examples:
  1476. @example
  1477. #launch a QEMU instance with the default network script
  1478. qemu-system-i386 linux.img -net nic -net tap
  1479. @end example
  1480. @example
  1481. #launch a QEMU instance with two NICs, each one connected
  1482. #to a TAP device
  1483. qemu-system-i386 linux.img \
  1484. -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
  1485. -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
  1486. @end example
  1487. @example
  1488. #launch a QEMU instance with the default network helper to
  1489. #connect a TAP device to bridge br0
  1490. qemu-system-i386 linux.img \
  1491. -net nic -net tap,"helper=/path/to/qemu-bridge-helper"
  1492. @end example
  1493. @item -netdev bridge,id=@var{id}[,br=@var{bridge}][,helper=@var{helper}]
  1494. @item -net bridge[,vlan=@var{n}][,name=@var{name}][,br=@var{bridge}][,helper=@var{helper}]
  1495. Connect a host TAP network interface to a host bridge device.
  1496. Use the network helper @var{helper} to configure the TAP interface and
  1497. attach it to the bridge. The default network helper executable is
  1498. @file{/path/to/qemu-bridge-helper} and the default bridge
  1499. device is @file{br0}.
  1500. Examples:
  1501. @example
  1502. #launch a QEMU instance with the default network helper to
  1503. #connect a TAP device to bridge br0
  1504. qemu-system-i386 linux.img -net bridge -net nic,model=virtio
  1505. @end example
  1506. @example
  1507. #launch a QEMU instance with the default network helper to
  1508. #connect a TAP device to bridge qemubr0
  1509. qemu-system-i386 linux.img -net bridge,br=qemubr0 -net nic,model=virtio
  1510. @end example
  1511. @item -netdev socket,id=@var{id}[,fd=@var{h}][,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}]
  1512. @item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}] [,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}]
  1513. Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
  1514. machine using a TCP socket connection. If @option{listen} is
  1515. specified, QEMU waits for incoming connections on @var{port}
  1516. (@var{host} is optional). @option{connect} is used to connect to
  1517. another QEMU instance using the @option{listen} option. @option{fd}=@var{h}
  1518. specifies an already opened TCP socket.
  1519. Example:
  1520. @example
  1521. # launch a first QEMU instance
  1522. qemu-system-i386 linux.img \
  1523. -net nic,macaddr=52:54:00:12:34:56 \
  1524. -net socket,listen=:1234
  1525. # connect the VLAN 0 of this instance to the VLAN 0
  1526. # of the first instance
  1527. qemu-system-i386 linux.img \
  1528. -net nic,macaddr=52:54:00:12:34:57 \
  1529. -net socket,connect=127.0.0.1:1234
  1530. @end example
  1531. @item -netdev socket,id=@var{id}[,fd=@var{h}][,mcast=@var{maddr}:@var{port}[,localaddr=@var{addr}]]
  1532. @item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,mcast=@var{maddr}:@var{port}[,localaddr=@var{addr}]]
  1533. Create a VLAN @var{n} shared with another QEMU virtual
  1534. machines using a UDP multicast socket, effectively making a bus for
  1535. every QEMU with same multicast address @var{maddr} and @var{port}.
  1536. NOTES:
  1537. @enumerate
  1538. @item
  1539. Several QEMU can be running on different hosts and share same bus (assuming
  1540. correct multicast setup for these hosts).
  1541. @item
  1542. mcast support is compatible with User Mode Linux (argument @option{eth@var{N}=mcast}), see
  1543. @url{http://user-mode-linux.sf.net}.
  1544. @item
  1545. Use @option{fd=h} to specify an already opened UDP multicast socket.
  1546. @end enumerate
  1547. Example:
  1548. @example
  1549. # launch one QEMU instance
  1550. qemu-system-i386 linux.img \
  1551. -net nic,macaddr=52:54:00:12:34:56 \
  1552. -net socket,mcast=230.0.0.1:1234
  1553. # launch another QEMU instance on same "bus"
  1554. qemu-system-i386 linux.img \
  1555. -net nic,macaddr=52:54:00:12:34:57 \
  1556. -net socket,mcast=230.0.0.1:1234
  1557. # launch yet another QEMU instance on same "bus"
  1558. qemu-system-i386 linux.img \
  1559. -net nic,macaddr=52:54:00:12:34:58 \
  1560. -net socket,mcast=230.0.0.1:1234
  1561. @end example
  1562. Example (User Mode Linux compat.):
  1563. @example
  1564. # launch QEMU instance (note mcast address selected
  1565. # is UML's default)
  1566. qemu-system-i386 linux.img \
  1567. -net nic,macaddr=52:54:00:12:34:56 \
  1568. -net socket,mcast=239.192.168.1:1102
  1569. # launch UML
  1570. /path/to/linux ubd0=/path/to/root_fs eth0=mcast
  1571. @end example
  1572. Example (send packets from host's 1.2.3.4):
  1573. @example
  1574. qemu-system-i386 linux.img \
  1575. -net nic,macaddr=52:54:00:12:34:56 \
  1576. -net socket,mcast=239.192.168.1:1102,localaddr=1.2.3.4
  1577. @end example
  1578. @item -netdev l2tpv3,id=@var{id},src=@var{srcaddr},dst=@var{dstaddr}[,srcport=@var{srcport}][,dstport=@var{dstport}],txsession=@var{txsession}[,rxsession=@var{rxsession}][,ipv6][,udp][,cookie64][,counter][,pincounter][,txcookie=@var{txcookie}][,rxcookie=@var{rxcookie}][,offset=@var{offset}]
  1579. @item -net l2tpv3[,vlan=@var{n}][,name=@var{name}],src=@var{srcaddr},dst=@var{dstaddr}[,srcport=@var{srcport}][,dstport=@var{dstport}],txsession=@var{txsession}[,rxsession=@var{rxsession}][,ipv6][,udp][,cookie64][,counter][,pincounter][,txcookie=@var{txcookie}][,rxcookie=@var{rxcookie}][,offset=@var{offset}]
  1580. Connect VLAN @var{n} to L2TPv3 pseudowire. L2TPv3 (RFC3391) is a popular
  1581. protocol to transport Ethernet (and other Layer 2) data frames between
  1582. two systems. It is present in routers, firewalls and the Linux kernel
  1583. (from version 3.3 onwards).
  1584. This transport allows a VM to communicate to another VM, router or firewall directly.
  1585. @item src=@var{srcaddr}
  1586. source address (mandatory)
  1587. @item dst=@var{dstaddr}
  1588. destination address (mandatory)
  1589. @item udp
  1590. select udp encapsulation (default is ip).
  1591. @item srcport=@var{srcport}
  1592. source udp port.
  1593. @item dstport=@var{dstport}
  1594. destination udp port.
  1595. @item ipv6
  1596. force v6, otherwise defaults to v4.
  1597. @item rxcookie=@var{rxcookie}
  1598. @item txcookie=@var{txcookie}
  1599. Cookies are a weak form of security in the l2tpv3 specification.
  1600. Their function is mostly to prevent misconfiguration. By default they are 32
  1601. bit.
  1602. @item cookie64
  1603. Set cookie size to 64 bit instead of the default 32
  1604. @item counter=off
  1605. Force a 'cut-down' L2TPv3 with no counter as in
  1606. draft-mkonstan-l2tpext-keyed-ipv6-tunnel-00
  1607. @item pincounter=on
  1608. Work around broken counter handling in peer. This may also help on
  1609. networks which have packet reorder.
  1610. @item offset=@var{offset}
  1611. Add an extra offset between header and data
  1612. For example, to attach a VM running on host 4.3.2.1 via L2TPv3 to the bridge br-lan
  1613. on the remote Linux host 1.2.3.4:
  1614. @example
  1615. # Setup tunnel on linux host using raw ip as encapsulation
  1616. # on 1.2.3.4
  1617. ip l2tp add tunnel remote 4.3.2.1 local 1.2.3.4 tunnel_id 1 peer_tunnel_id 1 \
  1618. encap udp udp_sport 16384 udp_dport 16384
  1619. ip l2tp add session tunnel_id 1 name vmtunnel0 session_id \
  1620. 0xFFFFFFFF peer_session_id 0xFFFFFFFF
  1621. ifconfig vmtunnel0 mtu 1500
  1622. ifconfig vmtunnel0 up
  1623. brctl addif br-lan vmtunnel0
  1624. # on 4.3.2.1
  1625. # launch QEMU instance - if your network has reorder or is very lossy add ,pincounter
  1626. qemu-system-i386 linux.img -net nic -net l2tpv3,src=4.2.3.1,dst=1.2.3.4,udp,srcport=16384,dstport=16384,rxsession=0xffffffff,txsession=0xffffffff,counter
  1627. @end example
  1628. @item -netdev vde,id=@var{id}[,sock=@var{socketpath}][,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]
  1629. @item -net vde[,vlan=@var{n}][,name=@var{name}][,sock=@var{socketpath}] [,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]
  1630. Connect VLAN @var{n} to PORT @var{n} of a vde switch running on host and
  1631. listening for incoming connections on @var{socketpath}. Use GROUP @var{groupname}
  1632. and MODE @var{octalmode} to change default ownership and permissions for
  1633. communication port. This option is only available if QEMU has been compiled
  1634. with vde support enabled.
  1635. Example:
  1636. @example
  1637. # launch vde switch
  1638. vde_switch -F -sock /tmp/myswitch
  1639. # launch QEMU instance
  1640. qemu-system-i386 linux.img -net nic -net vde,sock=/tmp/myswitch
  1641. @end example
  1642. @item -netdev hubport,id=@var{id},hubid=@var{hubid}
  1643. Create a hub port on QEMU "vlan" @var{hubid}.
  1644. The hubport netdev lets you connect a NIC to a QEMU "vlan" instead of a single
  1645. netdev. @code{-net} and @code{-device} with parameter @option{vlan} create the
  1646. required hub automatically.
  1647. @item -netdev vhost-user,chardev=@var{id}[,vhostforce=on|off]
  1648. Establish a vhost-user netdev, backed by a chardev @var{id}. The chardev should
  1649. be a unix domain socket backed one. The vhost-user uses a specifically defined
  1650. protocol to pass vhost ioctl replacement messages to an application on the other
  1651. end of the socket. On non-MSIX guests, the feature can be forced with
  1652. @var{vhostforce}.
  1653. Example:
  1654. @example
  1655. qemu -m 512 -object memory-backend-file,id=mem,size=512M,mem-path=/hugetlbfs,share=on \
  1656. -numa node,memdev=mem \
  1657. -chardev socket,path=/path/to/socket \
  1658. -netdev type=vhost-user,id=net0,chardev=chr0 \
  1659. -device virtio-net-pci,netdev=net0
  1660. @end example
  1661. @item -net dump[,vlan=@var{n}][,file=@var{file}][,len=@var{len}]
  1662. Dump network traffic on VLAN @var{n} to file @var{file} (@file{qemu-vlan0.pcap} by default).
  1663. At most @var{len} bytes (64k by default) per packet are stored. The file format is
  1664. libpcap, so it can be analyzed with tools such as tcpdump or Wireshark.
  1665. @item -net none
  1666. Indicate that no network devices should be configured. It is used to
  1667. override the default configuration (@option{-net nic -net user}) which
  1668. is activated if no @option{-net} options are provided.
  1669. ETEXI
  1670. STEXI
  1671. @end table
  1672. ETEXI
  1673. DEFHEADING()
  1674. DEFHEADING(Character device options:)
  1675. STEXI
  1676. The general form of a character device option is:
  1677. @table @option
  1678. ETEXI
  1679. DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
  1680. "-chardev null,id=id[,mux=on|off]\n"
  1681. "-chardev socket,id=id[,host=host],port=port[,to=to][,ipv4][,ipv6][,nodelay][,reconnect=seconds]\n"
  1682. " [,server][,nowait][,telnet][,reconnect=seconds][,mux=on|off] (tcp)\n"
  1683. "-chardev socket,id=id,path=path[,server][,nowait][,telnet][,reconnect=seconds][,mux=on|off] (unix)\n"
  1684. "-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]\n"
  1685. " [,localport=localport][,ipv4][,ipv6][,mux=on|off]\n"
  1686. "-chardev msmouse,id=id[,mux=on|off]\n"
  1687. "-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]\n"
  1688. " [,mux=on|off]\n"
  1689. "-chardev ringbuf,id=id[,size=size]\n"
  1690. "-chardev file,id=id,path=path[,mux=on|off]\n"
  1691. "-chardev pipe,id=id,path=path[,mux=on|off]\n"
  1692. #ifdef _WIN32
  1693. "-chardev console,id=id[,mux=on|off]\n"
  1694. "-chardev serial,id=id,path=path[,mux=on|off]\n"
  1695. #else
  1696. "-chardev pty,id=id[,mux=on|off]\n"
  1697. "-chardev stdio,id=id[,mux=on|off][,signal=on|off]\n"
  1698. #endif
  1699. #ifdef CONFIG_BRLAPI
  1700. "-chardev braille,id=id[,mux=on|off]\n"
  1701. #endif
  1702. #if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \
  1703. || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
  1704. "-chardev serial,id=id,path=path[,mux=on|off]\n"
  1705. "-chardev tty,id=id,path=path[,mux=on|off]\n"
  1706. #endif
  1707. #if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
  1708. "-chardev parallel,id=id,path=path[,mux=on|off]\n"
  1709. "-chardev parport,id=id,path=path[,mux=on|off]\n"
  1710. #endif
  1711. #if defined(CONFIG_SPICE)
  1712. "-chardev spicevmc,id=id,name=name[,debug=debug]\n"
  1713. "-chardev spiceport,id=id,name=name[,debug=debug]\n"
  1714. #endif
  1715. , QEMU_ARCH_ALL
  1716. )
  1717. STEXI
  1718. @item -chardev @var{backend} ,id=@var{id} [,mux=on|off] [,@var{options}]
  1719. @findex -chardev
  1720. Backend is one of:
  1721. @option{null},
  1722. @option{socket},
  1723. @option{udp},
  1724. @option{msmouse},
  1725. @option{vc},
  1726. @option{ringbuf},
  1727. @option{file},
  1728. @option{pipe},
  1729. @option{console},
  1730. @option{serial},
  1731. @option{pty},
  1732. @option{stdio},
  1733. @option{braille},
  1734. @option{tty},
  1735. @option{parallel},
  1736. @option{parport},
  1737. @option{spicevmc}.
  1738. @option{spiceport}.
  1739. The specific backend will determine the applicable options.
  1740. All devices must have an id, which can be any string up to 127 characters long.
  1741. It is used to uniquely identify this device in other command line directives.
  1742. A character device may be used in multiplexing mode by multiple front-ends.
  1743. The key sequence of @key{Control-a} and @key{c} will rotate the input focus
  1744. between attached front-ends. Specify @option{mux=on} to enable this mode.
  1745. Options to each backend are described below.
  1746. @item -chardev null ,id=@var{id}
  1747. A void device. This device will not emit any data, and will drop any data it
  1748. receives. The null backend does not take any options.
  1749. @item -chardev socket ,id=@var{id} [@var{TCP options} or @var{unix options}] [,server] [,nowait] [,telnet] [,reconnect=@var{seconds}]
  1750. Create a two-way stream socket, which can be either a TCP or a unix socket. A
  1751. unix socket will be created if @option{path} is specified. Behaviour is
  1752. undefined if TCP options are specified for a unix socket.
  1753. @option{server} specifies that the socket shall be a listening socket.
  1754. @option{nowait} specifies that QEMU should not block waiting for a client to
  1755. connect to a listening socket.
  1756. @option{telnet} specifies that traffic on the socket should interpret telnet
  1757. escape sequences.
  1758. @option{reconnect} sets the timeout for reconnecting on non-server sockets when
  1759. the remote end goes away. qemu will delay this many seconds and then attempt
  1760. to reconnect. Zero disables reconnecting, and is the default.
  1761. TCP and unix socket options are given below:
  1762. @table @option
  1763. @item TCP options: port=@var{port} [,host=@var{host}] [,to=@var{to}] [,ipv4] [,ipv6] [,nodelay]
  1764. @option{host} for a listening socket specifies the local address to be bound.
  1765. For a connecting socket species the remote host to connect to. @option{host} is
  1766. optional for listening sockets. If not specified it defaults to @code{0.0.0.0}.
  1767. @option{port} for a listening socket specifies the local port to be bound. For a
  1768. connecting socket specifies the port on the remote host to connect to.
  1769. @option{port} can be given as either a port number or a service name.
  1770. @option{port} is required.
  1771. @option{to} is only relevant to listening sockets. If it is specified, and
  1772. @option{port} cannot be bound, QEMU will attempt to bind to subsequent ports up
  1773. to and including @option{to} until it succeeds. @option{to} must be specified
  1774. as a port number.
  1775. @option{ipv4} and @option{ipv6} specify that either IPv4 or IPv6 must be used.
  1776. If neither is specified the socket may use either protocol.
  1777. @option{nodelay} disables the Nagle algorithm.
  1778. @item unix options: path=@var{path}
  1779. @option{path} specifies the local path of the unix socket. @option{path} is
  1780. required.
  1781. @end table
  1782. @item -chardev udp ,id=@var{id} [,host=@var{host}] ,port=@var{port} [,localaddr=@var{localaddr}] [,localport=@var{localport}] [,ipv4] [,ipv6]
  1783. Sends all traffic from the guest to a remote host over UDP.
  1784. @option{host} specifies the remote host to connect to. If not specified it
  1785. defaults to @code{localhost}.
  1786. @option{port} specifies the port on the remote host to connect to. @option{port}
  1787. is required.
  1788. @option{localaddr} specifies the local address to bind to. If not specified it
  1789. defaults to @code{0.0.0.0}.
  1790. @option{localport} specifies the local port to bind to. If not specified any
  1791. available local port will be used.
  1792. @option{ipv4} and @option{ipv6} specify that either IPv4 or IPv6 must be used.
  1793. If neither is specified the device may use either protocol.
  1794. @item -chardev msmouse ,id=@var{id}
  1795. Forward QEMU's emulated msmouse events to the guest. @option{msmouse} does not
  1796. take any options.
  1797. @item -chardev vc ,id=@var{id} [[,width=@var{width}] [,height=@var{height}]] [[,cols=@var{cols}] [,rows=@var{rows}]]
  1798. Connect to a QEMU text console. @option{vc} may optionally be given a specific
  1799. size.
  1800. @option{width} and @option{height} specify the width and height respectively of
  1801. the console, in pixels.
  1802. @option{cols} and @option{rows} specify that the console be sized to fit a text
  1803. console with the given dimensions.
  1804. @item -chardev ringbuf ,id=@var{id} [,size=@var{size}]
  1805. Create a ring buffer with fixed size @option{size}.
  1806. @var{size} must be a power of two, and defaults to @code{64K}).
  1807. @item -chardev file ,id=@var{id} ,path=@var{path}
  1808. Log all traffic received from the guest to a file.
  1809. @option{path} specifies the path of the file to be opened. This file will be
  1810. created if it does not already exist, and overwritten if it does. @option{path}
  1811. is required.
  1812. @item -chardev pipe ,id=@var{id} ,path=@var{path}
  1813. Create a two-way connection to the guest. The behaviour differs slightly between
  1814. Windows hosts and other hosts:
  1815. On Windows, a single duplex pipe will be created at
  1816. @file{\\.pipe\@option{path}}.
  1817. On other hosts, 2 pipes will be created called @file{@option{path}.in} and
  1818. @file{@option{path}.out}. Data written to @file{@option{path}.in} will be
  1819. received by the guest. Data written by the guest can be read from
  1820. @file{@option{path}.out}. QEMU will not create these fifos, and requires them to
  1821. be present.
  1822. @option{path} forms part of the pipe path as described above. @option{path} is
  1823. required.
  1824. @item -chardev console ,id=@var{id}
  1825. Send traffic from the guest to QEMU's standard output. @option{console} does not
  1826. take any options.
  1827. @option{console} is only available on Windows hosts.
  1828. @item -chardev serial ,id=@var{id} ,path=@option{path}
  1829. Send traffic from the guest to a serial device on the host.
  1830. On Unix hosts serial will actually accept any tty device,
  1831. not only serial lines.
  1832. @option{path} specifies the name of the serial device to open.
  1833. @item -chardev pty ,id=@var{id}
  1834. Create a new pseudo-terminal on the host and connect to it. @option{pty} does
  1835. not take any options.
  1836. @option{pty} is not available on Windows hosts.
  1837. @item -chardev stdio ,id=@var{id} [,signal=on|off]
  1838. Connect to standard input and standard output of the QEMU process.
  1839. @option{signal} controls if signals are enabled on the terminal, that includes
  1840. exiting QEMU with the key sequence @key{Control-c}. This option is enabled by
  1841. default, use @option{signal=off} to disable it.
  1842. @option{stdio} is not available on Windows hosts.
  1843. @item -chardev braille ,id=@var{id}
  1844. Connect to a local BrlAPI server. @option{braille} does not take any options.
  1845. @item -chardev tty ,id=@var{id} ,path=@var{path}
  1846. @option{tty} is only available on Linux, Sun, FreeBSD, NetBSD, OpenBSD and
  1847. DragonFlyBSD hosts. It is an alias for @option{serial}.
  1848. @option{path} specifies the path to the tty. @option{path} is required.
  1849. @item -chardev parallel ,id=@var{id} ,path=@var{path}
  1850. @item -chardev parport ,id=@var{id} ,path=@var{path}
  1851. @option{parallel} is only available on Linux, FreeBSD and DragonFlyBSD hosts.
  1852. Connect to a local parallel port.
  1853. @option{path} specifies the path to the parallel port device. @option{path} is
  1854. required.
  1855. @item -chardev spicevmc ,id=@var{id} ,debug=@var{debug}, name=@var{name}
  1856. @option{spicevmc} is only available when spice support is built in.
  1857. @option{debug} debug level for spicevmc
  1858. @option{name} name of spice channel to connect to
  1859. Connect to a spice virtual machine channel, such as vdiport.
  1860. @item -chardev spiceport ,id=@var{id} ,debug=@var{debug}, name=@var{name}
  1861. @option{spiceport} is only available when spice support is built in.
  1862. @option{debug} debug level for spicevmc
  1863. @option{name} name of spice port to connect to
  1864. Connect to a spice port, allowing a Spice client to handle the traffic
  1865. identified by a name (preferably a fqdn).
  1866. ETEXI
  1867. STEXI
  1868. @end table
  1869. ETEXI
  1870. DEFHEADING()
  1871. DEFHEADING(Device URL Syntax:)
  1872. STEXI
  1873. In addition to using normal file images for the emulated storage devices,
  1874. QEMU can also use networked resources such as iSCSI devices. These are
  1875. specified using a special URL syntax.
  1876. @table @option
  1877. @item iSCSI
  1878. iSCSI support allows QEMU to access iSCSI resources directly and use as
  1879. images for the guest storage. Both disk and cdrom images are supported.
  1880. Syntax for specifying iSCSI LUNs is
  1881. ``iscsi://<target-ip>[:<port>]/<target-iqn>/<lun>''
  1882. By default qemu will use the iSCSI initiator-name
  1883. 'iqn.2008-11.org.linux-kvm[:<name>]' but this can also be set from the command
  1884. line or a configuration file.
  1885. Example (without authentication):
  1886. @example
  1887. qemu-system-i386 -iscsi initiator-name=iqn.2001-04.com.example:my-initiator \
  1888. -cdrom iscsi://192.0.2.1/iqn.2001-04.com.example/2 \
  1889. -drive file=iscsi://192.0.2.1/iqn.2001-04.com.example/1
  1890. @end example
  1891. Example (CHAP username/password via URL):
  1892. @example
  1893. qemu-system-i386 -drive file=iscsi://user%password@@192.0.2.1/iqn.2001-04.com.example/1
  1894. @end example
  1895. Example (CHAP username/password via environment variables):
  1896. @example
  1897. LIBISCSI_CHAP_USERNAME="user" \
  1898. LIBISCSI_CHAP_PASSWORD="password" \
  1899. qemu-system-i386 -drive file=iscsi://192.0.2.1/iqn.2001-04.com.example/1
  1900. @end example
  1901. iSCSI support is an optional feature of QEMU and only available when
  1902. compiled and linked against libiscsi.
  1903. ETEXI
  1904. DEF("iscsi", HAS_ARG, QEMU_OPTION_iscsi,
  1905. "-iscsi [user=user][,password=password]\n"
  1906. " [,header-digest=CRC32C|CR32C-NONE|NONE-CRC32C|NONE\n"
  1907. " [,initiator-name=initiator-iqn][,id=target-iqn]\n"
  1908. " iSCSI session parameters\n", QEMU_ARCH_ALL)
  1909. STEXI
  1910. iSCSI parameters such as username and password can also be specified via
  1911. a configuration file. See qemu-doc for more information and examples.
  1912. @item NBD
  1913. QEMU supports NBD (Network Block Devices) both using TCP protocol as well
  1914. as Unix Domain Sockets.
  1915. Syntax for specifying a NBD device using TCP
  1916. ``nbd:<server-ip>:<port>[:exportname=<export>]''
  1917. Syntax for specifying a NBD device using Unix Domain Sockets
  1918. ``nbd:unix:<domain-socket>[:exportname=<export>]''
  1919. Example for TCP
  1920. @example
  1921. qemu-system-i386 --drive file=nbd:192.0.2.1:30000
  1922. @end example
  1923. Example for Unix Domain Sockets
  1924. @example
  1925. qemu-system-i386 --drive file=nbd:unix:/tmp/nbd-socket
  1926. @end example
  1927. @item SSH
  1928. QEMU supports SSH (Secure Shell) access to remote disks.
  1929. Examples:
  1930. @example
  1931. qemu-system-i386 -drive file=ssh://user@@host/path/to/disk.img
  1932. qemu-system-i386 -drive file.driver=ssh,file.user=user,file.host=host,file.port=22,file.path=/path/to/disk.img
  1933. @end example
  1934. Currently authentication must be done using ssh-agent. Other
  1935. authentication methods may be supported in future.
  1936. @item Sheepdog
  1937. Sheepdog is a distributed storage system for QEMU.
  1938. QEMU supports using either local sheepdog devices or remote networked
  1939. devices.
  1940. Syntax for specifying a sheepdog device
  1941. @example
  1942. sheepdog[+tcp|+unix]://[host:port]/vdiname[?socket=path][#snapid|#tag]
  1943. @end example
  1944. Example
  1945. @example
  1946. qemu-system-i386 --drive file=sheepdog://192.0.2.1:30000/MyVirtualMachine
  1947. @end example
  1948. See also @url{http://http://www.osrg.net/sheepdog/}.
  1949. @item GlusterFS
  1950. GlusterFS is an user space distributed file system.
  1951. QEMU supports the use of GlusterFS volumes for hosting VM disk images using
  1952. TCP, Unix Domain Sockets and RDMA transport protocols.
  1953. Syntax for specifying a VM disk image on GlusterFS volume is
  1954. @example
  1955. gluster[+transport]://[server[:port]]/volname/image[?socket=...]
  1956. @end example
  1957. Example
  1958. @example
  1959. qemu-system-x86_64 --drive file=gluster://192.0.2.1/testvol/a.img
  1960. @end example
  1961. See also @url{http://www.gluster.org}.
  1962. @item HTTP/HTTPS/FTP/FTPS/TFTP
  1963. QEMU supports read-only access to files accessed over http(s), ftp(s) and tftp.
  1964. Syntax using a single filename:
  1965. @example
  1966. <protocol>://[<username>[:<password>]@@]<host>/<path>
  1967. @end example
  1968. where:
  1969. @table @option
  1970. @item protocol
  1971. 'http', 'https', 'ftp', 'ftps', or 'tftp'.
  1972. @item username
  1973. Optional username for authentication to the remote server.
  1974. @item password
  1975. Optional password for authentication to the remote server.
  1976. @item host
  1977. Address of the remote server.
  1978. @item path
  1979. Path on the remote server, including any query string.
  1980. @end table
  1981. The following options are also supported:
  1982. @table @option
  1983. @item url
  1984. The full URL when passing options to the driver explicitly.
  1985. @item readahead
  1986. The amount of data to read ahead with each range request to the remote server.
  1987. This value may optionally have the suffix 'T', 'G', 'M', 'K', 'k' or 'b'. If it
  1988. does not have a suffix, it will be assumed to be in bytes. The value must be a
  1989. multiple of 512 bytes. It defaults to 256k.
  1990. @item sslverify
  1991. Whether to verify the remote server's certificate when connecting over SSL. It
  1992. can have the value 'on' or 'off'. It defaults to 'on'.
  1993. @item cookie
  1994. Send this cookie (it can also be a list of cookies separated by ';') with
  1995. each outgoing request. Only supported when using protocols such as HTTP
  1996. which support cookies, otherwise ignored.
  1997. @item timeout
  1998. Set the timeout in seconds of the CURL connection. This timeout is the time
  1999. that CURL waits for a response from the remote server to get the size of the
  2000. image to be downloaded. If not set, the default timeout of 5 seconds is used.
  2001. @end table
  2002. Note that when passing options to qemu explicitly, @option{driver} is the value
  2003. of <protocol>.
  2004. Example: boot from a remote Fedora 20 live ISO image
  2005. @example
  2006. qemu-system-x86_64 --drive media=cdrom,file=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,readonly
  2007. qemu-system-x86_64 --drive media=cdrom,file.driver=http,file.url=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,readonly
  2008. @end example
  2009. Example: boot from a remote Fedora 20 cloud image using a local overlay for
  2010. writes, copy-on-read, and a readahead of 64k
  2011. @example
  2012. qemu-img create -f qcow2 -o backing_file='json:@{"file.driver":"http",, "file.url":"https://dl.fedoraproject.org/pub/fedora/linux/releases/20/Images/x86_64/Fedora-x86_64-20-20131211.1-sda.qcow2",, "file.readahead":"64k"@}' /tmp/Fedora-x86_64-20-20131211.1-sda.qcow2
  2013. qemu-system-x86_64 -drive file=/tmp/Fedora-x86_64-20-20131211.1-sda.qcow2,copy-on-read=on
  2014. @end example
  2015. Example: boot from an image stored on a VMware vSphere server with a self-signed
  2016. certificate using a local overlay for writes, a readahead of 64k and a timeout
  2017. of 10 seconds.
  2018. @example
  2019. qemu-img create -f qcow2 -o backing_file='json:@{"file.driver":"https",, "file.url":"https://user:password@@vsphere.example.com/folder/test/test-flat.vmdk?dcPath=Datacenter&dsName=datastore1",, "file.sslverify":"off",, "file.readahead":"64k",, "file.timeout":10@}' /tmp/test.qcow2
  2020. qemu-system-x86_64 -drive file=/tmp/test.qcow2
  2021. @end example
  2022. ETEXI
  2023. STEXI
  2024. @end table
  2025. ETEXI
  2026. DEFHEADING(Bluetooth(R) options:)
  2027. STEXI
  2028. @table @option
  2029. ETEXI
  2030. DEF("bt", HAS_ARG, QEMU_OPTION_bt, \
  2031. "-bt hci,null dumb bluetooth HCI - doesn't respond to commands\n" \
  2032. "-bt hci,host[:id]\n" \
  2033. " use host's HCI with the given name\n" \
  2034. "-bt hci[,vlan=n]\n" \
  2035. " emulate a standard HCI in virtual scatternet 'n'\n" \
  2036. "-bt vhci[,vlan=n]\n" \
  2037. " add host computer to virtual scatternet 'n' using VHCI\n" \
  2038. "-bt device:dev[,vlan=n]\n" \
  2039. " emulate a bluetooth device 'dev' in scatternet 'n'\n",
  2040. QEMU_ARCH_ALL)
  2041. STEXI
  2042. @item -bt hci[...]
  2043. @findex -bt
  2044. Defines the function of the corresponding Bluetooth HCI. -bt options
  2045. are matched with the HCIs present in the chosen machine type. For
  2046. example when emulating a machine with only one HCI built into it, only
  2047. the first @code{-bt hci[...]} option is valid and defines the HCI's
  2048. logic. The Transport Layer is decided by the machine type. Currently
  2049. the machines @code{n800} and @code{n810} have one HCI and all other
  2050. machines have none.
  2051. @anchor{bt-hcis}
  2052. The following three types are recognized:
  2053. @table @option
  2054. @item -bt hci,null
  2055. (default) The corresponding Bluetooth HCI assumes no internal logic
  2056. and will not respond to any HCI commands or emit events.
  2057. @item -bt hci,host[:@var{id}]
  2058. (@code{bluez} only) The corresponding HCI passes commands / events
  2059. to / from the physical HCI identified by the name @var{id} (default:
  2060. @code{hci0}) on the computer running QEMU. Only available on @code{bluez}
  2061. capable systems like Linux.
  2062. @item -bt hci[,vlan=@var{n}]
  2063. Add a virtual, standard HCI that will participate in the Bluetooth
  2064. scatternet @var{n} (default @code{0}). Similarly to @option{-net}
  2065. VLANs, devices inside a bluetooth network @var{n} can only communicate
  2066. with other devices in the same network (scatternet).
  2067. @end table
  2068. @item -bt vhci[,vlan=@var{n}]
  2069. (Linux-host only) Create a HCI in scatternet @var{n} (default 0) attached
  2070. to the host bluetooth stack instead of to the emulated target. This
  2071. allows the host and target machines to participate in a common scatternet
  2072. and communicate. Requires the Linux @code{vhci} driver installed. Can
  2073. be used as following:
  2074. @example
  2075. qemu-system-i386 [...OPTIONS...] -bt hci,vlan=5 -bt vhci,vlan=5
  2076. @end example
  2077. @item -bt device:@var{dev}[,vlan=@var{n}]
  2078. Emulate a bluetooth device @var{dev} and place it in network @var{n}
  2079. (default @code{0}). QEMU can only emulate one type of bluetooth devices
  2080. currently:
  2081. @table @option
  2082. @item keyboard
  2083. Virtual wireless keyboard implementing the HIDP bluetooth profile.
  2084. @end table
  2085. ETEXI
  2086. STEXI
  2087. @end table
  2088. ETEXI
  2089. DEFHEADING()
  2090. #ifdef CONFIG_TPM
  2091. DEFHEADING(TPM device options:)
  2092. DEF("tpmdev", HAS_ARG, QEMU_OPTION_tpmdev, \
  2093. "-tpmdev passthrough,id=id[,path=path][,cancel-path=path]\n"
  2094. " use path to provide path to a character device; default is /dev/tpm0\n"
  2095. " use cancel-path to provide path to TPM's cancel sysfs entry; if\n"
  2096. " not provided it will be searched for in /sys/class/misc/tpm?/device\n",
  2097. QEMU_ARCH_ALL)
  2098. STEXI
  2099. The general form of a TPM device option is:
  2100. @table @option
  2101. @item -tpmdev @var{backend} ,id=@var{id} [,@var{options}]
  2102. @findex -tpmdev
  2103. Backend type must be:
  2104. @option{passthrough}.
  2105. The specific backend type will determine the applicable options.
  2106. The @code{-tpmdev} option creates the TPM backend and requires a
  2107. @code{-device} option that specifies the TPM frontend interface model.
  2108. Options to each backend are described below.
  2109. Use 'help' to print all available TPM backend types.
  2110. @example
  2111. qemu -tpmdev help
  2112. @end example
  2113. @item -tpmdev passthrough, id=@var{id}, path=@var{path}, cancel-path=@var{cancel-path}
  2114. (Linux-host only) Enable access to the host's TPM using the passthrough
  2115. driver.
  2116. @option{path} specifies the path to the host's TPM device, i.e., on
  2117. a Linux host this would be @code{/dev/tpm0}.
  2118. @option{path} is optional and by default @code{/dev/tpm0} is used.
  2119. @option{cancel-path} specifies the path to the host TPM device's sysfs
  2120. entry allowing for cancellation of an ongoing TPM command.
  2121. @option{cancel-path} is optional and by default QEMU will search for the
  2122. sysfs entry to use.
  2123. Some notes about using the host's TPM with the passthrough driver:
  2124. The TPM device accessed by the passthrough driver must not be
  2125. used by any other application on the host.
  2126. Since the host's firmware (BIOS/UEFI) has already initialized the TPM,
  2127. the VM's firmware (BIOS/UEFI) will not be able to initialize the
  2128. TPM again and may therefore not show a TPM-specific menu that would
  2129. otherwise allow the user to configure the TPM, e.g., allow the user to
  2130. enable/disable or activate/deactivate the TPM.
  2131. Further, if TPM ownership is released from within a VM then the host's TPM
  2132. will get disabled and deactivated. To enable and activate the
  2133. TPM again afterwards, the host has to be rebooted and the user is
  2134. required to enter the firmware's menu to enable and activate the TPM.
  2135. If the TPM is left disabled and/or deactivated most TPM commands will fail.
  2136. To create a passthrough TPM use the following two options:
  2137. @example
  2138. -tpmdev passthrough,id=tpm0 -device tpm-tis,tpmdev=tpm0
  2139. @end example
  2140. Note that the @code{-tpmdev} id is @code{tpm0} and is referenced by
  2141. @code{tpmdev=tpm0} in the device option.
  2142. @end table
  2143. ETEXI
  2144. DEFHEADING()
  2145. #endif
  2146. DEFHEADING(Linux/Multiboot boot specific:)
  2147. STEXI
  2148. When using these options, you can use a given Linux or Multiboot
  2149. kernel without installing it in the disk image. It can be useful
  2150. for easier testing of various kernels.
  2151. @table @option
  2152. ETEXI
  2153. DEF("kernel", HAS_ARG, QEMU_OPTION_kernel, \
  2154. "-kernel bzImage use 'bzImage' as kernel image\n", QEMU_ARCH_ALL)
  2155. STEXI
  2156. @item -kernel @var{bzImage}
  2157. @findex -kernel
  2158. Use @var{bzImage} as kernel image. The kernel can be either a Linux kernel
  2159. or in multiboot format.
  2160. ETEXI
  2161. DEF("append", HAS_ARG, QEMU_OPTION_append, \
  2162. "-append cmdline use 'cmdline' as kernel command line\n", QEMU_ARCH_ALL)
  2163. STEXI
  2164. @item -append @var{cmdline}
  2165. @findex -append
  2166. Use @var{cmdline} as kernel command line
  2167. ETEXI
  2168. DEF("initrd", HAS_ARG, QEMU_OPTION_initrd, \
  2169. "-initrd file use 'file' as initial ram disk\n", QEMU_ARCH_ALL)
  2170. STEXI
  2171. @item -initrd @var{file}
  2172. @findex -initrd
  2173. Use @var{file} as initial ram disk.
  2174. @item -initrd "@var{file1} arg=foo,@var{file2}"
  2175. This syntax is only available with multiboot.
  2176. Use @var{file1} and @var{file2} as modules and pass arg=foo as parameter to the
  2177. first module.
  2178. ETEXI
  2179. DEF("dtb", HAS_ARG, QEMU_OPTION_dtb, \
  2180. "-dtb file use 'file' as device tree image\n", QEMU_ARCH_ALL)
  2181. STEXI
  2182. @item -dtb @var{file}
  2183. @findex -dtb
  2184. Use @var{file} as a device tree binary (dtb) image and pass it to the kernel
  2185. on boot.
  2186. ETEXI
  2187. STEXI
  2188. @end table
  2189. ETEXI
  2190. DEFHEADING()
  2191. DEFHEADING(Debug/Expert options:)
  2192. STEXI
  2193. @table @option
  2194. ETEXI
  2195. DEF("serial", HAS_ARG, QEMU_OPTION_serial, \
  2196. "-serial dev redirect the serial port to char device 'dev'\n",
  2197. QEMU_ARCH_ALL)
  2198. STEXI
  2199. @item -serial @var{dev}
  2200. @findex -serial
  2201. Redirect the virtual serial port to host character device
  2202. @var{dev}. The default device is @code{vc} in graphical mode and
  2203. @code{stdio} in non graphical mode.
  2204. This option can be used several times to simulate up to 4 serial
  2205. ports.
  2206. Use @code{-serial none} to disable all serial ports.
  2207. Available character devices are:
  2208. @table @option
  2209. @item vc[:@var{W}x@var{H}]
  2210. Virtual console. Optionally, a width and height can be given in pixel with
  2211. @example
  2212. vc:800x600
  2213. @end example
  2214. It is also possible to specify width or height in characters:
  2215. @example
  2216. vc:80Cx24C
  2217. @end example
  2218. @item pty
  2219. [Linux only] Pseudo TTY (a new PTY is automatically allocated)
  2220. @item none
  2221. No device is allocated.
  2222. @item null
  2223. void device
  2224. @item chardev:@var{id}
  2225. Use a named character device defined with the @code{-chardev} option.
  2226. @item /dev/XXX
  2227. [Linux only] Use host tty, e.g. @file{/dev/ttyS0}. The host serial port
  2228. parameters are set according to the emulated ones.
  2229. @item /dev/parport@var{N}
  2230. [Linux only, parallel port only] Use host parallel port
  2231. @var{N}. Currently SPP and EPP parallel port features can be used.
  2232. @item file:@var{filename}
  2233. Write output to @var{filename}. No character can be read.
  2234. @item stdio
  2235. [Unix only] standard input/output
  2236. @item pipe:@var{filename}
  2237. name pipe @var{filename}
  2238. @item COM@var{n}
  2239. [Windows only] Use host serial port @var{n}
  2240. @item udp:[@var{remote_host}]:@var{remote_port}[@@[@var{src_ip}]:@var{src_port}]
  2241. This implements UDP Net Console.
  2242. When @var{remote_host} or @var{src_ip} are not specified
  2243. they default to @code{0.0.0.0}.
  2244. When not using a specified @var{src_port} a random port is automatically chosen.
  2245. If you just want a simple readonly console you can use @code{netcat} or
  2246. @code{nc}, by starting QEMU with: @code{-serial udp::4555} and nc as:
  2247. @code{nc -u -l -p 4555}. Any time QEMU writes something to that port it
  2248. will appear in the netconsole session.
  2249. If you plan to send characters back via netconsole or you want to stop
  2250. and start QEMU a lot of times, you should have QEMU use the same
  2251. source port each time by using something like @code{-serial
  2252. udp::4555@@:4556} to QEMU. Another approach is to use a patched
  2253. version of netcat which can listen to a TCP port and send and receive
  2254. characters via udp. If you have a patched version of netcat which
  2255. activates telnet remote echo and single char transfer, then you can
  2256. use the following options to step up a netcat redirector to allow
  2257. telnet on port 5555 to access the QEMU port.
  2258. @table @code
  2259. @item QEMU Options:
  2260. -serial udp::4555@@:4556
  2261. @item netcat options:
  2262. -u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T
  2263. @item telnet options:
  2264. localhost 5555
  2265. @end table
  2266. @item tcp:[@var{host}]:@var{port}[,@var{server}][,nowait][,nodelay][,reconnect=@var{seconds}]
  2267. The TCP Net Console has two modes of operation. It can send the serial
  2268. I/O to a location or wait for a connection from a location. By default
  2269. the TCP Net Console is sent to @var{host} at the @var{port}. If you use
  2270. the @var{server} option QEMU will wait for a client socket application
  2271. to connect to the port before continuing, unless the @code{nowait}
  2272. option was specified. The @code{nodelay} option disables the Nagle buffering
  2273. algorithm. The @code{reconnect} option only applies if @var{noserver} is
  2274. set, if the connection goes down it will attempt to reconnect at the
  2275. given interval. If @var{host} is omitted, 0.0.0.0 is assumed. Only
  2276. one TCP connection at a time is accepted. You can use @code{telnet} to
  2277. connect to the corresponding character device.
  2278. @table @code
  2279. @item Example to send tcp console to 192.168.0.2 port 4444
  2280. -serial tcp:192.168.0.2:4444
  2281. @item Example to listen and wait on port 4444 for connection
  2282. -serial tcp::4444,server
  2283. @item Example to not wait and listen on ip 192.168.0.100 port 4444
  2284. -serial tcp:192.168.0.100:4444,server,nowait
  2285. @end table
  2286. @item telnet:@var{host}:@var{port}[,server][,nowait][,nodelay]
  2287. The telnet protocol is used instead of raw tcp sockets. The options
  2288. work the same as if you had specified @code{-serial tcp}. The
  2289. difference is that the port acts like a telnet server or client using
  2290. telnet option negotiation. This will also allow you to send the
  2291. MAGIC_SYSRQ sequence if you use a telnet that supports sending the break
  2292. sequence. Typically in unix telnet you do it with Control-] and then
  2293. type "send break" followed by pressing the enter key.
  2294. @item unix:@var{path}[,server][,nowait][,reconnect=@var{seconds}]
  2295. A unix domain socket is used instead of a tcp socket. The option works the
  2296. same as if you had specified @code{-serial tcp} except the unix domain socket
  2297. @var{path} is used for connections.
  2298. @item mon:@var{dev_string}
  2299. This is a special option to allow the monitor to be multiplexed onto
  2300. another serial port. The monitor is accessed with key sequence of
  2301. @key{Control-a} and then pressing @key{c}.
  2302. @var{dev_string} should be any one of the serial devices specified
  2303. above. An example to multiplex the monitor onto a telnet server
  2304. listening on port 4444 would be:
  2305. @table @code
  2306. @item -serial mon:telnet::4444,server,nowait
  2307. @end table
  2308. When the monitor is multiplexed to stdio in this way, Ctrl+C will not terminate
  2309. QEMU any more but will be passed to the guest instead.
  2310. @item braille
  2311. Braille device. This will use BrlAPI to display the braille output on a real
  2312. or fake device.
  2313. @item msmouse
  2314. Three button serial mouse. Configure the guest to use Microsoft protocol.
  2315. @end table
  2316. ETEXI
  2317. DEF("parallel", HAS_ARG, QEMU_OPTION_parallel, \
  2318. "-parallel dev redirect the parallel port to char device 'dev'\n",
  2319. QEMU_ARCH_ALL)
  2320. STEXI
  2321. @item -parallel @var{dev}
  2322. @findex -parallel
  2323. Redirect the virtual parallel port to host device @var{dev} (same
  2324. devices as the serial port). On Linux hosts, @file{/dev/parportN} can
  2325. be used to use hardware devices connected on the corresponding host
  2326. parallel port.
  2327. This option can be used several times to simulate up to 3 parallel
  2328. ports.
  2329. Use @code{-parallel none} to disable all parallel ports.
  2330. ETEXI
  2331. DEF("monitor", HAS_ARG, QEMU_OPTION_monitor, \
  2332. "-monitor dev redirect the monitor to char device 'dev'\n",
  2333. QEMU_ARCH_ALL)
  2334. STEXI
  2335. @item -monitor @var{dev}
  2336. @findex -monitor
  2337. Redirect the monitor to host device @var{dev} (same devices as the
  2338. serial port).
  2339. The default device is @code{vc} in graphical mode and @code{stdio} in
  2340. non graphical mode.
  2341. Use @code{-monitor none} to disable the default monitor.
  2342. ETEXI
  2343. DEF("qmp", HAS_ARG, QEMU_OPTION_qmp, \
  2344. "-qmp dev like -monitor but opens in 'control' mode\n",
  2345. QEMU_ARCH_ALL)
  2346. STEXI
  2347. @item -qmp @var{dev}
  2348. @findex -qmp
  2349. Like -monitor but opens in 'control' mode.
  2350. ETEXI
  2351. DEF("mon", HAS_ARG, QEMU_OPTION_mon, \
  2352. "-mon [chardev=]name[,mode=readline|control][,default]\n", QEMU_ARCH_ALL)
  2353. STEXI
  2354. @item -mon [chardev=]name[,mode=readline|control][,default]
  2355. @findex -mon
  2356. Setup monitor on chardev @var{name}.
  2357. ETEXI
  2358. DEF("debugcon", HAS_ARG, QEMU_OPTION_debugcon, \
  2359. "-debugcon dev redirect the debug console to char device 'dev'\n",
  2360. QEMU_ARCH_ALL)
  2361. STEXI
  2362. @item -debugcon @var{dev}
  2363. @findex -debugcon
  2364. Redirect the debug console to host device @var{dev} (same devices as the
  2365. serial port). The debug console is an I/O port which is typically port
  2366. 0xe9; writing to that I/O port sends output to this device.
  2367. The default device is @code{vc} in graphical mode and @code{stdio} in
  2368. non graphical mode.
  2369. ETEXI
  2370. DEF("pidfile", HAS_ARG, QEMU_OPTION_pidfile, \
  2371. "-pidfile file write PID to 'file'\n", QEMU_ARCH_ALL)
  2372. STEXI
  2373. @item -pidfile @var{file}
  2374. @findex -pidfile
  2375. Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
  2376. from a script.
  2377. ETEXI
  2378. DEF("singlestep", 0, QEMU_OPTION_singlestep, \
  2379. "-singlestep always run in singlestep mode\n", QEMU_ARCH_ALL)
  2380. STEXI
  2381. @item -singlestep
  2382. @findex -singlestep
  2383. Run the emulation in single step mode.
  2384. ETEXI
  2385. DEF("S", 0, QEMU_OPTION_S, \
  2386. "-S freeze CPU at startup (use 'c' to start execution)\n",
  2387. QEMU_ARCH_ALL)
  2388. STEXI
  2389. @item -S
  2390. @findex -S
  2391. Do not start CPU at startup (you must type 'c' in the monitor).
  2392. ETEXI
  2393. DEF("realtime", HAS_ARG, QEMU_OPTION_realtime,
  2394. "-realtime [mlock=on|off]\n"
  2395. " run qemu with realtime features\n"
  2396. " mlock=on|off controls mlock support (default: on)\n",
  2397. QEMU_ARCH_ALL)
  2398. STEXI
  2399. @item -realtime mlock=on|off
  2400. @findex -realtime
  2401. Run qemu with realtime features.
  2402. mlocking qemu and guest memory can be enabled via @option{mlock=on}
  2403. (enabled by default).
  2404. ETEXI
  2405. DEF("gdb", HAS_ARG, QEMU_OPTION_gdb, \
  2406. "-gdb dev wait for gdb connection on 'dev'\n", QEMU_ARCH_ALL)
  2407. STEXI
  2408. @item -gdb @var{dev}
  2409. @findex -gdb
  2410. Wait for gdb connection on device @var{dev} (@pxref{gdb_usage}). Typical
  2411. connections will likely be TCP-based, but also UDP, pseudo TTY, or even
  2412. stdio are reasonable use case. The latter is allowing to start QEMU from
  2413. within gdb and establish the connection via a pipe:
  2414. @example
  2415. (gdb) target remote | exec qemu-system-i386 -gdb stdio ...
  2416. @end example
  2417. ETEXI
  2418. DEF("s", 0, QEMU_OPTION_s, \
  2419. "-s shorthand for -gdb tcp::" DEFAULT_GDBSTUB_PORT "\n",
  2420. QEMU_ARCH_ALL)
  2421. STEXI
  2422. @item -s
  2423. @findex -s
  2424. Shorthand for -gdb tcp::1234, i.e. open a gdbserver on TCP port 1234
  2425. (@pxref{gdb_usage}).
  2426. ETEXI
  2427. DEF("d", HAS_ARG, QEMU_OPTION_d, \
  2428. "-d item1,... enable logging of specified items (use '-d help' for a list of log items)\n",
  2429. QEMU_ARCH_ALL)
  2430. STEXI
  2431. @item -d @var{item1}[,...]
  2432. @findex -d
  2433. Enable logging of specified items. Use '-d help' for a list of log items.
  2434. ETEXI
  2435. DEF("D", HAS_ARG, QEMU_OPTION_D, \
  2436. "-D logfile output log to logfile (default stderr)\n",
  2437. QEMU_ARCH_ALL)
  2438. STEXI
  2439. @item -D @var{logfile}
  2440. @findex -D
  2441. Output log in @var{logfile} instead of to stderr
  2442. ETEXI
  2443. DEF("L", HAS_ARG, QEMU_OPTION_L, \
  2444. "-L path set the directory for the BIOS, VGA BIOS and keymaps\n",
  2445. QEMU_ARCH_ALL)
  2446. STEXI
  2447. @item -L @var{path}
  2448. @findex -L
  2449. Set the directory for the BIOS, VGA BIOS and keymaps.
  2450. ETEXI
  2451. DEF("bios", HAS_ARG, QEMU_OPTION_bios, \
  2452. "-bios file set the filename for the BIOS\n", QEMU_ARCH_ALL)
  2453. STEXI
  2454. @item -bios @var{file}
  2455. @findex -bios
  2456. Set the filename for the BIOS.
  2457. ETEXI
  2458. DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
  2459. "-enable-kvm enable KVM full virtualization support\n", QEMU_ARCH_ALL)
  2460. STEXI
  2461. @item -enable-kvm
  2462. @findex -enable-kvm
  2463. Enable KVM full virtualization support. This option is only available
  2464. if KVM support is enabled when compiling.
  2465. ETEXI
  2466. DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
  2467. "-xen-domid id specify xen guest domain id\n", QEMU_ARCH_ALL)
  2468. DEF("xen-create", 0, QEMU_OPTION_xen_create,
  2469. "-xen-create create domain using xen hypercalls, bypassing xend\n"
  2470. " warning: should not be used when xend is in use\n",
  2471. QEMU_ARCH_ALL)
  2472. DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
  2473. "-xen-attach attach to existing xen domain\n"
  2474. " xend will use this when starting QEMU\n",
  2475. QEMU_ARCH_ALL)
  2476. STEXI
  2477. @item -xen-domid @var{id}
  2478. @findex -xen-domid
  2479. Specify xen guest domain @var{id} (XEN only).
  2480. @item -xen-create
  2481. @findex -xen-create
  2482. Create domain using xen hypercalls, bypassing xend.
  2483. Warning: should not be used when xend is in use (XEN only).
  2484. @item -xen-attach
  2485. @findex -xen-attach
  2486. Attach to existing xen domain.
  2487. xend will use this when starting QEMU (XEN only).
  2488. ETEXI
  2489. DEF("no-reboot", 0, QEMU_OPTION_no_reboot, \
  2490. "-no-reboot exit instead of rebooting\n", QEMU_ARCH_ALL)
  2491. STEXI
  2492. @item -no-reboot
  2493. @findex -no-reboot
  2494. Exit instead of rebooting.
  2495. ETEXI
  2496. DEF("no-shutdown", 0, QEMU_OPTION_no_shutdown, \
  2497. "-no-shutdown stop before shutdown\n", QEMU_ARCH_ALL)
  2498. STEXI
  2499. @item -no-shutdown
  2500. @findex -no-shutdown
  2501. Don't exit QEMU on guest shutdown, but instead only stop the emulation.
  2502. This allows for instance switching to monitor to commit changes to the
  2503. disk image.
  2504. ETEXI
  2505. DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
  2506. "-loadvm [tag|id]\n" \
  2507. " start right away with a saved state (loadvm in monitor)\n",
  2508. QEMU_ARCH_ALL)
  2509. STEXI
  2510. @item -loadvm @var{file}
  2511. @findex -loadvm
  2512. Start right away with a saved state (@code{loadvm} in monitor)
  2513. ETEXI
  2514. #ifndef _WIN32
  2515. DEF("daemonize", 0, QEMU_OPTION_daemonize, \
  2516. "-daemonize daemonize QEMU after initializing\n", QEMU_ARCH_ALL)
  2517. #endif
  2518. STEXI
  2519. @item -daemonize
  2520. @findex -daemonize
  2521. Daemonize the QEMU process after initialization. QEMU will not detach from
  2522. standard IO until it is ready to receive connections on any of its devices.
  2523. This option is a useful way for external programs to launch QEMU without having
  2524. to cope with initialization race conditions.
  2525. ETEXI
  2526. DEF("option-rom", HAS_ARG, QEMU_OPTION_option_rom, \
  2527. "-option-rom rom load a file, rom, into the option ROM space\n",
  2528. QEMU_ARCH_ALL)
  2529. STEXI
  2530. @item -option-rom @var{file}
  2531. @findex -option-rom
  2532. Load the contents of @var{file} as an option ROM.
  2533. This option is useful to load things like EtherBoot.
  2534. ETEXI
  2535. HXCOMM Silently ignored for compatibility
  2536. DEF("clock", HAS_ARG, QEMU_OPTION_clock, "", QEMU_ARCH_ALL)
  2537. HXCOMM Options deprecated by -rtc
  2538. DEF("localtime", 0, QEMU_OPTION_localtime, "", QEMU_ARCH_ALL)
  2539. DEF("startdate", HAS_ARG, QEMU_OPTION_startdate, "", QEMU_ARCH_ALL)
  2540. DEF("rtc", HAS_ARG, QEMU_OPTION_rtc, \
  2541. "-rtc [base=utc|localtime|date][,clock=host|rt|vm][,driftfix=none|slew]\n" \
  2542. " set the RTC base and clock, enable drift fix for clock ticks (x86 only)\n",
  2543. QEMU_ARCH_ALL)
  2544. STEXI
  2545. @item -rtc [base=utc|localtime|@var{date}][,clock=host|vm][,driftfix=none|slew]
  2546. @findex -rtc
  2547. Specify @option{base} as @code{utc} or @code{localtime} to let the RTC start at the current
  2548. UTC or local time, respectively. @code{localtime} is required for correct date in
  2549. MS-DOS or Windows. To start at a specific point in time, provide @var{date} in the
  2550. format @code{2006-06-17T16:01:21} or @code{2006-06-17}. The default base is UTC.
  2551. By default the RTC is driven by the host system time. This allows using of the
  2552. RTC as accurate reference clock inside the guest, specifically if the host
  2553. time is smoothly following an accurate external reference clock, e.g. via NTP.
  2554. If you want to isolate the guest time from the host, you can set @option{clock}
  2555. to @code{rt} instead. To even prevent it from progressing during suspension,
  2556. you can set it to @code{vm}.
  2557. Enable @option{driftfix} (i386 targets only) if you experience time drift problems,
  2558. specifically with Windows' ACPI HAL. This option will try to figure out how
  2559. many timer interrupts were not processed by the Windows guest and will
  2560. re-inject them.
  2561. ETEXI
  2562. DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
  2563. "-icount [shift=N|auto][,align=on|off]\n" \
  2564. " enable virtual instruction counter with 2^N clock ticks per\n" \
  2565. " instruction and enable aligning the host and virtual clocks\n", QEMU_ARCH_ALL)
  2566. STEXI
  2567. @item -icount [shift=@var{N}|auto]
  2568. @findex -icount
  2569. Enable virtual instruction counter. The virtual cpu will execute one
  2570. instruction every 2^@var{N} ns of virtual time. If @code{auto} is specified
  2571. then the virtual cpu speed will be automatically adjusted to keep virtual
  2572. time within a few seconds of real time.
  2573. Note that while this option can give deterministic behavior, it does not
  2574. provide cycle accurate emulation. Modern CPUs contain superscalar out of
  2575. order cores with complex cache hierarchies. The number of instructions
  2576. executed often has little or no correlation with actual performance.
  2577. @option{align=on} will activate the delay algorithm which will try to
  2578. to synchronise the host clock and the virtual clock. The goal is to
  2579. have a guest running at the real frequency imposed by the shift option.
  2580. Whenever the guest clock is behind the host clock and if
  2581. @option{align=on} is specified then we print a messsage to the user
  2582. to inform about the delay.
  2583. Currently this option does not work when @option{shift} is @code{auto}.
  2584. Note: The sync algorithm will work for those shift values for which
  2585. the guest clock runs ahead of the host clock. Typically this happens
  2586. when the shift value is high (how high depends on the host machine).
  2587. ETEXI
  2588. DEF("watchdog", HAS_ARG, QEMU_OPTION_watchdog, \
  2589. "-watchdog i6300esb|ib700\n" \
  2590. " enable virtual hardware watchdog [default=none]\n",
  2591. QEMU_ARCH_ALL)
  2592. STEXI
  2593. @item -watchdog @var{model}
  2594. @findex -watchdog
  2595. Create a virtual hardware watchdog device. Once enabled (by a guest
  2596. action), the watchdog must be periodically polled by an agent inside
  2597. the guest or else the guest will be restarted.
  2598. The @var{model} is the model of hardware watchdog to emulate. Choices
  2599. for model are: @code{ib700} (iBASE 700) which is a very simple ISA
  2600. watchdog with a single timer, or @code{i6300esb} (Intel 6300ESB I/O
  2601. controller hub) which is a much more featureful PCI-based dual-timer
  2602. watchdog. Choose a model for which your guest has drivers.
  2603. Use @code{-watchdog help} to list available hardware models. Only one
  2604. watchdog can be enabled for a guest.
  2605. ETEXI
  2606. DEF("watchdog-action", HAS_ARG, QEMU_OPTION_watchdog_action, \
  2607. "-watchdog-action reset|shutdown|poweroff|pause|debug|none\n" \
  2608. " action when watchdog fires [default=reset]\n",
  2609. QEMU_ARCH_ALL)
  2610. STEXI
  2611. @item -watchdog-action @var{action}
  2612. @findex -watchdog-action
  2613. The @var{action} controls what QEMU will do when the watchdog timer
  2614. expires.
  2615. The default is
  2616. @code{reset} (forcefully reset the guest).
  2617. Other possible actions are:
  2618. @code{shutdown} (attempt to gracefully shutdown the guest),
  2619. @code{poweroff} (forcefully poweroff the guest),
  2620. @code{pause} (pause the guest),
  2621. @code{debug} (print a debug message and continue), or
  2622. @code{none} (do nothing).
  2623. Note that the @code{shutdown} action requires that the guest responds
  2624. to ACPI signals, which it may not be able to do in the sort of
  2625. situations where the watchdog would have expired, and thus
  2626. @code{-watchdog-action shutdown} is not recommended for production use.
  2627. Examples:
  2628. @table @code
  2629. @item -watchdog i6300esb -watchdog-action pause
  2630. @item -watchdog ib700
  2631. @end table
  2632. ETEXI
  2633. DEF("echr", HAS_ARG, QEMU_OPTION_echr, \
  2634. "-echr chr set terminal escape character instead of ctrl-a\n",
  2635. QEMU_ARCH_ALL)
  2636. STEXI
  2637. @item -echr @var{numeric_ascii_value}
  2638. @findex -echr
  2639. Change the escape character used for switching to the monitor when using
  2640. monitor and serial sharing. The default is @code{0x01} when using the
  2641. @code{-nographic} option. @code{0x01} is equal to pressing
  2642. @code{Control-a}. You can select a different character from the ascii
  2643. control keys where 1 through 26 map to Control-a through Control-z. For
  2644. instance you could use the either of the following to change the escape
  2645. character to Control-t.
  2646. @table @code
  2647. @item -echr 0x14
  2648. @item -echr 20
  2649. @end table
  2650. ETEXI
  2651. DEF("virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon, \
  2652. "-virtioconsole c\n" \
  2653. " set virtio console\n", QEMU_ARCH_ALL)
  2654. STEXI
  2655. @item -virtioconsole @var{c}
  2656. @findex -virtioconsole
  2657. Set virtio console.
  2658. This option is maintained for backward compatibility.
  2659. Please use @code{-device virtconsole} for the new way of invocation.
  2660. ETEXI
  2661. DEF("show-cursor", 0, QEMU_OPTION_show_cursor, \
  2662. "-show-cursor show cursor\n", QEMU_ARCH_ALL)
  2663. STEXI
  2664. @item -show-cursor
  2665. @findex -show-cursor
  2666. Show cursor.
  2667. ETEXI
  2668. DEF("tb-size", HAS_ARG, QEMU_OPTION_tb_size, \
  2669. "-tb-size n set TB size\n", QEMU_ARCH_ALL)
  2670. STEXI
  2671. @item -tb-size @var{n}
  2672. @findex -tb-size
  2673. Set TB size.
  2674. ETEXI
  2675. DEF("incoming", HAS_ARG, QEMU_OPTION_incoming, \
  2676. "-incoming p prepare for incoming migration, listen on port p\n",
  2677. QEMU_ARCH_ALL)
  2678. STEXI
  2679. @item -incoming @var{port}
  2680. @findex -incoming
  2681. Prepare for incoming migration, listen on @var{port}.
  2682. ETEXI
  2683. DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \
  2684. "-nodefaults don't create default devices\n", QEMU_ARCH_ALL)
  2685. STEXI
  2686. @item -nodefaults
  2687. @findex -nodefaults
  2688. Don't create default devices. Normally, QEMU sets the default devices like serial
  2689. port, parallel port, virtual console, monitor device, VGA adapter, floppy and
  2690. CD-ROM drive and others. The @code{-nodefaults} option will disable all those
  2691. default devices.
  2692. ETEXI
  2693. #ifndef _WIN32
  2694. DEF("chroot", HAS_ARG, QEMU_OPTION_chroot, \
  2695. "-chroot dir chroot to dir just before starting the VM\n",
  2696. QEMU_ARCH_ALL)
  2697. #endif
  2698. STEXI
  2699. @item -chroot @var{dir}
  2700. @findex -chroot
  2701. Immediately before starting guest execution, chroot to the specified
  2702. directory. Especially useful in combination with -runas.
  2703. ETEXI
  2704. #ifndef _WIN32
  2705. DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
  2706. "-runas user change to user id user just before starting the VM\n",
  2707. QEMU_ARCH_ALL)
  2708. #endif
  2709. STEXI
  2710. @item -runas @var{user}
  2711. @findex -runas
  2712. Immediately before starting guest execution, drop root privileges, switching
  2713. to the specified user.
  2714. ETEXI
  2715. DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
  2716. "-prom-env variable=value\n"
  2717. " set OpenBIOS nvram variables\n",
  2718. QEMU_ARCH_PPC | QEMU_ARCH_SPARC)
  2719. STEXI
  2720. @item -prom-env @var{variable}=@var{value}
  2721. @findex -prom-env
  2722. Set OpenBIOS nvram @var{variable} to given @var{value} (PPC, SPARC only).
  2723. ETEXI
  2724. DEF("semihosting", 0, QEMU_OPTION_semihosting,
  2725. "-semihosting semihosting mode\n",
  2726. QEMU_ARCH_ARM | QEMU_ARCH_M68K | QEMU_ARCH_XTENSA | QEMU_ARCH_LM32)
  2727. STEXI
  2728. @item -semihosting
  2729. @findex -semihosting
  2730. Semihosting mode (ARM, M68K, Xtensa only).
  2731. ETEXI
  2732. DEF("old-param", 0, QEMU_OPTION_old_param,
  2733. "-old-param old param mode\n", QEMU_ARCH_ARM)
  2734. STEXI
  2735. @item -old-param
  2736. @findex -old-param (ARM)
  2737. Old param mode (ARM only).
  2738. ETEXI
  2739. DEF("sandbox", HAS_ARG, QEMU_OPTION_sandbox, \
  2740. "-sandbox <arg> Enable seccomp mode 2 system call filter (default 'off').\n",
  2741. QEMU_ARCH_ALL)
  2742. STEXI
  2743. @item -sandbox @var{arg}
  2744. @findex -sandbox
  2745. Enable Seccomp mode 2 system call filter. 'on' will enable syscall filtering and 'off' will
  2746. disable it. The default is 'off'.
  2747. ETEXI
  2748. DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
  2749. "-readconfig <file>\n", QEMU_ARCH_ALL)
  2750. STEXI
  2751. @item -readconfig @var{file}
  2752. @findex -readconfig
  2753. Read device configuration from @var{file}. This approach is useful when you want to spawn
  2754. QEMU process with many command line options but you don't want to exceed the command line
  2755. character limit.
  2756. ETEXI
  2757. DEF("writeconfig", HAS_ARG, QEMU_OPTION_writeconfig,
  2758. "-writeconfig <file>\n"
  2759. " read/write config file\n", QEMU_ARCH_ALL)
  2760. STEXI
  2761. @item -writeconfig @var{file}
  2762. @findex -writeconfig
  2763. Write device configuration to @var{file}. The @var{file} can be either filename to save
  2764. command line and device configuration into file or dash @code{-}) character to print the
  2765. output to stdout. This can be later used as input file for @code{-readconfig} option.
  2766. ETEXI
  2767. DEF("nodefconfig", 0, QEMU_OPTION_nodefconfig,
  2768. "-nodefconfig\n"
  2769. " do not load default config files at startup\n",
  2770. QEMU_ARCH_ALL)
  2771. STEXI
  2772. @item -nodefconfig
  2773. @findex -nodefconfig
  2774. Normally QEMU loads configuration files from @var{sysconfdir} and @var{datadir} at startup.
  2775. The @code{-nodefconfig} option will prevent QEMU from loading any of those config files.
  2776. ETEXI
  2777. DEF("no-user-config", 0, QEMU_OPTION_nouserconfig,
  2778. "-no-user-config\n"
  2779. " do not load user-provided config files at startup\n",
  2780. QEMU_ARCH_ALL)
  2781. STEXI
  2782. @item -no-user-config
  2783. @findex -no-user-config
  2784. The @code{-no-user-config} option makes QEMU not load any of the user-provided
  2785. config files on @var{sysconfdir}, but won't make it skip the QEMU-provided config
  2786. files from @var{datadir}.
  2787. ETEXI
  2788. DEF("trace", HAS_ARG, QEMU_OPTION_trace,
  2789. "-trace [events=<file>][,file=<file>]\n"
  2790. " specify tracing options\n",
  2791. QEMU_ARCH_ALL)
  2792. STEXI
  2793. HXCOMM This line is not accurate, as some sub-options are backend-specific but
  2794. HXCOMM HX does not support conditional compilation of text.
  2795. @item -trace [events=@var{file}][,file=@var{file}]
  2796. @findex -trace
  2797. Specify tracing options.
  2798. @table @option
  2799. @item events=@var{file}
  2800. Immediately enable events listed in @var{file}.
  2801. The file must contain one event name (as listed in the @var{trace-events} file)
  2802. per line.
  2803. This option is only available if QEMU has been compiled with
  2804. either @var{simple} or @var{stderr} tracing backend.
  2805. @item file=@var{file}
  2806. Log output traces to @var{file}.
  2807. This option is only available if QEMU has been compiled with
  2808. the @var{simple} tracing backend.
  2809. @end table
  2810. ETEXI
  2811. HXCOMM Internal use
  2812. DEF("qtest", HAS_ARG, QEMU_OPTION_qtest, "", QEMU_ARCH_ALL)
  2813. DEF("qtest-log", HAS_ARG, QEMU_OPTION_qtest_log, "", QEMU_ARCH_ALL)
  2814. #ifdef __linux__
  2815. DEF("enable-fips", 0, QEMU_OPTION_enablefips,
  2816. "-enable-fips enable FIPS 140-2 compliance\n",
  2817. QEMU_ARCH_ALL)
  2818. #endif
  2819. STEXI
  2820. @item -enable-fips
  2821. @findex -enable-fips
  2822. Enable FIPS 140-2 compliance mode.
  2823. ETEXI
  2824. HXCOMM Deprecated by -machine accel=tcg property
  2825. DEF("no-kvm", 0, QEMU_OPTION_no_kvm, "", QEMU_ARCH_I386)
  2826. HXCOMM Deprecated by kvm-pit driver properties
  2827. DEF("no-kvm-pit-reinjection", 0, QEMU_OPTION_no_kvm_pit_reinjection,
  2828. "", QEMU_ARCH_I386)
  2829. HXCOMM Deprecated (ignored)
  2830. DEF("no-kvm-pit", 0, QEMU_OPTION_no_kvm_pit, "", QEMU_ARCH_I386)
  2831. HXCOMM Deprecated by -machine kernel_irqchip=on|off property
  2832. DEF("no-kvm-irqchip", 0, QEMU_OPTION_no_kvm_irqchip, "", QEMU_ARCH_I386)
  2833. HXCOMM Deprecated (ignored)
  2834. DEF("tdf", 0, QEMU_OPTION_tdf,"", QEMU_ARCH_ALL)
  2835. DEF("object", HAS_ARG, QEMU_OPTION_object,
  2836. "-object TYPENAME[,PROP1=VALUE1,...]\n"
  2837. " create an new object of type TYPENAME setting properties\n"
  2838. " in the order they are specified. Note that the 'id'\n"
  2839. " property must be set. These objects are placed in the\n"
  2840. " '/objects' path.\n",
  2841. QEMU_ARCH_ALL)
  2842. STEXI
  2843. @item -object @var{typename}[,@var{prop1}=@var{value1},...]
  2844. @findex -object
  2845. Create an new object of type @var{typename} setting properties
  2846. in the order they are specified. Note that the 'id'
  2847. property must be set. These objects are placed in the
  2848. '/objects' path.
  2849. ETEXI
  2850. DEF("msg", HAS_ARG, QEMU_OPTION_msg,
  2851. "-msg timestamp[=on|off]\n"
  2852. " change the format of messages\n"
  2853. " on|off controls leading timestamps (default:on)\n",
  2854. QEMU_ARCH_ALL)
  2855. STEXI
  2856. @item -msg timestamp[=on|off]
  2857. @findex -msg
  2858. prepend a timestamp to each log message.(default:on)
  2859. ETEXI
  2860. DEF("dump-vmstate", HAS_ARG, QEMU_OPTION_dump_vmstate,
  2861. "-dump-vmstate <file>\n"
  2862. " Output vmstate information in JSON format to file.\n"
  2863. " Use the scripts/vmstate-static-checker.py file to\n"
  2864. " check for possible regressions in migration code\n"
  2865. " by comparing two such vmstate dumps.",
  2866. QEMU_ARCH_ALL)
  2867. STEXI
  2868. @item -dump-vmstate @var{file}
  2869. @findex -dump-vmstate
  2870. Dump json-encoded vmstate information for current machine type to file
  2871. in @var{file}
  2872. ETEXI
  2873. HXCOMM This is the last statement. Insert new options before this line!
  2874. STEXI
  2875. @end table
  2876. ETEXI