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.\" 27*692dbfe9SVincenzo Maffione.Dd May 5, 2020 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 3577d208a3SMateusz Piotrowski.Op Fl AabCeHhPSuWwxY 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 48cd377eb3SJohn Baldwin.Op Fl G Ar port 4977d208a3SMateusz Piotrowski.Op Fl g Ar gdbport 5077d208a3SMateusz Piotrowski.Oo Fl l 5177d208a3SMateusz Piotrowski.Sm off 5277d208a3SMateusz Piotrowski.Cm help | Ar lpcdev Op Cm \&, Ar conf 5377d208a3SMateusz Piotrowski.Sm on 5477d208a3SMateusz Piotrowski.Oc 5577d208a3SMateusz Piotrowski.Oo Fl m 5677d208a3SMateusz Piotrowski.Sm off 5777d208a3SMateusz Piotrowski.Ar memsize 5877d208a3SMateusz Piotrowski.Oo 5977d208a3SMateusz Piotrowski.Cm K No | Cm k No | Cm M No | Cm m No | Cm G No | Cm g No | Cm T No | Cm t 6077d208a3SMateusz Piotrowski.Oc 6177d208a3SMateusz Piotrowski.Sm on 6277d208a3SMateusz Piotrowski.Oc 6377d208a3SMateusz Piotrowski.Op Fl p Ar vcpu Ns Cm \&: Ns Ar hostcpu 64483d953aSJohn Baldwin.Op Fl r Ar file 6577d208a3SMateusz Piotrowski.Oo Fl s 6677d208a3SMateusz Piotrowski.Sm off 6777d208a3SMateusz Piotrowski.Cm help | Ar slot Cm \&, Ar emulation Op Cm \&, Ar conf 6877d208a3SMateusz Piotrowski.Sm on 6977d208a3SMateusz Piotrowski.Oc 705749449dSJohn Baldwin.Op Fl U Ar uuid 71b13e60daSPeter Grehan.Ar vmname 72b13e60daSPeter Grehan.Sh DESCRIPTION 73b13e60daSPeter Grehan.Nm 747fca1ad5SGlen Barberis a hypervisor that runs guest operating systems inside a 75b13e60daSPeter Grehanvirtual machine. 76b13e60daSPeter Grehan.Pp 77b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and 78b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters. 79b13e60daSPeter Grehan.Pp 805c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must be loaded with 8184fe889cSChristian Brueffer.Xr bhyveload 8 82b13e60daSPeter Grehanor a similar boot loader before running 835c3ec676SGleb Smirnoff.Nm , 845c3ec676SGleb Smirnoffotherwise, it is enough to run 855c3ec676SGleb Smirnoff.Nm 865c3ec676SGleb Smirnoffwith a boot ROM of choice. 87b13e60daSPeter Grehan.Pp 88b13e60daSPeter Grehan.Nm 89b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor 90b13e60daSPeter Grehanexit is detected. 91b13e60daSPeter Grehan.Sh OPTIONS 92b13e60daSPeter Grehan.Bl -tag -width 10n 93b13e60daSPeter Grehan.It Fl a 949777ca20SNeel NatuThe guest's local APIC is configured in xAPIC mode. 9584fe889cSChristian BruefferThe xAPIC mode is the default setting so this option is redundant. 9684fe889cSChristian BruefferIt will be deprecated in a future version. 97b13e60daSPeter Grehan.It Fl A 98b13e60daSPeter GrehanGenerate ACPI tables. 99b13e60daSPeter GrehanRequired for 100b13e60daSPeter Grehan.Fx Ns /amd64 101b13e60daSPeter Grehanguests. 1025749449dSJohn Baldwin.It Fl b 1035749449dSJohn BaldwinEnable a low-level console device supported by 104aca4343cSEdward Tomasz Napierala.Fx 105aca4343cSEdward Tomasz Napieralakernels compiled with 1065749449dSJohn Baldwin.Cd "device bvmconsole" . 1075749449dSJohn BaldwinThis option will be deprecated in a future version. 10801d822d3SRodney W. Grimes.It Fl c Op Ar setting ... 10901d822d3SRodney W. GrimesNumber of guest virtual CPUs 11001d822d3SRodney W. Grimesand/or the CPU topology. 11101d822d3SRodney W. GrimesThe default value for each of 11201d822d3SRodney W. Grimes.Ar numcpus , 11301d822d3SRodney W. Grimes.Ar sockets , 11401d822d3SRodney W. Grimes.Ar cores , 11501d822d3SRodney W. Grimesand 11601d822d3SRodney W. Grimes.Ar threads 11701d822d3SRodney W. Grimesis 1. 11801d822d3SRodney W. GrimesThe current maximum number of guest virtual CPUs is 16. 11901d822d3SRodney W. GrimesIf 12001d822d3SRodney W. Grimes.Ar numcpus 12101d822d3SRodney W. Grimesis not specified then it will be calculated from the other arguments. 12201d822d3SRodney W. GrimesThe topology must be consistent in that the 12301d822d3SRodney W. Grimes.Ar numcpus 12401d822d3SRodney W. Grimesmust equal the product of 12501d822d3SRodney W. Grimes.Ar sockets , 12601d822d3SRodney W. Grimes.Ar cores , 12701d822d3SRodney W. Grimesand 12801d822d3SRodney W. Grimes.Ar threads . 12901d822d3SRodney W. GrimesIf a 13001d822d3SRodney W. Grimes.Ar setting 13101d822d3SRodney W. Grimesis specified more than once the last one has precedence. 1320dd10c00SNeel Natu.It Fl C 1330dd10c00SNeel NatuInclude guest memory in core file. 134cde1f5b8SJohn Baldwin.It Fl e 135cde1f5b8SJohn BaldwinForce 136cde1f5b8SJohn Baldwin.Nm 137cde1f5b8SJohn Baldwinto exit when a guest issues an access to an I/O port that is not emulated. 138cde1f5b8SJohn BaldwinThis is intended for debug purposes. 139b13e60daSPeter Grehan.It Fl g Ar gdbport 140b13e60daSPeter GrehanFor 1415749449dSJohn Baldwin.Fx 1425749449dSJohn Baldwinkernels compiled with 1435749449dSJohn Baldwin.Cd "device bvmdebug" , 144b13e60daSPeter Grehanallow a remote kernel kgdb to be relayed to the guest kernel gdb stub 145b13e60daSPeter Grehanvia a local IPv4 address and this port. 146b13e60daSPeter GrehanThis option will be deprecated in a future version. 147cd377eb3SJohn Baldwin.It Fl G Ar port 148cd377eb3SJohn BaldwinStart a debug server that uses the GDB protocol to export guest state to a 149cd377eb3SJohn Baldwindebugger. 150cd377eb3SJohn BaldwinAn IPv4 TCP socket will be bound to the supplied 151cd377eb3SJohn Baldwin.Ar port 152cd377eb3SJohn Baldwinto listen for debugger connections. 153cd377eb3SJohn BaldwinOnly a single debugger may be attached to the debug server at a time. 154cd377eb3SJohn BaldwinIf 155cd377eb3SJohn Baldwin.Ar port 156cd377eb3SJohn Baldwinbegins with 157cd377eb3SJohn Baldwin.Sq w , 158cd377eb3SJohn Baldwin.Nm 159cd377eb3SJohn Baldwinwill pause execution at the first instruction waiting for a debugger to attach. 160cde1f5b8SJohn Baldwin.It Fl h 161cde1f5b8SJohn BaldwinPrint help message and exit. 162cde1f5b8SJohn Baldwin.It Fl H 163cde1f5b8SJohn BaldwinYield the virtual CPU thread when a HLT instruction is detected. 164cde1f5b8SJohn BaldwinIf this option is not specified, virtual CPUs will use 100% of a host CPU. 1651aa56353SMarcelo Araujo.It Fl l Op Ar help|lpcdev Ns Op , Ns Ar conf 166cde1f5b8SJohn BaldwinAllow devices behind the LPC PCI-ISA bridge to be configured. 1679b1aa8d6SNeel NatuThe only supported devices are the TTY-class devices 1689b1aa8d6SNeel Natu.Ar com1 169cde1f5b8SJohn Baldwinand 1709b1aa8d6SNeel Natu.Ar com2 1719b1aa8d6SNeel Natuand the boot ROM device 1729b1aa8d6SNeel Natu.Ar bootrom . 1731aa56353SMarcelo Araujo.Pp 1741aa56353SMarcelo Araujo.Ar help 1751aa56353SMarcelo Araujoprint a list of supported LPC devices. 1766ee52c65SRoman Bogorodskiy.It Fl m Ar memsize Ns Op Ar K|k|M|m|G|g|T|t 177cde1f5b8SJohn BaldwinGuest physical memory size in bytes. 178cde1f5b8SJohn BaldwinThis must be the same size that was given to 179cde1f5b8SJohn Baldwin.Xr bhyveload 8 . 180cde1f5b8SJohn Baldwin.Pp 181cde1f5b8SJohn BaldwinThe size argument may be suffixed with one of K, M, G or T (either upper 182cde1f5b8SJohn Baldwinor lower case) to indicate a multiple of kilobytes, megabytes, gigabytes, 183cde1f5b8SJohn Baldwinor terabytes. 184cde1f5b8SJohn BaldwinIf no suffix is given, the value is assumed to be in megabytes. 1856ee52c65SRoman Bogorodskiy.Pp 1866ee52c65SRoman Bogorodskiy.Ar memsize 1876ee52c65SRoman Bogorodskiydefaults to 256M. 1889b6155a2SNeel Natu.It Fl p Ar vcpu:hostcpu 1899b6155a2SNeel NatuPin guest's virtual CPU 1909b6155a2SNeel Natu.Em vcpu 1919b6155a2SNeel Natuto 1929b6155a2SNeel Natu.Em hostcpu . 193b13e60daSPeter Grehan.It Fl P 194b13e60daSPeter GrehanForce the guest virtual CPU to exit when a PAUSE instruction is detected. 195483d953aSJohn Baldwin.It Fl r Ar file 196483d953aSJohn BaldwinResume a guest from a snapshot. 197483d953aSJohn BaldwinThe guest memory contents are restored from 198483d953aSJohn Baldwin.Ar file , 199483d953aSJohn Baldwinand the guest device and vCPU state are restored from the file 200483d953aSJohn Baldwin.Dq Ar file Ns .kern . 201483d953aSJohn Baldwin.Pp 202483d953aSJohn BaldwinNote that the current snapshot file format requires that the configuration of 203483d953aSJohn Baldwindevices in the new VM match the VM from which the snapshot was taken by specifying the 204483d953aSJohn Baldwinsame 205483d953aSJohn Baldwin.Op Fl s 206483d953aSJohn Baldwinand 207483d953aSJohn Baldwin.Op Fl l 208483d953aSJohn Baldwinoptions. 209483d953aSJohn BaldwinThe count of vCPUs and memory configuration are read from the snapshot. 2101aa56353SMarcelo Araujo.It Fl s Op Ar help|slot,emulation Ns Op , Ns Ar conf 211b13e60daSPeter GrehanConfigure a virtual PCI slot and function. 212b13e60daSPeter Grehan.Pp 21384fe889cSChristian Brueffer.Nm 214b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to 215b13e60daSPeter Grehanslots on the bus. 216b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions 217b13e60daSPeter Grehanper slot. 218b13e60daSPeter Grehan.Bl -tag -width 10n 2191aa56353SMarcelo Araujo.It Ar help 2201aa56353SMarcelo Araujoprint a list of supported PCI devices. 221b13e60daSPeter Grehan.It Ar slot 22206db1b4aSNeel Natu.Ar pcislot[:function] 22306db1b4aSNeel Natu.Ar bus:pcislot:function 224b13e60daSPeter Grehan.Pp 225b13e60daSPeter GrehanThe 226b13e60daSPeter Grehan.Ar pcislot 22784fe889cSChristian Brueffervalue is 0 to 31. 22884fe889cSChristian BruefferThe optional 22984fe889cSChristian Brueffer.Ar function 23084fe889cSChristian Brueffervalue is 0 to 7. 23184fe889cSChristian BruefferThe optional 23206db1b4aSNeel Natu.Ar bus 23306db1b4aSNeel Natuvalue is 0 to 255. 23484fe889cSChristian BruefferIf not specified, the 23584fe889cSChristian Brueffer.Ar function 23684fe889cSChristian Brueffervalue defaults to 0. 23784fe889cSChristian BruefferIf not specified, the 23884fe889cSChristian Brueffer.Ar bus 23984fe889cSChristian Brueffervalue defaults to 0. 240b13e60daSPeter Grehan.It Ar emulation 241b13e60daSPeter Grehan.Bl -tag -width 10n 242b13e60daSPeter Grehan.It Li hostbridge | Li amd_hostbridge 243b13e60daSPeter Grehan.Pp 244b13e60daSPeter GrehanProvide a simple host bridge. 245b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest 246b13e60daSPeter Grehanoperating systems. 247b13e60daSPeter GrehanThe 248b13e60daSPeter Grehan.Li amd_hostbridge 249b13e60daSPeter Grehanemulation is identical but uses a PCI vendor ID of 250b13e60daSPeter Grehan.Li AMD . 251b13e60daSPeter Grehan.It Li passthru 252b13e60daSPeter GrehanPCI pass-through device. 253b13e60daSPeter Grehan.It Li virtio-net 254b13e60daSPeter GrehanVirtio network interface. 255a8be8e5eSRemko Lodder.It Li virtio-blk 256b13e60daSPeter GrehanVirtio block storage interface. 257f9c005a1SMarcelo Araujo.It Li virtio-scsi 258f9c005a1SMarcelo AraujoVirtio SCSI interface. 2599d0c4e17SPeter Grehan.It Li virtio-rnd 2609d0c4e17SPeter GrehanVirtio RNG interface. 2615121b6ccSRoman Bogorodskiy.It Li virtio-console 2625121b6ccSRoman BogorodskiyVirtio console interface, which exposes multiple ports 2635121b6ccSRoman Bogorodskiyto the guest in the form of simple char devices for simple IO 2645121b6ccSRoman Bogorodskiybetween the guest and host userspaces. 265098f5155SAlexander Motin.It Li ahci 266d6099860SMaxim KonovalovAHCI controller attached to arbitrary devices. 267b13e60daSPeter Grehan.It Li ahci-cd 268b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD. 269b13e60daSPeter Grehan.It Li ahci-hd 270b13e60daSPeter GrehanAHCI controller attached to a SATA hard-drive. 2719e749f25SAlexander Motin.It Li e1000 2729e749f25SAlexander MotinIntel e82545 network interface. 273b13e60daSPeter Grehan.It Li uart 274b13e60daSPeter GrehanPCI 16550 serial device. 275b13e60daSPeter Grehan.It Li lpc 2769b1aa8d6SNeel NatuLPC PCI-ISA bridge with COM1 and COM2 16550 serial ports and a boot ROM. 2779b1aa8d6SNeel NatuThe LPC bridge emulation can only be configured on bus 0. 2786c87a2c0SGleb Smirnoff.It Li fbuf 2796c87a2c0SGleb SmirnoffRaw framebuffer device attached to VNC server. 2806c87a2c0SGleb Smirnoff.It Li xhci 2815c3ec676SGleb SmirnoffeXtensible Host Controller Interface (xHCI) USB controller. 282c066c68cSMarcelo Araujo.It Li nvme 283c066c68cSMarcelo AraujoNVM Express (NVMe) controller. 28436f9f044SWarner Losh.It Li hda 28536f9f044SWarner LoshHigh Definition Audio Controller. 286b13e60daSPeter Grehan.El 287b13e60daSPeter Grehan.It Op Ar conf 288b13e60daSPeter GrehanThis optional parameter describes the backend for device emulations. 289b13e60daSPeter GrehanIf 290b13e60daSPeter Grehan.Ar conf 291b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be 292b13e60daSPeter Grehanconsidered unconnected. 293b13e60daSPeter Grehan.Pp 294b13e60daSPeter GrehanNetwork devices: 295b13e60daSPeter Grehan.Bl -tag -width 10n 296*692dbfe9SVincenzo Maffione.It Ar tapN Ns Oo , Ns Ar mac=xx:xx:xx:xx:xx:xx Oc Ns Oo , Ns Ar mtu=N Oc 297*692dbfe9SVincenzo Maffione.It Ar vmnetN Ns Oo , Ns Ar mac=xx:xx:xx:xx:xx:xx Oc Ns Oo , Ns Ar mtu=N Oc 298b13e60daSPeter Grehan.Pp 299b13e60daSPeter GrehanIf 300b13e60daSPeter Grehan.Ar mac 301b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the 302b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and 303b13e60daSPeter Grehanthe device name. 304b13e60daSPeter Grehan.Pp 305b13e60daSPeter GrehanThe MAC address is an ASCII string in 306b13e60daSPeter Grehan.Xr ethers 5 307b13e60daSPeter Grehanformat. 308*692dbfe9SVincenzo Maffione.Pp 309*692dbfe9SVincenzo MaffioneWith virtio-net devices, the 310*692dbfe9SVincenzo Maffione.Ar mtu 311*692dbfe9SVincenzo Maffioneparameter can be specified to inform the guest about the largest MTU 312*692dbfe9SVincenzo Maffionethat should be allowed, expressed in bytes. 313b13e60daSPeter Grehan.El 314b13e60daSPeter Grehan.Pp 315b13e60daSPeter GrehanBlock storage devices: 316b13e60daSPeter Grehan.Bl -tag -width 10n 3174e43c1e8SNeel Natu.It Pa /filename Ns Oo , Ns Ar block-device-options Oc 3184e43c1e8SNeel Natu.It Pa /dev/xxx Ns Oo , Ns Ar block-device-options Oc 3194e43c1e8SNeel Natu.El 3204e43c1e8SNeel Natu.Pp 3214e43c1e8SNeel NatuThe 3224e43c1e8SNeel Natu.Ar block-device-options 3234e43c1e8SNeel Natuare: 324b13e60daSPeter Grehan.Bl -tag -width 8n 325b13e60daSPeter Grehan.It Li nocache 326b13e60daSPeter GrehanOpen the file with 327b13e60daSPeter Grehan.Dv O_DIRECT . 328b13e60daSPeter Grehan.It Li direct 329b13e60daSPeter GrehanOpen the file using 330b13e60daSPeter Grehan.Dv O_SYNC . 331b13e60daSPeter Grehan.It Li ro 332b13e60daSPeter GrehanForce the file to be opened read-only. 3334e43c1e8SNeel Natu.It Li sectorsize= Ns Ar logical Ns Oo / Ns Ar physical Oc 3344e43c1e8SNeel NatuSpecify the logical and physical sector sizes of the emulated disk. 3354e43c1e8SNeel NatuThe physical sector size is optional and is equal to the logical sector size 3364e43c1e8SNeel Natuif not explicitly specified. 337b13e60daSPeter Grehan.El 338b13e60daSPeter Grehan.Pp 339f9c005a1SMarcelo AraujoSCSI devices: 340f9c005a1SMarcelo Araujo.Bl -tag -width 10n 34149f87822SAlexander Motin.It Pa /dev/cam/ctl Ns Oo Ar pp . Ns Ar vp Oc Ns Oo , Ns Ar scsi-device-options Oc 34249f87822SAlexander Motin.El 34349f87822SAlexander Motin.Pp 34449f87822SAlexander MotinThe 34549f87822SAlexander Motin.Ar scsi-device-options 34649f87822SAlexander Motinare: 34749f87822SAlexander Motin.Bl -tag -width 10n 34849f87822SAlexander Motin.It Li iid= Ns Ar IID 34949f87822SAlexander MotinInitiator ID to use when sending requests to specified CTL port. 35049f87822SAlexander MotinThe default value is 0. 351f9c005a1SMarcelo Araujo.El 352f9c005a1SMarcelo Araujo.Pp 353b13e60daSPeter GrehanTTY devices: 354b13e60daSPeter Grehan.Bl -tag -width 10n 355b13e60daSPeter Grehan.It Li stdio 356b13e60daSPeter GrehanConnect the serial port to the standard input and output of 35784fe889cSChristian Bruefferthe 35884fe889cSChristian Brueffer.Nm 35984fe889cSChristian Bruefferprocess. 360b13e60daSPeter Grehan.It Pa /dev/xxx 361b13e60daSPeter GrehanUse the host TTY device for serial port I/O. 362b13e60daSPeter Grehan.El 363b13e60daSPeter Grehan.Pp 3649b1aa8d6SNeel NatuBoot ROM device: 3659b1aa8d6SNeel Natu.Bl -tag -width 10n 3669b1aa8d6SNeel Natu.It Pa romfile 3679b1aa8d6SNeel NatuMap 3689b1aa8d6SNeel Natu.Ar romfile 3699b1aa8d6SNeel Natuin the guest address space reserved for boot firmware. 3709b1aa8d6SNeel Natu.El 3719b1aa8d6SNeel Natu.Pp 372b13e60daSPeter GrehanPass-through devices: 373b13e60daSPeter Grehan.Bl -tag -width 10n 374b13e60daSPeter Grehan.It Ns Ar slot Ns / Ns Ar bus Ns / Ns Ar function 375b13e60daSPeter GrehanConnect to a PCI device on the host at the selector described by 376b13e60daSPeter Grehan.Ar slot , 377b13e60daSPeter Grehan.Ar bus , 378b13e60daSPeter Grehanand 379b13e60daSPeter Grehan.Ar function 380b13e60daSPeter Grehannumbers. 381b13e60daSPeter Grehan.El 382b13e60daSPeter Grehan.Pp 3839b1aa8d6SNeel NatuGuest memory must be wired using the 3849b1aa8d6SNeel Natu.Fl S 3859b1aa8d6SNeel Natuoption when a pass-through device is configured. 3869b1aa8d6SNeel Natu.Pp 387b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the 388a9258f9bSWarren Block.Va pptdevs 389b13e60daSPeter Grehanloader variable as described in 390b13e60daSPeter Grehan.Xr vmm 4 . 3915121b6ccSRoman Bogorodskiy.Pp 3925121b6ccSRoman BogorodskiyVirtio console devices: 3935121b6ccSRoman Bogorodskiy.Bl -tag -width 10n 3945121b6ccSRoman Bogorodskiy.It Li port1= Ns Pa /path/to/port1.sock Ns ,anotherport= Ns Pa ... 3955121b6ccSRoman BogorodskiyA maximum of 16 ports per device can be created. 3965121b6ccSRoman BogorodskiyEvery port is named and corresponds to a Unix domain socket created by 3975121b6ccSRoman Bogorodskiy.Nm . 3985121b6ccSRoman Bogorodskiy.Nm 3995121b6ccSRoman Bogorodskiyaccepts at most one connection per port at a time. 4005121b6ccSRoman Bogorodskiy.Pp 4015121b6ccSRoman BogorodskiyLimitations: 4025121b6ccSRoman Bogorodskiy.Bl -bullet -offset 2n 4035121b6ccSRoman Bogorodskiy.It 4045121b6ccSRoman BogorodskiyDue to lack of destructors in 4055121b6ccSRoman Bogorodskiy.Nm , 4065121b6ccSRoman Bogorodskiysockets on the filesystem must be cleaned up manually after 4075121b6ccSRoman Bogorodskiy.Nm 4085121b6ccSRoman Bogorodskiyexits. 4095121b6ccSRoman Bogorodskiy.It 4105121b6ccSRoman BogorodskiyThere is no way to use the "console port" feature, nor the console port 4110ee3a4b4SRoman Bogorodskiyresize at present. 4125121b6ccSRoman Bogorodskiy.It 4130ee3a4b4SRoman BogorodskiyEmergency write is advertised, but no-op at present. 4145121b6ccSRoman Bogorodskiy.El 4155121b6ccSRoman Bogorodskiy.El 4166c87a2c0SGleb Smirnoff.Pp 4175c3ec676SGleb SmirnoffFramebuffer devices: 4185c3ec676SGleb Smirnoff.Bl -tag -width 10n 4198d56c805SYuri Pankov.It Xo 4208d56c805SYuri Pankov.Oo rfb= Ns Oo Ar IP\&: Oc Ns Ar port Oc Ns Oo ,w= Ns Ar width Oc Ns Oo ,h= Ns 4218d56c805SYuri Pankov.Ar height Oc Ns Oo ,vga= Ns Ar vgaconf Oc Ns Oo Ns ,wait Oc Ns Oo ,password= Ns 4228d56c805SYuri Pankov.Ar password Oc 4238d56c805SYuri Pankov.Xc 4245c3ec676SGleb Smirnoff.Bl -tag -width 8n 4258883128bSBjoern A. Zeeb.It Ar IPv4:port No or Ar [IPv6%zone]:port 4265c3ec676SGleb SmirnoffAn 4275c3ec676SGleb Smirnoff.Ar IP 4285c3ec676SGleb Smirnoffaddress and a 4295c3ec676SGleb Smirnoff.Ar port 4305c3ec676SGleb SmirnoffVNC should listen on. 4316c87a2c0SGleb SmirnoffThe default is to listen on localhost IPv4 address and default VNC port 5900. 4328883128bSBjoern A. ZeebAn IPv6 address must be enclosed in square brackets and may contain an 4337d9545fcSRodney W. Grimesoptional zone identifier. 4345c3ec676SGleb Smirnoff.It Ar width No and Ar height 4355c3ec676SGleb SmirnoffA display resolution, width and height, respectively. 4365c3ec676SGleb SmirnoffIf not specified, a default resolution of 1024x768 pixels will be used. 4375c3ec676SGleb SmirnoffMinimal supported resolution is 640x480 pixels, 4385c3ec676SGleb Smirnoffand maximum is 1920x1200 pixels. 4395c3ec676SGleb Smirnoff.It Ar vgaconf 4405c3ec676SGleb SmirnoffPossible values for this option are 4415c3ec676SGleb Smirnoff.Dq io 4425c3ec676SGleb Smirnoff(default), 4435c3ec676SGleb Smirnoff.Dq on 4445c3ec676SGleb Smirnoff, and 4455c3ec676SGleb Smirnoff.Dq off . 4465c3ec676SGleb SmirnoffPCI graphics cards have a dual personality in that they are 4475c3ec676SGleb Smirnoffstandard PCI devices with BAR addressing, but may also 4485c3ec676SGleb Smirnoffimplicitly decode legacy VGA I/O space 4495c3ec676SGleb Smirnoff.Pq Ad 0x3c0-3df 4505c3ec676SGleb Smirnoffand memory space 4515c3ec676SGleb Smirnoff.Pq 64KB at Ad 0xA0000 . 4525c3ec676SGleb SmirnoffThe default 4535c3ec676SGleb Smirnoff.Dq io 4548d56c805SYuri Pankovoption should be used for guests that attempt to issue BIOS calls which result 4558d56c805SYuri Pankovin I/O port queries, and fail to boot if I/O decode is disabled. 4565c3ec676SGleb Smirnoff.Pp 4575c3ec676SGleb SmirnoffThe 4585c3ec676SGleb Smirnoff.Dq on 4595c3ec676SGleb Smirnoffoption should be used along with the CSM BIOS capability in UEFI 4605c3ec676SGleb Smirnoffto boot traditional BIOS guests that require the legacy VGA I/O and 4615c3ec676SGleb Smirnoffmemory regions to be available. 4625c3ec676SGleb Smirnoff.Pp 4635c3ec676SGleb SmirnoffThe 4645c3ec676SGleb Smirnoff.Dq off 4655c3ec676SGleb Smirnoffoption should be used for the UEFI guests that assume that 4665c3ec676SGleb SmirnoffVGA adapter is present if they detect the I/O ports. 4675c3ec676SGleb SmirnoffAn example of such a guest is 4685c3ec676SGleb Smirnoff.Ox 4695c3ec676SGleb Smirnoffin UEFI mode. 4705c3ec676SGleb Smirnoff.Pp 4715c3ec676SGleb SmirnoffPlease refer to the 4725c3ec676SGleb Smirnoff.Nm 4735c3ec676SGleb Smirnoff.Fx 4745c3ec676SGleb Smirnoffwiki page 4755c3ec676SGleb Smirnoff.Pq Lk https://wiki.freebsd.org/bhyve 4765c3ec676SGleb Smirnofffor configuration notes of particular guests. 4775c3ec676SGleb Smirnoff.It wait 4785c3ec676SGleb SmirnoffInstruct 4795c3ec676SGleb Smirnoff.Nm 4808d56c805SYuri Pankovto only boot upon the initiation of a VNC connection, simplifying the 4818d56c805SYuri Pankovinstallation of operating systems that require immediate keyboard input. 4825c3ec676SGleb SmirnoffThis can be removed for post-installation use. 483f4d34383SMarcelo Araujo.It password 484f4d34383SMarcelo AraujoThis type of authentication is known to be cryptographically weak and is not 485f4d34383SMarcelo Araujointended for use on untrusted networks. 486f4d34383SMarcelo AraujoMany implementations will want to use stronger security, such as running 487f4d34383SMarcelo Araujothe session over an encrypted channel provided by IPsec or SSH. 4885c3ec676SGleb Smirnoff.El 4896c87a2c0SGleb Smirnoff.El 4906c87a2c0SGleb Smirnoff.Pp 4915c3ec676SGleb SmirnoffxHCI USB devices: 4925c3ec676SGleb Smirnoff.Bl -tag -width 10n 4935c3ec676SGleb Smirnoff.It Li tablet 4945c3ec676SGleb SmirnoffA USB tablet device which provides precise cursor synchronization 4955c3ec676SGleb Smirnoffwhen using VNC. 4966c87a2c0SGleb Smirnoff.El 497c066c68cSMarcelo Araujo.Pp 498c066c68cSMarcelo AraujoNVMe devices: 499c066c68cSMarcelo Araujo.Bl -tag -width 10n 500c066c68cSMarcelo Araujo.It Li devpath 501c066c68cSMarcelo AraujoAccepted device paths are: 502c066c68cSMarcelo Araujo.Ar /dev/blockdev 503c066c68cSMarcelo Araujoor 504c066c68cSMarcelo Araujo.Ar /path/to/image 505c066c68cSMarcelo Araujoor 506c066c68cSMarcelo Araujo.Ar ram=size_in_MiB . 507c066c68cSMarcelo Araujo.It Li maxq 508c066c68cSMarcelo AraujoMax number of queues. 509c066c68cSMarcelo Araujo.It Li qsz 510c066c68cSMarcelo AraujoMax elements in each queue. 511c066c68cSMarcelo Araujo.It Li ioslots 512c066c68cSMarcelo AraujoMax number of concurrent I/O requests. 513c066c68cSMarcelo Araujo.It Li sectsz 514c066c68cSMarcelo AraujoSector size (defaults to blockif sector size). 515c066c68cSMarcelo Araujo.It Li ser 516c066c68cSMarcelo AraujoSerial number with maximum 20 characters. 517c066c68cSMarcelo Araujo.El 51836f9f044SWarner Losh.Pp 51936f9f044SWarner LoshHD Audio devices: 52036f9f044SWarner Losh.Bl -tag -width 10n 52136f9f044SWarner Losh.It Li play 52236f9f044SWarner LoshPlayback device, typically 52336f9f044SWarner Losh.Ar /dev/dsp0 . 52436f9f044SWarner Losh.It Li rec 52536f9f044SWarner LoshRecording device, typically 52636f9f044SWarner Losh.Ar /dev/dsp0 . 52736f9f044SWarner Losh.El 528b13e60daSPeter Grehan.El 5299b1aa8d6SNeel Natu.It Fl S 5309b1aa8d6SNeel NatuWire guest memory. 531c9747678SNeel Natu.It Fl u 532c9747678SNeel NatuRTC keeps UTC time. 5335749449dSJohn Baldwin.It Fl U Ar uuid 5345749449dSJohn BaldwinSet the universally unique identifier 5355749449dSJohn Baldwin.Pq UUID 5365749449dSJohn Baldwinin the guest's System Management BIOS System Information structure. 5375749449dSJohn BaldwinBy default a UUID is generated from the host's hostname and 5385749449dSJohn Baldwin.Ar vmname . 539851d84f1SNeel Natu.It Fl w 54084fe889cSChristian BruefferIgnore accesses to unimplemented Model Specific Registers (MSRs). 54184fe889cSChristian BruefferThis is intended for debug purposes. 542cde1f5b8SJohn Baldwin.It Fl W 543cde1f5b8SJohn BaldwinForce virtio PCI device emulations to use MSI interrupts instead of MSI-X 544cde1f5b8SJohn Baldwininterrupts. 5459777ca20SNeel Natu.It Fl x 5469777ca20SNeel NatuThe guest's local APIC is configured in x2APIC mode. 547b100acf2SNeel Natu.It Fl Y 548b100acf2SNeel NatuDisable MPtable generation. 549b13e60daSPeter Grehan.It Ar vmname 550b13e60daSPeter GrehanAlphanumeric name of the guest. 551b13e60daSPeter GrehanThis should be the same as that created by 552b13e60daSPeter Grehan.Xr bhyveload 8 . 553b13e60daSPeter Grehan.El 554cd377eb3SJohn Baldwin.Sh DEBUG SERVER 555cd377eb3SJohn BaldwinThe current debug server provides limited support for debuggers. 556cd377eb3SJohn Baldwin.Ss Registers 557cd377eb3SJohn BaldwinEach virtual CPU is exposed to the debugger as a thread. 558cd377eb3SJohn Baldwin.Pp 559cd377eb3SJohn BaldwinGeneral purpose registers can be queried for each virtual CPU, but other 560cd377eb3SJohn Baldwinregisters such as floating-point and system registers cannot be queried. 561cd377eb3SJohn Baldwin.Ss Memory 562976ba8c6SJohn BaldwinMemory (including memory mapped I/O regions) can be read and written by the debugger. 5638d56c805SYuri PankovMemory operations use virtual addresses that are resolved to physical addresses 5648d56c805SYuri Pankovvia the current virtual CPU's active address translation. 565cd377eb3SJohn Baldwin.Ss Control 566cd377eb3SJohn BaldwinThe running guest can be interrupted by the debugger at any time 567cd377eb3SJohn Baldwin.Pq for example, by pressing Ctrl-C in the debugger . 568cd377eb3SJohn Baldwin.Pp 569cd377eb3SJohn BaldwinSingle stepping is only supported on Intel CPUs supporting the MTRAP VM exit. 570cd377eb3SJohn Baldwin.Pp 571cbd03a9dSJohn BaldwinBreakpoints are supported on Intel CPUs that support single stepping. 572cbd03a9dSJohn BaldwinNote that continuing from a breakpoint while interrupts are enabled in the 573cbd03a9dSJohn Baldwinguest may not work as expected due to timer interrupts firing while single 574cbd03a9dSJohn Baldwinstepping over the breakpoint. 575c2202d41SRoman Bogorodskiy.Sh SIGNAL HANDLING 576c2202d41SRoman Bogorodskiy.Nm 577c2202d41SRoman Bogorodskiydeals with the following signals: 578c2202d41SRoman Bogorodskiy.Pp 579c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact 580c2202d41SRoman Bogorodskiy.It SIGTERM 581c2202d41SRoman BogorodskiyTrigger ACPI poweroff for a VM 582c2202d41SRoman Bogorodskiy.El 583c2202d41SRoman Bogorodskiy.Sh EXIT STATUS 584c2202d41SRoman BogorodskiyExit status indicates how the VM was terminated: 585c2202d41SRoman Bogorodskiy.Pp 586c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact 587c2202d41SRoman Bogorodskiy.It 0 588c2202d41SRoman Bogorodskiyrebooted 589c2202d41SRoman Bogorodskiy.It 1 590c2202d41SRoman Bogorodskiypowered off 591c2202d41SRoman Bogorodskiy.It 2 592c2202d41SRoman Bogorodskiyhalted 593c2202d41SRoman Bogorodskiy.It 3 594c2202d41SRoman Bogorodskiytriple fault 595989e062bSMarcelo Araujo.It 4 596989e062bSMarcelo Araujoexited due to an error 597c2202d41SRoman Bogorodskiy.El 598b13e60daSPeter Grehan.Sh EXAMPLES 5995c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must have been loaded with 60084fe889cSChristian Brueffer.Xr bhyveload 8 601b13e60daSPeter Grehanor a similar boot loader before 602b13e60daSPeter Grehan.Xr bhyve 4 603b13e60daSPeter Grehancan be run. 6045c3ec676SGleb SmirnoffOtherwise, the boot loader is not needed. 605b13e60daSPeter Grehan.Pp 606b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio 607b13e60daSPeter Grehanblock device backed by the 608b13e60daSPeter Grehan.Pa /my/image 609b13e60daSPeter Grehanfilesystem image, and a serial port for the console: 610b13e60daSPeter Grehan.Bd -literal -offset indent 611b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\ 612b13e60daSPeter Grehan -l com1,stdio -A -H -P -m 1G vm1 613b13e60daSPeter Grehan.Ed 614b13e60daSPeter Grehan.Pp 615b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which 616b13e60daSPeter Grehanhas a MAC address specified: 617b13e60daSPeter Grehan.Bd -literal -offset indent 618b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\ 619b13e60daSPeter Grehan -s 2:1,virtio-net,tap1 \\ 620b13e60daSPeter Grehan -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\ 621b13e60daSPeter Grehan -s 3,virtio-blk,/my/image -l com1,stdio \\ 622b13e60daSPeter Grehan -A -H -P -m 24G bigvm 623b13e60daSPeter Grehan.Ed 624b13e60daSPeter Grehan.Pp 625b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI 626b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console 627b13e60daSPeter Grehanport connected to an 628b13e60daSPeter Grehan.Xr nmdm 4 62984fe889cSChristian Brueffernull-modem device. 630b13e60daSPeter Grehan.Bd -literal -offset indent 631a7ab1463SAlexander Motinbhyve -c 4 \\ 632b13e60daSPeter Grehan -s 0,amd_hostbridge -s 1,lpc \\ 633098f5155SAlexander Motin -s 1:0,ahci,hd:/images/disk.1,hd:/images/disk.2,\\ 634098f5155SAlexander Motinhd:/images/disk.3,hd:/images/disk.4,\\ 635098f5155SAlexander Motinhd:/images/disk.5,hd:/images/disk.6,\\ 636098f5155SAlexander Motinhd:/images/disk.7,hd:/images/disk.8,\\ 637098f5155SAlexander Motincd:/images/install.iso \\ 638b13e60daSPeter Grehan -s 3,virtio-net,tap0 \\ 639b13e60daSPeter Grehan -l com1,/dev/nmdm0A \\ 640b13e60daSPeter Grehan -A -H -P -m 8G 641b13e60daSPeter Grehan.Ed 6425c3ec676SGleb Smirnoff.Pp 6435c3ec676SGleb SmirnoffRun a UEFI virtual machine with a display resolution of 800 by 600 pixels 6445c3ec676SGleb Smirnoffthat can be accessed via VNC at: 0.0.0.0:5900. 6455c3ec676SGleb Smirnoff.Bd -literal -offset indent 6465c3ec676SGleb Smirnoffbhyve -c 2 -m 4G -w -H \\ 6475c3ec676SGleb Smirnoff -s 0,hostbridge \\ 6485c3ec676SGleb Smirnoff -s 3,ahci-cd,/path/to/uefi-OS-install.iso \\ 6495c3ec676SGleb Smirnoff -s 4,ahci-hd,disk.img \\ 6505c3ec676SGleb Smirnoff -s 5,virtio-net,tap0 \\ 6515c3ec676SGleb Smirnoff -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \\ 6525c3ec676SGleb Smirnoff -s 30,xhci,tablet \\ 6535c3ec676SGleb Smirnoff -s 31,lpc -l com1,stdio \\ 6545c3ec676SGleb Smirnoff -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\ 6555c3ec676SGleb Smirnoff uefivm 6565c3ec676SGleb Smirnoff.Ed 6578883128bSBjoern A. Zeeb.Pp 6588883128bSBjoern A. ZeebRun a UEFI virtual machine with a VNC display that is bound to all IPv6 6598883128bSBjoern A. Zeebaddresses on port 5900. 6608883128bSBjoern A. Zeeb.Bd -literal -offset indent 6618883128bSBjoern A. Zeebbhyve -c 2 -m 4G -w -H \\ 6628883128bSBjoern A. Zeeb -s 0,hostbridge \\ 6638883128bSBjoern A. Zeeb -s 4,ahci-hd,disk.img \\ 6648883128bSBjoern A. Zeeb -s 5,virtio-net,tap0 \\ 6658883128bSBjoern A. Zeeb -s 29,fbuf,tcp=[::]:5900,w=800,h=600 \\ 6668883128bSBjoern A. Zeeb -s 30,xhci,tablet \\ 6678883128bSBjoern A. Zeeb -s 31,lpc -l com1,stdio \\ 6688883128bSBjoern A. Zeeb -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\ 6698883128bSBjoern A. Zeeb uefivm 6708883128bSBjoern A. Zeeb.Ed 671b13e60daSPeter Grehan.Sh SEE ALSO 672b13e60daSPeter Grehan.Xr bhyve 4 , 673b13e60daSPeter Grehan.Xr nmdm 4 , 674b13e60daSPeter Grehan.Xr vmm 4 , 675b13e60daSPeter Grehan.Xr ethers 5 , 67605f7cd8bSJoel Dahl.Xr bhyvectl 8 , 67705f7cd8bSJoel Dahl.Xr bhyveload 8 6788d56c805SYuri Pankov.Pp 6798d56c805SYuri Pankov.Rs 6808d56c805SYuri Pankov.%A Intel 6818d56c805SYuri Pankov.%B 64 and IA-32 Architectures Software Developer’s Manual 6828d56c805SYuri Pankov.%V Volume 3 6838d56c805SYuri Pankov.Re 684b13e60daSPeter Grehan.Sh HISTORY 685b13e60daSPeter Grehan.Nm 686b13e60daSPeter Grehanfirst appeared in 687b13e60daSPeter Grehan.Fx 10.0 . 688b13e60daSPeter Grehan.Sh AUTHORS 68901c2b8acSBaptiste Daroussin.An Neel Natu Aq Mt neel@freebsd.org 69001c2b8acSBaptiste Daroussin.An Peter Grehan Aq Mt grehan@freebsd.org 691