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.\" 25b13e60daSPeter Grehan.\" $FreeBSD$ 26b13e60daSPeter Grehan.\" 27866036f4SRebecca Cran.Dd November 28, 2021 28b13e60daSPeter Grehan.Dt BHYVE 8 29b13e60daSPeter Grehan.Os 30b13e60daSPeter Grehan.Sh NAME 31b13e60daSPeter Grehan.Nm bhyve 32b13e60daSPeter Grehan.Nd "run a guest operating system inside a virtual machine" 33b13e60daSPeter Grehan.Sh SYNOPSIS 34b13e60daSPeter Grehan.Nm 35c4df8cbfSRobert Wing.Op Fl AaCDeHhPSuWwxY 3601d822d3SRodney W. Grimes.Oo 3777d208a3SMateusz Piotrowski.Sm off 3877d208a3SMateusz Piotrowski.Fl c\~ 3901d822d3SRodney W. Grimes.Oo 4077d208a3SMateusz Piotrowski.Op Cm cpus= 4177d208a3SMateusz Piotrowski.Ar numcpus 4201d822d3SRodney W. Grimes.Oc 4377d208a3SMateusz Piotrowski.Op Cm ,sockets= Ar n 4477d208a3SMateusz Piotrowski.Op Cm ,cores= Ar n 4577d208a3SMateusz Piotrowski.Op Cm ,threads= Ar n 4677d208a3SMateusz Piotrowski.Oc 4777d208a3SMateusz Piotrowski.Sm on 48775f6f45SMateusz Piotrowski.Oo 49b70b050aSJohn Baldwin.Sm off 50775f6f45SMateusz Piotrowski.Fl G\~ 51b70b050aSJohn Baldwin.Oo Ar w Oc 52775f6f45SMateusz Piotrowski.Oo Ar bind_address Cm \&: Oc 53b70b050aSJohn Baldwin.Ar port 54b70b050aSJohn Baldwin.Sm on 55b70b050aSJohn Baldwin.Oc 56f656df58SMateusz Piotrowski.Op Fl k Ar config_file 5719eaa01bSMichael Reifenberger.Op Fl K Ar layout 5877d208a3SMateusz Piotrowski.Oo Fl l 5977d208a3SMateusz Piotrowski.Sm off 60bfe40b69SMateusz Piotrowski.Ar lpcdev Op Cm \&, Ar conf 6177d208a3SMateusz Piotrowski.Sm on 6277d208a3SMateusz Piotrowski.Oc 6377d208a3SMateusz Piotrowski.Sm off 64775f6f45SMateusz Piotrowski.Oo Fl m\~ 6577d208a3SMateusz Piotrowski.Ar memsize 6677d208a3SMateusz Piotrowski.Oo 678d9fefe6SMateusz Piotrowski.Cm K | Cm k | Cm M | Cm m | Cm G | Cm g | Cm T | Cm t 6877d208a3SMateusz Piotrowski.Oc 6977d208a3SMateusz Piotrowski.Sm on 7077d208a3SMateusz Piotrowski.Oc 71621b5090SJohn Baldwin.Op Fl o Ar var Ns Cm = Ns Ar value 7277d208a3SMateusz Piotrowski.Op Fl p Ar vcpu Ns Cm \&: Ns Ar hostcpu 73483d953aSJohn Baldwin.Op Fl r Ar file 7477d208a3SMateusz Piotrowski.Sm off 75bfe40b69SMateusz Piotrowski.Oo Fl s\~ 76bfe40b69SMateusz Piotrowski.Ar slot Cm \&, Ar emulation Op Cm \&, Ar conf 7777d208a3SMateusz Piotrowski.Sm on 7877d208a3SMateusz Piotrowski.Oc 795749449dSJohn Baldwin.Op Fl U Ar uuid 80b13e60daSPeter Grehan.Ar vmname 81bfe40b69SMateusz Piotrowski.Nm 82bfe40b69SMateusz Piotrowski.Fl l Cm help 83bfe40b69SMateusz Piotrowski.Nm 84bfe40b69SMateusz Piotrowski.Fl s Cm help 85b13e60daSPeter Grehan.Sh DESCRIPTION 86b13e60daSPeter Grehan.Nm 877fca1ad5SGlen Barberis a hypervisor that runs guest operating systems inside a 88b13e60daSPeter Grehanvirtual machine. 89b13e60daSPeter Grehan.Pp 90b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and 91b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters. 92b13e60daSPeter Grehan.Pp 935c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must be loaded with 9484fe889cSChristian Brueffer.Xr bhyveload 8 95b13e60daSPeter Grehanor a similar boot loader before running 965c3ec676SGleb Smirnoff.Nm , 975c3ec676SGleb Smirnoffotherwise, it is enough to run 985c3ec676SGleb Smirnoff.Nm 995c3ec676SGleb Smirnoffwith a boot ROM of choice. 100b13e60daSPeter Grehan.Pp 101b13e60daSPeter Grehan.Nm 102b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor 103b13e60daSPeter Grehanexit is detected. 104b13e60daSPeter Grehan.Sh OPTIONS 105b13e60daSPeter Grehan.Bl -tag -width 10n 106b13e60daSPeter Grehan.It Fl A 107b13e60daSPeter GrehanGenerate ACPI tables. 108b13e60daSPeter GrehanRequired for 109b13e60daSPeter Grehan.Fx Ns /amd64 110b13e60daSPeter Grehanguests. 111ccb1c87aSMateusz Piotrowski.It Fl a 112ccb1c87aSMateusz PiotrowskiThe guest's local APIC is configured in xAPIC mode. 113ccb1c87aSMateusz PiotrowskiThe xAPIC mode is the default setting so this option is redundant. 114ccb1c87aSMateusz PiotrowskiIt will be deprecated in a future version. 115ccb1c87aSMateusz Piotrowski.It Fl C 116ccb1c87aSMateusz PiotrowskiInclude guest memory in core file. 11701d822d3SRodney W. Grimes.It Fl c Op Ar setting ... 11801d822d3SRodney W. GrimesNumber of guest virtual CPUs 11901d822d3SRodney W. Grimesand/or the CPU topology. 12001d822d3SRodney W. GrimesThe default value for each of 12101d822d3SRodney W. Grimes.Ar numcpus , 12201d822d3SRodney W. Grimes.Ar sockets , 12301d822d3SRodney W. Grimes.Ar cores , 12401d822d3SRodney W. Grimesand 12501d822d3SRodney W. Grimes.Ar threads 12601d822d3SRodney W. Grimesis 1. 12701d822d3SRodney W. GrimesThe current maximum number of guest virtual CPUs is 16. 12801d822d3SRodney W. GrimesIf 12901d822d3SRodney W. Grimes.Ar numcpus 13001d822d3SRodney W. Grimesis not specified then it will be calculated from the other arguments. 13101d822d3SRodney W. GrimesThe topology must be consistent in that the 13201d822d3SRodney W. Grimes.Ar numcpus 13301d822d3SRodney W. Grimesmust equal the product of 13401d822d3SRodney W. Grimes.Ar sockets , 13501d822d3SRodney W. Grimes.Ar cores , 13601d822d3SRodney W. Grimesand 13701d822d3SRodney W. Grimes.Ar threads . 13801d822d3SRodney W. GrimesIf a 13901d822d3SRodney W. Grimes.Ar setting 14001d822d3SRodney W. Grimesis specified more than once the last one has precedence. 1410a1016f9SPawel Biernacki.It Fl D 1420a1016f9SPawel BiernackiDestroy the VM on guest initiated power-off. 143cde1f5b8SJohn Baldwin.It Fl e 144cde1f5b8SJohn BaldwinForce 145cde1f5b8SJohn Baldwin.Nm 146cde1f5b8SJohn Baldwinto exit when a guest issues an access to an I/O port that is not emulated. 147cde1f5b8SJohn BaldwinThis is intended for debug purposes. 1482cdff991SMariusz Zaborski.It Fl G Xo 1492cdff991SMariusz Zaborski.Sm off 1502cdff991SMariusz Zaborski.Oo Ar w Oc 151775f6f45SMateusz Piotrowski.Oo Ar bind_address Cm \&: Oc 1522cdff991SMariusz Zaborski.Ar port 1532cdff991SMariusz Zaborski.Sm on 1542cdff991SMariusz Zaborski.Xc 155cd377eb3SJohn BaldwinStart a debug server that uses the GDB protocol to export guest state to a 156cd377eb3SJohn Baldwindebugger. 157cd377eb3SJohn BaldwinAn IPv4 TCP socket will be bound to the supplied 1582cdff991SMariusz Zaborski.Ar bind_address 1592cdff991SMariusz Zaborskiand 160cd377eb3SJohn Baldwin.Ar port 161cd377eb3SJohn Baldwinto listen for debugger connections. 162cd377eb3SJohn BaldwinOnly a single debugger may be attached to the debug server at a time. 1632cdff991SMariusz ZaborskiIf the option begins with 164cd377eb3SJohn Baldwin.Sq w , 165cd377eb3SJohn Baldwin.Nm 166cd377eb3SJohn Baldwinwill pause execution at the first instruction waiting for a debugger to attach. 167cde1f5b8SJohn Baldwin.It Fl H 168cde1f5b8SJohn BaldwinYield the virtual CPU thread when a HLT instruction is detected. 169cde1f5b8SJohn BaldwinIf this option is not specified, virtual CPUs will use 100% of a host CPU. 170ccb1c87aSMateusz Piotrowski.It Fl h 171ccb1c87aSMateusz PiotrowskiPrint help message and exit. 172f656df58SMateusz Piotrowski.It Fl k Ar config_file 173621b5090SJohn BaldwinSet configuration variables from a simple, key-value config file. 174621b5090SJohn BaldwinEach line of the config file is expected to consist of a config variable 175621b5090SJohn Baldwinname, an equals sign 17619eaa01bSMichael Reifenberger.It Fl K Ar layout 17719eaa01bSMichael ReifenbergerSpecify the keyboard layout. 17819eaa01bSMichael ReifenbergerThe value that can be specified sets the file name in 17919eaa01bSMichael Reifenberger.Ar /usr/share/bhyve/kbdlayout . 18019eaa01bSMichael ReifenbergerThis specification only works when loaded with UEFI mode for VNC. 18119eaa01bSMichael ReifenbergerWhen using a VNC client that supports QEMU Extended Key Event Message (e.g. TigerVNC), this option isn't needed. 18219eaa01bSMichael ReifenbergerWhen using a VNC client that doesn't support QEMU Extended Key Event Message (e.g. tightVNC), the layout defaults to the US keyboard unless specified otherwise. 183621b5090SJohn Baldwin.Pq Sq = , 184621b5090SJohn Baldwinand a value. 185621b5090SJohn BaldwinNo spaces are permitted between the variable name, equals sign, or 186621b5090SJohn Baldwinvalue. 187621b5090SJohn BaldwinBlank lines and lines starting with 188621b5090SJohn Baldwin.Sq # 189621b5090SJohn Baldwinare ignored. 190f656df58SMateusz PiotrowskiSee 191f656df58SMateusz Piotrowski.Xr bhyve_config 5 192f656df58SMateusz Piotrowskifor more details. 1934c08b978SMateusz Piotrowski.It Fl l Cm help 1944c08b978SMateusz PiotrowskiPrint a list of supported LPC devices. 1954c08b978SMateusz Piotrowski.It Fl l Ar lpcdev Ns Op Cm \&, Ns Ar conf 196cde1f5b8SJohn BaldwinAllow devices behind the LPC PCI-ISA bridge to be configured. 1979b1aa8d6SNeel NatuThe only supported devices are the TTY-class devices 1984c08b978SMateusz Piotrowski.Cm com1 , com2 , com3 , 1994c08b978SMateusz Piotrowskiand 2004c08b978SMateusz Piotrowski.Cm com4 , 2012f40fc6fSPeter Grehanthe boot ROM device 2024c08b978SMateusz Piotrowski.Cm bootrom , 2032f40fc6fSPeter Grehanand the debug/test device 2044c08b978SMateusz Piotrowski.Cm pc-testdev . 2051aa56353SMarcelo Araujo.Pp 2064c08b978SMateusz PiotrowskiThe possible values for the 2074c08b978SMateusz Piotrowski.Ar conf 2084c08b978SMateusz Piotrowskiargument are listed in the 2094c08b978SMateusz Piotrowski.Fl s 2104c08b978SMateusz Piotrowskiflag description. 2117e0cb3dfSMateusz Piotrowski.It Xo 2127e0cb3dfSMateusz Piotrowski.Fl m Ar memsize Ns Oo 2137e0cb3dfSMateusz Piotrowski.Sm off 2147e0cb3dfSMateusz Piotrowski.Cm K | k | M | m | G | g | T | t 2157e0cb3dfSMateusz Piotrowski.Sm on 2167e0cb3dfSMateusz Piotrowski.Oc 2177e0cb3dfSMateusz Piotrowski.Xc 2187e0cb3dfSMateusz PiotrowskiSet the guest physical memory size 219cde1f5b8SJohn BaldwinThis must be the same size that was given to 220cde1f5b8SJohn Baldwin.Xr bhyveload 8 . 221cde1f5b8SJohn Baldwin.Pp 2227e0cb3dfSMateusz PiotrowskiThe size argument may be suffixed with one of 2237e0cb3dfSMateusz Piotrowski.Cm K , M , G 2247e0cb3dfSMateusz Piotrowskior 2257e0cb3dfSMateusz Piotrowski.Cm T 2267e0cb3dfSMateusz Piotrowski(either upper or lower case) 2277e0cb3dfSMateusz Piotrowskito indicate a multiple of kilobytes, megabytes, gigabytes, or terabytes. 228cde1f5b8SJohn BaldwinIf no suffix is given, the value is assumed to be in megabytes. 2296ee52c65SRoman Bogorodskiy.Pp 2307e0cb3dfSMateusz PiotrowskiThe default is 256M. 231621b5090SJohn Baldwin.It Fl o Ar var Ns Cm = Ns Ar value 232621b5090SJohn BaldwinSet the configuration variable 233621b5090SJohn Baldwin.Ar var 234621b5090SJohn Baldwinto 235621b5090SJohn Baldwin.Ar value . 236ccb1c87aSMateusz Piotrowski.It Fl P 237ccb1c87aSMateusz PiotrowskiForce the guest virtual CPU to exit when a PAUSE instruction is detected. 23890df5437SMateusz Piotrowski.It Fl p Ar vcpu Ns Cm \& : Ns Ar hostcpu 2399b6155a2SNeel NatuPin guest's virtual CPU 2409b6155a2SNeel Natu.Em vcpu 2419b6155a2SNeel Natuto 2429b6155a2SNeel Natu.Em hostcpu . 243483d953aSJohn Baldwin.It Fl r Ar file 244483d953aSJohn BaldwinResume a guest from a snapshot. 245483d953aSJohn BaldwinThe guest memory contents are restored from 246483d953aSJohn Baldwin.Ar file , 247483d953aSJohn Baldwinand the guest device and vCPU state are restored from the file 248483d953aSJohn Baldwin.Dq Ar file Ns .kern . 249483d953aSJohn Baldwin.Pp 250483d953aSJohn BaldwinNote that the current snapshot file format requires that the configuration of 251483d953aSJohn Baldwindevices in the new VM match the VM from which the snapshot was taken by specifying the 252483d953aSJohn Baldwinsame 253b24eea8cSMateusz Piotrowski.Fl s 254483d953aSJohn Baldwinand 255b24eea8cSMateusz Piotrowski.Fl l 256483d953aSJohn Baldwinoptions. 257483d953aSJohn BaldwinThe count of vCPUs and memory configuration are read from the snapshot. 258ccb1c87aSMateusz Piotrowski.It Fl S 259ccb1c87aSMateusz PiotrowskiWire guest memory. 260449f0e48SMateusz Piotrowski.It Fl s Cm help 261449f0e48SMateusz PiotrowskiPrint a list of supported PCI devices. 262449f0e48SMateusz Piotrowski.It Fl s Ar slot Ns Cm \&, Ns Ar emulation Ns Op Cm \&, Ns Ar conf 263b13e60daSPeter GrehanConfigure a virtual PCI slot and function. 264b13e60daSPeter Grehan.Pp 26584fe889cSChristian Brueffer.Nm 266b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to 267b13e60daSPeter Grehanslots on the bus. 268b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions 269b13e60daSPeter Grehanper slot. 270234d8c47SMateusz Piotrowski.Pp 271234d8c47SMateusz PiotrowskiThe 272234d8c47SMateusz Piotrowski.Ar slot 273234d8c47SMateusz Piotrowskican be specified in one of the following formats: 274234d8c47SMateusz Piotrowski.Pp 275234d8c47SMateusz Piotrowski.Bl -bullet -compact 276234d8c47SMateusz Piotrowski.It 277234d8c47SMateusz Piotrowski.Ar pcislot 278234d8c47SMateusz Piotrowski.It 279234d8c47SMateusz Piotrowski.Sm off 280234d8c47SMateusz Piotrowski.Ar pcislot Cm \&: Ar function 281234d8c47SMateusz Piotrowski.Sm on 282234d8c47SMateusz Piotrowski.It 283234d8c47SMateusz Piotrowski.Sm off 284234d8c47SMateusz Piotrowski.Ar bus Cm \&: Ar pcislot Cm \&: Ar function 285234d8c47SMateusz Piotrowski.Sm on 286234d8c47SMateusz Piotrowski.El 287b13e60daSPeter Grehan.Pp 288b13e60daSPeter GrehanThe 289b13e60daSPeter Grehan.Ar pcislot 29084fe889cSChristian Brueffervalue is 0 to 31. 29184fe889cSChristian BruefferThe optional 29284fe889cSChristian Brueffer.Ar function 29384fe889cSChristian Brueffervalue is 0 to 7. 29484fe889cSChristian BruefferThe optional 29506db1b4aSNeel Natu.Ar bus 29606db1b4aSNeel Natuvalue is 0 to 255. 29784fe889cSChristian BruefferIf not specified, the 29884fe889cSChristian Brueffer.Ar function 29984fe889cSChristian Brueffervalue defaults to 0. 30084fe889cSChristian BruefferIf not specified, the 30184fe889cSChristian Brueffer.Ar bus 30284fe889cSChristian Brueffervalue defaults to 0. 303234d8c47SMateusz Piotrowski.Pp 304234d8c47SMateusz PiotrowskiThe 305234d8c47SMateusz Piotrowski.Ar emulation 306234d8c47SMateusz Piotrowskiargument 307234d8c47SMateusz Piotrowskican be one of the following: 3087014cb23SMateusz Piotrowski.Bl -tag -width "amd_hostbridge" 3097014cb23SMateusz Piotrowski.It Cm hostbridge 3107014cb23SMateusz PiotrowskiA simple host bridge. 311b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest 312b13e60daSPeter Grehanoperating systems. 3137014cb23SMateusz Piotrowski.It Cm amd_hostbridge 3147014cb23SMateusz PiotrowskiEmulation identical to 3157014cb23SMateusz Piotrowski.Cm hostbridge 3167014cb23SMateusz Piotrowskiusing a PCI vendor ID of AMD. 3177014cb23SMateusz Piotrowski.It Cm passthru 318b13e60daSPeter GrehanPCI pass-through device. 3197014cb23SMateusz Piotrowski.It Cm virtio-net 320b13e60daSPeter GrehanVirtio network interface. 3217014cb23SMateusz Piotrowski.It Cm virtio-blk 322b13e60daSPeter GrehanVirtio block storage interface. 3237014cb23SMateusz Piotrowski.It Cm virtio-scsi 324f9c005a1SMarcelo AraujoVirtio SCSI interface. 3257014cb23SMateusz Piotrowski.It Cm virtio-9p 326100353cfSJakub Wojciech KlamaVirtio 9p (VirtFS) interface. 3277014cb23SMateusz Piotrowski.It Cm virtio-rnd 3289d0c4e17SPeter GrehanVirtio RNG interface. 3297014cb23SMateusz Piotrowski.It Cm virtio-console 3305121b6ccSRoman BogorodskiyVirtio console interface, which exposes multiple ports 3315121b6ccSRoman Bogorodskiyto the guest in the form of simple char devices for simple IO 3325121b6ccSRoman Bogorodskiybetween the guest and host userspaces. 333054accacSCorvin Köhne.It Cm virtio-input 334054accacSCorvin KöhneVirtio input interface. 3357014cb23SMateusz Piotrowski.It Cm ahci 336d6099860SMaxim KonovalovAHCI controller attached to arbitrary devices. 3377014cb23SMateusz Piotrowski.It Cm ahci-cd 338b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD. 3397014cb23SMateusz Piotrowski.It Cm ahci-hd 3407014cb23SMateusz PiotrowskiAHCI controller attached to a SATA hard drive. 3417014cb23SMateusz Piotrowski.It Cm e1000 3429e749f25SAlexander MotinIntel e82545 network interface. 3437014cb23SMateusz Piotrowski.It Cm uart 344b13e60daSPeter GrehanPCI 16550 serial device. 3457014cb23SMateusz Piotrowski.It Cm lpc 3467014cb23SMateusz PiotrowskiLPC PCI-ISA bridge with COM1, COM2, COM3, and COM4 16550 serial ports, 3477014cb23SMateusz Piotrowskia boot ROM, and, 3482f40fc6fSPeter Grehanoptionally, the debug/test device. 3499b1aa8d6SNeel NatuThe LPC bridge emulation can only be configured on bus 0. 3507014cb23SMateusz Piotrowski.It Cm fbuf 3516c87a2c0SGleb SmirnoffRaw framebuffer device attached to VNC server. 3527014cb23SMateusz Piotrowski.It Cm xhci 3535c3ec676SGleb SmirnoffeXtensible Host Controller Interface (xHCI) USB controller. 3547014cb23SMateusz Piotrowski.It Cm nvme 355c066c68cSMarcelo AraujoNVM Express (NVMe) controller. 3567014cb23SMateusz Piotrowski.It Cm hda 35736f9f044SWarner LoshHigh Definition Audio Controller. 358b13e60daSPeter Grehan.El 359234d8c47SMateusz Piotrowski.Pp 360234d8c47SMateusz PiotrowskiThe optional parameter 361234d8c47SMateusz Piotrowski.Ar conf 362234d8c47SMateusz Piotrowskidescribes the backend for device emulations. 363b13e60daSPeter GrehanIf 364b13e60daSPeter Grehan.Ar conf 365b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be 366b13e60daSPeter Grehanconsidered unconnected. 367b13e60daSPeter Grehan.Pp 3688d9fefe6SMateusz PiotrowskiNetwork device backends: 3697fb22729SMateusz Piotrowski.Sm off 3707fb22729SMateusz Piotrowski.Bl -bullet 3717fb22729SMateusz Piotrowski.It 3727fb22729SMateusz Piotrowski.Xo 3737fb22729SMateusz Piotrowski.Cm tap Ar N 3747fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx 3757fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N 3767fb22729SMateusz Piotrowski.Xc 3777fb22729SMateusz Piotrowski.It 3787fb22729SMateusz Piotrowski.Xo 3797fb22729SMateusz Piotrowski.Cm vmnet Ar N 3807fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx 3817fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N 3827fb22729SMateusz Piotrowski.Xc 3837fb22729SMateusz Piotrowski.It 3847fb22729SMateusz Piotrowski.Xo 3857fb22729SMateusz Piotrowski.Cm netgraph,path= Ar ADDRESS Cm \&,peerhook= Ar HOOK 3867fb22729SMateusz Piotrowski.Op Cm \&,socket= Ar NAME 3877fb22729SMateusz Piotrowski.Op Cm \&,hook= Ar HOOK 3887fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx 3897fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N 3907fb22729SMateusz Piotrowski.Xc 3917fb22729SMateusz Piotrowski.El 3927fb22729SMateusz Piotrowski.Sm on 393b13e60daSPeter GrehanIf 3947fb22729SMateusz Piotrowski.Cm mac 395b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the 396b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and 397b13e60daSPeter Grehanthe device name. 398b13e60daSPeter Grehan.Pp 399b13e60daSPeter GrehanThe MAC address is an ASCII string in 400b13e60daSPeter Grehan.Xr ethers 5 401b13e60daSPeter Grehanformat. 402692dbfe9SVincenzo Maffione.Pp 4037fb22729SMateusz PiotrowskiWith 4047fb22729SMateusz Piotrowski.Cm virtio-net 4057fb22729SMateusz Piotrowskidevices, the 4067fb22729SMateusz Piotrowski.Cm mtu 407692dbfe9SVincenzo Maffioneparameter can be specified to inform the guest about the largest MTU 408692dbfe9SVincenzo Maffionethat should be allowed, expressed in bytes. 409e90337e4SAleksandr Fedorov.Pp 4107fb22729SMateusz PiotrowskiWith 4117fb22729SMateusz Piotrowski.Cm netgraph 4127fb22729SMateusz Piotrowskibackend, the 4137fb22729SMateusz Piotrowski.Cm path 414e90337e4SAleksandr Fedorovand 4157fb22729SMateusz Piotrowski.Cm peerhook 416e90337e4SAleksandr Fedorovparameters must be specified to set the destination node and corresponding hook. 417e90337e4SAleksandr FedorovThe optional parameters 4187fb22729SMateusz Piotrowski.Cm socket 419e90337e4SAleksandr Fedorovand 4207fb22729SMateusz Piotrowski.Cm hook 421e90337e4SAleksandr Fedorovmay be used to set the 422e90337e4SAleksandr Fedorov.Xr ng_socket 4 423e90337e4SAleksandr Fedorovnode name and source hook. 424e90337e4SAleksandr FedorovThe 425e90337e4SAleksandr Fedorov.Ar ADDRESS , 4267fb22729SMateusz Piotrowski.Ar HOOK , 427e90337e4SAleksandr Fedorovand 428e90337e4SAleksandr Fedorov.Ar NAME 429e90337e4SAleksandr Fedorovmust comply with 430e90337e4SAleksandr Fedorov.Xr netgraph 4 431e90337e4SAleksandr Fedorovaddressing rules. 432b13e60daSPeter Grehan.Pp 4335232a35fSMateusz PiotrowskiBlock storage device backends: 4345232a35fSMateusz Piotrowski.Sm off 4355232a35fSMateusz Piotrowski.Bl -bullet 4365232a35fSMateusz Piotrowski.It 4375232a35fSMateusz Piotrowski.Ar /filename Op Cm \&, Ar block-device-options 4385232a35fSMateusz Piotrowski.It 4395232a35fSMateusz Piotrowski.Ar /dev/xxx Op Cm \&, Ar block-device-options 4404e43c1e8SNeel Natu.El 4415232a35fSMateusz Piotrowski.Sm on 4424e43c1e8SNeel Natu.Pp 4434e43c1e8SNeel NatuThe 4444e43c1e8SNeel Natu.Ar block-device-options 4454e43c1e8SNeel Natuare: 4465232a35fSMateusz Piotrowski.Bl -tag -width 10n 4475232a35fSMateusz Piotrowski.It Cm nocache 448b13e60daSPeter GrehanOpen the file with 449b13e60daSPeter Grehan.Dv O_DIRECT . 4505232a35fSMateusz Piotrowski.It Cm direct 451b13e60daSPeter GrehanOpen the file using 452b13e60daSPeter Grehan.Dv O_SYNC . 4535232a35fSMateusz Piotrowski.It Cm ro 454b13e60daSPeter GrehanForce the file to be opened read-only. 4555232a35fSMateusz Piotrowski.It Cm sectorsize= Ns Ar logical Ns Oo Cm \&/ Ns Ar physical Oc 4564e43c1e8SNeel NatuSpecify the logical and physical sector sizes of the emulated disk. 4574e43c1e8SNeel NatuThe physical sector size is optional and is equal to the logical sector size 4584e43c1e8SNeel Natuif not explicitly specified. 4595232a35fSMateusz Piotrowski.It Cm nodelete 460e6d795d1SAllan JudeDisable emulation of guest trim requests via 461e6d795d1SAllan Jude.Dv DIOCGDELETE 462e6d795d1SAllan Juderequests. 463b13e60daSPeter Grehan.El 464b13e60daSPeter Grehan.Pp 4657c5829c9SMateusz PiotrowskiSCSI device backends: 4667c5829c9SMateusz Piotrowski.Sm off 4677c5829c9SMateusz Piotrowski.Bl -bullet 4687c5829c9SMateusz Piotrowski.It 4697c5829c9SMateusz Piotrowski.Pa /dev/cam/ctl Oo Ar pp Cm \&. Ar vp Oc Oo Cm \&, Ar scsi-device-options Oc 47049f87822SAlexander Motin.El 4717c5829c9SMateusz Piotrowski.Sm on 47249f87822SAlexander Motin.Pp 47349f87822SAlexander MotinThe 47449f87822SAlexander Motin.Ar scsi-device-options 47549f87822SAlexander Motinare: 47649f87822SAlexander Motin.Bl -tag -width 10n 4777c5829c9SMateusz Piotrowski.It Cm iid= Ns Ar IID 47849f87822SAlexander MotinInitiator ID to use when sending requests to specified CTL port. 47949f87822SAlexander MotinThe default value is 0. 480f9c005a1SMarcelo Araujo.El 481f9c005a1SMarcelo Araujo.Pp 4822d00b570SMateusz Piotrowski9P device backends: 4832d00b570SMateusz Piotrowski.Sm off 4842d00b570SMateusz Piotrowski.Bl -bullet 4852d00b570SMateusz Piotrowski.It 4862d00b570SMateusz Piotrowski.Ar sharename Cm = Ar /path/to/share Op Cm \&, Ar 9p-device-options 487100353cfSJakub Wojciech Klama.El 4882d00b570SMateusz Piotrowski.Sm on 489100353cfSJakub Wojciech Klama.Pp 490100353cfSJakub Wojciech KlamaThe 491100353cfSJakub Wojciech Klama.Ar 9p-device-options 492100353cfSJakub Wojciech Klamaare: 493100353cfSJakub Wojciech Klama.Bl -tag -width 10n 4942d00b570SMateusz Piotrowski.It Cm ro 495100353cfSJakub Wojciech KlamaExpose the share in read-only mode. 496100353cfSJakub Wojciech Klama.El 497100353cfSJakub Wojciech Klama.Pp 4982fda01a1SMateusz PiotrowskiTTY device backends: 499b13e60daSPeter Grehan.Bl -tag -width 10n 5002fda01a1SMateusz Piotrowski.It Cm stdio 501b13e60daSPeter GrehanConnect the serial port to the standard input and output of 50284fe889cSChristian Bruefferthe 50384fe889cSChristian Brueffer.Nm 50484fe889cSChristian Bruefferprocess. 5052fda01a1SMateusz Piotrowski.It Ar /dev/xxx 506b13e60daSPeter GrehanUse the host TTY device for serial port I/O. 507b13e60daSPeter Grehan.El 508b13e60daSPeter Grehan.Pp 5092fda01a1SMateusz PiotrowskiBoot ROM device backends: 5109b1aa8d6SNeel Natu.Bl -tag -width 10n 511866036f4SRebecca Cran.It Ar romfile Ns Op Cm \&, Ns Ar varfile 5129b1aa8d6SNeel NatuMap 5139b1aa8d6SNeel Natu.Ar romfile 5149b1aa8d6SNeel Natuin the guest address space reserved for boot firmware. 515866036f4SRebecca CranIf 516866036f4SRebecca Cran.Ar varfile 517866036f4SRebecca Cranis provided, that file is also mapped in the boot firmware guest 518866036f4SRebecca Cranaddress space, and any modifications the guest makes will be saved 519866036f4SRebecca Cranto that file. 5209b1aa8d6SNeel Natu.El 5219b1aa8d6SNeel Natu.Pp 5222fda01a1SMateusz PiotrowskiPass-through device backends: 523b13e60daSPeter Grehan.Bl -tag -width 10n 5242fda01a1SMateusz Piotrowski.It Ns Ar slot Ns Cm \&/ Ns Ar bus Ns Cm \&/ Ns Ar function 525b13e60daSPeter GrehanConnect to a PCI device on the host at the selector described by 526b13e60daSPeter Grehan.Ar slot , 527b13e60daSPeter Grehan.Ar bus , 528b13e60daSPeter Grehanand 529b13e60daSPeter Grehan.Ar function 530b13e60daSPeter Grehannumbers. 531*5e19a518SMateusz Piotrowski.It Cm rom= Ns Ar romfile 532e47fe318SCorvin KöhneAdd 533e47fe318SCorvin Köhne.Ar romfile 534e47fe318SCorvin Köhneas option ROM to the PCI device. 535e47fe318SCorvin KöhneThe ROM will be loaded by firmware and should be capable of initializing the device. 536b13e60daSPeter Grehan.El 537b13e60daSPeter Grehan.Pp 5389b1aa8d6SNeel NatuGuest memory must be wired using the 5399b1aa8d6SNeel Natu.Fl S 5409b1aa8d6SNeel Natuoption when a pass-through device is configured. 5419b1aa8d6SNeel Natu.Pp 542b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the 543a9258f9bSWarren Block.Va pptdevs 544b13e60daSPeter Grehanloader variable as described in 545b13e60daSPeter Grehan.Xr vmm 4 . 5465121b6ccSRoman Bogorodskiy.Pp 5473f4c771fSMateusz PiotrowskiVirtio console device backends: 5483f4c771fSMateusz Piotrowski.Bl -bullet 5493f4c771fSMateusz Piotrowski.Sm off 5503f4c771fSMateusz Piotrowski.It 5513f4c771fSMateusz 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 ... 5523f4c771fSMateusz Piotrowski.Sm on 5533f4c771fSMateusz Piotrowski.El 5543f4c771fSMateusz Piotrowski.Pp 5555121b6ccSRoman BogorodskiyA maximum of 16 ports per device can be created. 5565121b6ccSRoman BogorodskiyEvery port is named and corresponds to a Unix domain socket created by 5575121b6ccSRoman Bogorodskiy.Nm . 5585121b6ccSRoman Bogorodskiy.Nm 5595121b6ccSRoman Bogorodskiyaccepts at most one connection per port at a time. 5605121b6ccSRoman Bogorodskiy.Pp 5615121b6ccSRoman BogorodskiyLimitations: 5628d9fefe6SMateusz Piotrowski.Bl -bullet 5635121b6ccSRoman Bogorodskiy.It 5645121b6ccSRoman BogorodskiyDue to lack of destructors in 5655121b6ccSRoman Bogorodskiy.Nm , 5665121b6ccSRoman Bogorodskiysockets on the filesystem must be cleaned up manually after 5675121b6ccSRoman Bogorodskiy.Nm 5685121b6ccSRoman Bogorodskiyexits. 5695121b6ccSRoman Bogorodskiy.It 5703f4c771fSMateusz PiotrowskiThere is no way to use the 5713f4c771fSMateusz Piotrowski.Dq console port 5723f4c771fSMateusz Piotrowskifeature, nor the console port 5730ee3a4b4SRoman Bogorodskiyresize at present. 5745121b6ccSRoman Bogorodskiy.It 5750ee3a4b4SRoman BogorodskiyEmergency write is advertised, but no-op at present. 5765121b6ccSRoman Bogorodskiy.El 5776c87a2c0SGleb Smirnoff.Pp 578054accacSCorvin KöhneVirtio input device backends: 579054accacSCorvin Köhne.Bl -tag -width 10n 580054accacSCorvin Köhne.It Ar /dev/input/eventX 581054accacSCorvin KöhneSend input events of 582054accacSCorvin Köhne.Ar /dev/input/eventX 583054accacSCorvin Köhneto guest by VirtIO Input Interface. 584054accacSCorvin Köhne.El 585054accacSCorvin Köhne.Pp 5868b97e975SMateusz PiotrowskiFramebuffer devices backends: 5878b97e975SMateusz Piotrowski.Bl -bullet 5888b97e975SMateusz Piotrowski.Sm off 5898b97e975SMateusz Piotrowski.It 5908b97e975SMateusz Piotrowski.Op Cm rfb= Ar ip-and-port 5918b97e975SMateusz Piotrowski.Op Cm ,w= Ar width 5928b97e975SMateusz Piotrowski.Op Cm ,h= Ar height 5938b97e975SMateusz Piotrowski.Op Cm ,vga= Ar vgaconf 5948b97e975SMateusz Piotrowski.Op Cm ,wait 5958b97e975SMateusz Piotrowski.Op Cm ,password= Ar password 5968b97e975SMateusz Piotrowski.Sm on 5978b97e975SMateusz Piotrowski.El 5988b97e975SMateusz Piotrowski.Pp 5998b97e975SMateusz PiotrowskiConfiguration options are defined as follows: 6005c3ec676SGleb Smirnoff.Bl -tag -width 10n 6018b97e975SMateusz Piotrowski.It Cm rfb= Ns Ar ip-and-port Pq or Cm tcp= Ns Ar ip-and-port 6028b97e975SMateusz PiotrowskiAn IP address and a port VNC should listen on. 6038b97e975SMateusz PiotrowskiThere are two formats: 6048b97e975SMateusz Piotrowski.Pp 6058b97e975SMateusz Piotrowski.Bl -bullet -compact 6068d9fefe6SMateusz Piotrowski.It 6078b97e975SMateusz Piotrowski.Sm off 6088b97e975SMateusz Piotrowski.Op Ar IPv4 Cm \&: 6095c3ec676SGleb Smirnoff.Ar port 6108b97e975SMateusz Piotrowski.Sm on 6118d9fefe6SMateusz Piotrowski.It 6128b97e975SMateusz Piotrowski.Sm off 6138b97e975SMateusz Piotrowski.Cm \&[ Ar IPv6%zone Cm \&] Cm \&: Ar port 6148b97e975SMateusz Piotrowski.Sm on 6158b97e975SMateusz Piotrowski.El 6168b97e975SMateusz Piotrowski.Pp 6176c87a2c0SGleb SmirnoffThe default is to listen on localhost IPv4 address and default VNC port 5900. 6188883128bSBjoern A. ZeebAn IPv6 address must be enclosed in square brackets and may contain an 6197d9545fcSRodney W. Grimesoptional zone identifier. 6208b97e975SMateusz Piotrowski.It Cm w= Ns Ar width No and Cm h= Ns Ar height 6215c3ec676SGleb SmirnoffA display resolution, width and height, respectively. 6225c3ec676SGleb SmirnoffIf not specified, a default resolution of 1024x768 pixels will be used. 6235c3ec676SGleb SmirnoffMinimal supported resolution is 640x480 pixels, 6245c3ec676SGleb Smirnoffand maximum is 1920x1200 pixels. 6258b97e975SMateusz Piotrowski.It Cm vga= Ns Ar vgaconf 6265c3ec676SGleb SmirnoffPossible values for this option are 6278b97e975SMateusz Piotrowski.Cm io 6285c3ec676SGleb Smirnoff(default), 6298b97e975SMateusz Piotrowski.Cm on 6305c3ec676SGleb Smirnoff, and 6318b97e975SMateusz Piotrowski.Cm off . 6325c3ec676SGleb SmirnoffPCI graphics cards have a dual personality in that they are 6335c3ec676SGleb Smirnoffstandard PCI devices with BAR addressing, but may also 6345c3ec676SGleb Smirnoffimplicitly decode legacy VGA I/O space 6355c3ec676SGleb Smirnoff.Pq Ad 0x3c0-3df 6365c3ec676SGleb Smirnoffand memory space 6375c3ec676SGleb Smirnoff.Pq 64KB at Ad 0xA0000 . 6385c3ec676SGleb SmirnoffThe default 6398b97e975SMateusz Piotrowski.Cm io 6408d56c805SYuri Pankovoption should be used for guests that attempt to issue BIOS calls which result 6418d56c805SYuri Pankovin I/O port queries, and fail to boot if I/O decode is disabled. 6425c3ec676SGleb Smirnoff.Pp 6435c3ec676SGleb SmirnoffThe 6448b97e975SMateusz Piotrowski.Cm on 6455c3ec676SGleb Smirnoffoption should be used along with the CSM BIOS capability in UEFI 6465c3ec676SGleb Smirnoffto boot traditional BIOS guests that require the legacy VGA I/O and 6475c3ec676SGleb Smirnoffmemory regions to be available. 6485c3ec676SGleb Smirnoff.Pp 6495c3ec676SGleb SmirnoffThe 6508b97e975SMateusz Piotrowski.Cm off 6515c3ec676SGleb Smirnoffoption should be used for the UEFI guests that assume that 6525c3ec676SGleb SmirnoffVGA adapter is present if they detect the I/O ports. 6535c3ec676SGleb SmirnoffAn example of such a guest is 6545c3ec676SGleb Smirnoff.Ox 6555c3ec676SGleb Smirnoffin UEFI mode. 6565c3ec676SGleb Smirnoff.Pp 6575c3ec676SGleb SmirnoffPlease refer to the 6585c3ec676SGleb Smirnoff.Nm 6595c3ec676SGleb Smirnoff.Fx 6605c3ec676SGleb Smirnoffwiki page 6615c3ec676SGleb Smirnoff.Pq Lk https://wiki.freebsd.org/bhyve 6625c3ec676SGleb Smirnofffor configuration notes of particular guests. 6638b97e975SMateusz Piotrowski.It Cm wait 6645c3ec676SGleb SmirnoffInstruct 6655c3ec676SGleb Smirnoff.Nm 6668d56c805SYuri Pankovto only boot upon the initiation of a VNC connection, simplifying the 6678d56c805SYuri Pankovinstallation of operating systems that require immediate keyboard input. 6685c3ec676SGleb SmirnoffThis can be removed for post-installation use. 6698b97e975SMateusz Piotrowski.It Cm password= Ns Ar password 670f4d34383SMarcelo AraujoThis type of authentication is known to be cryptographically weak and is not 671f4d34383SMarcelo Araujointended for use on untrusted networks. 672f4d34383SMarcelo AraujoMany implementations will want to use stronger security, such as running 673f4d34383SMarcelo Araujothe session over an encrypted channel provided by IPsec or SSH. 6745c3ec676SGleb Smirnoff.El 6756c87a2c0SGleb Smirnoff.Pp 6766eff58acSMateusz PiotrowskixHCI USB device backends: 6775c3ec676SGleb Smirnoff.Bl -tag -width 10n 6786eff58acSMateusz Piotrowski.It Cm tablet 6795c3ec676SGleb SmirnoffA USB tablet device which provides precise cursor synchronization 6805c3ec676SGleb Smirnoffwhen using VNC. 6816c87a2c0SGleb Smirnoff.El 682c066c68cSMarcelo Araujo.Pp 6836eff58acSMateusz PiotrowskiNVMe device backends: 6846eff58acSMateusz Piotrowski.Bl -bullet 6856eff58acSMateusz Piotrowski.Sm off 6866eff58acSMateusz Piotrowski.It 6876eff58acSMateusz Piotrowski.Ar devpath 6886eff58acSMateusz Piotrowski.Op Cm ,maxq= Ar # 6896eff58acSMateusz Piotrowski.Op Cm ,qsz= Ar # 6906eff58acSMateusz Piotrowski.Op Cm ,ioslots= Ar # 6916eff58acSMateusz Piotrowski.Op Cm ,sectsz= Ar # 6926eff58acSMateusz Piotrowski.Op Cm ,ser= Ar # 6936eff58acSMateusz Piotrowski.Op Cm ,eui64= Ar # 6946eff58acSMateusz Piotrowski.Op Cm ,dsm= Ar opt 6956eff58acSMateusz Piotrowski.Sm on 6966eff58acSMateusz Piotrowski.El 6976eff58acSMateusz Piotrowski.Pp 6986eff58acSMateusz PiotrowskiConfiguration options are defined as follows: 699c066c68cSMarcelo Araujo.Bl -tag -width 10n 7006eff58acSMateusz Piotrowski.It Ar devpath 701c066c68cSMarcelo AraujoAccepted device paths are: 702c066c68cSMarcelo Araujo.Ar /dev/blockdev 703c066c68cSMarcelo Araujoor 704c066c68cSMarcelo Araujo.Ar /path/to/image 705c066c68cSMarcelo Araujoor 7066eff58acSMateusz Piotrowski.Cm ram= Ns Ar size_in_MiB . 7076eff58acSMateusz Piotrowski.It Cm maxq 708c066c68cSMarcelo AraujoMax number of queues. 7096eff58acSMateusz Piotrowski.It Cm qsz 710c066c68cSMarcelo AraujoMax elements in each queue. 7116eff58acSMateusz Piotrowski.It Cm ioslots 712c066c68cSMarcelo AraujoMax number of concurrent I/O requests. 7136eff58acSMateusz Piotrowski.It Cm sectsz 714c066c68cSMarcelo AraujoSector size (defaults to blockif sector size). 7156eff58acSMateusz Piotrowski.It Cm ser 716c066c68cSMarcelo AraujoSerial number with maximum 20 characters. 7176eff58acSMateusz Piotrowski.It Cm eui64 7186eff58acSMateusz PiotrowskiIEEE Extended Unique Identifier (8 byte value). 7196eff58acSMateusz Piotrowski.It Cm dsm 7206eff58acSMateusz PiotrowskiDataSet Management support. 7216eff58acSMateusz PiotrowskiSupported values are: 7226eff58acSMateusz Piotrowski.Cm auto , enable , 7236eff58acSMateusz Piotrowskiand 7246eff58acSMateusz Piotrowski.Cm disable . 725c066c68cSMarcelo Araujo.El 72636f9f044SWarner Losh.Pp 727d5fcc4b6SMateusz PiotrowskiAHCI device backends: 728d5fcc4b6SMateusz Piotrowski.Bl -bullet 729d5fcc4b6SMateusz Piotrowski.It 730d5fcc4b6SMateusz Piotrowski.Sm off 731d5fcc4b6SMateusz Piotrowski.Op Oo Cm hd\&: | cd\&: Oc Ar path 732d5fcc4b6SMateusz Piotrowski.Op Cm ,nmrr= Ar nmrr 733d5fcc4b6SMateusz Piotrowski.Op Cm ,ser= Ar # 734d5fcc4b6SMateusz Piotrowski.Op Cm ,rev= Ar # 735d5fcc4b6SMateusz Piotrowski.Op Cm ,model= Ar # 736d5fcc4b6SMateusz Piotrowski.Sm on 737d5fcc4b6SMateusz Piotrowski.El 738d5fcc4b6SMateusz Piotrowski.Pp 739d5fcc4b6SMateusz PiotrowskiConfiguration options are defined as follows: 7409af3bcd7SPeter Grehan.Bl -tag -width 10n 741d5fcc4b6SMateusz Piotrowski.It Cm nmrr 742d5fcc4b6SMateusz PiotrowskiNominal Media Rotation Rate, known as RPM. 743d5fcc4b6SMateusz PiotrowskiValue 1 will indicate device as Solid State Disk. 744d5fcc4b6SMateusz PiotrowskiDefault value is 0, not report. 745d5fcc4b6SMateusz Piotrowski.It Cm ser 7469af3bcd7SPeter GrehanSerial Number with maximum 20 characters. 747d5fcc4b6SMateusz Piotrowski.It Cm rev 7489af3bcd7SPeter GrehanRevision Number with maximum 8 characters. 749d5fcc4b6SMateusz Piotrowski.It Cm model 7509af3bcd7SPeter GrehanModel Number with maximum 40 characters. 7519af3bcd7SPeter Grehan.El 7529af3bcd7SPeter Grehan.Pp 753061f37d2SMateusz PiotrowskiHD Audio device backends: 754061f37d2SMateusz Piotrowski.Bl -bullet 755061f37d2SMateusz Piotrowski.It 756061f37d2SMateusz Piotrowski.Sm off 757061f37d2SMateusz Piotrowski.Op Cm play= Ar playback 758061f37d2SMateusz Piotrowski.Op Cm ,rec= Ar recording 759061f37d2SMateusz Piotrowski.Sm on 760061f37d2SMateusz Piotrowski.El 761061f37d2SMateusz Piotrowski.Pp 762061f37d2SMateusz PiotrowskiConfiguration options are defined as follows: 76336f9f044SWarner Losh.Bl -tag -width 10n 764061f37d2SMateusz Piotrowski.It Cm play 76536f9f044SWarner LoshPlayback device, typically 76636f9f044SWarner Losh.Ar /dev/dsp0 . 767061f37d2SMateusz Piotrowski.It Cm rec 76836f9f044SWarner LoshRecording device, typically 76936f9f044SWarner Losh.Ar /dev/dsp0 . 77036f9f044SWarner Losh.El 7715749449dSJohn Baldwin.It Fl U Ar uuid 7725749449dSJohn BaldwinSet the universally unique identifier 7735749449dSJohn Baldwin.Pq UUID 7745749449dSJohn Baldwinin the guest's System Management BIOS System Information structure. 7755749449dSJohn BaldwinBy default a UUID is generated from the host's hostname and 7765749449dSJohn Baldwin.Ar vmname . 777ccb1c87aSMateusz Piotrowski.It Fl u 778ccb1c87aSMateusz PiotrowskiRTC keeps UTC time. 779cde1f5b8SJohn Baldwin.It Fl W 780cde1f5b8SJohn BaldwinForce virtio PCI device emulations to use MSI interrupts instead of MSI-X 781cde1f5b8SJohn Baldwininterrupts. 782ccb1c87aSMateusz Piotrowski.It Fl w 783ccb1c87aSMateusz PiotrowskiIgnore accesses to unimplemented Model Specific Registers (MSRs). 784ccb1c87aSMateusz PiotrowskiThis is intended for debug purposes. 7859777ca20SNeel Natu.It Fl x 7869777ca20SNeel NatuThe guest's local APIC is configured in x2APIC mode. 787b100acf2SNeel Natu.It Fl Y 788b100acf2SNeel NatuDisable MPtable generation. 789b13e60daSPeter Grehan.It Ar vmname 790b13e60daSPeter GrehanAlphanumeric name of the guest. 791b13e60daSPeter GrehanThis should be the same as that created by 792b13e60daSPeter Grehan.Xr bhyveload 8 . 793b13e60daSPeter Grehan.El 794621b5090SJohn Baldwin.Sh CONFIGURATION VARIABLES 795621b5090SJohn Baldwin.Nm 796621b5090SJohn Baldwinuses an internal tree of configuration variables to describe global and 797621b5090SJohn Baldwinper-device settings. 798621b5090SJohn BaldwinWhen 799621b5090SJohn Baldwin.Nm 800621b5090SJohn Baldwinstarts, 801621b5090SJohn Baldwinit parses command line options (including config files) in the order given 802621b5090SJohn Baldwinon the command line. 803621b5090SJohn BaldwinEach command line option sets one or more configuration variables. 804621b5090SJohn BaldwinFor example, 805621b5090SJohn Baldwinthe 806621b5090SJohn Baldwin.Fl s 807621b5090SJohn Baldwinoption creates a new tree node for a PCI device and sets one or more variables 808621b5090SJohn Baldwinunder that node including the device model and device model-specific variables. 809621b5090SJohn BaldwinVariables may be set multiple times during this parsing stage with the final 810621b5090SJohn Baldwinvalue overriding previous values. 811621b5090SJohn Baldwin.Pp 812621b5090SJohn BaldwinOnce all of the command line options have been processed, 813621b5090SJohn Baldwinthe configuration values are frozen. 814621b5090SJohn Baldwin.Nm 815621b5090SJohn Baldwinthen uses the value of configuration values to initialize device models 816621b5090SJohn Baldwinand global settings. 817621b5090SJohn Baldwin.Pp 818621b5090SJohn BaldwinMore details on configuration variables can be found in 819621b5090SJohn Baldwin.Xr bhyve_config 5 . 820cd377eb3SJohn Baldwin.Sh DEBUG SERVER 821cd377eb3SJohn BaldwinThe current debug server provides limited support for debuggers. 822cd377eb3SJohn Baldwin.Ss Registers 823cd377eb3SJohn BaldwinEach virtual CPU is exposed to the debugger as a thread. 824cd377eb3SJohn Baldwin.Pp 825cd377eb3SJohn BaldwinGeneral purpose registers can be queried for each virtual CPU, but other 826cd377eb3SJohn Baldwinregisters such as floating-point and system registers cannot be queried. 827cd377eb3SJohn Baldwin.Ss Memory 828976ba8c6SJohn BaldwinMemory (including memory mapped I/O regions) can be read and written by the debugger. 8298d56c805SYuri PankovMemory operations use virtual addresses that are resolved to physical addresses 8308d56c805SYuri Pankovvia the current virtual CPU's active address translation. 831cd377eb3SJohn Baldwin.Ss Control 832cd377eb3SJohn BaldwinThe running guest can be interrupted by the debugger at any time 833cd377eb3SJohn Baldwin.Pq for example, by pressing Ctrl-C in the debugger . 834cd377eb3SJohn Baldwin.Pp 835cd377eb3SJohn BaldwinSingle stepping is only supported on Intel CPUs supporting the MTRAP VM exit. 836cd377eb3SJohn Baldwin.Pp 837cbd03a9dSJohn BaldwinBreakpoints are supported on Intel CPUs that support single stepping. 838cbd03a9dSJohn BaldwinNote that continuing from a breakpoint while interrupts are enabled in the 839cbd03a9dSJohn Baldwinguest may not work as expected due to timer interrupts firing while single 840cbd03a9dSJohn Baldwinstepping over the breakpoint. 841c2202d41SRoman Bogorodskiy.Sh SIGNAL HANDLING 842c2202d41SRoman Bogorodskiy.Nm 843c2202d41SRoman Bogorodskiydeals with the following signals: 844c2202d41SRoman Bogorodskiy.Pp 8453357e948SMateusz Piotrowski.Bl -tag -width SIGTERM -compact 846c2202d41SRoman Bogorodskiy.It SIGTERM 847c2202d41SRoman BogorodskiyTrigger ACPI poweroff for a VM 848c2202d41SRoman Bogorodskiy.El 849c2202d41SRoman Bogorodskiy.Sh EXIT STATUS 850c2202d41SRoman BogorodskiyExit status indicates how the VM was terminated: 851c2202d41SRoman Bogorodskiy.Pp 852c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact 853c2202d41SRoman Bogorodskiy.It 0 854c2202d41SRoman Bogorodskiyrebooted 855c2202d41SRoman Bogorodskiy.It 1 856c2202d41SRoman Bogorodskiypowered off 857c2202d41SRoman Bogorodskiy.It 2 858c2202d41SRoman Bogorodskiyhalted 859c2202d41SRoman Bogorodskiy.It 3 860c2202d41SRoman Bogorodskiytriple fault 861989e062bSMarcelo Araujo.It 4 862989e062bSMarcelo Araujoexited due to an error 863c2202d41SRoman Bogorodskiy.El 864b13e60daSPeter Grehan.Sh EXAMPLES 8655c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must have been loaded with 86684fe889cSChristian Brueffer.Xr bhyveload 8 867b13e60daSPeter Grehanor a similar boot loader before 868b13e60daSPeter Grehan.Xr bhyve 4 869b13e60daSPeter Grehancan be run. 8705c3ec676SGleb SmirnoffOtherwise, the boot loader is not needed. 871b13e60daSPeter Grehan.Pp 872b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio 873b13e60daSPeter Grehanblock device backed by the 874b13e60daSPeter Grehan.Pa /my/image 875b13e60daSPeter Grehanfilesystem image, and a serial port for the console: 876b13e60daSPeter Grehan.Bd -literal -offset indent 877b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\ 878b13e60daSPeter Grehan -l com1,stdio -A -H -P -m 1G vm1 879b13e60daSPeter Grehan.Ed 880b13e60daSPeter Grehan.Pp 881b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which 882b13e60daSPeter Grehanhas a MAC address specified: 883b13e60daSPeter Grehan.Bd -literal -offset indent 884b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\ 885b13e60daSPeter Grehan -s 2:1,virtio-net,tap1 \\ 886b13e60daSPeter Grehan -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\ 887b13e60daSPeter Grehan -s 3,virtio-blk,/my/image -l com1,stdio \\ 888b13e60daSPeter Grehan -A -H -P -m 24G bigvm 889b13e60daSPeter Grehan.Ed 890b13e60daSPeter Grehan.Pp 891b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI 892b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console 893b13e60daSPeter Grehanport connected to an 894b13e60daSPeter Grehan.Xr nmdm 4 89584fe889cSChristian Brueffernull-modem device. 896b13e60daSPeter Grehan.Bd -literal -offset indent 897a7ab1463SAlexander Motinbhyve -c 4 \\ 898b13e60daSPeter Grehan -s 0,amd_hostbridge -s 1,lpc \\ 899098f5155SAlexander Motin -s 1:0,ahci,hd:/images/disk.1,hd:/images/disk.2,\\ 900098f5155SAlexander Motinhd:/images/disk.3,hd:/images/disk.4,\\ 901098f5155SAlexander Motinhd:/images/disk.5,hd:/images/disk.6,\\ 902098f5155SAlexander Motinhd:/images/disk.7,hd:/images/disk.8,\\ 903098f5155SAlexander Motincd:/images/install.iso \\ 904b13e60daSPeter Grehan -s 3,virtio-net,tap0 \\ 905b13e60daSPeter Grehan -l com1,/dev/nmdm0A \\ 906b13e60daSPeter Grehan -A -H -P -m 8G 907b13e60daSPeter Grehan.Ed 9085c3ec676SGleb Smirnoff.Pp 9095c3ec676SGleb SmirnoffRun a UEFI virtual machine with a display resolution of 800 by 600 pixels 9105c3ec676SGleb Smirnoffthat can be accessed via VNC at: 0.0.0.0:5900. 9115c3ec676SGleb Smirnoff.Bd -literal -offset indent 9125c3ec676SGleb Smirnoffbhyve -c 2 -m 4G -w -H \\ 9135c3ec676SGleb Smirnoff -s 0,hostbridge \\ 9145c3ec676SGleb Smirnoff -s 3,ahci-cd,/path/to/uefi-OS-install.iso \\ 9155c3ec676SGleb Smirnoff -s 4,ahci-hd,disk.img \\ 9165c3ec676SGleb Smirnoff -s 5,virtio-net,tap0 \\ 9175c3ec676SGleb Smirnoff -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \\ 9185c3ec676SGleb Smirnoff -s 30,xhci,tablet \\ 9195c3ec676SGleb Smirnoff -s 31,lpc -l com1,stdio \\ 9205c3ec676SGleb Smirnoff -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\ 9215c3ec676SGleb Smirnoff uefivm 9225c3ec676SGleb Smirnoff.Ed 9238883128bSBjoern A. Zeeb.Pp 9248883128bSBjoern A. ZeebRun a UEFI virtual machine with a VNC display that is bound to all IPv6 9258883128bSBjoern A. Zeebaddresses on port 5900. 9268883128bSBjoern A. Zeeb.Bd -literal -offset indent 9278883128bSBjoern A. Zeebbhyve -c 2 -m 4G -w -H \\ 9288883128bSBjoern A. Zeeb -s 0,hostbridge \\ 9298883128bSBjoern A. Zeeb -s 4,ahci-hd,disk.img \\ 9308883128bSBjoern A. Zeeb -s 5,virtio-net,tap0 \\ 9318883128bSBjoern A. Zeeb -s 29,fbuf,tcp=[::]:5900,w=800,h=600 \\ 9328883128bSBjoern A. Zeeb -s 30,xhci,tablet \\ 9338883128bSBjoern A. Zeeb -s 31,lpc -l com1,stdio \\ 9348883128bSBjoern A. Zeeb -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\ 9358883128bSBjoern A. Zeeb uefivm 9368883128bSBjoern A. Zeeb.Ed 937866036f4SRebecca Cran.Pp 938866036f4SRebecca CranRun a UEFI virtual machine with a VARS file to save EFI variables. 939866036f4SRebecca CranNote that 940866036f4SRebecca Cran.Nm 941866036f4SRebecca Cranwill write guest modifications to the given VARS file. 942866036f4SRebecca CranBe sure to create a per-guest copy of the template VARS file from 943866036f4SRebecca Cran.Pa /usr . 944866036f4SRebecca Cran.Bd -literal -offset indent 945866036f4SRebecca Cranbhyve -c 2 -m 4g -w -H \\ 946866036f4SRebecca Cran -s 0,hostbridge \\ 947866036f4SRebecca Cran -s 31,lpc -p com1,stdio \\ 948866036f4SRebecca Cran -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI_CODE.fd,BHYVE_UEFI_VARS.fd 949866036f4SRebecca Cran uefivm 950866036f4SRebecca Cran.Ed 951b13e60daSPeter Grehan.Sh SEE ALSO 952b13e60daSPeter Grehan.Xr bhyve 4 , 953e90337e4SAleksandr Fedorov.Xr netgraph 4 , 954e90337e4SAleksandr Fedorov.Xr ng_socket 4 , 955b13e60daSPeter Grehan.Xr nmdm 4 , 956b13e60daSPeter Grehan.Xr vmm 4 , 957621b5090SJohn Baldwin.Xr bhyve_config 5 , 958b13e60daSPeter Grehan.Xr ethers 5 , 95905f7cd8bSJoel Dahl.Xr bhyvectl 8 , 96005f7cd8bSJoel Dahl.Xr bhyveload 8 9618d56c805SYuri Pankov.Pp 9628d56c805SYuri Pankov.Rs 9638d56c805SYuri Pankov.%A Intel 9648d56c805SYuri Pankov.%B 64 and IA-32 Architectures Software Developer’s Manual 9658d56c805SYuri Pankov.%V Volume 3 9668d56c805SYuri Pankov.Re 967b13e60daSPeter Grehan.Sh HISTORY 968b13e60daSPeter Grehan.Nm 969b13e60daSPeter Grehanfirst appeared in 970b13e60daSPeter Grehan.Fx 10.0 . 971b13e60daSPeter Grehan.Sh AUTHORS 97201c2b8acSBaptiste Daroussin.An Neel Natu Aq Mt neel@freebsd.org 97301c2b8acSBaptiste Daroussin.An Peter Grehan Aq Mt grehan@freebsd.org 974