1b13e60daSPeter Grehan.\" Copyright (c) 2013 Peter Grehan 2b13e60daSPeter Grehan.\" All rights reserved. 3b13e60daSPeter Grehan.\" 4b13e60daSPeter Grehan.\" Redistribution and use in source and binary forms, with or without 5b13e60daSPeter Grehan.\" modification, are permitted provided that the following conditions 6b13e60daSPeter Grehan.\" are met: 7b13e60daSPeter Grehan.\" 1. Redistributions of source code must retain the above copyright 8b13e60daSPeter Grehan.\" notice, this list of conditions and the following disclaimer. 9b13e60daSPeter Grehan.\" 2. Redistributions in binary form must reproduce the above copyright 10b13e60daSPeter Grehan.\" notice, this list of conditions and the following disclaimer in the 11b13e60daSPeter Grehan.\" documentation and/or other materials provided with the distribution. 12b13e60daSPeter Grehan.\" 13b13e60daSPeter Grehan.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND 14b13e60daSPeter Grehan.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15b13e60daSPeter Grehan.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16b13e60daSPeter Grehan.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE 17b13e60daSPeter Grehan.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18b13e60daSPeter Grehan.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19b13e60daSPeter Grehan.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20b13e60daSPeter Grehan.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21b13e60daSPeter Grehan.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22b13e60daSPeter Grehan.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23b13e60daSPeter Grehan.\" SUCH DAMAGE. 24b13e60daSPeter Grehan.\" 25*da202b0fSYuri Pankov.Dd October 12, 2023 26b13e60daSPeter Grehan.Dt BHYVE 8 27b13e60daSPeter Grehan.Os 28b13e60daSPeter Grehan.Sh NAME 29b13e60daSPeter Grehan.Nm bhyve 30b13e60daSPeter Grehan.Nd "run a guest operating system inside a virtual machine" 31b13e60daSPeter Grehan.Sh SYNOPSIS 32b13e60daSPeter Grehan.Nm 33c4df8cbfSRobert Wing.Op Fl AaCDeHhPSuWwxY 3401d822d3SRodney W. Grimes.Oo 3577d208a3SMateusz Piotrowski.Sm off 3677d208a3SMateusz Piotrowski.Fl c\~ 3701d822d3SRodney W. Grimes.Oo 3877d208a3SMateusz Piotrowski.Op Cm cpus= 3977d208a3SMateusz Piotrowski.Ar numcpus 4001d822d3SRodney W. Grimes.Oc 4177d208a3SMateusz Piotrowski.Op Cm ,sockets= Ar n 4277d208a3SMateusz Piotrowski.Op Cm ,cores= Ar n 4377d208a3SMateusz Piotrowski.Op Cm ,threads= Ar n 4477d208a3SMateusz Piotrowski.Oc 4577d208a3SMateusz Piotrowski.Sm on 46ca14781cSCorvin Köhne.Oo Fl f 47ca14781cSCorvin Köhne.Sm off 48ca14781cSCorvin Köhne.Ar name Cm \&, 49ca14781cSCorvin Köhne.Oo 50ca14781cSCorvin Köhne.Cm string No | Cm file 51ca14781cSCorvin Köhne.Oc 52ca14781cSCorvin Köhne.Cm \&= Ar data 53ca14781cSCorvin Köhne.Sm on 54ca14781cSCorvin Köhne.Oc 55775f6f45SMateusz Piotrowski.Oo 56b70b050aSJohn Baldwin.Sm off 57775f6f45SMateusz Piotrowski.Fl G\~ 58b70b050aSJohn Baldwin.Oo Ar w Oc 59775f6f45SMateusz Piotrowski.Oo Ar bind_address Cm \&: Oc 60b70b050aSJohn Baldwin.Ar port 61b70b050aSJohn Baldwin.Sm on 62b70b050aSJohn Baldwin.Oc 63f656df58SMateusz Piotrowski.Op Fl k Ar config_file 6419eaa01bSMichael Reifenberger.Op Fl K Ar layout 6577d208a3SMateusz Piotrowski.Oo Fl l 6677d208a3SMateusz Piotrowski.Sm off 67bfe40b69SMateusz Piotrowski.Ar lpcdev Op Cm \&, Ar conf 6877d208a3SMateusz Piotrowski.Sm on 6977d208a3SMateusz Piotrowski.Oc 7077d208a3SMateusz Piotrowski.Sm off 71775f6f45SMateusz Piotrowski.Oo Fl m\~ 7277d208a3SMateusz Piotrowski.Ar memsize 7377d208a3SMateusz Piotrowski.Oo 748d9fefe6SMateusz Piotrowski.Cm K | Cm k | Cm M | Cm m | Cm G | Cm g | Cm T | Cm t 7577d208a3SMateusz Piotrowski.Oc 7677d208a3SMateusz Piotrowski.Sm on 7777d208a3SMateusz Piotrowski.Oc 78621b5090SJohn Baldwin.Op Fl o Ar var Ns Cm = Ns Ar value 7977d208a3SMateusz Piotrowski.Op Fl p Ar vcpu Ns Cm \&: Ns Ar hostcpu 80483d953aSJohn Baldwin.Op Fl r Ar file 8177d208a3SMateusz Piotrowski.Sm off 82bfe40b69SMateusz Piotrowski.Oo Fl s\~ 83bfe40b69SMateusz Piotrowski.Ar slot Cm \&, Ar emulation Op Cm \&, Ar conf 8477d208a3SMateusz Piotrowski.Sm on 8577d208a3SMateusz Piotrowski.Oc 865749449dSJohn Baldwin.Op Fl U Ar uuid 87b13e60daSPeter Grehan.Ar vmname 88bfe40b69SMateusz Piotrowski.Nm 89bfe40b69SMateusz Piotrowski.Fl l Cm help 90bfe40b69SMateusz Piotrowski.Nm 91bfe40b69SMateusz Piotrowski.Fl s Cm help 92b13e60daSPeter Grehan.Sh DESCRIPTION 93b13e60daSPeter Grehan.Nm 947fca1ad5SGlen Barberis a hypervisor that runs guest operating systems inside a 95b13e60daSPeter Grehanvirtual machine. 96b13e60daSPeter Grehan.Pp 97b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and 98b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters. 99b13e60daSPeter Grehan.Pp 1005c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must be loaded with 10184fe889cSChristian Brueffer.Xr bhyveload 8 102b13e60daSPeter Grehanor a similar boot loader before running 1035c3ec676SGleb Smirnoff.Nm , 1045c3ec676SGleb Smirnoffotherwise, it is enough to run 1055c3ec676SGleb Smirnoff.Nm 1065c3ec676SGleb Smirnoffwith a boot ROM of choice. 107b13e60daSPeter Grehan.Pp 108b13e60daSPeter Grehan.Nm 109b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor 110b13e60daSPeter Grehanexit is detected. 111b13e60daSPeter Grehan.Sh OPTIONS 112b13e60daSPeter Grehan.Bl -tag -width 10n 113b13e60daSPeter Grehan.It Fl A 114b13e60daSPeter GrehanGenerate ACPI tables. 1156a0e7f90SCorvin Köhnebhyve always generates ACPI tables so this option is obsolete. 116ccb1c87aSMateusz Piotrowski.It Fl a 117ccb1c87aSMateusz PiotrowskiThe guest's local APIC is configured in xAPIC mode. 118ccb1c87aSMateusz PiotrowskiThe xAPIC mode is the default setting so this option is redundant. 119ccb1c87aSMateusz PiotrowskiIt will be deprecated in a future version. 120ccb1c87aSMateusz Piotrowski.It Fl C 121ccb1c87aSMateusz PiotrowskiInclude guest memory in core file. 12201d822d3SRodney W. Grimes.It Fl c Op Ar setting ... 12301d822d3SRodney W. GrimesNumber of guest virtual CPUs 12401d822d3SRodney W. Grimesand/or the CPU topology. 12501d822d3SRodney W. GrimesThe default value for each of 12601d822d3SRodney W. Grimes.Ar numcpus , 12701d822d3SRodney W. Grimes.Ar sockets , 12801d822d3SRodney W. Grimes.Ar cores , 12901d822d3SRodney W. Grimesand 13001d822d3SRodney W. Grimes.Ar threads 13101d822d3SRodney W. Grimesis 1. 13201d822d3SRodney W. GrimesIf 13301d822d3SRodney W. Grimes.Ar numcpus 13401d822d3SRodney W. Grimesis not specified then it will be calculated from the other arguments. 13501d822d3SRodney W. GrimesThe topology must be consistent in that the 13601d822d3SRodney W. Grimes.Ar numcpus 13701d822d3SRodney W. Grimesmust equal the product of 13801d822d3SRodney W. Grimes.Ar sockets , 13901d822d3SRodney W. Grimes.Ar cores , 14001d822d3SRodney W. Grimesand 14101d822d3SRodney W. Grimes.Ar threads . 14201d822d3SRodney W. GrimesIf a 14301d822d3SRodney W. Grimes.Ar setting 14401d822d3SRodney W. Grimesis specified more than once the last one has precedence. 145*da202b0fSYuri Pankov.Pp 146*da202b0fSYuri PankovThe maximum number of virtual CPUs defaults to the number of active 147*da202b0fSYuri Pankovphysical CPUs in the system available via the 148*da202b0fSYuri Pankov.Va hw.vmm.maxcpu 149*da202b0fSYuri Pankov.Xr sysctl 8 150*da202b0fSYuri Pankovvariable. 151*da202b0fSYuri PankovThe limit can be adjusted via the 152*da202b0fSYuri Pankov.Va hw.vmm.maxcpu 153*da202b0fSYuri Pankovloader tunable. 1540a1016f9SPawel Biernacki.It Fl D 1550a1016f9SPawel BiernackiDestroy the VM on guest initiated power-off. 156cde1f5b8SJohn Baldwin.It Fl e 157cde1f5b8SJohn BaldwinForce 158cde1f5b8SJohn Baldwin.Nm 159cde1f5b8SJohn Baldwinto exit when a guest issues an access to an I/O port that is not emulated. 160cde1f5b8SJohn BaldwinThis is intended for debug purposes. 161ca14781cSCorvin Köhne.It Fl f Ar name Ns Cm \&, Ns Oo Cm string Ns No | Ns Cm file Ns Oc Ns Cm \&= Ns Ar data 162ca14781cSCorvin KöhneAdd a fw_cfg file 163ca14781cSCorvin Köhne.Ar name 164ca14781cSCorvin Köhneto the fw_cfg interface. 165ca14781cSCorvin KöhneIf a 166ca14781cSCorvin Köhne.Cm string 167ca14781cSCorvin Köhneis specified, the fw_cfg file contains the string as data. 168ca14781cSCorvin KöhneIf a 169ca14781cSCorvin Köhne.Cm file 170ca14781cSCorvin Köhneis specified, bhyve reads the file and adds the file content as fw_cfg data. 1712cdff991SMariusz Zaborski.It Fl G Xo 1722cdff991SMariusz Zaborski.Sm off 1732cdff991SMariusz Zaborski.Oo Ar w Oc 174775f6f45SMateusz Piotrowski.Oo Ar bind_address Cm \&: Oc 1752cdff991SMariusz Zaborski.Ar port 1762cdff991SMariusz Zaborski.Sm on 1772cdff991SMariusz Zaborski.Xc 178cd377eb3SJohn BaldwinStart a debug server that uses the GDB protocol to export guest state to a 179cd377eb3SJohn Baldwindebugger. 180cd377eb3SJohn BaldwinAn IPv4 TCP socket will be bound to the supplied 1812cdff991SMariusz Zaborski.Ar bind_address 1822cdff991SMariusz Zaborskiand 183cd377eb3SJohn Baldwin.Ar port 184cd377eb3SJohn Baldwinto listen for debugger connections. 185cd377eb3SJohn BaldwinOnly a single debugger may be attached to the debug server at a time. 1862cdff991SMariusz ZaborskiIf the option begins with 187cd377eb3SJohn Baldwin.Sq w , 188cd377eb3SJohn Baldwin.Nm 189cd377eb3SJohn Baldwinwill pause execution at the first instruction waiting for a debugger to attach. 190cde1f5b8SJohn Baldwin.It Fl H 191cde1f5b8SJohn BaldwinYield the virtual CPU thread when a HLT instruction is detected. 192cde1f5b8SJohn BaldwinIf this option is not specified, virtual CPUs will use 100% of a host CPU. 193ccb1c87aSMateusz Piotrowski.It Fl h 194ccb1c87aSMateusz PiotrowskiPrint help message and exit. 195f656df58SMateusz Piotrowski.It Fl k Ar config_file 196621b5090SJohn BaldwinSet configuration variables from a simple, key-value config file. 197621b5090SJohn BaldwinEach line of the config file is expected to consist of a config variable 198621b5090SJohn Baldwinname, an equals sign 19919eaa01bSMichael Reifenberger.It Fl K Ar layout 20019eaa01bSMichael ReifenbergerSpecify the keyboard layout. 20119eaa01bSMichael ReifenbergerThe value that can be specified sets the file name in 20219eaa01bSMichael Reifenberger.Ar /usr/share/bhyve/kbdlayout . 20319eaa01bSMichael ReifenbergerThis specification only works when loaded with UEFI mode for VNC. 204a3b3e89fSBenedict ReuschlingWhen using a VNC client that supports QEMU Extended Key Event Message (e.g. 205a3b3e89fSBenedict ReuschlingTigerVNC), this option isn't needed. 206a3b3e89fSBenedict ReuschlingWhen using a VNC client that doesn't support QEMU Extended Key Event Message 207a3b3e89fSBenedict Reuschling(e.g. tightVNC), the layout defaults to the US keyboard unless specified 208a3b3e89fSBenedict Reuschlingotherwise. 209621b5090SJohn Baldwin.Pq Sq = , 210621b5090SJohn Baldwinand a value. 211621b5090SJohn BaldwinNo spaces are permitted between the variable name, equals sign, or 212621b5090SJohn Baldwinvalue. 213621b5090SJohn BaldwinBlank lines and lines starting with 214621b5090SJohn Baldwin.Sq # 215621b5090SJohn Baldwinare ignored. 216f656df58SMateusz PiotrowskiSee 217f656df58SMateusz Piotrowski.Xr bhyve_config 5 218f656df58SMateusz Piotrowskifor more details. 2194c08b978SMateusz Piotrowski.It Fl l Cm help 2204c08b978SMateusz PiotrowskiPrint a list of supported LPC devices. 2214c08b978SMateusz Piotrowski.It Fl l Ar lpcdev Ns Op Cm \&, Ns Ar conf 222cde1f5b8SJohn BaldwinAllow devices behind the LPC PCI-ISA bridge to be configured. 2239b1aa8d6SNeel NatuThe only supported devices are the TTY-class devices 2244c08b978SMateusz Piotrowski.Cm com1 , com2 , com3 , 2254c08b978SMateusz Piotrowskiand 2264c08b978SMateusz Piotrowski.Cm com4 , 22767c26eb2SCorvin Köhnethe TPM module 22867c26eb2SCorvin Köhne.Cm tpm , 2292f40fc6fSPeter Grehanthe boot ROM device 2304c08b978SMateusz Piotrowski.Cm bootrom , 231d85147f3SCorvin Köhnethe 232d85147f3SCorvin Köhne.Cm fwcfg 233d85147f3SCorvin Köhnetype and the debug/test device 2344c08b978SMateusz Piotrowski.Cm pc-testdev . 2351aa56353SMarcelo Araujo.Pp 2364c08b978SMateusz PiotrowskiThe possible values for the 2374c08b978SMateusz Piotrowski.Ar conf 2384c08b978SMateusz Piotrowskiargument are listed in the 2394c08b978SMateusz Piotrowski.Fl s 2404c08b978SMateusz Piotrowskiflag description. 2417e0cb3dfSMateusz Piotrowski.It Xo 2427e0cb3dfSMateusz Piotrowski.Fl m Ar memsize Ns Oo 2437e0cb3dfSMateusz Piotrowski.Sm off 2447e0cb3dfSMateusz Piotrowski.Cm K | k | M | m | G | g | T | t 2457e0cb3dfSMateusz Piotrowski.Sm on 2467e0cb3dfSMateusz Piotrowski.Oc 2477e0cb3dfSMateusz Piotrowski.Xc 2487e0cb3dfSMateusz PiotrowskiSet the guest physical memory size 249cde1f5b8SJohn BaldwinThis must be the same size that was given to 250cde1f5b8SJohn Baldwin.Xr bhyveload 8 . 251cde1f5b8SJohn Baldwin.Pp 2527e0cb3dfSMateusz PiotrowskiThe size argument may be suffixed with one of 2537e0cb3dfSMateusz Piotrowski.Cm K , M , G 2547e0cb3dfSMateusz Piotrowskior 2557e0cb3dfSMateusz Piotrowski.Cm T 2567e0cb3dfSMateusz Piotrowski(either upper or lower case) 2577e0cb3dfSMateusz Piotrowskito indicate a multiple of kilobytes, megabytes, gigabytes, or terabytes. 258cde1f5b8SJohn BaldwinIf no suffix is given, the value is assumed to be in megabytes. 2596ee52c65SRoman Bogorodskiy.Pp 2607e0cb3dfSMateusz PiotrowskiThe default is 256M. 261621b5090SJohn Baldwin.It Fl o Ar var Ns Cm = Ns Ar value 262621b5090SJohn BaldwinSet the configuration variable 263621b5090SJohn Baldwin.Ar var 264621b5090SJohn Baldwinto 265621b5090SJohn Baldwin.Ar value . 266ccb1c87aSMateusz Piotrowski.It Fl P 267ccb1c87aSMateusz PiotrowskiForce the guest virtual CPU to exit when a PAUSE instruction is detected. 26890df5437SMateusz Piotrowski.It Fl p Ar vcpu Ns Cm \& : Ns Ar hostcpu 2699b6155a2SNeel NatuPin guest's virtual CPU 2709b6155a2SNeel Natu.Em vcpu 2719b6155a2SNeel Natuto 2729b6155a2SNeel Natu.Em hostcpu . 2738120190fSFelix JohnsonHost CPUs and guest virtual CPUs are numbered starting from 0. 2748120190fSFelix JohnsonA 2758120190fSFelix Johnson.Fl p 2768120190fSFelix Johnsonoption is required for every guest vCPU to be pinned. 2778120190fSFelix JohnsonTo map a 4 vCPU guest to host CPUs 12-15: 2788120190fSFelix Johnson.Bd -literal 2798120190fSFelix Johnson-p 0:12 -p 1:13 -p 2:14 -p 3:15 2808120190fSFelix Johnson.Ed 281483d953aSJohn Baldwin.It Fl r Ar file 282483d953aSJohn BaldwinResume a guest from a snapshot. 283483d953aSJohn BaldwinThe guest memory contents are restored from 284483d953aSJohn Baldwin.Ar file , 285483d953aSJohn Baldwinand the guest device and vCPU state are restored from the file 286483d953aSJohn Baldwin.Dq Ar file Ns .kern . 287483d953aSJohn Baldwin.Pp 288a3b3e89fSBenedict ReuschlingNote that the current snapshot file format requires that the 289a3b3e89fSBenedict Reuschlingconfiguration of devices in the new VM match the VM from which the 290a3b3e89fSBenedict Reuschlingsnapshot was taken by specifying the same 291b24eea8cSMateusz Piotrowski.Fl s 292483d953aSJohn Baldwinand 293b24eea8cSMateusz Piotrowski.Fl l 294483d953aSJohn Baldwinoptions. 295483d953aSJohn BaldwinThe count of vCPUs and memory configuration are read from the snapshot. 296ccb1c87aSMateusz Piotrowski.It Fl S 297ccb1c87aSMateusz PiotrowskiWire guest memory. 298449f0e48SMateusz Piotrowski.It Fl s Cm help 299449f0e48SMateusz PiotrowskiPrint a list of supported PCI devices. 300449f0e48SMateusz Piotrowski.It Fl s Ar slot Ns Cm \&, Ns Ar emulation Ns Op Cm \&, Ns Ar conf 301b13e60daSPeter GrehanConfigure a virtual PCI slot and function. 302b13e60daSPeter Grehan.Pp 30384fe889cSChristian Brueffer.Nm 304b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to 305b13e60daSPeter Grehanslots on the bus. 306b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions 307b13e60daSPeter Grehanper slot. 308234d8c47SMateusz Piotrowski.Pp 309234d8c47SMateusz PiotrowskiThe 310234d8c47SMateusz Piotrowski.Ar slot 311234d8c47SMateusz Piotrowskican be specified in one of the following formats: 312234d8c47SMateusz Piotrowski.Pp 313234d8c47SMateusz Piotrowski.Bl -bullet -compact 314234d8c47SMateusz Piotrowski.It 315234d8c47SMateusz Piotrowski.Ar pcislot 316234d8c47SMateusz Piotrowski.It 317234d8c47SMateusz Piotrowski.Sm off 318234d8c47SMateusz Piotrowski.Ar pcislot Cm \&: Ar function 319234d8c47SMateusz Piotrowski.Sm on 320234d8c47SMateusz Piotrowski.It 321234d8c47SMateusz Piotrowski.Sm off 322234d8c47SMateusz Piotrowski.Ar bus Cm \&: Ar pcislot Cm \&: Ar function 323234d8c47SMateusz Piotrowski.Sm on 324234d8c47SMateusz Piotrowski.El 325b13e60daSPeter Grehan.Pp 326b13e60daSPeter GrehanThe 327b13e60daSPeter Grehan.Ar pcislot 32884fe889cSChristian Brueffervalue is 0 to 31. 32984fe889cSChristian BruefferThe optional 33084fe889cSChristian Brueffer.Ar function 33184fe889cSChristian Brueffervalue is 0 to 7. 33284fe889cSChristian BruefferThe optional 33306db1b4aSNeel Natu.Ar bus 33406db1b4aSNeel Natuvalue is 0 to 255. 33584fe889cSChristian BruefferIf not specified, the 33684fe889cSChristian Brueffer.Ar function 33784fe889cSChristian Brueffervalue defaults to 0. 33884fe889cSChristian BruefferIf not specified, the 33984fe889cSChristian Brueffer.Ar bus 34084fe889cSChristian Brueffervalue defaults to 0. 341234d8c47SMateusz Piotrowski.Pp 342234d8c47SMateusz PiotrowskiThe 343234d8c47SMateusz Piotrowski.Ar emulation 344234d8c47SMateusz Piotrowskiargument 345234d8c47SMateusz Piotrowskican be one of the following: 3467014cb23SMateusz Piotrowski.Bl -tag -width "amd_hostbridge" 3477014cb23SMateusz Piotrowski.It Cm hostbridge 3487014cb23SMateusz PiotrowskiA simple host bridge. 349b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest 350b13e60daSPeter Grehanoperating systems. 3517014cb23SMateusz Piotrowski.It Cm amd_hostbridge 3527014cb23SMateusz PiotrowskiEmulation identical to 3537014cb23SMateusz Piotrowski.Cm hostbridge 3547014cb23SMateusz Piotrowskiusing a PCI vendor ID of AMD. 3557014cb23SMateusz Piotrowski.It Cm passthru 356b13e60daSPeter GrehanPCI pass-through device. 3577014cb23SMateusz Piotrowski.It Cm virtio-net 358b13e60daSPeter GrehanVirtio network interface. 3597014cb23SMateusz Piotrowski.It Cm virtio-blk 360b13e60daSPeter GrehanVirtio block storage interface. 3617014cb23SMateusz Piotrowski.It Cm virtio-scsi 362f9c005a1SMarcelo AraujoVirtio SCSI interface. 3637014cb23SMateusz Piotrowski.It Cm virtio-9p 364100353cfSJakub Wojciech KlamaVirtio 9p (VirtFS) interface. 3657014cb23SMateusz Piotrowski.It Cm virtio-rnd 3669d0c4e17SPeter GrehanVirtio RNG interface. 3677014cb23SMateusz Piotrowski.It Cm virtio-console 3685121b6ccSRoman BogorodskiyVirtio console interface, which exposes multiple ports 3695121b6ccSRoman Bogorodskiyto the guest in the form of simple char devices for simple IO 3705121b6ccSRoman Bogorodskiybetween the guest and host userspaces. 371054accacSCorvin Köhne.It Cm virtio-input 372054accacSCorvin KöhneVirtio input interface. 3737014cb23SMateusz Piotrowski.It Cm ahci 374d6099860SMaxim KonovalovAHCI controller attached to arbitrary devices. 3757014cb23SMateusz Piotrowski.It Cm ahci-cd 376b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD. 3777014cb23SMateusz Piotrowski.It Cm ahci-hd 3787014cb23SMateusz PiotrowskiAHCI controller attached to a SATA hard drive. 3797014cb23SMateusz Piotrowski.It Cm e1000 3809e749f25SAlexander MotinIntel e82545 network interface. 3817014cb23SMateusz Piotrowski.It Cm uart 382b13e60daSPeter GrehanPCI 16550 serial device. 3837014cb23SMateusz Piotrowski.It Cm lpc 3847014cb23SMateusz PiotrowskiLPC PCI-ISA bridge with COM1, COM2, COM3, and COM4 16550 serial ports, 3857014cb23SMateusz Piotrowskia boot ROM, and, 386d85147f3SCorvin Köhneoptionally, a fwcfg type and the debug/test device. 3879b1aa8d6SNeel NatuThe LPC bridge emulation can only be configured on bus 0. 3887014cb23SMateusz Piotrowski.It Cm fbuf 3896c87a2c0SGleb SmirnoffRaw framebuffer device attached to VNC server. 3907014cb23SMateusz Piotrowski.It Cm xhci 3915c3ec676SGleb SmirnoffeXtensible Host Controller Interface (xHCI) USB controller. 3927014cb23SMateusz Piotrowski.It Cm nvme 393c066c68cSMarcelo AraujoNVM Express (NVMe) controller. 3947014cb23SMateusz Piotrowski.It Cm hda 39536f9f044SWarner LoshHigh Definition Audio Controller. 396b13e60daSPeter Grehan.El 397234d8c47SMateusz Piotrowski.Pp 398234d8c47SMateusz PiotrowskiThe optional parameter 399234d8c47SMateusz Piotrowski.Ar conf 400234d8c47SMateusz Piotrowskidescribes the backend for device emulations. 401b13e60daSPeter GrehanIf 402b13e60daSPeter Grehan.Ar conf 403b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be 404b13e60daSPeter Grehanconsidered unconnected. 405b13e60daSPeter Grehan.Pp 4068d9fefe6SMateusz PiotrowskiNetwork device backends: 4077fb22729SMateusz Piotrowski.Sm off 4087fb22729SMateusz Piotrowski.Bl -bullet 4097fb22729SMateusz Piotrowski.It 4107fb22729SMateusz Piotrowski.Xo 4117fb22729SMateusz Piotrowski.Cm tap Ar N 4127fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx 4137fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N 4147fb22729SMateusz Piotrowski.Xc 4157fb22729SMateusz Piotrowski.It 4167fb22729SMateusz Piotrowski.Xo 4177fb22729SMateusz Piotrowski.Cm vmnet Ar N 4187fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx 4197fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N 4207fb22729SMateusz Piotrowski.Xc 4217fb22729SMateusz Piotrowski.It 4227fb22729SMateusz Piotrowski.Xo 4237fb22729SMateusz Piotrowski.Cm netgraph,path= Ar ADDRESS Cm \&,peerhook= Ar HOOK 4247fb22729SMateusz Piotrowski.Op Cm \&,socket= Ar NAME 4257fb22729SMateusz Piotrowski.Op Cm \&,hook= Ar HOOK 4267fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx 4277fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N 4287fb22729SMateusz Piotrowski.Xc 4297fb22729SMateusz Piotrowski.El 4307fb22729SMateusz Piotrowski.Sm on 431baf753ccSJohn Baldwin.Pp 432b13e60daSPeter GrehanIf 4337fb22729SMateusz Piotrowski.Cm mac 434b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the 435b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and 436b13e60daSPeter Grehanthe device name. 437b13e60daSPeter Grehan.Pp 438b13e60daSPeter GrehanThe MAC address is an ASCII string in 439b13e60daSPeter Grehan.Xr ethers 5 440b13e60daSPeter Grehanformat. 441692dbfe9SVincenzo Maffione.Pp 4427fb22729SMateusz PiotrowskiWith 4437fb22729SMateusz Piotrowski.Cm virtio-net 4447fb22729SMateusz Piotrowskidevices, the 4457fb22729SMateusz Piotrowski.Cm mtu 446692dbfe9SVincenzo Maffioneparameter can be specified to inform the guest about the largest MTU 447692dbfe9SVincenzo Maffionethat should be allowed, expressed in bytes. 448e90337e4SAleksandr Fedorov.Pp 4497fb22729SMateusz PiotrowskiWith 4507fb22729SMateusz Piotrowski.Cm netgraph 4517fb22729SMateusz Piotrowskibackend, the 4527fb22729SMateusz Piotrowski.Cm path 453e90337e4SAleksandr Fedorovand 4547fb22729SMateusz Piotrowski.Cm peerhook 455e90337e4SAleksandr Fedorovparameters must be specified to set the destination node and corresponding hook. 456e90337e4SAleksandr FedorovThe optional parameters 4577fb22729SMateusz Piotrowski.Cm socket 458e90337e4SAleksandr Fedorovand 4597fb22729SMateusz Piotrowski.Cm hook 460e90337e4SAleksandr Fedorovmay be used to set the 461e90337e4SAleksandr Fedorov.Xr ng_socket 4 462e90337e4SAleksandr Fedorovnode name and source hook. 463e90337e4SAleksandr FedorovThe 464e90337e4SAleksandr Fedorov.Ar ADDRESS , 4657fb22729SMateusz Piotrowski.Ar HOOK , 466e90337e4SAleksandr Fedorovand 467e90337e4SAleksandr Fedorov.Ar NAME 468e90337e4SAleksandr Fedorovmust comply with 469e90337e4SAleksandr Fedorov.Xr netgraph 4 470e90337e4SAleksandr Fedorovaddressing rules. 471b13e60daSPeter Grehan.Pp 4725232a35fSMateusz PiotrowskiBlock storage device backends: 4735232a35fSMateusz Piotrowski.Sm off 4745232a35fSMateusz Piotrowski.Bl -bullet 4755232a35fSMateusz Piotrowski.It 4765232a35fSMateusz Piotrowski.Ar /filename Op Cm \&, Ar block-device-options 4775232a35fSMateusz Piotrowski.It 4785232a35fSMateusz Piotrowski.Ar /dev/xxx Op Cm \&, Ar block-device-options 4794e43c1e8SNeel Natu.El 4805232a35fSMateusz Piotrowski.Sm on 4814e43c1e8SNeel Natu.Pp 4824e43c1e8SNeel NatuThe 4834e43c1e8SNeel Natu.Ar block-device-options 4844e43c1e8SNeel Natuare: 4855232a35fSMateusz Piotrowski.Bl -tag -width 10n 4865232a35fSMateusz Piotrowski.It Cm nocache 487b13e60daSPeter GrehanOpen the file with 488b13e60daSPeter Grehan.Dv O_DIRECT . 4895232a35fSMateusz Piotrowski.It Cm direct 490b13e60daSPeter GrehanOpen the file using 491b13e60daSPeter Grehan.Dv O_SYNC . 4925232a35fSMateusz Piotrowski.It Cm ro 493b13e60daSPeter GrehanForce the file to be opened read-only. 4945232a35fSMateusz Piotrowski.It Cm sectorsize= Ns Ar logical Ns Oo Cm \&/ Ns Ar physical Oc 4954e43c1e8SNeel NatuSpecify the logical and physical sector sizes of the emulated disk. 4964e43c1e8SNeel NatuThe physical sector size is optional and is equal to the logical sector size 4974e43c1e8SNeel Natuif not explicitly specified. 4985232a35fSMateusz Piotrowski.It Cm nodelete 499e6d795d1SAllan JudeDisable emulation of guest trim requests via 500e6d795d1SAllan Jude.Dv DIOCGDELETE 501e6d795d1SAllan Juderequests. 502480bef94SCorvin Köhne.It Li bootindex= Ns Ar index 503480bef94SCorvin KöhneAdd the device to the bootorder at 504480bef94SCorvin Köhne.Ar index . 505480bef94SCorvin KöhneA fwcfg file is used to specify the bootorder. 506480bef94SCorvin KöhneThe guest firmware may ignore or doesn't support this fwcfg file. 507480bef94SCorvin KöhneIn that case, this feature doesn't work as expected. 508b13e60daSPeter Grehan.El 509b13e60daSPeter Grehan.Pp 5107c5829c9SMateusz PiotrowskiSCSI device backends: 5117c5829c9SMateusz Piotrowski.Sm off 5127c5829c9SMateusz Piotrowski.Bl -bullet 5137c5829c9SMateusz Piotrowski.It 5147c5829c9SMateusz Piotrowski.Pa /dev/cam/ctl Oo Ar pp Cm \&. Ar vp Oc Oo Cm \&, Ar scsi-device-options Oc 51549f87822SAlexander Motin.El 5167c5829c9SMateusz Piotrowski.Sm on 51749f87822SAlexander Motin.Pp 51849f87822SAlexander MotinThe 51949f87822SAlexander Motin.Ar scsi-device-options 52049f87822SAlexander Motinare: 52149f87822SAlexander Motin.Bl -tag -width 10n 5227c5829c9SMateusz Piotrowski.It Cm iid= Ns Ar IID 52349f87822SAlexander MotinInitiator ID to use when sending requests to specified CTL port. 52449f87822SAlexander MotinThe default value is 0. 525480bef94SCorvin Köhne.It Li bootindex= Ns Ar index 526480bef94SCorvin KöhneAdd the device to the bootorder at 527480bef94SCorvin Köhne.Ar index . 528480bef94SCorvin KöhneA fwcfg file is used to specify the bootorder. 529480bef94SCorvin KöhneThe guest firmware may ignore or doesn't support this fwcfg file. 530480bef94SCorvin KöhneIn that case, this feature doesn't work as expected. 531f9c005a1SMarcelo Araujo.El 532f9c005a1SMarcelo Araujo.Pp 5332d00b570SMateusz Piotrowski9P device backends: 5342d00b570SMateusz Piotrowski.Sm off 5352d00b570SMateusz Piotrowski.Bl -bullet 5362d00b570SMateusz Piotrowski.It 5372d00b570SMateusz Piotrowski.Ar sharename Cm = Ar /path/to/share Op Cm \&, Ar 9p-device-options 538100353cfSJakub Wojciech Klama.El 5392d00b570SMateusz Piotrowski.Sm on 540100353cfSJakub Wojciech Klama.Pp 541100353cfSJakub Wojciech KlamaThe 542100353cfSJakub Wojciech Klama.Ar 9p-device-options 543100353cfSJakub Wojciech Klamaare: 544100353cfSJakub Wojciech Klama.Bl -tag -width 10n 5452d00b570SMateusz Piotrowski.It Cm ro 546100353cfSJakub Wojciech KlamaExpose the share in read-only mode. 547100353cfSJakub Wojciech Klama.El 548100353cfSJakub Wojciech Klama.Pp 5492fda01a1SMateusz PiotrowskiTTY device backends: 550b13e60daSPeter Grehan.Bl -tag -width 10n 5512fda01a1SMateusz Piotrowski.It Cm stdio 552b13e60daSPeter GrehanConnect the serial port to the standard input and output of 55384fe889cSChristian Bruefferthe 55484fe889cSChristian Brueffer.Nm 55584fe889cSChristian Bruefferprocess. 5562fda01a1SMateusz Piotrowski.It Ar /dev/xxx 557b13e60daSPeter GrehanUse the host TTY device for serial port I/O. 558b13e60daSPeter Grehan.El 559b13e60daSPeter Grehan.Pp 56067c26eb2SCorvin KöhneTPM device backends: 56167c26eb2SCorvin Köhne.Bl -tag -width 10n 56267c26eb2SCorvin Köhne.It Ar type Ns \&, Ns Ar path Ns Op Cm \&, Ns Ar tpm-device-options 56367c26eb2SCorvin KöhneEmulate a TPM device. 56467c26eb2SCorvin Köhne.El 56567c26eb2SCorvin Köhne.Pp 56667c26eb2SCorvin KöhneThe 56767c26eb2SCorvin Köhne.Ar tpm-device-options 56867c26eb2SCorvin Köhneare: 56967c26eb2SCorvin Köhne.Bl -tag -width 10n 57067c26eb2SCorvin Köhne.It Cm version= Ns Ar version 57167c26eb2SCorvin KöhneVersion of the TPM device according to the TCG specification. 57267c26eb2SCorvin KöhneDefaults to 57367c26eb2SCorvin Köhne.Cm 2.0 57467c26eb2SCorvin Köhne.El 57567c26eb2SCorvin Köhne.El 57667c26eb2SCorvin Köhne.Pp 5772fda01a1SMateusz PiotrowskiBoot ROM device backends: 5789b1aa8d6SNeel Natu.Bl -tag -width 10n 579866036f4SRebecca Cran.It Ar romfile Ns Op Cm \&, Ns Ar varfile 5809b1aa8d6SNeel NatuMap 5819b1aa8d6SNeel Natu.Ar romfile 5829b1aa8d6SNeel Natuin the guest address space reserved for boot firmware. 583866036f4SRebecca CranIf 584866036f4SRebecca Cran.Ar varfile 585866036f4SRebecca Cranis provided, that file is also mapped in the boot firmware guest 586866036f4SRebecca Cranaddress space, and any modifications the guest makes will be saved 587866036f4SRebecca Cranto that file. 5889b1aa8d6SNeel Natu.El 5899b1aa8d6SNeel Natu.Pp 590d85147f3SCorvin KöhneFwcfg types: 591d85147f3SCorvin Köhne.Bl -tag -width 10n 592d85147f3SCorvin Köhne.It Ar fwcfg 593a3b3e89fSBenedict ReuschlingThe fwcfg interface is used to pass information such as the CPU count 594a3b3e89fSBenedict Reuschlingor ACPI tables to the guest firmware. 595d85147f3SCorvin KöhneSupported values are 596d85147f3SCorvin Köhne.Ql bhyve 597d85147f3SCorvin Köhneand 598d85147f3SCorvin Köhne.Ql qemu . 599d85147f3SCorvin KöhneDue to backward compatibility reasons, 600d85147f3SCorvin Köhne.Ql bhyve 601d85147f3SCorvin Köhneis the default option. 602d85147f3SCorvin KöhneWhen 603d85147f3SCorvin Köhne.Ql bhyve 604d85147f3SCorvin Köhneis used, bhyve's fwctl interface is used. 605d85147f3SCorvin KöhneIt currently reports only the CPU count to the guest firmware. 606d85147f3SCorvin KöhneThe 607d85147f3SCorvin Köhne.Ql qemu 608d85147f3SCorvin Köhneoption uses QEMU's fwcfg interface. 609a3b3e89fSBenedict ReuschlingThis interface is widely used and allows user-defined information to 610a3b3e89fSBenedict Reuschlingbe passed to the guest. 611a3b3e89fSBenedict ReuschlingIt is used for passing the CPU count, ACPI tables, a boot order and 612a3b3e89fSBenedict Reuschlingmany other things to the guest. 613a3b3e89fSBenedict ReuschlingSome operating systems such as Fedora CoreOS can be configured by 614a3b3e89fSBenedict Reuschlingqemu's fwcfg interface as well. 615d85147f3SCorvin Köhne.El 616d85147f3SCorvin Köhne.Pp 6172fda01a1SMateusz PiotrowskiPass-through device backends: 618baf753ccSJohn Baldwin.Sm off 619baf753ccSJohn Baldwin.Bl -bullet 620baf753ccSJohn Baldwin.It 621baf753ccSJohn Baldwin.Cm ppt Ar N Oo , Ar passthru-device-options Oc 622baf753ccSJohn Baldwin.It 623baf753ccSJohn Baldwin.Ns Ar bus Cm \&/ Ar slot Cm \&/ Ar function 624baf753ccSJohn Baldwin.Op , Ar passthru-device-options 625baf753ccSJohn Baldwin.It 626baf753ccSJohn Baldwin.Cm pci Ar bus Cm : Ar slot Cm : Ns Ar function 627baf753ccSJohn Baldwin.Op , Ar passthru-device-options 628baf753ccSJohn Baldwin.El 629baf753ccSJohn Baldwin.Sm on 630baf753ccSJohn Baldwin.Pp 631baf753ccSJohn BaldwinConnect to a PCI device on the host either named ppt 632baf753ccSJohn Baldwin.Ns Ar N 633baf753ccSJohn Baldwinor at the selector described by 634b13e60daSPeter Grehan.Ar slot , 635b13e60daSPeter Grehan.Ar bus , 636b13e60daSPeter Grehanand 637b13e60daSPeter Grehan.Ar function 638b13e60daSPeter Grehannumbers. 639baf753ccSJohn Baldwin.Pp 640baf753ccSJohn BaldwinThe 641baf753ccSJohn Baldwin.Ar passthru-device-options 642baf753ccSJohn Baldwinare: 643baf753ccSJohn Baldwin.Bl -tag -width 10n 6445e19a518SMateusz Piotrowski.It Cm rom= Ns Ar romfile 645e47fe318SCorvin KöhneAdd 646e47fe318SCorvin Köhne.Ar romfile 647e47fe318SCorvin Köhneas option ROM to the PCI device. 648a3b3e89fSBenedict ReuschlingThe ROM will be loaded by firmware and should be capable of 649a3b3e89fSBenedict Reuschlinginitializing the device. 650480bef94SCorvin Köhne.It Li bootindex= Ns Ar index 651480bef94SCorvin KöhneAdd the device to the bootorder at 652480bef94SCorvin Köhne.Ar index . 653480bef94SCorvin KöhneA fwcfg file is used to specify the bootorder. 654480bef94SCorvin KöhneThe guest firmware may ignore or doesn't support this fwcfg file. 655480bef94SCorvin KöhneIn that case, this feature doesn't work as expected. 656b13e60daSPeter Grehan.El 657b13e60daSPeter Grehan.Pp 6589b1aa8d6SNeel NatuGuest memory must be wired using the 6599b1aa8d6SNeel Natu.Fl S 6609b1aa8d6SNeel Natuoption when a pass-through device is configured. 6619b1aa8d6SNeel Natu.Pp 662b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the 663a9258f9bSWarren Block.Va pptdevs 664b13e60daSPeter Grehanloader variable as described in 665b13e60daSPeter Grehan.Xr vmm 4 . 6665121b6ccSRoman Bogorodskiy.Pp 66767c26eb2SCorvin KöhneTPM devices: 66867c26eb2SCorvin Köhne.Bl -tag -width 10n 66967c26eb2SCorvin Köhne.It Ns Ar type 67067c26eb2SCorvin KöhneSpecifies the type of the TPM device. 67167c26eb2SCorvin Köhne.Pp 67267c26eb2SCorvin KöhneSupported types: 67367c26eb2SCorvin Köhne.Bl -tag -width 10n 67467c26eb2SCorvin Köhne.It Cm passthru 67567c26eb2SCorvin Köhne.El 67667c26eb2SCorvin Köhne.It Cm version= Ns Ar version 67767c26eb2SCorvin KöhneThe 67867c26eb2SCorvin Köhne.Ar version 67967c26eb2SCorvin Köhneof the emulated TPM device according to the TCG specification. 68067c26eb2SCorvin Köhne.Pp 68167c26eb2SCorvin KöhneSupported versions: 68267c26eb2SCorvin Köhne.Bl -tag -width 10n 68367c26eb2SCorvin Köhne.It Cm 2.0 68467c26eb2SCorvin Köhne.El 68567c26eb2SCorvin Köhne.El 68667c26eb2SCorvin Köhne.Pp 6873f4c771fSMateusz PiotrowskiVirtio console device backends: 6883f4c771fSMateusz Piotrowski.Bl -bullet 6893f4c771fSMateusz Piotrowski.Sm off 6903f4c771fSMateusz Piotrowski.It 6913f4c771fSMateusz Piotrowski.Cm port1= Ns Ar /path/to/port1.sock Ns Op Cm ,port Ns Ar N Cm \&= Ns Ar /path/to/port2.sock No \~ Ar ... 6923f4c771fSMateusz Piotrowski.Sm on 6933f4c771fSMateusz Piotrowski.El 6943f4c771fSMateusz Piotrowski.Pp 6955121b6ccSRoman BogorodskiyA maximum of 16 ports per device can be created. 6965121b6ccSRoman BogorodskiyEvery port is named and corresponds to a Unix domain socket created by 6975121b6ccSRoman Bogorodskiy.Nm . 6985121b6ccSRoman Bogorodskiy.Nm 6995121b6ccSRoman Bogorodskiyaccepts at most one connection per port at a time. 7005121b6ccSRoman Bogorodskiy.Pp 7015121b6ccSRoman BogorodskiyLimitations: 7028d9fefe6SMateusz Piotrowski.Bl -bullet 7035121b6ccSRoman Bogorodskiy.It 7045121b6ccSRoman BogorodskiyDue to lack of destructors in 7055121b6ccSRoman Bogorodskiy.Nm , 7065121b6ccSRoman Bogorodskiysockets on the filesystem must be cleaned up manually after 7075121b6ccSRoman Bogorodskiy.Nm 7085121b6ccSRoman Bogorodskiyexits. 7095121b6ccSRoman Bogorodskiy.It 7103f4c771fSMateusz PiotrowskiThere is no way to use the 7113f4c771fSMateusz Piotrowski.Dq console port 7123f4c771fSMateusz Piotrowskifeature, nor the console port 7130ee3a4b4SRoman Bogorodskiyresize at present. 7145121b6ccSRoman Bogorodskiy.It 7150ee3a4b4SRoman BogorodskiyEmergency write is advertised, but no-op at present. 7165121b6ccSRoman Bogorodskiy.El 7176c87a2c0SGleb Smirnoff.Pp 718054accacSCorvin KöhneVirtio input device backends: 719054accacSCorvin Köhne.Bl -tag -width 10n 720054accacSCorvin Köhne.It Ar /dev/input/eventX 721054accacSCorvin KöhneSend input events of 722054accacSCorvin Köhne.Ar /dev/input/eventX 723054accacSCorvin Köhneto guest by VirtIO Input Interface. 724054accacSCorvin Köhne.El 725054accacSCorvin Köhne.Pp 7268b97e975SMateusz PiotrowskiFramebuffer devices backends: 7278b97e975SMateusz Piotrowski.Bl -bullet 7288b97e975SMateusz Piotrowski.Sm off 7298b97e975SMateusz Piotrowski.It 7308b97e975SMateusz Piotrowski.Op Cm rfb= Ar ip-and-port 7318b97e975SMateusz Piotrowski.Op Cm ,w= Ar width 7328b97e975SMateusz Piotrowski.Op Cm ,h= Ar height 7338b97e975SMateusz Piotrowski.Op Cm ,vga= Ar vgaconf 7348b97e975SMateusz Piotrowski.Op Cm ,wait 7358b97e975SMateusz Piotrowski.Op Cm ,password= Ar password 7368b97e975SMateusz Piotrowski.Sm on 7378b97e975SMateusz Piotrowski.El 7388b97e975SMateusz Piotrowski.Pp 7398b97e975SMateusz PiotrowskiConfiguration options are defined as follows: 7405c3ec676SGleb Smirnoff.Bl -tag -width 10n 7418b97e975SMateusz Piotrowski.It Cm rfb= Ns Ar ip-and-port Pq or Cm tcp= Ns Ar ip-and-port 7428b97e975SMateusz PiotrowskiAn IP address and a port VNC should listen on. 7438b97e975SMateusz PiotrowskiThere are two formats: 7448b97e975SMateusz Piotrowski.Pp 7458b97e975SMateusz Piotrowski.Bl -bullet -compact 7468d9fefe6SMateusz Piotrowski.It 7478b97e975SMateusz Piotrowski.Sm off 7488b97e975SMateusz Piotrowski.Op Ar IPv4 Cm \&: 7495c3ec676SGleb Smirnoff.Ar port 7508b97e975SMateusz Piotrowski.Sm on 7518d9fefe6SMateusz Piotrowski.It 7528b97e975SMateusz Piotrowski.Sm off 7538b97e975SMateusz Piotrowski.Cm \&[ Ar IPv6%zone Cm \&] Cm \&: Ar port 7548b97e975SMateusz Piotrowski.Sm on 7558b97e975SMateusz Piotrowski.El 7568b97e975SMateusz Piotrowski.Pp 7576c87a2c0SGleb SmirnoffThe default is to listen on localhost IPv4 address and default VNC port 5900. 7588883128bSBjoern A. ZeebAn IPv6 address must be enclosed in square brackets and may contain an 7597d9545fcSRodney W. Grimesoptional zone identifier. 7608b97e975SMateusz Piotrowski.It Cm w= Ns Ar width No and Cm h= Ns Ar height 7615c3ec676SGleb SmirnoffA display resolution, width and height, respectively. 7625c3ec676SGleb SmirnoffIf not specified, a default resolution of 1024x768 pixels will be used. 7635c3ec676SGleb SmirnoffMinimal supported resolution is 640x480 pixels, 7645c3ec676SGleb Smirnoffand maximum is 1920x1200 pixels. 7658b97e975SMateusz Piotrowski.It Cm vga= Ns Ar vgaconf 7665c3ec676SGleb SmirnoffPossible values for this option are 7678b97e975SMateusz Piotrowski.Cm io 7685c3ec676SGleb Smirnoff(default), 7698b97e975SMateusz Piotrowski.Cm on 7705c3ec676SGleb Smirnoff, and 7718b97e975SMateusz Piotrowski.Cm off . 7725c3ec676SGleb SmirnoffPCI graphics cards have a dual personality in that they are 7735c3ec676SGleb Smirnoffstandard PCI devices with BAR addressing, but may also 7745c3ec676SGleb Smirnoffimplicitly decode legacy VGA I/O space 7755c3ec676SGleb Smirnoff.Pq Ad 0x3c0-3df 7765c3ec676SGleb Smirnoffand memory space 7775c3ec676SGleb Smirnoff.Pq 64KB at Ad 0xA0000 . 7785c3ec676SGleb SmirnoffThe default 7798b97e975SMateusz Piotrowski.Cm io 7808d56c805SYuri Pankovoption should be used for guests that attempt to issue BIOS calls which result 7818d56c805SYuri Pankovin I/O port queries, and fail to boot if I/O decode is disabled. 7825c3ec676SGleb Smirnoff.Pp 7835c3ec676SGleb SmirnoffThe 7848b97e975SMateusz Piotrowski.Cm on 7855c3ec676SGleb Smirnoffoption should be used along with the CSM BIOS capability in UEFI 7865c3ec676SGleb Smirnoffto boot traditional BIOS guests that require the legacy VGA I/O and 7875c3ec676SGleb Smirnoffmemory regions to be available. 7885c3ec676SGleb Smirnoff.Pp 7895c3ec676SGleb SmirnoffThe 7908b97e975SMateusz Piotrowski.Cm off 7915c3ec676SGleb Smirnoffoption should be used for the UEFI guests that assume that 7925c3ec676SGleb SmirnoffVGA adapter is present if they detect the I/O ports. 7935c3ec676SGleb SmirnoffAn example of such a guest is 7945c3ec676SGleb Smirnoff.Ox 7955c3ec676SGleb Smirnoffin UEFI mode. 7965c3ec676SGleb Smirnoff.Pp 7975c3ec676SGleb SmirnoffPlease refer to the 7985c3ec676SGleb Smirnoff.Nm 7995c3ec676SGleb Smirnoff.Fx 8005c3ec676SGleb Smirnoffwiki page 8015c3ec676SGleb Smirnoff.Pq Lk https://wiki.freebsd.org/bhyve 8025c3ec676SGleb Smirnofffor configuration notes of particular guests. 8038b97e975SMateusz Piotrowski.It Cm wait 8045c3ec676SGleb SmirnoffInstruct 8055c3ec676SGleb Smirnoff.Nm 8068d56c805SYuri Pankovto only boot upon the initiation of a VNC connection, simplifying the 8078d56c805SYuri Pankovinstallation of operating systems that require immediate keyboard input. 8085c3ec676SGleb SmirnoffThis can be removed for post-installation use. 8098b97e975SMateusz Piotrowski.It Cm password= Ns Ar password 810f4d34383SMarcelo AraujoThis type of authentication is known to be cryptographically weak and is not 811f4d34383SMarcelo Araujointended for use on untrusted networks. 812f4d34383SMarcelo AraujoMany implementations will want to use stronger security, such as running 813f4d34383SMarcelo Araujothe session over an encrypted channel provided by IPsec or SSH. 8145c3ec676SGleb Smirnoff.El 8156c87a2c0SGleb Smirnoff.Pp 8166eff58acSMateusz PiotrowskixHCI USB device backends: 8175c3ec676SGleb Smirnoff.Bl -tag -width 10n 8186eff58acSMateusz Piotrowski.It Cm tablet 8195c3ec676SGleb SmirnoffA USB tablet device which provides precise cursor synchronization 8205c3ec676SGleb Smirnoffwhen using VNC. 8216c87a2c0SGleb Smirnoff.El 822c066c68cSMarcelo Araujo.Pp 8236eff58acSMateusz PiotrowskiNVMe device backends: 8246eff58acSMateusz Piotrowski.Bl -bullet 8256eff58acSMateusz Piotrowski.Sm off 8266eff58acSMateusz Piotrowski.It 8276eff58acSMateusz Piotrowski.Ar devpath 8286eff58acSMateusz Piotrowski.Op Cm ,maxq= Ar # 8296eff58acSMateusz Piotrowski.Op Cm ,qsz= Ar # 8306eff58acSMateusz Piotrowski.Op Cm ,ioslots= Ar # 8316eff58acSMateusz Piotrowski.Op Cm ,sectsz= Ar # 8326eff58acSMateusz Piotrowski.Op Cm ,ser= Ar # 8336eff58acSMateusz Piotrowski.Op Cm ,eui64= Ar # 8346eff58acSMateusz Piotrowski.Op Cm ,dsm= Ar opt 8356eff58acSMateusz Piotrowski.Sm on 8366eff58acSMateusz Piotrowski.El 8376eff58acSMateusz Piotrowski.Pp 8386eff58acSMateusz PiotrowskiConfiguration options are defined as follows: 839c066c68cSMarcelo Araujo.Bl -tag -width 10n 8406eff58acSMateusz Piotrowski.It Ar devpath 841c066c68cSMarcelo AraujoAccepted device paths are: 842c066c68cSMarcelo Araujo.Ar /dev/blockdev 843c066c68cSMarcelo Araujoor 844c066c68cSMarcelo Araujo.Ar /path/to/image 845c066c68cSMarcelo Araujoor 8466eff58acSMateusz Piotrowski.Cm ram= Ns Ar size_in_MiB . 8476eff58acSMateusz Piotrowski.It Cm maxq 848c066c68cSMarcelo AraujoMax number of queues. 8496eff58acSMateusz Piotrowski.It Cm qsz 850c066c68cSMarcelo AraujoMax elements in each queue. 8516eff58acSMateusz Piotrowski.It Cm ioslots 852c066c68cSMarcelo AraujoMax number of concurrent I/O requests. 8536eff58acSMateusz Piotrowski.It Cm sectsz 854c066c68cSMarcelo AraujoSector size (defaults to blockif sector size). 8556eff58acSMateusz Piotrowski.It Cm ser 856c066c68cSMarcelo AraujoSerial number with maximum 20 characters. 8576eff58acSMateusz Piotrowski.It Cm eui64 8586eff58acSMateusz PiotrowskiIEEE Extended Unique Identifier (8 byte value). 8596eff58acSMateusz Piotrowski.It Cm dsm 8606eff58acSMateusz PiotrowskiDataSet Management support. 8616eff58acSMateusz PiotrowskiSupported values are: 8626eff58acSMateusz Piotrowski.Cm auto , enable , 8636eff58acSMateusz Piotrowskiand 8646eff58acSMateusz Piotrowski.Cm disable . 865c066c68cSMarcelo Araujo.El 86636f9f044SWarner Losh.Pp 867d5fcc4b6SMateusz PiotrowskiAHCI device backends: 868d5fcc4b6SMateusz Piotrowski.Bl -bullet 869d5fcc4b6SMateusz Piotrowski.It 870d5fcc4b6SMateusz Piotrowski.Sm off 871d5fcc4b6SMateusz Piotrowski.Op Oo Cm hd\&: | cd\&: Oc Ar path 872d5fcc4b6SMateusz Piotrowski.Op Cm ,nmrr= Ar nmrr 873d5fcc4b6SMateusz Piotrowski.Op Cm ,ser= Ar # 874d5fcc4b6SMateusz Piotrowski.Op Cm ,rev= Ar # 875d5fcc4b6SMateusz Piotrowski.Op Cm ,model= Ar # 876d5fcc4b6SMateusz Piotrowski.Sm on 877d5fcc4b6SMateusz Piotrowski.El 878d5fcc4b6SMateusz Piotrowski.Pp 879d5fcc4b6SMateusz PiotrowskiConfiguration options are defined as follows: 8809af3bcd7SPeter Grehan.Bl -tag -width 10n 881d5fcc4b6SMateusz Piotrowski.It Cm nmrr 882d5fcc4b6SMateusz PiotrowskiNominal Media Rotation Rate, known as RPM. 883d5fcc4b6SMateusz PiotrowskiValue 1 will indicate device as Solid State Disk. 884d5fcc4b6SMateusz PiotrowskiDefault value is 0, not report. 885d5fcc4b6SMateusz Piotrowski.It Cm ser 8869af3bcd7SPeter GrehanSerial Number with maximum 20 characters. 887d5fcc4b6SMateusz Piotrowski.It Cm rev 8889af3bcd7SPeter GrehanRevision Number with maximum 8 characters. 889d5fcc4b6SMateusz Piotrowski.It Cm model 8909af3bcd7SPeter GrehanModel Number with maximum 40 characters. 8919af3bcd7SPeter Grehan.El 8929af3bcd7SPeter Grehan.Pp 893061f37d2SMateusz PiotrowskiHD Audio device backends: 894061f37d2SMateusz Piotrowski.Bl -bullet 895061f37d2SMateusz Piotrowski.It 896061f37d2SMateusz Piotrowski.Sm off 897061f37d2SMateusz Piotrowski.Op Cm play= Ar playback 898061f37d2SMateusz Piotrowski.Op Cm ,rec= Ar recording 899061f37d2SMateusz Piotrowski.Sm on 900061f37d2SMateusz Piotrowski.El 901061f37d2SMateusz Piotrowski.Pp 902061f37d2SMateusz PiotrowskiConfiguration options are defined as follows: 90336f9f044SWarner Losh.Bl -tag -width 10n 904061f37d2SMateusz Piotrowski.It Cm play 90536f9f044SWarner LoshPlayback device, typically 90636f9f044SWarner Losh.Ar /dev/dsp0 . 907061f37d2SMateusz Piotrowski.It Cm rec 90836f9f044SWarner LoshRecording device, typically 90936f9f044SWarner Losh.Ar /dev/dsp0 . 91036f9f044SWarner Losh.El 9115749449dSJohn Baldwin.It Fl U Ar uuid 9125749449dSJohn BaldwinSet the universally unique identifier 9135749449dSJohn Baldwin.Pq UUID 9145749449dSJohn Baldwinin the guest's System Management BIOS System Information structure. 9155749449dSJohn BaldwinBy default a UUID is generated from the host's hostname and 9165749449dSJohn Baldwin.Ar vmname . 917ccb1c87aSMateusz Piotrowski.It Fl u 918ccb1c87aSMateusz PiotrowskiRTC keeps UTC time. 919cde1f5b8SJohn Baldwin.It Fl W 920cde1f5b8SJohn BaldwinForce virtio PCI device emulations to use MSI interrupts instead of MSI-X 921cde1f5b8SJohn Baldwininterrupts. 922ccb1c87aSMateusz Piotrowski.It Fl w 923ccb1c87aSMateusz PiotrowskiIgnore accesses to unimplemented Model Specific Registers (MSRs). 924ccb1c87aSMateusz PiotrowskiThis is intended for debug purposes. 9259777ca20SNeel Natu.It Fl x 9269777ca20SNeel NatuThe guest's local APIC is configured in x2APIC mode. 927b100acf2SNeel Natu.It Fl Y 928b100acf2SNeel NatuDisable MPtable generation. 929b13e60daSPeter Grehan.It Ar vmname 930b13e60daSPeter GrehanAlphanumeric name of the guest. 931b13e60daSPeter GrehanThis should be the same as that created by 932b13e60daSPeter Grehan.Xr bhyveload 8 . 933b13e60daSPeter Grehan.El 934621b5090SJohn Baldwin.Sh CONFIGURATION VARIABLES 935621b5090SJohn Baldwin.Nm 936621b5090SJohn Baldwinuses an internal tree of configuration variables to describe global and 937621b5090SJohn Baldwinper-device settings. 938621b5090SJohn BaldwinWhen 939621b5090SJohn Baldwin.Nm 940621b5090SJohn Baldwinstarts, 941621b5090SJohn Baldwinit parses command line options (including config files) in the order given 942621b5090SJohn Baldwinon the command line. 943621b5090SJohn BaldwinEach command line option sets one or more configuration variables. 944621b5090SJohn BaldwinFor example, 945621b5090SJohn Baldwinthe 946621b5090SJohn Baldwin.Fl s 947621b5090SJohn Baldwinoption creates a new tree node for a PCI device and sets one or more variables 948621b5090SJohn Baldwinunder that node including the device model and device model-specific variables. 949621b5090SJohn BaldwinVariables may be set multiple times during this parsing stage with the final 950621b5090SJohn Baldwinvalue overriding previous values. 951621b5090SJohn Baldwin.Pp 952621b5090SJohn BaldwinOnce all of the command line options have been processed, 953621b5090SJohn Baldwinthe configuration values are frozen. 954621b5090SJohn Baldwin.Nm 955621b5090SJohn Baldwinthen uses the value of configuration values to initialize device models 956621b5090SJohn Baldwinand global settings. 957621b5090SJohn Baldwin.Pp 958621b5090SJohn BaldwinMore details on configuration variables can be found in 959621b5090SJohn Baldwin.Xr bhyve_config 5 . 960cd377eb3SJohn Baldwin.Sh DEBUG SERVER 961cd377eb3SJohn BaldwinThe current debug server provides limited support for debuggers. 962cd377eb3SJohn Baldwin.Ss Registers 963cd377eb3SJohn BaldwinEach virtual CPU is exposed to the debugger as a thread. 964cd377eb3SJohn Baldwin.Pp 965cd377eb3SJohn BaldwinGeneral purpose registers can be queried for each virtual CPU, but other 966cd377eb3SJohn Baldwinregisters such as floating-point and system registers cannot be queried. 967cd377eb3SJohn Baldwin.Ss Memory 968a3b3e89fSBenedict ReuschlingMemory (including memory mapped I/O regions) can be read and written 969a3b3e89fSBenedict Reuschlingby the debugger. 970a3b3e89fSBenedict ReuschlingMemory operations use virtual addresses that are resolved to physical 971a3b3e89fSBenedict Reuschlingaddresses via the current virtual CPU's active address translation. 972cd377eb3SJohn Baldwin.Ss Control 973cd377eb3SJohn BaldwinThe running guest can be interrupted by the debugger at any time 974cd377eb3SJohn Baldwin.Pq for example, by pressing Ctrl-C in the debugger . 975cd377eb3SJohn Baldwin.Pp 976cd377eb3SJohn BaldwinSingle stepping is only supported on Intel CPUs supporting the MTRAP VM exit. 977cd377eb3SJohn Baldwin.Pp 978cbd03a9dSJohn BaldwinBreakpoints are supported on Intel CPUs that support single stepping. 979cbd03a9dSJohn BaldwinNote that continuing from a breakpoint while interrupts are enabled in the 980cbd03a9dSJohn Baldwinguest may not work as expected due to timer interrupts firing while single 981cbd03a9dSJohn Baldwinstepping over the breakpoint. 982c2202d41SRoman Bogorodskiy.Sh SIGNAL HANDLING 983c2202d41SRoman Bogorodskiy.Nm 984c2202d41SRoman Bogorodskiydeals with the following signals: 985c2202d41SRoman Bogorodskiy.Pp 9863357e948SMateusz Piotrowski.Bl -tag -width SIGTERM -compact 987c2202d41SRoman Bogorodskiy.It SIGTERM 988c2202d41SRoman BogorodskiyTrigger ACPI poweroff for a VM 989c2202d41SRoman Bogorodskiy.El 990c2202d41SRoman Bogorodskiy.Sh EXIT STATUS 991c2202d41SRoman BogorodskiyExit status indicates how the VM was terminated: 992c2202d41SRoman Bogorodskiy.Pp 993c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact 994c2202d41SRoman Bogorodskiy.It 0 995c2202d41SRoman Bogorodskiyrebooted 996c2202d41SRoman Bogorodskiy.It 1 997c2202d41SRoman Bogorodskiypowered off 998c2202d41SRoman Bogorodskiy.It 2 999c2202d41SRoman Bogorodskiyhalted 1000c2202d41SRoman Bogorodskiy.It 3 1001c2202d41SRoman Bogorodskiytriple fault 1002989e062bSMarcelo Araujo.It 4 1003989e062bSMarcelo Araujoexited due to an error 1004c2202d41SRoman Bogorodskiy.El 1005b13e60daSPeter Grehan.Sh EXAMPLES 10065c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must have been loaded with 100784fe889cSChristian Brueffer.Xr bhyveload 8 1008b13e60daSPeter Grehanor a similar boot loader before 1009b13e60daSPeter Grehan.Xr bhyve 4 1010b13e60daSPeter Grehancan be run. 10115c3ec676SGleb SmirnoffOtherwise, the boot loader is not needed. 1012b13e60daSPeter Grehan.Pp 1013b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio 1014b13e60daSPeter Grehanblock device backed by the 1015b13e60daSPeter Grehan.Pa /my/image 1016b13e60daSPeter Grehanfilesystem image, and a serial port for the console: 1017b13e60daSPeter Grehan.Bd -literal -offset indent 1018b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\ 1019b13e60daSPeter Grehan -l com1,stdio -A -H -P -m 1G vm1 1020b13e60daSPeter Grehan.Ed 1021b13e60daSPeter Grehan.Pp 1022b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which 1023b13e60daSPeter Grehanhas a MAC address specified: 1024b13e60daSPeter Grehan.Bd -literal -offset indent 1025b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\ 1026b13e60daSPeter Grehan -s 2:1,virtio-net,tap1 \\ 1027b13e60daSPeter Grehan -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\ 1028b13e60daSPeter Grehan -s 3,virtio-blk,/my/image -l com1,stdio \\ 1029b13e60daSPeter Grehan -A -H -P -m 24G bigvm 1030b13e60daSPeter Grehan.Ed 1031b13e60daSPeter Grehan.Pp 1032b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI 1033b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console 1034b13e60daSPeter Grehanport connected to an 1035b13e60daSPeter Grehan.Xr nmdm 4 103684fe889cSChristian Brueffernull-modem device. 1037b13e60daSPeter Grehan.Bd -literal -offset indent 1038a7ab1463SAlexander Motinbhyve -c 4 \\ 1039b13e60daSPeter Grehan -s 0,amd_hostbridge -s 1,lpc \\ 1040098f5155SAlexander Motin -s 1:0,ahci,hd:/images/disk.1,hd:/images/disk.2,\\ 1041098f5155SAlexander Motinhd:/images/disk.3,hd:/images/disk.4,\\ 1042098f5155SAlexander Motinhd:/images/disk.5,hd:/images/disk.6,\\ 1043098f5155SAlexander Motinhd:/images/disk.7,hd:/images/disk.8,\\ 1044098f5155SAlexander Motincd:/images/install.iso \\ 1045b13e60daSPeter Grehan -s 3,virtio-net,tap0 \\ 1046b13e60daSPeter Grehan -l com1,/dev/nmdm0A \\ 1047b13e60daSPeter Grehan -A -H -P -m 8G 1048b13e60daSPeter Grehan.Ed 10495c3ec676SGleb Smirnoff.Pp 10505c3ec676SGleb SmirnoffRun a UEFI virtual machine with a display resolution of 800 by 600 pixels 10515c3ec676SGleb Smirnoffthat can be accessed via VNC at: 0.0.0.0:5900. 10525c3ec676SGleb Smirnoff.Bd -literal -offset indent 10535c3ec676SGleb Smirnoffbhyve -c 2 -m 4G -w -H \\ 10545c3ec676SGleb Smirnoff -s 0,hostbridge \\ 10555c3ec676SGleb Smirnoff -s 3,ahci-cd,/path/to/uefi-OS-install.iso \\ 10565c3ec676SGleb Smirnoff -s 4,ahci-hd,disk.img \\ 10575c3ec676SGleb Smirnoff -s 5,virtio-net,tap0 \\ 10585c3ec676SGleb Smirnoff -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \\ 10595c3ec676SGleb Smirnoff -s 30,xhci,tablet \\ 10605c3ec676SGleb Smirnoff -s 31,lpc -l com1,stdio \\ 10615c3ec676SGleb Smirnoff -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\ 10625c3ec676SGleb Smirnoff uefivm 10635c3ec676SGleb Smirnoff.Ed 10648883128bSBjoern A. Zeeb.Pp 10658883128bSBjoern A. ZeebRun a UEFI virtual machine with a VNC display that is bound to all IPv6 10668883128bSBjoern A. Zeebaddresses on port 5900. 10678883128bSBjoern A. Zeeb.Bd -literal -offset indent 10688883128bSBjoern A. Zeebbhyve -c 2 -m 4G -w -H \\ 10698883128bSBjoern A. Zeeb -s 0,hostbridge \\ 10708883128bSBjoern A. Zeeb -s 4,ahci-hd,disk.img \\ 10718883128bSBjoern A. Zeeb -s 5,virtio-net,tap0 \\ 10728883128bSBjoern A. Zeeb -s 29,fbuf,tcp=[::]:5900,w=800,h=600 \\ 10738883128bSBjoern A. Zeeb -s 30,xhci,tablet \\ 10748883128bSBjoern A. Zeeb -s 31,lpc -l com1,stdio \\ 10758883128bSBjoern A. Zeeb -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\ 10768883128bSBjoern A. Zeeb uefivm 10778883128bSBjoern A. Zeeb.Ed 1078866036f4SRebecca Cran.Pp 1079866036f4SRebecca CranRun a UEFI virtual machine with a VARS file to save EFI variables. 1080866036f4SRebecca CranNote that 1081866036f4SRebecca Cran.Nm 1082866036f4SRebecca Cranwill write guest modifications to the given VARS file. 1083866036f4SRebecca CranBe sure to create a per-guest copy of the template VARS file from 1084866036f4SRebecca Cran.Pa /usr . 1085866036f4SRebecca Cran.Bd -literal -offset indent 1086866036f4SRebecca Cranbhyve -c 2 -m 4g -w -H \\ 1087866036f4SRebecca Cran -s 0,hostbridge \\ 108866659955SAlexey Marchenko -s 31,lpc -l com1,stdio \\ 1089866036f4SRebecca Cran -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI_CODE.fd,BHYVE_UEFI_VARS.fd 1090866036f4SRebecca Cran uefivm 1091866036f4SRebecca Cran.Ed 1092b13e60daSPeter Grehan.Sh SEE ALSO 1093b13e60daSPeter Grehan.Xr bhyve 4 , 1094e90337e4SAleksandr Fedorov.Xr netgraph 4 , 1095e90337e4SAleksandr Fedorov.Xr ng_socket 4 , 1096b13e60daSPeter Grehan.Xr nmdm 4 , 1097b13e60daSPeter Grehan.Xr vmm 4 , 1098621b5090SJohn Baldwin.Xr bhyve_config 5 , 1099b13e60daSPeter Grehan.Xr ethers 5 , 110005f7cd8bSJoel Dahl.Xr bhyvectl 8 , 110105f7cd8bSJoel Dahl.Xr bhyveload 8 11028d56c805SYuri Pankov.Pp 11038d56c805SYuri Pankov.Rs 11048d56c805SYuri Pankov.%A Intel 11058d56c805SYuri Pankov.%B 64 and IA-32 Architectures Software Developer’s Manual 11068d56c805SYuri Pankov.%V Volume 3 11078d56c805SYuri Pankov.Re 1108b13e60daSPeter Grehan.Sh HISTORY 1109b13e60daSPeter Grehan.Nm 1110b13e60daSPeter Grehanfirst appeared in 1111b13e60daSPeter Grehan.Fx 10.0 . 1112b13e60daSPeter Grehan.Sh AUTHORS 111301c2b8acSBaptiste Daroussin.An Neel Natu Aq Mt neel@freebsd.org 111401c2b8acSBaptiste Daroussin.An Peter Grehan Aq Mt grehan@freebsd.org 1115