xref: /freebsd/usr.sbin/bhyve/bhyve.8 (revision a9258f9b7fbb4a0153d5566efc0face5739a59f6)
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.\"
2736f9f044SWarner Losh.Dd June 24, 2019
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
359b1aa8d6SNeel Natu.Op Fl abehuwxACHPSWY
3601d822d3SRodney W. Grimes.Oo
3701d822d3SRodney W. Grimes.Fl c\~ Ns
3801d822d3SRodney W. Grimes.Oo
3901d822d3SRodney W. Grimes.Op Ar cpus= Ns
4001d822d3SRodney W. Grimes.Ar numcpus Ns
4101d822d3SRodney W. Grimes.Oc Ns
4201d822d3SRodney W. Grimes.Op Ar ,sockets=n Ns
4301d822d3SRodney W. Grimes.Op Ar ,cores=n Ns
4401d822d3SRodney W. Grimes.Op Ar ,threads=n
4501d822d3SRodney W. Grimes.Oc
46b13e60daSPeter Grehan.Op Fl g Ar gdbport
471aa56353SMarcelo Araujo.Op Fl l Ar help|lpcdev Ns Op , Ns Ar conf
486ee52c65SRoman Bogorodskiy.Op Fl m Ar memsize Ns Op Ar K|k|M|m|G|g|T|t
499b6155a2SNeel Natu.Op Fl p Ar vcpu:hostcpu
501aa56353SMarcelo Araujo.Op Fl s Ar help|slot,emulation Ns Op , Ns Ar conf
51cd377eb3SJohn Baldwin.Op Fl G Ar port
525749449dSJohn Baldwin.Op Fl U Ar uuid
53b13e60daSPeter Grehan.Ar vmname
54b13e60daSPeter Grehan.Sh DESCRIPTION
55b13e60daSPeter Grehan.Nm
567fca1ad5SGlen Barberis a hypervisor that runs guest operating systems inside a
57b13e60daSPeter Grehanvirtual machine.
58b13e60daSPeter Grehan.Pp
59b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and
60b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters.
61b13e60daSPeter Grehan.Pp
625c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must be loaded with
6384fe889cSChristian Brueffer.Xr bhyveload 8
64b13e60daSPeter Grehanor a similar boot loader before running
655c3ec676SGleb Smirnoff.Nm ,
665c3ec676SGleb Smirnoffotherwise, it is enough to run
675c3ec676SGleb Smirnoff.Nm
685c3ec676SGleb Smirnoffwith a boot ROM of choice.
69b13e60daSPeter Grehan.Pp
70b13e60daSPeter Grehan.Nm
71b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor
72b13e60daSPeter Grehanexit is detected.
73b13e60daSPeter Grehan.Sh OPTIONS
74b13e60daSPeter Grehan.Bl -tag -width 10n
75b13e60daSPeter Grehan.It Fl a
769777ca20SNeel NatuThe guest's local APIC is configured in xAPIC mode.
7784fe889cSChristian BruefferThe xAPIC mode is the default setting so this option is redundant.
7884fe889cSChristian BruefferIt will be deprecated in a future version.
79b13e60daSPeter Grehan.It Fl A
80b13e60daSPeter GrehanGenerate ACPI tables.
81b13e60daSPeter GrehanRequired for
82b13e60daSPeter Grehan.Fx Ns /amd64
83b13e60daSPeter Grehanguests.
845749449dSJohn Baldwin.It Fl b
855749449dSJohn BaldwinEnable a low-level console device supported by
86aca4343cSEdward Tomasz Napierala.Fx
87aca4343cSEdward Tomasz Napieralakernels compiled with
885749449dSJohn Baldwin.Cd "device bvmconsole" .
895749449dSJohn BaldwinThis option will be deprecated in a future version.
9001d822d3SRodney W. Grimes.It Fl c Op Ar setting ...
9101d822d3SRodney W. GrimesNumber of guest virtual CPUs
9201d822d3SRodney W. Grimesand/or the CPU topology.
9301d822d3SRodney W. GrimesThe default value for each of
9401d822d3SRodney W. Grimes.Ar numcpus ,
9501d822d3SRodney W. Grimes.Ar sockets ,
9601d822d3SRodney W. Grimes.Ar cores ,
9701d822d3SRodney W. Grimesand
9801d822d3SRodney W. Grimes.Ar threads
9901d822d3SRodney W. Grimesis 1.
10001d822d3SRodney W. GrimesThe current maximum number of guest virtual CPUs is 16.
10101d822d3SRodney W. GrimesIf
10201d822d3SRodney W. Grimes.Ar numcpus
10301d822d3SRodney W. Grimesis not specified then it will be calculated from the other arguments.
10401d822d3SRodney W. GrimesThe topology must be consistent in that the
10501d822d3SRodney W. Grimes.Ar numcpus
10601d822d3SRodney W. Grimesmust equal the product of
10701d822d3SRodney W. Grimes.Ar sockets ,
10801d822d3SRodney W. Grimes.Ar cores ,
10901d822d3SRodney W. Grimesand
11001d822d3SRodney W. Grimes.Ar threads .
11101d822d3SRodney W. GrimesIf a
11201d822d3SRodney W. Grimes.Ar setting
11301d822d3SRodney W. Grimesis specified more than once the last one has precedence.
1140dd10c00SNeel Natu.It Fl C
1150dd10c00SNeel NatuInclude guest memory in core file.
116cde1f5b8SJohn Baldwin.It Fl e
117cde1f5b8SJohn BaldwinForce
118cde1f5b8SJohn Baldwin.Nm
119cde1f5b8SJohn Baldwinto exit when a guest issues an access to an I/O port that is not emulated.
120cde1f5b8SJohn BaldwinThis is intended for debug purposes.
121b13e60daSPeter Grehan.It Fl g Ar gdbport
122b13e60daSPeter GrehanFor
1235749449dSJohn Baldwin.Fx
1245749449dSJohn Baldwinkernels compiled with
1255749449dSJohn Baldwin.Cd "device bvmdebug" ,
126b13e60daSPeter Grehanallow a remote kernel kgdb to be relayed to the guest kernel gdb stub
127b13e60daSPeter Grehanvia a local IPv4 address and this port.
128b13e60daSPeter GrehanThis option will be deprecated in a future version.
129cd377eb3SJohn Baldwin.It Fl G Ar port
130cd377eb3SJohn BaldwinStart a debug server that uses the GDB protocol to export guest state to a
131cd377eb3SJohn Baldwindebugger.
132cd377eb3SJohn BaldwinAn IPv4 TCP socket will be bound to the supplied
133cd377eb3SJohn Baldwin.Ar port
134cd377eb3SJohn Baldwinto listen for debugger connections.
135cd377eb3SJohn BaldwinOnly a single debugger may be attached to the debug server at a time.
136cd377eb3SJohn BaldwinIf
137cd377eb3SJohn Baldwin.Ar port
138cd377eb3SJohn Baldwinbegins with
139cd377eb3SJohn Baldwin.Sq w ,
140cd377eb3SJohn Baldwin.Nm
141cd377eb3SJohn Baldwinwill pause execution at the first instruction waiting for a debugger to attach.
142cde1f5b8SJohn Baldwin.It Fl h
143cde1f5b8SJohn BaldwinPrint help message and exit.
144cde1f5b8SJohn Baldwin.It Fl H
145cde1f5b8SJohn BaldwinYield the virtual CPU thread when a HLT instruction is detected.
146cde1f5b8SJohn BaldwinIf this option is not specified, virtual CPUs will use 100% of a host CPU.
1471aa56353SMarcelo Araujo.It Fl l Op Ar help|lpcdev Ns Op , Ns Ar conf
148cde1f5b8SJohn BaldwinAllow devices behind the LPC PCI-ISA bridge to be configured.
1499b1aa8d6SNeel NatuThe only supported devices are the TTY-class devices
1509b1aa8d6SNeel Natu.Ar com1
151cde1f5b8SJohn Baldwinand
1529b1aa8d6SNeel Natu.Ar com2
1539b1aa8d6SNeel Natuand the boot ROM device
1549b1aa8d6SNeel Natu.Ar bootrom .
1551aa56353SMarcelo Araujo.Pp
1561aa56353SMarcelo Araujo.Ar help
1571aa56353SMarcelo Araujoprint a list of supported LPC devices.
1586ee52c65SRoman Bogorodskiy.It Fl m Ar memsize Ns Op Ar K|k|M|m|G|g|T|t
159cde1f5b8SJohn BaldwinGuest physical memory size in bytes.
160cde1f5b8SJohn BaldwinThis must be the same size that was given to
161cde1f5b8SJohn Baldwin.Xr bhyveload 8 .
162cde1f5b8SJohn Baldwin.Pp
163cde1f5b8SJohn BaldwinThe size argument may be suffixed with one of K, M, G or T (either upper
164cde1f5b8SJohn Baldwinor lower case) to indicate a multiple of kilobytes, megabytes, gigabytes,
165cde1f5b8SJohn Baldwinor terabytes.
166cde1f5b8SJohn BaldwinIf no suffix is given, the value is assumed to be in megabytes.
1676ee52c65SRoman Bogorodskiy.Pp
1686ee52c65SRoman Bogorodskiy.Ar memsize
1696ee52c65SRoman Bogorodskiydefaults to 256M.
1709b6155a2SNeel Natu.It Fl p Ar vcpu:hostcpu
1719b6155a2SNeel NatuPin guest's virtual CPU
1729b6155a2SNeel Natu.Em vcpu
1739b6155a2SNeel Natuto
1749b6155a2SNeel Natu.Em hostcpu .
175b13e60daSPeter Grehan.It Fl P
176b13e60daSPeter GrehanForce the guest virtual CPU to exit when a PAUSE instruction is detected.
1771aa56353SMarcelo Araujo.It Fl s Op Ar help|slot,emulation Ns Op , Ns Ar conf
178b13e60daSPeter GrehanConfigure a virtual PCI slot and function.
179b13e60daSPeter Grehan.Pp
18084fe889cSChristian Brueffer.Nm
181b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to
182b13e60daSPeter Grehanslots on the bus.
183b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions
184b13e60daSPeter Grehanper slot.
185b13e60daSPeter Grehan.Bl -tag -width 10n
1861aa56353SMarcelo Araujo.It Ar help
1871aa56353SMarcelo Araujoprint a list of supported PCI devices.
188b13e60daSPeter Grehan.It Ar slot
18906db1b4aSNeel Natu.Ar pcislot[:function]
19006db1b4aSNeel Natu.Ar bus:pcislot:function
191b13e60daSPeter Grehan.Pp
192b13e60daSPeter GrehanThe
193b13e60daSPeter Grehan.Ar pcislot
19484fe889cSChristian Brueffervalue is 0 to 31.
19584fe889cSChristian BruefferThe optional
19684fe889cSChristian Brueffer.Ar function
19784fe889cSChristian Brueffervalue is 0 to 7.
19884fe889cSChristian BruefferThe optional
19906db1b4aSNeel Natu.Ar bus
20006db1b4aSNeel Natuvalue is 0 to 255.
20184fe889cSChristian BruefferIf not specified, the
20284fe889cSChristian Brueffer.Ar function
20384fe889cSChristian Brueffervalue defaults to 0.
20484fe889cSChristian BruefferIf not specified, the
20584fe889cSChristian Brueffer.Ar bus
20684fe889cSChristian Brueffervalue defaults to 0.
207b13e60daSPeter Grehan.It Ar emulation
208b13e60daSPeter Grehan.Bl -tag -width 10n
209b13e60daSPeter Grehan.It Li hostbridge | Li amd_hostbridge
210b13e60daSPeter Grehan.Pp
211b13e60daSPeter GrehanProvide a simple host bridge.
212b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest
213b13e60daSPeter Grehanoperating systems.
214b13e60daSPeter GrehanThe
215b13e60daSPeter Grehan.Li amd_hostbridge
216b13e60daSPeter Grehanemulation is identical but uses a PCI vendor ID of
217b13e60daSPeter Grehan.Li AMD .
218b13e60daSPeter Grehan.It Li passthru
219b13e60daSPeter GrehanPCI pass-through device.
220b13e60daSPeter Grehan.It Li virtio-net
221b13e60daSPeter GrehanVirtio network interface.
222a8be8e5eSRemko Lodder.It Li virtio-blk
223b13e60daSPeter GrehanVirtio block storage interface.
224f9c005a1SMarcelo Araujo.It Li virtio-scsi
225f9c005a1SMarcelo AraujoVirtio SCSI interface.
2269d0c4e17SPeter Grehan.It Li virtio-rnd
2279d0c4e17SPeter GrehanVirtio RNG interface.
2285121b6ccSRoman Bogorodskiy.It Li virtio-console
2295121b6ccSRoman BogorodskiyVirtio console interface, which exposes multiple ports
2305121b6ccSRoman Bogorodskiyto the guest in the form of simple char devices for simple IO
2315121b6ccSRoman Bogorodskiybetween the guest and host userspaces.
232098f5155SAlexander Motin.It Li ahci
233d6099860SMaxim KonovalovAHCI controller attached to arbitrary devices.
234b13e60daSPeter Grehan.It Li ahci-cd
235b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD.
236b13e60daSPeter Grehan.It Li ahci-hd
237b13e60daSPeter GrehanAHCI controller attached to a SATA hard-drive.
2389e749f25SAlexander Motin.It Li e1000
2399e749f25SAlexander MotinIntel e82545 network interface.
240b13e60daSPeter Grehan.It Li uart
241b13e60daSPeter GrehanPCI 16550 serial device.
242b13e60daSPeter Grehan.It Li lpc
2439b1aa8d6SNeel NatuLPC PCI-ISA bridge with COM1 and COM2 16550 serial ports and a boot ROM.
2449b1aa8d6SNeel NatuThe LPC bridge emulation can only be configured on bus 0.
2456c87a2c0SGleb Smirnoff.It Li fbuf
2466c87a2c0SGleb SmirnoffRaw framebuffer device attached to VNC server.
2476c87a2c0SGleb Smirnoff.It Li xhci
2485c3ec676SGleb SmirnoffeXtensible Host Controller Interface (xHCI) USB controller.
249c066c68cSMarcelo Araujo.It Li nvme
250c066c68cSMarcelo AraujoNVM Express (NVMe) controller.
25136f9f044SWarner Losh.It Li hda
25236f9f044SWarner LoshHigh Definition Audio Controller.
253b13e60daSPeter Grehan.El
254b13e60daSPeter Grehan.It Op Ar conf
255b13e60daSPeter GrehanThis optional parameter describes the backend for device emulations.
256b13e60daSPeter GrehanIf
257b13e60daSPeter Grehan.Ar conf
258b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be
259b13e60daSPeter Grehanconsidered unconnected.
260b13e60daSPeter Grehan.Pp
261b13e60daSPeter GrehanNetwork devices:
262b13e60daSPeter Grehan.Bl -tag -width 10n
263b13e60daSPeter Grehan.It Ar tapN Ns Op , Ns Ar mac=xx:xx:xx:xx:xx:xx
264b13e60daSPeter Grehan.It Ar vmnetN Ns Op , Ns Ar mac=xx:xx:xx:xx:xx:xx
265b13e60daSPeter Grehan.Pp
266b13e60daSPeter GrehanIf
267b13e60daSPeter Grehan.Ar mac
268b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the
269b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and
270b13e60daSPeter Grehanthe device name.
271b13e60daSPeter Grehan.Pp
272b13e60daSPeter GrehanThe MAC address is an ASCII string in
273b13e60daSPeter Grehan.Xr ethers 5
274b13e60daSPeter Grehanformat.
275b13e60daSPeter Grehan.El
276b13e60daSPeter Grehan.Pp
277b13e60daSPeter GrehanBlock storage devices:
278b13e60daSPeter Grehan.Bl -tag -width 10n
2794e43c1e8SNeel Natu.It Pa /filename Ns Oo , Ns Ar block-device-options Oc
2804e43c1e8SNeel Natu.It Pa /dev/xxx Ns Oo , Ns Ar block-device-options Oc
2814e43c1e8SNeel Natu.El
2824e43c1e8SNeel Natu.Pp
2834e43c1e8SNeel NatuThe
2844e43c1e8SNeel Natu.Ar block-device-options
2854e43c1e8SNeel Natuare:
286b13e60daSPeter Grehan.Bl -tag -width 8n
287b13e60daSPeter Grehan.It Li nocache
288b13e60daSPeter GrehanOpen the file with
289b13e60daSPeter Grehan.Dv O_DIRECT .
290b13e60daSPeter Grehan.It Li direct
291b13e60daSPeter GrehanOpen the file using
292b13e60daSPeter Grehan.Dv O_SYNC .
293b13e60daSPeter Grehan.It Li ro
294b13e60daSPeter GrehanForce the file to be opened read-only.
2954e43c1e8SNeel Natu.It Li sectorsize= Ns Ar logical Ns Oo / Ns Ar physical Oc
2964e43c1e8SNeel NatuSpecify the logical and physical sector sizes of the emulated disk.
2974e43c1e8SNeel NatuThe physical sector size is optional and is equal to the logical sector size
2984e43c1e8SNeel Natuif not explicitly specified.
299b13e60daSPeter Grehan.El
300b13e60daSPeter Grehan.Pp
301f9c005a1SMarcelo AraujoSCSI devices:
302f9c005a1SMarcelo Araujo.Bl -tag -width 10n
30349f87822SAlexander Motin.It Pa /dev/cam/ctl Ns Oo Ar pp . Ns Ar vp Oc Ns Oo , Ns Ar scsi-device-options Oc
30449f87822SAlexander Motin.El
30549f87822SAlexander Motin.Pp
30649f87822SAlexander MotinThe
30749f87822SAlexander Motin.Ar scsi-device-options
30849f87822SAlexander Motinare:
30949f87822SAlexander Motin.Bl -tag -width 10n
31049f87822SAlexander Motin.It Li iid= Ns Ar IID
31149f87822SAlexander MotinInitiator ID to use when sending requests to specified CTL port.
31249f87822SAlexander MotinThe default value is 0.
313f9c005a1SMarcelo Araujo.El
314f9c005a1SMarcelo Araujo.Pp
315b13e60daSPeter GrehanTTY devices:
316b13e60daSPeter Grehan.Bl -tag -width 10n
317b13e60daSPeter Grehan.It Li stdio
318b13e60daSPeter GrehanConnect the serial port to the standard input and output of
31984fe889cSChristian Bruefferthe
32084fe889cSChristian Brueffer.Nm
32184fe889cSChristian Bruefferprocess.
322b13e60daSPeter Grehan.It Pa /dev/xxx
323b13e60daSPeter GrehanUse the host TTY device for serial port I/O.
324b13e60daSPeter Grehan.El
325b13e60daSPeter Grehan.Pp
3269b1aa8d6SNeel NatuBoot ROM device:
3279b1aa8d6SNeel Natu.Bl -tag -width 10n
3289b1aa8d6SNeel Natu.It Pa romfile
3299b1aa8d6SNeel NatuMap
3309b1aa8d6SNeel Natu.Ar romfile
3319b1aa8d6SNeel Natuin the guest address space reserved for boot firmware.
3329b1aa8d6SNeel Natu.El
3339b1aa8d6SNeel Natu.Pp
334b13e60daSPeter GrehanPass-through devices:
335b13e60daSPeter Grehan.Bl -tag -width 10n
336b13e60daSPeter Grehan.It Ns Ar slot Ns / Ns Ar bus Ns / Ns Ar function
337b13e60daSPeter GrehanConnect to a PCI device on the host at the selector described by
338b13e60daSPeter Grehan.Ar slot ,
339b13e60daSPeter Grehan.Ar bus ,
340b13e60daSPeter Grehanand
341b13e60daSPeter Grehan.Ar function
342b13e60daSPeter Grehannumbers.
343b13e60daSPeter Grehan.El
344b13e60daSPeter Grehan.Pp
3459b1aa8d6SNeel NatuGuest memory must be wired using the
3469b1aa8d6SNeel Natu.Fl S
3479b1aa8d6SNeel Natuoption when a pass-through device is configured.
3489b1aa8d6SNeel Natu.Pp
349b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the
350*a9258f9bSWarren Block.Va pptdevs
351b13e60daSPeter Grehanloader variable as described in
352b13e60daSPeter Grehan.Xr vmm 4 .
3535121b6ccSRoman Bogorodskiy.Pp
3545121b6ccSRoman BogorodskiyVirtio console devices:
3555121b6ccSRoman Bogorodskiy.Bl -tag -width 10n
3565121b6ccSRoman Bogorodskiy.It Li port1= Ns Pa /path/to/port1.sock Ns ,anotherport= Ns Pa ...
3575121b6ccSRoman BogorodskiyA maximum of 16 ports per device can be created.
3585121b6ccSRoman BogorodskiyEvery port is named and corresponds to a Unix domain socket created by
3595121b6ccSRoman Bogorodskiy.Nm .
3605121b6ccSRoman Bogorodskiy.Nm
3615121b6ccSRoman Bogorodskiyaccepts at most one connection per port at a time.
3625121b6ccSRoman Bogorodskiy.Pp
3635121b6ccSRoman BogorodskiyLimitations:
3645121b6ccSRoman Bogorodskiy.Bl -bullet -offset 2n
3655121b6ccSRoman Bogorodskiy.It
3665121b6ccSRoman BogorodskiyDue to lack of destructors in
3675121b6ccSRoman Bogorodskiy.Nm ,
3685121b6ccSRoman Bogorodskiysockets on the filesystem must be cleaned up manually after
3695121b6ccSRoman Bogorodskiy.Nm
3705121b6ccSRoman Bogorodskiyexits.
3715121b6ccSRoman Bogorodskiy.It
3725121b6ccSRoman BogorodskiyThere is no way to use the "console port" feature, nor the console port
3730ee3a4b4SRoman Bogorodskiyresize at present.
3745121b6ccSRoman Bogorodskiy.It
3750ee3a4b4SRoman BogorodskiyEmergency write is advertised, but no-op at present.
3765121b6ccSRoman Bogorodskiy.El
3775121b6ccSRoman Bogorodskiy.El
3786c87a2c0SGleb Smirnoff.Pp
3795c3ec676SGleb SmirnoffFramebuffer devices:
3805c3ec676SGleb Smirnoff.Bl -tag -width 10n
3818d56c805SYuri Pankov.It Xo
3828d56c805SYuri Pankov.Oo rfb= Ns Oo Ar IP\&: Oc Ns Ar port Oc Ns Oo ,w= Ns Ar width Oc Ns Oo ,h= Ns
3838d56c805SYuri Pankov.Ar height Oc Ns Oo ,vga= Ns Ar vgaconf Oc Ns Oo Ns ,wait Oc Ns Oo ,password= Ns
3848d56c805SYuri Pankov.Ar password Oc
3858d56c805SYuri Pankov.Xc
3865c3ec676SGleb Smirnoff.Bl -tag -width 8n
3878883128bSBjoern A. Zeeb.It Ar IPv4:port No or Ar [IPv6%zone]:port
3885c3ec676SGleb SmirnoffAn
3895c3ec676SGleb Smirnoff.Ar IP
3905c3ec676SGleb Smirnoffaddress and a
3915c3ec676SGleb Smirnoff.Ar port
3925c3ec676SGleb SmirnoffVNC should listen on.
3936c87a2c0SGleb SmirnoffThe default is to listen on localhost IPv4 address and default VNC port 5900.
3948883128bSBjoern A. ZeebAn IPv6 address must be enclosed in square brackets and may contain an
3957d9545fcSRodney W. Grimesoptional zone identifier.
3965c3ec676SGleb Smirnoff.It Ar width No and Ar height
3975c3ec676SGleb SmirnoffA display resolution, width and height, respectively.
3985c3ec676SGleb SmirnoffIf not specified, a default resolution of 1024x768 pixels will be used.
3995c3ec676SGleb SmirnoffMinimal supported resolution is 640x480 pixels,
4005c3ec676SGleb Smirnoffand maximum is 1920x1200 pixels.
4015c3ec676SGleb Smirnoff.It Ar vgaconf
4025c3ec676SGleb SmirnoffPossible values for this option are
4035c3ec676SGleb Smirnoff.Dq io
4045c3ec676SGleb Smirnoff(default),
4055c3ec676SGleb Smirnoff.Dq on
4065c3ec676SGleb Smirnoff, and
4075c3ec676SGleb Smirnoff.Dq off .
4085c3ec676SGleb SmirnoffPCI graphics cards have a dual personality in that they are
4095c3ec676SGleb Smirnoffstandard PCI devices with BAR addressing, but may also
4105c3ec676SGleb Smirnoffimplicitly decode legacy VGA I/O space
4115c3ec676SGleb Smirnoff.Pq Ad 0x3c0-3df
4125c3ec676SGleb Smirnoffand memory space
4135c3ec676SGleb Smirnoff.Pq 64KB at Ad 0xA0000 .
4145c3ec676SGleb SmirnoffThe default
4155c3ec676SGleb Smirnoff.Dq io
4168d56c805SYuri Pankovoption should be used for guests that attempt to issue BIOS calls which result
4178d56c805SYuri Pankovin I/O port queries, and fail to boot if I/O decode is disabled.
4185c3ec676SGleb Smirnoff.Pp
4195c3ec676SGleb SmirnoffThe
4205c3ec676SGleb Smirnoff.Dq on
4215c3ec676SGleb Smirnoffoption should be used along with the CSM BIOS capability in UEFI
4225c3ec676SGleb Smirnoffto boot traditional BIOS guests that require the legacy VGA I/O and
4235c3ec676SGleb Smirnoffmemory regions to be available.
4245c3ec676SGleb Smirnoff.Pp
4255c3ec676SGleb SmirnoffThe
4265c3ec676SGleb Smirnoff.Dq off
4275c3ec676SGleb Smirnoffoption should be used for the UEFI guests that assume that
4285c3ec676SGleb SmirnoffVGA adapter is present if they detect the I/O ports.
4295c3ec676SGleb SmirnoffAn example of such a guest is
4305c3ec676SGleb Smirnoff.Ox
4315c3ec676SGleb Smirnoffin UEFI mode.
4325c3ec676SGleb Smirnoff.Pp
4335c3ec676SGleb SmirnoffPlease refer to the
4345c3ec676SGleb Smirnoff.Nm
4355c3ec676SGleb Smirnoff.Fx
4365c3ec676SGleb Smirnoffwiki page
4375c3ec676SGleb Smirnoff.Pq Lk https://wiki.freebsd.org/bhyve
4385c3ec676SGleb Smirnofffor configuration notes of particular guests.
4395c3ec676SGleb Smirnoff.It wait
4405c3ec676SGleb SmirnoffInstruct
4415c3ec676SGleb Smirnoff.Nm
4428d56c805SYuri Pankovto only boot upon the initiation of a VNC connection, simplifying the
4438d56c805SYuri Pankovinstallation of operating systems that require immediate keyboard input.
4445c3ec676SGleb SmirnoffThis can be removed for post-installation use.
445f4d34383SMarcelo Araujo.It password
446f4d34383SMarcelo AraujoThis type of authentication is known to be cryptographically weak and is not
447f4d34383SMarcelo Araujointended for use on untrusted networks.
448f4d34383SMarcelo AraujoMany implementations will want to use stronger security, such as running
449f4d34383SMarcelo Araujothe session over an encrypted channel provided by IPsec or SSH.
4505c3ec676SGleb Smirnoff.El
4516c87a2c0SGleb Smirnoff.El
4526c87a2c0SGleb Smirnoff.Pp
4535c3ec676SGleb SmirnoffxHCI USB devices:
4545c3ec676SGleb Smirnoff.Bl -tag -width 10n
4555c3ec676SGleb Smirnoff.It Li tablet
4565c3ec676SGleb SmirnoffA USB tablet device which provides precise cursor synchronization
4575c3ec676SGleb Smirnoffwhen using VNC.
4586c87a2c0SGleb Smirnoff.El
459c066c68cSMarcelo Araujo.Pp
460c066c68cSMarcelo AraujoNVMe devices:
461c066c68cSMarcelo Araujo.Bl -tag -width 10n
462c066c68cSMarcelo Araujo.It Li devpath
463c066c68cSMarcelo AraujoAccepted device paths are:
464c066c68cSMarcelo Araujo.Ar /dev/blockdev
465c066c68cSMarcelo Araujoor
466c066c68cSMarcelo Araujo.Ar /path/to/image
467c066c68cSMarcelo Araujoor
468c066c68cSMarcelo Araujo.Ar ram=size_in_MiB .
469c066c68cSMarcelo Araujo.It Li maxq
470c066c68cSMarcelo AraujoMax number of queues.
471c066c68cSMarcelo Araujo.It Li qsz
472c066c68cSMarcelo AraujoMax elements in each queue.
473c066c68cSMarcelo Araujo.It Li ioslots
474c066c68cSMarcelo AraujoMax number of concurrent I/O requests.
475c066c68cSMarcelo Araujo.It Li sectsz
476c066c68cSMarcelo AraujoSector size (defaults to blockif sector size).
477c066c68cSMarcelo Araujo.It Li ser
478c066c68cSMarcelo AraujoSerial number with maximum 20 characters.
479c066c68cSMarcelo Araujo.El
48036f9f044SWarner Losh.Pp
48136f9f044SWarner LoshHD Audio devices:
48236f9f044SWarner Losh.Bl -tag -width 10n
48336f9f044SWarner Losh.It Li play
48436f9f044SWarner LoshPlayback device, typically
48536f9f044SWarner Losh.Ar /dev/dsp0 .
48636f9f044SWarner Losh.It Li rec
48736f9f044SWarner LoshRecording device, typically
48836f9f044SWarner Losh.Ar /dev/dsp0 .
48936f9f044SWarner Losh.El
490b13e60daSPeter Grehan.El
4919b1aa8d6SNeel Natu.It Fl S
4929b1aa8d6SNeel NatuWire guest memory.
493c9747678SNeel Natu.It Fl u
494c9747678SNeel NatuRTC keeps UTC time.
4955749449dSJohn Baldwin.It Fl U Ar uuid
4965749449dSJohn BaldwinSet the universally unique identifier
4975749449dSJohn Baldwin.Pq UUID
4985749449dSJohn Baldwinin the guest's System Management BIOS System Information structure.
4995749449dSJohn BaldwinBy default a UUID is generated from the host's hostname and
5005749449dSJohn Baldwin.Ar vmname .
501851d84f1SNeel Natu.It Fl w
50284fe889cSChristian BruefferIgnore accesses to unimplemented Model Specific Registers (MSRs).
50384fe889cSChristian BruefferThis is intended for debug purposes.
504cde1f5b8SJohn Baldwin.It Fl W
505cde1f5b8SJohn BaldwinForce virtio PCI device emulations to use MSI interrupts instead of MSI-X
506cde1f5b8SJohn Baldwininterrupts.
5079777ca20SNeel Natu.It Fl x
5089777ca20SNeel NatuThe guest's local APIC is configured in x2APIC mode.
509b100acf2SNeel Natu.It Fl Y
510b100acf2SNeel NatuDisable MPtable generation.
511b13e60daSPeter Grehan.It Ar vmname
512b13e60daSPeter GrehanAlphanumeric name of the guest.
513b13e60daSPeter GrehanThis should be the same as that created by
514b13e60daSPeter Grehan.Xr bhyveload 8 .
515b13e60daSPeter Grehan.El
516cd377eb3SJohn Baldwin.Sh DEBUG SERVER
517cd377eb3SJohn BaldwinThe current debug server provides limited support for debuggers.
518cd377eb3SJohn Baldwin.Ss Registers
519cd377eb3SJohn BaldwinEach virtual CPU is exposed to the debugger as a thread.
520cd377eb3SJohn Baldwin.Pp
521cd377eb3SJohn BaldwinGeneral purpose registers can be queried for each virtual CPU, but other
522cd377eb3SJohn Baldwinregisters such as floating-point and system registers cannot be queried.
523cd377eb3SJohn Baldwin.Ss Memory
524cd377eb3SJohn BaldwinMemory (including memory mapped I/O regions) can be read by the debugger,
5258d56c805SYuri Pankovbut not written.
5268d56c805SYuri PankovMemory operations use virtual addresses that are resolved to physical addresses
5278d56c805SYuri Pankovvia the current virtual CPU's active address translation.
528cd377eb3SJohn Baldwin.Ss Control
529cd377eb3SJohn BaldwinThe running guest can be interrupted by the debugger at any time
530cd377eb3SJohn Baldwin.Pq for example, by pressing Ctrl-C in the debugger .
531cd377eb3SJohn Baldwin.Pp
532cd377eb3SJohn BaldwinSingle stepping is only supported on Intel CPUs supporting the MTRAP VM exit.
533cd377eb3SJohn Baldwin.Pp
534cd377eb3SJohn BaldwinBreakpoints are not supported.
535c2202d41SRoman Bogorodskiy.Sh SIGNAL HANDLING
536c2202d41SRoman Bogorodskiy.Nm
537c2202d41SRoman Bogorodskiydeals with the following signals:
538c2202d41SRoman Bogorodskiy.Pp
539c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact
540c2202d41SRoman Bogorodskiy.It SIGTERM
541c2202d41SRoman BogorodskiyTrigger ACPI poweroff for a VM
542c2202d41SRoman Bogorodskiy.El
543c2202d41SRoman Bogorodskiy.Sh EXIT STATUS
544c2202d41SRoman BogorodskiyExit status indicates how the VM was terminated:
545c2202d41SRoman Bogorodskiy.Pp
546c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact
547c2202d41SRoman Bogorodskiy.It 0
548c2202d41SRoman Bogorodskiyrebooted
549c2202d41SRoman Bogorodskiy.It 1
550c2202d41SRoman Bogorodskiypowered off
551c2202d41SRoman Bogorodskiy.It 2
552c2202d41SRoman Bogorodskiyhalted
553c2202d41SRoman Bogorodskiy.It 3
554c2202d41SRoman Bogorodskiytriple fault
555989e062bSMarcelo Araujo.It 4
556989e062bSMarcelo Araujoexited due to an error
557c2202d41SRoman Bogorodskiy.El
558b13e60daSPeter Grehan.Sh EXAMPLES
5595c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must have been loaded with
56084fe889cSChristian Brueffer.Xr bhyveload 8
561b13e60daSPeter Grehanor a similar boot loader before
562b13e60daSPeter Grehan.Xr bhyve 4
563b13e60daSPeter Grehancan be run.
5645c3ec676SGleb SmirnoffOtherwise, the boot loader is not needed.
565b13e60daSPeter Grehan.Pp
566b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio
567b13e60daSPeter Grehanblock device backed by the
568b13e60daSPeter Grehan.Pa /my/image
569b13e60daSPeter Grehanfilesystem image, and a serial port for the console:
570b13e60daSPeter Grehan.Bd -literal -offset indent
571b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\
572b13e60daSPeter Grehan  -l com1,stdio -A -H -P -m 1G vm1
573b13e60daSPeter Grehan.Ed
574b13e60daSPeter Grehan.Pp
575b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which
576b13e60daSPeter Grehanhas a MAC address specified:
577b13e60daSPeter Grehan.Bd -literal -offset indent
578b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\
579b13e60daSPeter Grehan  -s 2:1,virtio-net,tap1 \\
580b13e60daSPeter Grehan  -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\
581b13e60daSPeter Grehan  -s 3,virtio-blk,/my/image -l com1,stdio \\
582b13e60daSPeter Grehan  -A -H -P -m 24G bigvm
583b13e60daSPeter Grehan.Ed
584b13e60daSPeter Grehan.Pp
585b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI
586b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console
587b13e60daSPeter Grehanport connected to an
588b13e60daSPeter Grehan.Xr nmdm 4
58984fe889cSChristian Brueffernull-modem device.
590b13e60daSPeter Grehan.Bd -literal -offset indent
591a7ab1463SAlexander Motinbhyve -c 4 \\
592b13e60daSPeter Grehan  -s 0,amd_hostbridge -s 1,lpc \\
593098f5155SAlexander Motin  -s 1:0,ahci,hd:/images/disk.1,hd:/images/disk.2,\\
594098f5155SAlexander Motinhd:/images/disk.3,hd:/images/disk.4,\\
595098f5155SAlexander Motinhd:/images/disk.5,hd:/images/disk.6,\\
596098f5155SAlexander Motinhd:/images/disk.7,hd:/images/disk.8,\\
597098f5155SAlexander Motincd:/images/install.iso \\
598b13e60daSPeter Grehan  -s 3,virtio-net,tap0 \\
599b13e60daSPeter Grehan  -l com1,/dev/nmdm0A \\
600b13e60daSPeter Grehan  -A -H -P -m 8G
601b13e60daSPeter Grehan.Ed
6025c3ec676SGleb Smirnoff.Pp
6035c3ec676SGleb SmirnoffRun a UEFI virtual machine with a display resolution of 800 by 600 pixels
6045c3ec676SGleb Smirnoffthat can be accessed via VNC at: 0.0.0.0:5900.
6055c3ec676SGleb Smirnoff.Bd -literal -offset indent
6065c3ec676SGleb Smirnoffbhyve -c 2 -m 4G -w -H \\
6075c3ec676SGleb Smirnoff  -s 0,hostbridge \\
6085c3ec676SGleb Smirnoff  -s 3,ahci-cd,/path/to/uefi-OS-install.iso \\
6095c3ec676SGleb Smirnoff  -s 4,ahci-hd,disk.img \\
6105c3ec676SGleb Smirnoff  -s 5,virtio-net,tap0 \\
6115c3ec676SGleb Smirnoff  -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \\
6125c3ec676SGleb Smirnoff  -s 30,xhci,tablet \\
6135c3ec676SGleb Smirnoff  -s 31,lpc -l com1,stdio \\
6145c3ec676SGleb Smirnoff  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
6155c3ec676SGleb Smirnoff   uefivm
6165c3ec676SGleb Smirnoff.Ed
6178883128bSBjoern A. Zeeb.Pp
6188883128bSBjoern A. ZeebRun a UEFI virtual machine with a VNC display that is bound to all IPv6
6198883128bSBjoern A. Zeebaddresses on port 5900.
6208883128bSBjoern A. Zeeb.Bd -literal -offset indent
6218883128bSBjoern A. Zeebbhyve -c 2 -m 4G -w -H \\
6228883128bSBjoern A. Zeeb  -s 0,hostbridge \\
6238883128bSBjoern A. Zeeb  -s 4,ahci-hd,disk.img \\
6248883128bSBjoern A. Zeeb  -s 5,virtio-net,tap0 \\
6258883128bSBjoern A. Zeeb  -s 29,fbuf,tcp=[::]:5900,w=800,h=600 \\
6268883128bSBjoern A. Zeeb  -s 30,xhci,tablet \\
6278883128bSBjoern A. Zeeb  -s 31,lpc -l com1,stdio \\
6288883128bSBjoern A. Zeeb  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
6298883128bSBjoern A. Zeeb   uefivm
6308883128bSBjoern A. Zeeb.Ed
631b13e60daSPeter Grehan.Sh SEE ALSO
632b13e60daSPeter Grehan.Xr bhyve 4 ,
633b13e60daSPeter Grehan.Xr nmdm 4 ,
634b13e60daSPeter Grehan.Xr vmm 4 ,
635b13e60daSPeter Grehan.Xr ethers 5 ,
63605f7cd8bSJoel Dahl.Xr bhyvectl 8 ,
63705f7cd8bSJoel Dahl.Xr bhyveload 8
6388d56c805SYuri Pankov.Pp
6398d56c805SYuri Pankov.Rs
6408d56c805SYuri Pankov.%A Intel
6418d56c805SYuri Pankov.%B 64 and IA-32 Architectures Software Developer’s Manual
6428d56c805SYuri Pankov.%V Volume 3
6438d56c805SYuri Pankov.Re
644b13e60daSPeter Grehan.Sh HISTORY
645b13e60daSPeter Grehan.Nm
646b13e60daSPeter Grehanfirst appeared in
647b13e60daSPeter Grehan.Fx 10.0 .
648b13e60daSPeter Grehan.Sh AUTHORS
64901c2b8acSBaptiste Daroussin.An Neel Natu Aq Mt neel@freebsd.org
65001c2b8acSBaptiste Daroussin.An Peter Grehan Aq Mt grehan@freebsd.org
651