xref: /freebsd/usr.sbin/bhyve/bhyve.8 (revision b70b050ab5e9368e6748e78cee38c3ecc4662c87)
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.\"
272cdff991SMariusz Zaborski.Dd August 19, 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
48*b70b050aSJohn Baldwin.Oo Fl G
49*b70b050aSJohn Baldwin.Sm off
50*b70b050aSJohn Baldwin.Oo Ar w Oc
51*b70b050aSJohn Baldwin.Oo Ar bind_address: Oc
52*b70b050aSJohn Baldwin.Ar port
53*b70b050aSJohn Baldwin.Sm on
54*b70b050aSJohn Baldwin.Oc
55621b5090SJohn Baldwin.Op Fl k Ar file
5677d208a3SMateusz Piotrowski.Oo Fl l
5777d208a3SMateusz Piotrowski.Sm off
58bfe40b69SMateusz Piotrowski.Ar lpcdev Op Cm \&, Ar conf
5977d208a3SMateusz Piotrowski.Sm on
6077d208a3SMateusz Piotrowski.Oc
6177d208a3SMateusz Piotrowski.Oo Fl m
6277d208a3SMateusz Piotrowski.Sm off
6377d208a3SMateusz Piotrowski.Ar memsize
6477d208a3SMateusz Piotrowski.Oo
658d9fefe6SMateusz Piotrowski.Cm K | Cm k | Cm M | Cm m | Cm G | Cm g | Cm T | Cm t
6677d208a3SMateusz Piotrowski.Oc
6777d208a3SMateusz Piotrowski.Sm on
6877d208a3SMateusz Piotrowski.Oc
69621b5090SJohn Baldwin.Op Fl o Ar var Ns Cm = Ns Ar value
7077d208a3SMateusz Piotrowski.Op Fl p Ar vcpu Ns Cm \&: Ns Ar hostcpu
71483d953aSJohn Baldwin.Op Fl r Ar file
7277d208a3SMateusz Piotrowski.Sm off
73bfe40b69SMateusz Piotrowski.Oo Fl s\~
74bfe40b69SMateusz Piotrowski.Ar slot Cm \&, Ar emulation Op Cm \&, Ar conf
7577d208a3SMateusz Piotrowski.Sm on
7677d208a3SMateusz Piotrowski.Oc
775749449dSJohn Baldwin.Op Fl U Ar uuid
78b13e60daSPeter Grehan.Ar vmname
79bfe40b69SMateusz Piotrowski.Nm
80bfe40b69SMateusz Piotrowski.Fl l Cm help
81bfe40b69SMateusz Piotrowski.Nm
82bfe40b69SMateusz Piotrowski.Fl s Cm help
83b13e60daSPeter Grehan.Sh DESCRIPTION
84b13e60daSPeter Grehan.Nm
857fca1ad5SGlen Barberis a hypervisor that runs guest operating systems inside a
86b13e60daSPeter Grehanvirtual machine.
87b13e60daSPeter Grehan.Pp
88b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and
89b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters.
90b13e60daSPeter Grehan.Pp
915c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must be loaded with
9284fe889cSChristian Brueffer.Xr bhyveload 8
93b13e60daSPeter Grehanor a similar boot loader before running
945c3ec676SGleb Smirnoff.Nm ,
955c3ec676SGleb Smirnoffotherwise, it is enough to run
965c3ec676SGleb Smirnoff.Nm
975c3ec676SGleb Smirnoffwith a boot ROM of choice.
98b13e60daSPeter Grehan.Pp
99b13e60daSPeter Grehan.Nm
100b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor
101b13e60daSPeter Grehanexit is detected.
102b13e60daSPeter Grehan.Sh OPTIONS
103b13e60daSPeter Grehan.Bl -tag -width 10n
104b13e60daSPeter Grehan.It Fl A
105b13e60daSPeter GrehanGenerate ACPI tables.
106b13e60daSPeter GrehanRequired for
107b13e60daSPeter Grehan.Fx Ns /amd64
108b13e60daSPeter Grehanguests.
109ccb1c87aSMateusz Piotrowski.It Fl a
110ccb1c87aSMateusz PiotrowskiThe guest's local APIC is configured in xAPIC mode.
111ccb1c87aSMateusz PiotrowskiThe xAPIC mode is the default setting so this option is redundant.
112ccb1c87aSMateusz PiotrowskiIt will be deprecated in a future version.
113ccb1c87aSMateusz Piotrowski.It Fl C
114ccb1c87aSMateusz PiotrowskiInclude guest memory in core file.
11501d822d3SRodney W. Grimes.It Fl c Op Ar setting ...
11601d822d3SRodney W. GrimesNumber of guest virtual CPUs
11701d822d3SRodney W. Grimesand/or the CPU topology.
11801d822d3SRodney W. GrimesThe default value for each of
11901d822d3SRodney W. Grimes.Ar numcpus ,
12001d822d3SRodney W. Grimes.Ar sockets ,
12101d822d3SRodney W. Grimes.Ar cores ,
12201d822d3SRodney W. Grimesand
12301d822d3SRodney W. Grimes.Ar threads
12401d822d3SRodney W. Grimesis 1.
12501d822d3SRodney W. GrimesThe current maximum number of guest virtual CPUs is 16.
12601d822d3SRodney W. GrimesIf
12701d822d3SRodney W. Grimes.Ar numcpus
12801d822d3SRodney W. Grimesis not specified then it will be calculated from the other arguments.
12901d822d3SRodney W. GrimesThe topology must be consistent in that the
13001d822d3SRodney W. Grimes.Ar numcpus
13101d822d3SRodney W. Grimesmust equal the product of
13201d822d3SRodney W. Grimes.Ar sockets ,
13301d822d3SRodney W. Grimes.Ar cores ,
13401d822d3SRodney W. Grimesand
13501d822d3SRodney W. Grimes.Ar threads .
13601d822d3SRodney W. GrimesIf a
13701d822d3SRodney W. Grimes.Ar setting
13801d822d3SRodney W. Grimesis specified more than once the last one has precedence.
1390a1016f9SPawel Biernacki.It Fl D
1400a1016f9SPawel BiernackiDestroy the VM on guest initiated power-off.
141cde1f5b8SJohn Baldwin.It Fl e
142cde1f5b8SJohn BaldwinForce
143cde1f5b8SJohn Baldwin.Nm
144cde1f5b8SJohn Baldwinto exit when a guest issues an access to an I/O port that is not emulated.
145cde1f5b8SJohn BaldwinThis is intended for debug purposes.
1462cdff991SMariusz Zaborski.It Fl G Xo
1472cdff991SMariusz Zaborski.Sm off
1482cdff991SMariusz Zaborski.Oo Ar w Oc
1492cdff991SMariusz Zaborski.Oo Ar bind_address: Oc
1502cdff991SMariusz Zaborski.Ar port
1512cdff991SMariusz Zaborski.Sm on
1522cdff991SMariusz Zaborski.Xc
153cd377eb3SJohn BaldwinStart a debug server that uses the GDB protocol to export guest state to a
154cd377eb3SJohn Baldwindebugger.
155cd377eb3SJohn BaldwinAn IPv4 TCP socket will be bound to the supplied
1562cdff991SMariusz Zaborski.Ar bind_address
1572cdff991SMariusz Zaborskiand
158cd377eb3SJohn Baldwin.Ar port
159cd377eb3SJohn Baldwinto listen for debugger connections.
160cd377eb3SJohn BaldwinOnly a single debugger may be attached to the debug server at a time.
1612cdff991SMariusz ZaborskiIf the option begins with
162cd377eb3SJohn Baldwin.Sq w ,
163cd377eb3SJohn Baldwin.Nm
164cd377eb3SJohn Baldwinwill pause execution at the first instruction waiting for a debugger to attach.
165cde1f5b8SJohn Baldwin.It Fl H
166cde1f5b8SJohn BaldwinYield the virtual CPU thread when a HLT instruction is detected.
167cde1f5b8SJohn BaldwinIf this option is not specified, virtual CPUs will use 100% of a host CPU.
168ccb1c87aSMateusz Piotrowski.It Fl h
169ccb1c87aSMateusz PiotrowskiPrint help message and exit.
170621b5090SJohn Baldwin.It Fl k Ar file
171621b5090SJohn BaldwinSet configuration variables from a simple, key-value config file.
172621b5090SJohn BaldwinEach line of the config file is expected to consist of a config variable
173621b5090SJohn Baldwinname, an equals sign
174621b5090SJohn Baldwin.Pq Sq = ,
175621b5090SJohn Baldwinand a value.
176621b5090SJohn BaldwinNo spaces are permitted between the variable name, equals sign, or
177621b5090SJohn Baldwinvalue.
178621b5090SJohn BaldwinBlank lines and lines starting with
179621b5090SJohn Baldwin.Sq #
180621b5090SJohn Baldwinare ignored.
1814c08b978SMateusz Piotrowski.It Fl l Cm help
1824c08b978SMateusz PiotrowskiPrint a list of supported LPC devices.
1834c08b978SMateusz Piotrowski.It Fl l Ar lpcdev Ns Op Cm \&, Ns Ar conf
184cde1f5b8SJohn BaldwinAllow devices behind the LPC PCI-ISA bridge to be configured.
1859b1aa8d6SNeel NatuThe only supported devices are the TTY-class devices
1864c08b978SMateusz Piotrowski.Cm com1 , com2 , com3 ,
1874c08b978SMateusz Piotrowskiand
1884c08b978SMateusz Piotrowski.Cm com4 ,
1892f40fc6fSPeter Grehanthe boot ROM device
1904c08b978SMateusz Piotrowski.Cm bootrom ,
1912f40fc6fSPeter Grehanand the debug/test device
1924c08b978SMateusz Piotrowski.Cm pc-testdev .
1931aa56353SMarcelo Araujo.Pp
1944c08b978SMateusz PiotrowskiThe possible values for the
1954c08b978SMateusz Piotrowski.Ar conf
1964c08b978SMateusz Piotrowskiargument are listed in the
1974c08b978SMateusz Piotrowski.Fl s
1984c08b978SMateusz Piotrowskiflag description.
1997e0cb3dfSMateusz Piotrowski.It Xo
2007e0cb3dfSMateusz Piotrowski.Fl m Ar memsize Ns Oo
2017e0cb3dfSMateusz Piotrowski.Sm off
2027e0cb3dfSMateusz Piotrowski.Cm K | k | M | m | G | g | T | t
2037e0cb3dfSMateusz Piotrowski.Sm on
2047e0cb3dfSMateusz Piotrowski.Oc
2057e0cb3dfSMateusz Piotrowski.Xc
2067e0cb3dfSMateusz PiotrowskiSet the guest physical memory size
207cde1f5b8SJohn BaldwinThis must be the same size that was given to
208cde1f5b8SJohn Baldwin.Xr bhyveload 8 .
209cde1f5b8SJohn Baldwin.Pp
2107e0cb3dfSMateusz PiotrowskiThe size argument may be suffixed with one of
2117e0cb3dfSMateusz Piotrowski.Cm K , M , G
2127e0cb3dfSMateusz Piotrowskior
2137e0cb3dfSMateusz Piotrowski.Cm T
2147e0cb3dfSMateusz Piotrowski(either upper or lower case)
2157e0cb3dfSMateusz Piotrowskito indicate a multiple of kilobytes, megabytes, gigabytes, or terabytes.
216cde1f5b8SJohn BaldwinIf no suffix is given, the value is assumed to be in megabytes.
2176ee52c65SRoman Bogorodskiy.Pp
2187e0cb3dfSMateusz PiotrowskiThe default is 256M.
219621b5090SJohn Baldwin.It Fl o Ar var Ns Cm = Ns Ar value
220621b5090SJohn BaldwinSet the configuration variable
221621b5090SJohn Baldwin.Ar var
222621b5090SJohn Baldwinto
223621b5090SJohn Baldwin.Ar value .
224ccb1c87aSMateusz Piotrowski.It Fl P
225ccb1c87aSMateusz PiotrowskiForce the guest virtual CPU to exit when a PAUSE instruction is detected.
22690df5437SMateusz Piotrowski.It Fl p Ar vcpu Ns Cm \& : Ns Ar hostcpu
2279b6155a2SNeel NatuPin guest's virtual CPU
2289b6155a2SNeel Natu.Em vcpu
2299b6155a2SNeel Natuto
2309b6155a2SNeel Natu.Em hostcpu .
231483d953aSJohn Baldwin.It Fl r Ar file
232483d953aSJohn BaldwinResume a guest from a snapshot.
233483d953aSJohn BaldwinThe guest memory contents are restored from
234483d953aSJohn Baldwin.Ar file ,
235483d953aSJohn Baldwinand the guest device and vCPU state are restored from the file
236483d953aSJohn Baldwin.Dq Ar file Ns .kern .
237483d953aSJohn Baldwin.Pp
238483d953aSJohn BaldwinNote that the current snapshot file format requires that the configuration of
239483d953aSJohn Baldwindevices in the new VM match the VM from which the snapshot was taken by specifying the
240483d953aSJohn Baldwinsame
241b24eea8cSMateusz Piotrowski.Fl s
242483d953aSJohn Baldwinand
243b24eea8cSMateusz Piotrowski.Fl l
244483d953aSJohn Baldwinoptions.
245483d953aSJohn BaldwinThe count of vCPUs and memory configuration are read from the snapshot.
246ccb1c87aSMateusz Piotrowski.It Fl S
247ccb1c87aSMateusz PiotrowskiWire guest memory.
248449f0e48SMateusz Piotrowski.It Fl s Cm help
249449f0e48SMateusz PiotrowskiPrint a list of supported PCI devices.
250449f0e48SMateusz Piotrowski.It Fl s Ar slot Ns Cm \&, Ns Ar emulation Ns Op Cm \&, Ns Ar conf
251b13e60daSPeter GrehanConfigure a virtual PCI slot and function.
252b13e60daSPeter Grehan.Pp
25384fe889cSChristian Brueffer.Nm
254b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to
255b13e60daSPeter Grehanslots on the bus.
256b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions
257b13e60daSPeter Grehanper slot.
258234d8c47SMateusz Piotrowski.Pp
259234d8c47SMateusz PiotrowskiThe
260234d8c47SMateusz Piotrowski.Ar slot
261234d8c47SMateusz Piotrowskican be specified in one of the following formats:
262234d8c47SMateusz Piotrowski.Pp
263234d8c47SMateusz Piotrowski.Bl -bullet -compact
264234d8c47SMateusz Piotrowski.It
265234d8c47SMateusz Piotrowski.Ar pcislot
266234d8c47SMateusz Piotrowski.It
267234d8c47SMateusz Piotrowski.Sm off
268234d8c47SMateusz Piotrowski.Ar pcislot Cm \&: Ar function
269234d8c47SMateusz Piotrowski.Sm on
270234d8c47SMateusz Piotrowski.It
271234d8c47SMateusz Piotrowski.Sm off
272234d8c47SMateusz Piotrowski.Ar bus Cm \&: Ar pcislot Cm \&: Ar function
273234d8c47SMateusz Piotrowski.Sm on
274234d8c47SMateusz Piotrowski.El
275b13e60daSPeter Grehan.Pp
276b13e60daSPeter GrehanThe
277b13e60daSPeter Grehan.Ar pcislot
27884fe889cSChristian Brueffervalue is 0 to 31.
27984fe889cSChristian BruefferThe optional
28084fe889cSChristian Brueffer.Ar function
28184fe889cSChristian Brueffervalue is 0 to 7.
28284fe889cSChristian BruefferThe optional
28306db1b4aSNeel Natu.Ar bus
28406db1b4aSNeel Natuvalue is 0 to 255.
28584fe889cSChristian BruefferIf not specified, the
28684fe889cSChristian Brueffer.Ar function
28784fe889cSChristian Brueffervalue defaults to 0.
28884fe889cSChristian BruefferIf not specified, the
28984fe889cSChristian Brueffer.Ar bus
29084fe889cSChristian Brueffervalue defaults to 0.
291234d8c47SMateusz Piotrowski.Pp
292234d8c47SMateusz PiotrowskiThe
293234d8c47SMateusz Piotrowski.Ar emulation
294234d8c47SMateusz Piotrowskiargument
295234d8c47SMateusz Piotrowskican be one of the following:
2967014cb23SMateusz Piotrowski.Bl -tag -width "amd_hostbridge"
2977014cb23SMateusz Piotrowski.It Cm hostbridge
2987014cb23SMateusz PiotrowskiA simple host bridge.
299b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest
300b13e60daSPeter Grehanoperating systems.
3017014cb23SMateusz Piotrowski.It Cm amd_hostbridge
3027014cb23SMateusz PiotrowskiEmulation identical to
3037014cb23SMateusz Piotrowski.Cm hostbridge
3047014cb23SMateusz Piotrowskiusing a PCI vendor ID of AMD.
3057014cb23SMateusz Piotrowski.It Cm passthru
306b13e60daSPeter GrehanPCI pass-through device.
3077014cb23SMateusz Piotrowski.It Cm virtio-net
308b13e60daSPeter GrehanVirtio network interface.
3097014cb23SMateusz Piotrowski.It Cm virtio-blk
310b13e60daSPeter GrehanVirtio block storage interface.
3117014cb23SMateusz Piotrowski.It Cm virtio-scsi
312f9c005a1SMarcelo AraujoVirtio SCSI interface.
3137014cb23SMateusz Piotrowski.It Cm virtio-9p
314100353cfSJakub Wojciech KlamaVirtio 9p (VirtFS) interface.
3157014cb23SMateusz Piotrowski.It Cm virtio-rnd
3169d0c4e17SPeter GrehanVirtio RNG interface.
3177014cb23SMateusz Piotrowski.It Cm virtio-console
3185121b6ccSRoman BogorodskiyVirtio console interface, which exposes multiple ports
3195121b6ccSRoman Bogorodskiyto the guest in the form of simple char devices for simple IO
3205121b6ccSRoman Bogorodskiybetween the guest and host userspaces.
321054accacSCorvin Köhne.It Cm virtio-input
322054accacSCorvin KöhneVirtio input interface.
3237014cb23SMateusz Piotrowski.It Cm ahci
324d6099860SMaxim KonovalovAHCI controller attached to arbitrary devices.
3257014cb23SMateusz Piotrowski.It Cm ahci-cd
326b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD.
3277014cb23SMateusz Piotrowski.It Cm ahci-hd
3287014cb23SMateusz PiotrowskiAHCI controller attached to a SATA hard drive.
3297014cb23SMateusz Piotrowski.It Cm e1000
3309e749f25SAlexander MotinIntel e82545 network interface.
3317014cb23SMateusz Piotrowski.It Cm uart
332b13e60daSPeter GrehanPCI 16550 serial device.
3337014cb23SMateusz Piotrowski.It Cm lpc
3347014cb23SMateusz PiotrowskiLPC PCI-ISA bridge with COM1, COM2, COM3, and COM4 16550 serial ports,
3357014cb23SMateusz Piotrowskia boot ROM, and,
3362f40fc6fSPeter Grehanoptionally, the debug/test device.
3379b1aa8d6SNeel NatuThe LPC bridge emulation can only be configured on bus 0.
3387014cb23SMateusz Piotrowski.It Cm fbuf
3396c87a2c0SGleb SmirnoffRaw framebuffer device attached to VNC server.
3407014cb23SMateusz Piotrowski.It Cm xhci
3415c3ec676SGleb SmirnoffeXtensible Host Controller Interface (xHCI) USB controller.
3427014cb23SMateusz Piotrowski.It Cm nvme
343c066c68cSMarcelo AraujoNVM Express (NVMe) controller.
3447014cb23SMateusz Piotrowski.It Cm hda
34536f9f044SWarner LoshHigh Definition Audio Controller.
346b13e60daSPeter Grehan.El
347234d8c47SMateusz Piotrowski.Pp
348234d8c47SMateusz PiotrowskiThe optional parameter
349234d8c47SMateusz Piotrowski.Ar conf
350234d8c47SMateusz Piotrowskidescribes the backend for device emulations.
351b13e60daSPeter GrehanIf
352b13e60daSPeter Grehan.Ar conf
353b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be
354b13e60daSPeter Grehanconsidered unconnected.
355b13e60daSPeter Grehan.Pp
3568d9fefe6SMateusz PiotrowskiNetwork device backends:
3577fb22729SMateusz Piotrowski.Sm off
3587fb22729SMateusz Piotrowski.Bl -bullet
3597fb22729SMateusz Piotrowski.It
3607fb22729SMateusz Piotrowski.Xo
3617fb22729SMateusz Piotrowski.Cm tap Ar N
3627fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
3637fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
3647fb22729SMateusz Piotrowski.Xc
3657fb22729SMateusz Piotrowski.It
3667fb22729SMateusz Piotrowski.Xo
3677fb22729SMateusz Piotrowski.Cm vmnet Ar N
3687fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
3697fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
3707fb22729SMateusz Piotrowski.Xc
3717fb22729SMateusz Piotrowski.It
3727fb22729SMateusz Piotrowski.Xo
3737fb22729SMateusz Piotrowski.Cm netgraph,path= Ar ADDRESS Cm \&,peerhook= Ar HOOK
3747fb22729SMateusz Piotrowski.Op Cm \&,socket= Ar NAME
3757fb22729SMateusz Piotrowski.Op Cm \&,hook= Ar HOOK
3767fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
3777fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
3787fb22729SMateusz Piotrowski.Xc
3797fb22729SMateusz Piotrowski.El
3807fb22729SMateusz Piotrowski.Sm on
381b13e60daSPeter GrehanIf
3827fb22729SMateusz Piotrowski.Cm mac
383b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the
384b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and
385b13e60daSPeter Grehanthe device name.
386b13e60daSPeter Grehan.Pp
387b13e60daSPeter GrehanThe MAC address is an ASCII string in
388b13e60daSPeter Grehan.Xr ethers 5
389b13e60daSPeter Grehanformat.
390692dbfe9SVincenzo Maffione.Pp
3917fb22729SMateusz PiotrowskiWith
3927fb22729SMateusz Piotrowski.Cm virtio-net
3937fb22729SMateusz Piotrowskidevices, the
3947fb22729SMateusz Piotrowski.Cm mtu
395692dbfe9SVincenzo Maffioneparameter can be specified to inform the guest about the largest MTU
396692dbfe9SVincenzo Maffionethat should be allowed, expressed in bytes.
397e90337e4SAleksandr Fedorov.Pp
3987fb22729SMateusz PiotrowskiWith
3997fb22729SMateusz Piotrowski.Cm netgraph
4007fb22729SMateusz Piotrowskibackend, the
4017fb22729SMateusz Piotrowski.Cm path
402e90337e4SAleksandr Fedorovand
4037fb22729SMateusz Piotrowski.Cm peerhook
404e90337e4SAleksandr Fedorovparameters must be specified to set the destination node and corresponding hook.
405e90337e4SAleksandr FedorovThe optional parameters
4067fb22729SMateusz Piotrowski.Cm socket
407e90337e4SAleksandr Fedorovand
4087fb22729SMateusz Piotrowski.Cm hook
409e90337e4SAleksandr Fedorovmay be used to set the
410e90337e4SAleksandr Fedorov.Xr ng_socket 4
411e90337e4SAleksandr Fedorovnode name and source hook.
412e90337e4SAleksandr FedorovThe
413e90337e4SAleksandr Fedorov.Ar ADDRESS ,
4147fb22729SMateusz Piotrowski.Ar HOOK ,
415e90337e4SAleksandr Fedorovand
416e90337e4SAleksandr Fedorov.Ar NAME
417e90337e4SAleksandr Fedorovmust comply with
418e90337e4SAleksandr Fedorov.Xr netgraph 4
419e90337e4SAleksandr Fedorovaddressing rules.
420b13e60daSPeter Grehan.Pp
4215232a35fSMateusz PiotrowskiBlock storage device backends:
4225232a35fSMateusz Piotrowski.Sm off
4235232a35fSMateusz Piotrowski.Bl -bullet
4245232a35fSMateusz Piotrowski.It
4255232a35fSMateusz Piotrowski.Ar /filename Op Cm \&, Ar block-device-options
4265232a35fSMateusz Piotrowski.It
4275232a35fSMateusz Piotrowski.Ar /dev/xxx Op Cm \&, Ar block-device-options
4284e43c1e8SNeel Natu.El
4295232a35fSMateusz Piotrowski.Sm on
4304e43c1e8SNeel Natu.Pp
4314e43c1e8SNeel NatuThe
4324e43c1e8SNeel Natu.Ar block-device-options
4334e43c1e8SNeel Natuare:
4345232a35fSMateusz Piotrowski.Bl -tag -width 10n
4355232a35fSMateusz Piotrowski.It Cm nocache
436b13e60daSPeter GrehanOpen the file with
437b13e60daSPeter Grehan.Dv O_DIRECT .
4385232a35fSMateusz Piotrowski.It Cm direct
439b13e60daSPeter GrehanOpen the file using
440b13e60daSPeter Grehan.Dv O_SYNC .
4415232a35fSMateusz Piotrowski.It Cm ro
442b13e60daSPeter GrehanForce the file to be opened read-only.
4435232a35fSMateusz Piotrowski.It Cm sectorsize= Ns Ar logical Ns Oo Cm \&/ Ns Ar physical Oc
4444e43c1e8SNeel NatuSpecify the logical and physical sector sizes of the emulated disk.
4454e43c1e8SNeel NatuThe physical sector size is optional and is equal to the logical sector size
4464e43c1e8SNeel Natuif not explicitly specified.
4475232a35fSMateusz Piotrowski.It Cm nodelete
448e6d795d1SAllan JudeDisable emulation of guest trim requests via
449e6d795d1SAllan Jude.Dv DIOCGDELETE
450e6d795d1SAllan Juderequests.
451b13e60daSPeter Grehan.El
452b13e60daSPeter Grehan.Pp
4537c5829c9SMateusz PiotrowskiSCSI device backends:
4547c5829c9SMateusz Piotrowski.Sm off
4557c5829c9SMateusz Piotrowski.Bl -bullet
4567c5829c9SMateusz Piotrowski.It
4577c5829c9SMateusz Piotrowski.Pa /dev/cam/ctl Oo Ar pp Cm \&. Ar vp Oc Oo Cm \&, Ar scsi-device-options Oc
45849f87822SAlexander Motin.El
4597c5829c9SMateusz Piotrowski.Sm on
46049f87822SAlexander Motin.Pp
46149f87822SAlexander MotinThe
46249f87822SAlexander Motin.Ar scsi-device-options
46349f87822SAlexander Motinare:
46449f87822SAlexander Motin.Bl -tag -width 10n
4657c5829c9SMateusz Piotrowski.It Cm iid= Ns Ar IID
46649f87822SAlexander MotinInitiator ID to use when sending requests to specified CTL port.
46749f87822SAlexander MotinThe default value is 0.
468f9c005a1SMarcelo Araujo.El
469f9c005a1SMarcelo Araujo.Pp
4702d00b570SMateusz Piotrowski9P device backends:
4712d00b570SMateusz Piotrowski.Sm off
4722d00b570SMateusz Piotrowski.Bl -bullet
4732d00b570SMateusz Piotrowski.It
4742d00b570SMateusz Piotrowski.Ar sharename Cm = Ar /path/to/share Op Cm \&, Ar 9p-device-options
475100353cfSJakub Wojciech Klama.El
4762d00b570SMateusz Piotrowski.Sm on
477100353cfSJakub Wojciech Klama.Pp
478100353cfSJakub Wojciech KlamaThe
479100353cfSJakub Wojciech Klama.Ar 9p-device-options
480100353cfSJakub Wojciech Klamaare:
481100353cfSJakub Wojciech Klama.Bl -tag -width 10n
4822d00b570SMateusz Piotrowski.It Cm ro
483100353cfSJakub Wojciech KlamaExpose the share in read-only mode.
484100353cfSJakub Wojciech Klama.El
485100353cfSJakub Wojciech Klama.Pp
4862fda01a1SMateusz PiotrowskiTTY device backends:
487b13e60daSPeter Grehan.Bl -tag -width 10n
4882fda01a1SMateusz Piotrowski.It Cm stdio
489b13e60daSPeter GrehanConnect the serial port to the standard input and output of
49084fe889cSChristian Bruefferthe
49184fe889cSChristian Brueffer.Nm
49284fe889cSChristian Bruefferprocess.
4932fda01a1SMateusz Piotrowski.It Ar /dev/xxx
494b13e60daSPeter GrehanUse the host TTY device for serial port I/O.
495b13e60daSPeter Grehan.El
496b13e60daSPeter Grehan.Pp
4972fda01a1SMateusz PiotrowskiBoot ROM device backends:
4989b1aa8d6SNeel Natu.Bl -tag -width 10n
4992fda01a1SMateusz Piotrowski.It Ar romfile
5009b1aa8d6SNeel NatuMap
5019b1aa8d6SNeel Natu.Ar romfile
5029b1aa8d6SNeel Natuin the guest address space reserved for boot firmware.
5039b1aa8d6SNeel Natu.El
5049b1aa8d6SNeel Natu.Pp
5052fda01a1SMateusz PiotrowskiPass-through device backends:
506b13e60daSPeter Grehan.Bl -tag -width 10n
5072fda01a1SMateusz Piotrowski.It Ns Ar slot Ns Cm \&/ Ns Ar bus Ns Cm \&/ Ns Ar function
508b13e60daSPeter GrehanConnect to a PCI device on the host at the selector described by
509b13e60daSPeter Grehan.Ar slot ,
510b13e60daSPeter Grehan.Ar bus ,
511b13e60daSPeter Grehanand
512b13e60daSPeter Grehan.Ar function
513b13e60daSPeter Grehannumbers.
514b13e60daSPeter Grehan.El
515b13e60daSPeter Grehan.Pp
5169b1aa8d6SNeel NatuGuest memory must be wired using the
5179b1aa8d6SNeel Natu.Fl S
5189b1aa8d6SNeel Natuoption when a pass-through device is configured.
5199b1aa8d6SNeel Natu.Pp
520b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the
521a9258f9bSWarren Block.Va pptdevs
522b13e60daSPeter Grehanloader variable as described in
523b13e60daSPeter Grehan.Xr vmm 4 .
5245121b6ccSRoman Bogorodskiy.Pp
5253f4c771fSMateusz PiotrowskiVirtio console device backends:
5263f4c771fSMateusz Piotrowski.Bl -bullet
5273f4c771fSMateusz Piotrowski.Sm off
5283f4c771fSMateusz Piotrowski.It
5293f4c771fSMateusz 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 ...
5303f4c771fSMateusz Piotrowski.Sm on
5313f4c771fSMateusz Piotrowski.El
5323f4c771fSMateusz Piotrowski.Pp
5335121b6ccSRoman BogorodskiyA maximum of 16 ports per device can be created.
5345121b6ccSRoman BogorodskiyEvery port is named and corresponds to a Unix domain socket created by
5355121b6ccSRoman Bogorodskiy.Nm .
5365121b6ccSRoman Bogorodskiy.Nm
5375121b6ccSRoman Bogorodskiyaccepts at most one connection per port at a time.
5385121b6ccSRoman Bogorodskiy.Pp
5395121b6ccSRoman BogorodskiyLimitations:
5408d9fefe6SMateusz Piotrowski.Bl -bullet
5415121b6ccSRoman Bogorodskiy.It
5425121b6ccSRoman BogorodskiyDue to lack of destructors in
5435121b6ccSRoman Bogorodskiy.Nm ,
5445121b6ccSRoman Bogorodskiysockets on the filesystem must be cleaned up manually after
5455121b6ccSRoman Bogorodskiy.Nm
5465121b6ccSRoman Bogorodskiyexits.
5475121b6ccSRoman Bogorodskiy.It
5483f4c771fSMateusz PiotrowskiThere is no way to use the
5493f4c771fSMateusz Piotrowski.Dq console port
5503f4c771fSMateusz Piotrowskifeature, nor the console port
5510ee3a4b4SRoman Bogorodskiyresize at present.
5525121b6ccSRoman Bogorodskiy.It
5530ee3a4b4SRoman BogorodskiyEmergency write is advertised, but no-op at present.
5545121b6ccSRoman Bogorodskiy.El
5556c87a2c0SGleb Smirnoff.Pp
556054accacSCorvin KöhneVirtio input device backends:
557054accacSCorvin Köhne.Bl -tag -width 10n
558054accacSCorvin Köhne.It Ar /dev/input/eventX
559054accacSCorvin KöhneSend input events of
560054accacSCorvin Köhne.Ar /dev/input/eventX
561054accacSCorvin Köhneto guest by VirtIO Input Interface.
562054accacSCorvin Köhne.El
563054accacSCorvin Köhne.Pp
5648b97e975SMateusz PiotrowskiFramebuffer devices backends:
5658b97e975SMateusz Piotrowski.Bl -bullet
5668b97e975SMateusz Piotrowski.Sm off
5678b97e975SMateusz Piotrowski.It
5688b97e975SMateusz Piotrowski.Op Cm rfb= Ar ip-and-port
5698b97e975SMateusz Piotrowski.Op Cm ,w= Ar width
5708b97e975SMateusz Piotrowski.Op Cm ,h= Ar height
5718b97e975SMateusz Piotrowski.Op Cm ,vga= Ar vgaconf
5728b97e975SMateusz Piotrowski.Op Cm ,wait
5738b97e975SMateusz Piotrowski.Op Cm ,password= Ar password
5748b97e975SMateusz Piotrowski.Sm on
5758b97e975SMateusz Piotrowski.El
5768b97e975SMateusz Piotrowski.Pp
5778b97e975SMateusz PiotrowskiConfiguration options are defined as follows:
5785c3ec676SGleb Smirnoff.Bl -tag -width 10n
5798b97e975SMateusz Piotrowski.It Cm rfb= Ns Ar ip-and-port Pq or Cm tcp= Ns Ar ip-and-port
5808b97e975SMateusz PiotrowskiAn IP address and a port VNC should listen on.
5818b97e975SMateusz PiotrowskiThere are two formats:
5828b97e975SMateusz Piotrowski.Pp
5838b97e975SMateusz Piotrowski.Bl -bullet -compact
5848d9fefe6SMateusz Piotrowski.It
5858b97e975SMateusz Piotrowski.Sm off
5868b97e975SMateusz Piotrowski.Op Ar IPv4 Cm \&:
5875c3ec676SGleb Smirnoff.Ar port
5888b97e975SMateusz Piotrowski.Sm on
5898d9fefe6SMateusz Piotrowski.It
5908b97e975SMateusz Piotrowski.Sm off
5918b97e975SMateusz Piotrowski.Cm \&[ Ar IPv6%zone Cm \&] Cm \&: Ar port
5928b97e975SMateusz Piotrowski.Sm on
5938b97e975SMateusz Piotrowski.El
5948b97e975SMateusz Piotrowski.Pp
5956c87a2c0SGleb SmirnoffThe default is to listen on localhost IPv4 address and default VNC port 5900.
5968883128bSBjoern A. ZeebAn IPv6 address must be enclosed in square brackets and may contain an
5977d9545fcSRodney W. Grimesoptional zone identifier.
5988b97e975SMateusz Piotrowski.It Cm w= Ns Ar width No and Cm h= Ns Ar height
5995c3ec676SGleb SmirnoffA display resolution, width and height, respectively.
6005c3ec676SGleb SmirnoffIf not specified, a default resolution of 1024x768 pixels will be used.
6015c3ec676SGleb SmirnoffMinimal supported resolution is 640x480 pixels,
6025c3ec676SGleb Smirnoffand maximum is 1920x1200 pixels.
6038b97e975SMateusz Piotrowski.It Cm vga= Ns Ar vgaconf
6045c3ec676SGleb SmirnoffPossible values for this option are
6058b97e975SMateusz Piotrowski.Cm io
6065c3ec676SGleb Smirnoff(default),
6078b97e975SMateusz Piotrowski.Cm on
6085c3ec676SGleb Smirnoff, and
6098b97e975SMateusz Piotrowski.Cm off .
6105c3ec676SGleb SmirnoffPCI graphics cards have a dual personality in that they are
6115c3ec676SGleb Smirnoffstandard PCI devices with BAR addressing, but may also
6125c3ec676SGleb Smirnoffimplicitly decode legacy VGA I/O space
6135c3ec676SGleb Smirnoff.Pq Ad 0x3c0-3df
6145c3ec676SGleb Smirnoffand memory space
6155c3ec676SGleb Smirnoff.Pq 64KB at Ad 0xA0000 .
6165c3ec676SGleb SmirnoffThe default
6178b97e975SMateusz Piotrowski.Cm io
6188d56c805SYuri Pankovoption should be used for guests that attempt to issue BIOS calls which result
6198d56c805SYuri Pankovin I/O port queries, and fail to boot if I/O decode is disabled.
6205c3ec676SGleb Smirnoff.Pp
6215c3ec676SGleb SmirnoffThe
6228b97e975SMateusz Piotrowski.Cm on
6235c3ec676SGleb Smirnoffoption should be used along with the CSM BIOS capability in UEFI
6245c3ec676SGleb Smirnoffto boot traditional BIOS guests that require the legacy VGA I/O and
6255c3ec676SGleb Smirnoffmemory regions to be available.
6265c3ec676SGleb Smirnoff.Pp
6275c3ec676SGleb SmirnoffThe
6288b97e975SMateusz Piotrowski.Cm off
6295c3ec676SGleb Smirnoffoption should be used for the UEFI guests that assume that
6305c3ec676SGleb SmirnoffVGA adapter is present if they detect the I/O ports.
6315c3ec676SGleb SmirnoffAn example of such a guest is
6325c3ec676SGleb Smirnoff.Ox
6335c3ec676SGleb Smirnoffin UEFI mode.
6345c3ec676SGleb Smirnoff.Pp
6355c3ec676SGleb SmirnoffPlease refer to the
6365c3ec676SGleb Smirnoff.Nm
6375c3ec676SGleb Smirnoff.Fx
6385c3ec676SGleb Smirnoffwiki page
6395c3ec676SGleb Smirnoff.Pq Lk https://wiki.freebsd.org/bhyve
6405c3ec676SGleb Smirnofffor configuration notes of particular guests.
6418b97e975SMateusz Piotrowski.It Cm wait
6425c3ec676SGleb SmirnoffInstruct
6435c3ec676SGleb Smirnoff.Nm
6448d56c805SYuri Pankovto only boot upon the initiation of a VNC connection, simplifying the
6458d56c805SYuri Pankovinstallation of operating systems that require immediate keyboard input.
6465c3ec676SGleb SmirnoffThis can be removed for post-installation use.
6478b97e975SMateusz Piotrowski.It Cm password= Ns Ar password
648f4d34383SMarcelo AraujoThis type of authentication is known to be cryptographically weak and is not
649f4d34383SMarcelo Araujointended for use on untrusted networks.
650f4d34383SMarcelo AraujoMany implementations will want to use stronger security, such as running
651f4d34383SMarcelo Araujothe session over an encrypted channel provided by IPsec or SSH.
6525c3ec676SGleb Smirnoff.El
6536c87a2c0SGleb Smirnoff.Pp
6546eff58acSMateusz PiotrowskixHCI USB device backends:
6555c3ec676SGleb Smirnoff.Bl -tag -width 10n
6566eff58acSMateusz Piotrowski.It Cm tablet
6575c3ec676SGleb SmirnoffA USB tablet device which provides precise cursor synchronization
6585c3ec676SGleb Smirnoffwhen using VNC.
6596c87a2c0SGleb Smirnoff.El
660c066c68cSMarcelo Araujo.Pp
6616eff58acSMateusz PiotrowskiNVMe device backends:
6626eff58acSMateusz Piotrowski.Bl -bullet
6636eff58acSMateusz Piotrowski.Sm off
6646eff58acSMateusz Piotrowski.It
6656eff58acSMateusz Piotrowski.Ar devpath
6666eff58acSMateusz Piotrowski.Op Cm ,maxq= Ar #
6676eff58acSMateusz Piotrowski.Op Cm ,qsz= Ar #
6686eff58acSMateusz Piotrowski.Op Cm ,ioslots= Ar #
6696eff58acSMateusz Piotrowski.Op Cm ,sectsz= Ar #
6706eff58acSMateusz Piotrowski.Op Cm ,ser= Ar #
6716eff58acSMateusz Piotrowski.Op Cm ,eui64= Ar #
6726eff58acSMateusz Piotrowski.Op Cm ,dsm= Ar opt
6736eff58acSMateusz Piotrowski.Sm on
6746eff58acSMateusz Piotrowski.El
6756eff58acSMateusz Piotrowski.Pp
6766eff58acSMateusz PiotrowskiConfiguration options are defined as follows:
677c066c68cSMarcelo Araujo.Bl -tag -width 10n
6786eff58acSMateusz Piotrowski.It Ar devpath
679c066c68cSMarcelo AraujoAccepted device paths are:
680c066c68cSMarcelo Araujo.Ar /dev/blockdev
681c066c68cSMarcelo Araujoor
682c066c68cSMarcelo Araujo.Ar /path/to/image
683c066c68cSMarcelo Araujoor
6846eff58acSMateusz Piotrowski.Cm ram= Ns Ar size_in_MiB .
6856eff58acSMateusz Piotrowski.It Cm maxq
686c066c68cSMarcelo AraujoMax number of queues.
6876eff58acSMateusz Piotrowski.It Cm qsz
688c066c68cSMarcelo AraujoMax elements in each queue.
6896eff58acSMateusz Piotrowski.It Cm ioslots
690c066c68cSMarcelo AraujoMax number of concurrent I/O requests.
6916eff58acSMateusz Piotrowski.It Cm sectsz
692c066c68cSMarcelo AraujoSector size (defaults to blockif sector size).
6936eff58acSMateusz Piotrowski.It Cm ser
694c066c68cSMarcelo AraujoSerial number with maximum 20 characters.
6956eff58acSMateusz Piotrowski.It Cm eui64
6966eff58acSMateusz PiotrowskiIEEE Extended Unique Identifier (8 byte value).
6976eff58acSMateusz Piotrowski.It Cm dsm
6986eff58acSMateusz PiotrowskiDataSet Management support.
6996eff58acSMateusz PiotrowskiSupported values are:
7006eff58acSMateusz Piotrowski.Cm auto , enable ,
7016eff58acSMateusz Piotrowskiand
7026eff58acSMateusz Piotrowski.Cm disable .
703c066c68cSMarcelo Araujo.El
70436f9f044SWarner Losh.Pp
705d5fcc4b6SMateusz PiotrowskiAHCI device backends:
706d5fcc4b6SMateusz Piotrowski.Bl -bullet
707d5fcc4b6SMateusz Piotrowski.It
708d5fcc4b6SMateusz Piotrowski.Sm off
709d5fcc4b6SMateusz Piotrowski.Op Oo Cm hd\&: | cd\&: Oc Ar path
710d5fcc4b6SMateusz Piotrowski.Op Cm ,nmrr= Ar nmrr
711d5fcc4b6SMateusz Piotrowski.Op Cm ,ser= Ar #
712d5fcc4b6SMateusz Piotrowski.Op Cm ,rev= Ar #
713d5fcc4b6SMateusz Piotrowski.Op Cm ,model= Ar #
714d5fcc4b6SMateusz Piotrowski.Sm on
715d5fcc4b6SMateusz Piotrowski.El
716d5fcc4b6SMateusz Piotrowski.Pp
717d5fcc4b6SMateusz PiotrowskiConfiguration options are defined as follows:
7189af3bcd7SPeter Grehan.Bl -tag -width 10n
719d5fcc4b6SMateusz Piotrowski.It Cm nmrr
720d5fcc4b6SMateusz PiotrowskiNominal Media Rotation Rate, known as RPM.
721d5fcc4b6SMateusz PiotrowskiValue 1 will indicate device as Solid State Disk.
722d5fcc4b6SMateusz PiotrowskiDefault value is 0, not report.
723d5fcc4b6SMateusz Piotrowski.It Cm ser
7249af3bcd7SPeter GrehanSerial Number with maximum 20 characters.
725d5fcc4b6SMateusz Piotrowski.It Cm rev
7269af3bcd7SPeter GrehanRevision Number with maximum 8 characters.
727d5fcc4b6SMateusz Piotrowski.It Cm model
7289af3bcd7SPeter GrehanModel Number with maximum 40 characters.
7299af3bcd7SPeter Grehan.El
7309af3bcd7SPeter Grehan.Pp
731061f37d2SMateusz PiotrowskiHD Audio device backends:
732061f37d2SMateusz Piotrowski.Bl -bullet
733061f37d2SMateusz Piotrowski.It
734061f37d2SMateusz Piotrowski.Sm off
735061f37d2SMateusz Piotrowski.Op Cm play= Ar playback
736061f37d2SMateusz Piotrowski.Op Cm ,rec= Ar recording
737061f37d2SMateusz Piotrowski.Sm on
738061f37d2SMateusz Piotrowski.El
739061f37d2SMateusz Piotrowski.Pp
740061f37d2SMateusz PiotrowskiConfiguration options are defined as follows:
74136f9f044SWarner Losh.Bl -tag -width 10n
742061f37d2SMateusz Piotrowski.It Cm play
74336f9f044SWarner LoshPlayback device, typically
74436f9f044SWarner Losh.Ar /dev/dsp0 .
745061f37d2SMateusz Piotrowski.It Cm rec
74636f9f044SWarner LoshRecording device, typically
74736f9f044SWarner Losh.Ar /dev/dsp0 .
74836f9f044SWarner Losh.El
7495749449dSJohn Baldwin.It Fl U Ar uuid
7505749449dSJohn BaldwinSet the universally unique identifier
7515749449dSJohn Baldwin.Pq UUID
7525749449dSJohn Baldwinin the guest's System Management BIOS System Information structure.
7535749449dSJohn BaldwinBy default a UUID is generated from the host's hostname and
7545749449dSJohn Baldwin.Ar vmname .
755ccb1c87aSMateusz Piotrowski.It Fl u
756ccb1c87aSMateusz PiotrowskiRTC keeps UTC time.
757cde1f5b8SJohn Baldwin.It Fl W
758cde1f5b8SJohn BaldwinForce virtio PCI device emulations to use MSI interrupts instead of MSI-X
759cde1f5b8SJohn Baldwininterrupts.
760ccb1c87aSMateusz Piotrowski.It Fl w
761ccb1c87aSMateusz PiotrowskiIgnore accesses to unimplemented Model Specific Registers (MSRs).
762ccb1c87aSMateusz PiotrowskiThis is intended for debug purposes.
7639777ca20SNeel Natu.It Fl x
7649777ca20SNeel NatuThe guest's local APIC is configured in x2APIC mode.
765b100acf2SNeel Natu.It Fl Y
766b100acf2SNeel NatuDisable MPtable generation.
767b13e60daSPeter Grehan.It Ar vmname
768b13e60daSPeter GrehanAlphanumeric name of the guest.
769b13e60daSPeter GrehanThis should be the same as that created by
770b13e60daSPeter Grehan.Xr bhyveload 8 .
771b13e60daSPeter Grehan.El
772621b5090SJohn Baldwin.Sh CONFIGURATION VARIABLES
773621b5090SJohn Baldwin.Nm
774621b5090SJohn Baldwinuses an internal tree of configuration variables to describe global and
775621b5090SJohn Baldwinper-device settings.
776621b5090SJohn BaldwinWhen
777621b5090SJohn Baldwin.Nm
778621b5090SJohn Baldwinstarts,
779621b5090SJohn Baldwinit parses command line options (including config files) in the order given
780621b5090SJohn Baldwinon the command line.
781621b5090SJohn BaldwinEach command line option sets one or more configuration variables.
782621b5090SJohn BaldwinFor example,
783621b5090SJohn Baldwinthe
784621b5090SJohn Baldwin.Fl s
785621b5090SJohn Baldwinoption creates a new tree node for a PCI device and sets one or more variables
786621b5090SJohn Baldwinunder that node including the device model and device model-specific variables.
787621b5090SJohn BaldwinVariables may be set multiple times during this parsing stage with the final
788621b5090SJohn Baldwinvalue overriding previous values.
789621b5090SJohn Baldwin.Pp
790621b5090SJohn BaldwinOnce all of the command line options have been processed,
791621b5090SJohn Baldwinthe configuration values are frozen.
792621b5090SJohn Baldwin.Nm
793621b5090SJohn Baldwinthen uses the value of configuration values to initialize device models
794621b5090SJohn Baldwinand global settings.
795621b5090SJohn Baldwin.Pp
796621b5090SJohn BaldwinMore details on configuration variables can be found in
797621b5090SJohn Baldwin.Xr bhyve_config 5 .
798cd377eb3SJohn Baldwin.Sh DEBUG SERVER
799cd377eb3SJohn BaldwinThe current debug server provides limited support for debuggers.
800cd377eb3SJohn Baldwin.Ss Registers
801cd377eb3SJohn BaldwinEach virtual CPU is exposed to the debugger as a thread.
802cd377eb3SJohn Baldwin.Pp
803cd377eb3SJohn BaldwinGeneral purpose registers can be queried for each virtual CPU, but other
804cd377eb3SJohn Baldwinregisters such as floating-point and system registers cannot be queried.
805cd377eb3SJohn Baldwin.Ss Memory
806976ba8c6SJohn BaldwinMemory (including memory mapped I/O regions) can be read and written by the debugger.
8078d56c805SYuri PankovMemory operations use virtual addresses that are resolved to physical addresses
8088d56c805SYuri Pankovvia the current virtual CPU's active address translation.
809cd377eb3SJohn Baldwin.Ss Control
810cd377eb3SJohn BaldwinThe running guest can be interrupted by the debugger at any time
811cd377eb3SJohn Baldwin.Pq for example, by pressing Ctrl-C in the debugger .
812cd377eb3SJohn Baldwin.Pp
813cd377eb3SJohn BaldwinSingle stepping is only supported on Intel CPUs supporting the MTRAP VM exit.
814cd377eb3SJohn Baldwin.Pp
815cbd03a9dSJohn BaldwinBreakpoints are supported on Intel CPUs that support single stepping.
816cbd03a9dSJohn BaldwinNote that continuing from a breakpoint while interrupts are enabled in the
817cbd03a9dSJohn Baldwinguest may not work as expected due to timer interrupts firing while single
818cbd03a9dSJohn Baldwinstepping over the breakpoint.
819c2202d41SRoman Bogorodskiy.Sh SIGNAL HANDLING
820c2202d41SRoman Bogorodskiy.Nm
821c2202d41SRoman Bogorodskiydeals with the following signals:
822c2202d41SRoman Bogorodskiy.Pp
8233357e948SMateusz Piotrowski.Bl -tag -width SIGTERM -compact
824c2202d41SRoman Bogorodskiy.It SIGTERM
825c2202d41SRoman BogorodskiyTrigger ACPI poweroff for a VM
826c2202d41SRoman Bogorodskiy.El
827c2202d41SRoman Bogorodskiy.Sh EXIT STATUS
828c2202d41SRoman BogorodskiyExit status indicates how the VM was terminated:
829c2202d41SRoman Bogorodskiy.Pp
830c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact
831c2202d41SRoman Bogorodskiy.It 0
832c2202d41SRoman Bogorodskiyrebooted
833c2202d41SRoman Bogorodskiy.It 1
834c2202d41SRoman Bogorodskiypowered off
835c2202d41SRoman Bogorodskiy.It 2
836c2202d41SRoman Bogorodskiyhalted
837c2202d41SRoman Bogorodskiy.It 3
838c2202d41SRoman Bogorodskiytriple fault
839989e062bSMarcelo Araujo.It 4
840989e062bSMarcelo Araujoexited due to an error
841c2202d41SRoman Bogorodskiy.El
842b13e60daSPeter Grehan.Sh EXAMPLES
8435c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must have been loaded with
84484fe889cSChristian Brueffer.Xr bhyveload 8
845b13e60daSPeter Grehanor a similar boot loader before
846b13e60daSPeter Grehan.Xr bhyve 4
847b13e60daSPeter Grehancan be run.
8485c3ec676SGleb SmirnoffOtherwise, the boot loader is not needed.
849b13e60daSPeter Grehan.Pp
850b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio
851b13e60daSPeter Grehanblock device backed by the
852b13e60daSPeter Grehan.Pa /my/image
853b13e60daSPeter Grehanfilesystem image, and a serial port for the console:
854b13e60daSPeter Grehan.Bd -literal -offset indent
855b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\
856b13e60daSPeter Grehan  -l com1,stdio -A -H -P -m 1G vm1
857b13e60daSPeter Grehan.Ed
858b13e60daSPeter Grehan.Pp
859b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which
860b13e60daSPeter Grehanhas a MAC address specified:
861b13e60daSPeter Grehan.Bd -literal -offset indent
862b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\
863b13e60daSPeter Grehan  -s 2:1,virtio-net,tap1 \\
864b13e60daSPeter Grehan  -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\
865b13e60daSPeter Grehan  -s 3,virtio-blk,/my/image -l com1,stdio \\
866b13e60daSPeter Grehan  -A -H -P -m 24G bigvm
867b13e60daSPeter Grehan.Ed
868b13e60daSPeter Grehan.Pp
869b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI
870b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console
871b13e60daSPeter Grehanport connected to an
872b13e60daSPeter Grehan.Xr nmdm 4
87384fe889cSChristian Brueffernull-modem device.
874b13e60daSPeter Grehan.Bd -literal -offset indent
875a7ab1463SAlexander Motinbhyve -c 4 \\
876b13e60daSPeter Grehan  -s 0,amd_hostbridge -s 1,lpc \\
877098f5155SAlexander Motin  -s 1:0,ahci,hd:/images/disk.1,hd:/images/disk.2,\\
878098f5155SAlexander Motinhd:/images/disk.3,hd:/images/disk.4,\\
879098f5155SAlexander Motinhd:/images/disk.5,hd:/images/disk.6,\\
880098f5155SAlexander Motinhd:/images/disk.7,hd:/images/disk.8,\\
881098f5155SAlexander Motincd:/images/install.iso \\
882b13e60daSPeter Grehan  -s 3,virtio-net,tap0 \\
883b13e60daSPeter Grehan  -l com1,/dev/nmdm0A \\
884b13e60daSPeter Grehan  -A -H -P -m 8G
885b13e60daSPeter Grehan.Ed
8865c3ec676SGleb Smirnoff.Pp
8875c3ec676SGleb SmirnoffRun a UEFI virtual machine with a display resolution of 800 by 600 pixels
8885c3ec676SGleb Smirnoffthat can be accessed via VNC at: 0.0.0.0:5900.
8895c3ec676SGleb Smirnoff.Bd -literal -offset indent
8905c3ec676SGleb Smirnoffbhyve -c 2 -m 4G -w -H \\
8915c3ec676SGleb Smirnoff  -s 0,hostbridge \\
8925c3ec676SGleb Smirnoff  -s 3,ahci-cd,/path/to/uefi-OS-install.iso \\
8935c3ec676SGleb Smirnoff  -s 4,ahci-hd,disk.img \\
8945c3ec676SGleb Smirnoff  -s 5,virtio-net,tap0 \\
8955c3ec676SGleb Smirnoff  -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \\
8965c3ec676SGleb Smirnoff  -s 30,xhci,tablet \\
8975c3ec676SGleb Smirnoff  -s 31,lpc -l com1,stdio \\
8985c3ec676SGleb Smirnoff  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
8995c3ec676SGleb Smirnoff   uefivm
9005c3ec676SGleb Smirnoff.Ed
9018883128bSBjoern A. Zeeb.Pp
9028883128bSBjoern A. ZeebRun a UEFI virtual machine with a VNC display that is bound to all IPv6
9038883128bSBjoern A. Zeebaddresses on port 5900.
9048883128bSBjoern A. Zeeb.Bd -literal -offset indent
9058883128bSBjoern A. Zeebbhyve -c 2 -m 4G -w -H \\
9068883128bSBjoern A. Zeeb  -s 0,hostbridge \\
9078883128bSBjoern A. Zeeb  -s 4,ahci-hd,disk.img \\
9088883128bSBjoern A. Zeeb  -s 5,virtio-net,tap0 \\
9098883128bSBjoern A. Zeeb  -s 29,fbuf,tcp=[::]:5900,w=800,h=600 \\
9108883128bSBjoern A. Zeeb  -s 30,xhci,tablet \\
9118883128bSBjoern A. Zeeb  -s 31,lpc -l com1,stdio \\
9128883128bSBjoern A. Zeeb  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
9138883128bSBjoern A. Zeeb   uefivm
9148883128bSBjoern A. Zeeb.Ed
915b13e60daSPeter Grehan.Sh SEE ALSO
916b13e60daSPeter Grehan.Xr bhyve 4 ,
917e90337e4SAleksandr Fedorov.Xr netgraph 4 ,
918e90337e4SAleksandr Fedorov.Xr ng_socket 4 ,
919b13e60daSPeter Grehan.Xr nmdm 4 ,
920b13e60daSPeter Grehan.Xr vmm 4 ,
921621b5090SJohn Baldwin.Xr bhyve_config 5 ,
922b13e60daSPeter Grehan.Xr ethers 5 ,
92305f7cd8bSJoel Dahl.Xr bhyvectl 8 ,
92405f7cd8bSJoel Dahl.Xr bhyveload 8
9258d56c805SYuri Pankov.Pp
9268d56c805SYuri Pankov.Rs
9278d56c805SYuri Pankov.%A Intel
9288d56c805SYuri Pankov.%B 64 and IA-32 Architectures Software Developer’s Manual
9298d56c805SYuri Pankov.%V Volume 3
9308d56c805SYuri Pankov.Re
931b13e60daSPeter Grehan.Sh HISTORY
932b13e60daSPeter Grehan.Nm
933b13e60daSPeter Grehanfirst appeared in
934b13e60daSPeter Grehan.Fx 10.0 .
935b13e60daSPeter Grehan.Sh AUTHORS
93601c2b8acSBaptiste Daroussin.An Neel Natu Aq Mt neel@freebsd.org
93701c2b8acSBaptiste Daroussin.An Peter Grehan Aq Mt grehan@freebsd.org
938