xref: /freebsd/usr.sbin/bhyve/bhyve.8 (revision 2cdff9918e79dcd9bfcaa919b8364afa41cd1e02)
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*2cdff991SMariusz 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
48cd377eb3SJohn Baldwin.Op Fl G Ar port
49621b5090SJohn Baldwin.Op Fl k Ar file
5077d208a3SMateusz Piotrowski.Oo Fl l
5177d208a3SMateusz Piotrowski.Sm off
52bfe40b69SMateusz Piotrowski.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
598d9fefe6SMateusz Piotrowski.Cm K | Cm k | Cm M | Cm m | Cm G | Cm g | Cm T | Cm t
6077d208a3SMateusz Piotrowski.Oc
6177d208a3SMateusz Piotrowski.Sm on
6277d208a3SMateusz Piotrowski.Oc
63621b5090SJohn Baldwin.Op Fl o Ar var Ns Cm = Ns Ar value
6477d208a3SMateusz Piotrowski.Op Fl p Ar vcpu Ns Cm \&: Ns Ar hostcpu
65483d953aSJohn Baldwin.Op Fl r Ar file
6677d208a3SMateusz Piotrowski.Sm off
67bfe40b69SMateusz Piotrowski.Oo Fl s\~
68bfe40b69SMateusz Piotrowski.Ar slot Cm \&, Ar emulation Op Cm \&, Ar conf
6977d208a3SMateusz Piotrowski.Sm on
7077d208a3SMateusz Piotrowski.Oc
715749449dSJohn Baldwin.Op Fl U Ar uuid
72b13e60daSPeter Grehan.Ar vmname
73bfe40b69SMateusz Piotrowski.Nm
74bfe40b69SMateusz Piotrowski.Fl l Cm help
75bfe40b69SMateusz Piotrowski.Nm
76bfe40b69SMateusz Piotrowski.Fl s Cm help
77b13e60daSPeter Grehan.Sh DESCRIPTION
78b13e60daSPeter Grehan.Nm
797fca1ad5SGlen Barberis a hypervisor that runs guest operating systems inside a
80b13e60daSPeter Grehanvirtual machine.
81b13e60daSPeter Grehan.Pp
82b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and
83b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters.
84b13e60daSPeter Grehan.Pp
855c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must be loaded with
8684fe889cSChristian Brueffer.Xr bhyveload 8
87b13e60daSPeter Grehanor a similar boot loader before running
885c3ec676SGleb Smirnoff.Nm ,
895c3ec676SGleb Smirnoffotherwise, it is enough to run
905c3ec676SGleb Smirnoff.Nm
915c3ec676SGleb Smirnoffwith a boot ROM of choice.
92b13e60daSPeter Grehan.Pp
93b13e60daSPeter Grehan.Nm
94b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor
95b13e60daSPeter Grehanexit is detected.
96b13e60daSPeter Grehan.Sh OPTIONS
97b13e60daSPeter Grehan.Bl -tag -width 10n
98b13e60daSPeter Grehan.It Fl A
99b13e60daSPeter GrehanGenerate ACPI tables.
100b13e60daSPeter GrehanRequired for
101b13e60daSPeter Grehan.Fx Ns /amd64
102b13e60daSPeter Grehanguests.
103ccb1c87aSMateusz Piotrowski.It Fl a
104ccb1c87aSMateusz PiotrowskiThe guest's local APIC is configured in xAPIC mode.
105ccb1c87aSMateusz PiotrowskiThe xAPIC mode is the default setting so this option is redundant.
106ccb1c87aSMateusz PiotrowskiIt will be deprecated in a future version.
107ccb1c87aSMateusz Piotrowski.It Fl C
108ccb1c87aSMateusz PiotrowskiInclude guest memory in core file.
10901d822d3SRodney W. Grimes.It Fl c Op Ar setting ...
11001d822d3SRodney W. GrimesNumber of guest virtual CPUs
11101d822d3SRodney W. Grimesand/or the CPU topology.
11201d822d3SRodney W. GrimesThe default value for each of
11301d822d3SRodney W. Grimes.Ar numcpus ,
11401d822d3SRodney W. Grimes.Ar sockets ,
11501d822d3SRodney W. Grimes.Ar cores ,
11601d822d3SRodney W. Grimesand
11701d822d3SRodney W. Grimes.Ar threads
11801d822d3SRodney W. Grimesis 1.
11901d822d3SRodney W. GrimesThe current maximum number of guest virtual CPUs is 16.
12001d822d3SRodney W. GrimesIf
12101d822d3SRodney W. Grimes.Ar numcpus
12201d822d3SRodney W. Grimesis not specified then it will be calculated from the other arguments.
12301d822d3SRodney W. GrimesThe topology must be consistent in that the
12401d822d3SRodney W. Grimes.Ar numcpus
12501d822d3SRodney W. Grimesmust equal the product of
12601d822d3SRodney W. Grimes.Ar sockets ,
12701d822d3SRodney W. Grimes.Ar cores ,
12801d822d3SRodney W. Grimesand
12901d822d3SRodney W. Grimes.Ar threads .
13001d822d3SRodney W. GrimesIf a
13101d822d3SRodney W. Grimes.Ar setting
13201d822d3SRodney W. Grimesis specified more than once the last one has precedence.
1330a1016f9SPawel Biernacki.It Fl D
1340a1016f9SPawel BiernackiDestroy the VM on guest initiated power-off.
135cde1f5b8SJohn Baldwin.It Fl e
136cde1f5b8SJohn BaldwinForce
137cde1f5b8SJohn Baldwin.Nm
138cde1f5b8SJohn Baldwinto exit when a guest issues an access to an I/O port that is not emulated.
139cde1f5b8SJohn BaldwinThis is intended for debug purposes.
140*2cdff991SMariusz Zaborski.It Fl G Xo
141*2cdff991SMariusz Zaborski.Sm off
142*2cdff991SMariusz Zaborski.Oo Ar w Oc
143*2cdff991SMariusz Zaborski.Oo Ar bind_address: Oc
144*2cdff991SMariusz Zaborski.Ar port
145*2cdff991SMariusz Zaborski.Sm on
146*2cdff991SMariusz Zaborski.Xc
147cd377eb3SJohn BaldwinStart a debug server that uses the GDB protocol to export guest state to a
148cd377eb3SJohn Baldwindebugger.
149cd377eb3SJohn BaldwinAn IPv4 TCP socket will be bound to the supplied
150*2cdff991SMariusz Zaborski.Ar bind_address
151*2cdff991SMariusz Zaborskiand
152cd377eb3SJohn Baldwin.Ar port
153cd377eb3SJohn Baldwinto listen for debugger connections.
154cd377eb3SJohn BaldwinOnly a single debugger may be attached to the debug server at a time.
155*2cdff991SMariusz ZaborskiIf the option begins with
156cd377eb3SJohn Baldwin.Sq w ,
157cd377eb3SJohn Baldwin.Nm
158cd377eb3SJohn Baldwinwill pause execution at the first instruction waiting for a debugger to attach.
159cde1f5b8SJohn Baldwin.It Fl H
160cde1f5b8SJohn BaldwinYield the virtual CPU thread when a HLT instruction is detected.
161cde1f5b8SJohn BaldwinIf this option is not specified, virtual CPUs will use 100% of a host CPU.
162ccb1c87aSMateusz Piotrowski.It Fl h
163ccb1c87aSMateusz PiotrowskiPrint help message and exit.
164621b5090SJohn Baldwin.It Fl k Ar file
165621b5090SJohn BaldwinSet configuration variables from a simple, key-value config file.
166621b5090SJohn BaldwinEach line of the config file is expected to consist of a config variable
167621b5090SJohn Baldwinname, an equals sign
168621b5090SJohn Baldwin.Pq Sq = ,
169621b5090SJohn Baldwinand a value.
170621b5090SJohn BaldwinNo spaces are permitted between the variable name, equals sign, or
171621b5090SJohn Baldwinvalue.
172621b5090SJohn BaldwinBlank lines and lines starting with
173621b5090SJohn Baldwin.Sq #
174621b5090SJohn Baldwinare ignored.
1754c08b978SMateusz Piotrowski.It Fl l Cm help
1764c08b978SMateusz PiotrowskiPrint a list of supported LPC devices.
1774c08b978SMateusz Piotrowski.It Fl l Ar lpcdev Ns Op Cm \&, Ns Ar conf
178cde1f5b8SJohn BaldwinAllow devices behind the LPC PCI-ISA bridge to be configured.
1799b1aa8d6SNeel NatuThe only supported devices are the TTY-class devices
1804c08b978SMateusz Piotrowski.Cm com1 , com2 , com3 ,
1814c08b978SMateusz Piotrowskiand
1824c08b978SMateusz Piotrowski.Cm com4 ,
1832f40fc6fSPeter Grehanthe boot ROM device
1844c08b978SMateusz Piotrowski.Cm bootrom ,
1852f40fc6fSPeter Grehanand the debug/test device
1864c08b978SMateusz Piotrowski.Cm pc-testdev .
1871aa56353SMarcelo Araujo.Pp
1884c08b978SMateusz PiotrowskiThe possible values for the
1894c08b978SMateusz Piotrowski.Ar conf
1904c08b978SMateusz Piotrowskiargument are listed in the
1914c08b978SMateusz Piotrowski.Fl s
1924c08b978SMateusz Piotrowskiflag description.
1937e0cb3dfSMateusz Piotrowski.It Xo
1947e0cb3dfSMateusz Piotrowski.Fl m Ar memsize Ns Oo
1957e0cb3dfSMateusz Piotrowski.Sm off
1967e0cb3dfSMateusz Piotrowski.Cm K | k | M | m | G | g | T | t
1977e0cb3dfSMateusz Piotrowski.Sm on
1987e0cb3dfSMateusz Piotrowski.Oc
1997e0cb3dfSMateusz Piotrowski.Xc
2007e0cb3dfSMateusz PiotrowskiSet the guest physical memory size
201cde1f5b8SJohn BaldwinThis must be the same size that was given to
202cde1f5b8SJohn Baldwin.Xr bhyveload 8 .
203cde1f5b8SJohn Baldwin.Pp
2047e0cb3dfSMateusz PiotrowskiThe size argument may be suffixed with one of
2057e0cb3dfSMateusz Piotrowski.Cm K , M , G
2067e0cb3dfSMateusz Piotrowskior
2077e0cb3dfSMateusz Piotrowski.Cm T
2087e0cb3dfSMateusz Piotrowski(either upper or lower case)
2097e0cb3dfSMateusz Piotrowskito indicate a multiple of kilobytes, megabytes, gigabytes, or terabytes.
210cde1f5b8SJohn BaldwinIf no suffix is given, the value is assumed to be in megabytes.
2116ee52c65SRoman Bogorodskiy.Pp
2127e0cb3dfSMateusz PiotrowskiThe default is 256M.
213621b5090SJohn Baldwin.It Fl o Ar var Ns Cm = Ns Ar value
214621b5090SJohn BaldwinSet the configuration variable
215621b5090SJohn Baldwin.Ar var
216621b5090SJohn Baldwinto
217621b5090SJohn Baldwin.Ar value .
218ccb1c87aSMateusz Piotrowski.It Fl P
219ccb1c87aSMateusz PiotrowskiForce the guest virtual CPU to exit when a PAUSE instruction is detected.
22090df5437SMateusz Piotrowski.It Fl p Ar vcpu Ns Cm \& : Ns Ar hostcpu
2219b6155a2SNeel NatuPin guest's virtual CPU
2229b6155a2SNeel Natu.Em vcpu
2239b6155a2SNeel Natuto
2249b6155a2SNeel Natu.Em hostcpu .
225483d953aSJohn Baldwin.It Fl r Ar file
226483d953aSJohn BaldwinResume a guest from a snapshot.
227483d953aSJohn BaldwinThe guest memory contents are restored from
228483d953aSJohn Baldwin.Ar file ,
229483d953aSJohn Baldwinand the guest device and vCPU state are restored from the file
230483d953aSJohn Baldwin.Dq Ar file Ns .kern .
231483d953aSJohn Baldwin.Pp
232483d953aSJohn BaldwinNote that the current snapshot file format requires that the configuration of
233483d953aSJohn Baldwindevices in the new VM match the VM from which the snapshot was taken by specifying the
234483d953aSJohn Baldwinsame
235b24eea8cSMateusz Piotrowski.Fl s
236483d953aSJohn Baldwinand
237b24eea8cSMateusz Piotrowski.Fl l
238483d953aSJohn Baldwinoptions.
239483d953aSJohn BaldwinThe count of vCPUs and memory configuration are read from the snapshot.
240ccb1c87aSMateusz Piotrowski.It Fl S
241ccb1c87aSMateusz PiotrowskiWire guest memory.
242449f0e48SMateusz Piotrowski.It Fl s Cm help
243449f0e48SMateusz PiotrowskiPrint a list of supported PCI devices.
244449f0e48SMateusz Piotrowski.It Fl s Ar slot Ns Cm \&, Ns Ar emulation Ns Op Cm \&, Ns Ar conf
245b13e60daSPeter GrehanConfigure a virtual PCI slot and function.
246b13e60daSPeter Grehan.Pp
24784fe889cSChristian Brueffer.Nm
248b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to
249b13e60daSPeter Grehanslots on the bus.
250b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions
251b13e60daSPeter Grehanper slot.
252234d8c47SMateusz Piotrowski.Pp
253234d8c47SMateusz PiotrowskiThe
254234d8c47SMateusz Piotrowski.Ar slot
255234d8c47SMateusz Piotrowskican be specified in one of the following formats:
256234d8c47SMateusz Piotrowski.Pp
257234d8c47SMateusz Piotrowski.Bl -bullet -compact
258234d8c47SMateusz Piotrowski.It
259234d8c47SMateusz Piotrowski.Ar pcislot
260234d8c47SMateusz Piotrowski.It
261234d8c47SMateusz Piotrowski.Sm off
262234d8c47SMateusz Piotrowski.Ar pcislot Cm \&: Ar function
263234d8c47SMateusz Piotrowski.Sm on
264234d8c47SMateusz Piotrowski.It
265234d8c47SMateusz Piotrowski.Sm off
266234d8c47SMateusz Piotrowski.Ar bus Cm \&: Ar pcislot Cm \&: Ar function
267234d8c47SMateusz Piotrowski.Sm on
268234d8c47SMateusz Piotrowski.El
269b13e60daSPeter Grehan.Pp
270b13e60daSPeter GrehanThe
271b13e60daSPeter Grehan.Ar pcislot
27284fe889cSChristian Brueffervalue is 0 to 31.
27384fe889cSChristian BruefferThe optional
27484fe889cSChristian Brueffer.Ar function
27584fe889cSChristian Brueffervalue is 0 to 7.
27684fe889cSChristian BruefferThe optional
27706db1b4aSNeel Natu.Ar bus
27806db1b4aSNeel Natuvalue is 0 to 255.
27984fe889cSChristian BruefferIf not specified, the
28084fe889cSChristian Brueffer.Ar function
28184fe889cSChristian Brueffervalue defaults to 0.
28284fe889cSChristian BruefferIf not specified, the
28384fe889cSChristian Brueffer.Ar bus
28484fe889cSChristian Brueffervalue defaults to 0.
285234d8c47SMateusz Piotrowski.Pp
286234d8c47SMateusz PiotrowskiThe
287234d8c47SMateusz Piotrowski.Ar emulation
288234d8c47SMateusz Piotrowskiargument
289234d8c47SMateusz Piotrowskican be one of the following:
2907014cb23SMateusz Piotrowski.Bl -tag -width "amd_hostbridge"
2917014cb23SMateusz Piotrowski.It Cm hostbridge
2927014cb23SMateusz PiotrowskiA simple host bridge.
293b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest
294b13e60daSPeter Grehanoperating systems.
2957014cb23SMateusz Piotrowski.It Cm amd_hostbridge
2967014cb23SMateusz PiotrowskiEmulation identical to
2977014cb23SMateusz Piotrowski.Cm hostbridge
2987014cb23SMateusz Piotrowskiusing a PCI vendor ID of AMD.
2997014cb23SMateusz Piotrowski.It Cm passthru
300b13e60daSPeter GrehanPCI pass-through device.
3017014cb23SMateusz Piotrowski.It Cm virtio-net
302b13e60daSPeter GrehanVirtio network interface.
3037014cb23SMateusz Piotrowski.It Cm virtio-blk
304b13e60daSPeter GrehanVirtio block storage interface.
3057014cb23SMateusz Piotrowski.It Cm virtio-scsi
306f9c005a1SMarcelo AraujoVirtio SCSI interface.
3077014cb23SMateusz Piotrowski.It Cm virtio-9p
308100353cfSJakub Wojciech KlamaVirtio 9p (VirtFS) interface.
3097014cb23SMateusz Piotrowski.It Cm virtio-rnd
3109d0c4e17SPeter GrehanVirtio RNG interface.
3117014cb23SMateusz Piotrowski.It Cm virtio-console
3125121b6ccSRoman BogorodskiyVirtio console interface, which exposes multiple ports
3135121b6ccSRoman Bogorodskiyto the guest in the form of simple char devices for simple IO
3145121b6ccSRoman Bogorodskiybetween the guest and host userspaces.
315054accacSCorvin Köhne.It Cm virtio-input
316054accacSCorvin KöhneVirtio input interface.
3177014cb23SMateusz Piotrowski.It Cm ahci
318d6099860SMaxim KonovalovAHCI controller attached to arbitrary devices.
3197014cb23SMateusz Piotrowski.It Cm ahci-cd
320b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD.
3217014cb23SMateusz Piotrowski.It Cm ahci-hd
3227014cb23SMateusz PiotrowskiAHCI controller attached to a SATA hard drive.
3237014cb23SMateusz Piotrowski.It Cm e1000
3249e749f25SAlexander MotinIntel e82545 network interface.
3257014cb23SMateusz Piotrowski.It Cm uart
326b13e60daSPeter GrehanPCI 16550 serial device.
3277014cb23SMateusz Piotrowski.It Cm lpc
3287014cb23SMateusz PiotrowskiLPC PCI-ISA bridge with COM1, COM2, COM3, and COM4 16550 serial ports,
3297014cb23SMateusz Piotrowskia boot ROM, and,
3302f40fc6fSPeter Grehanoptionally, the debug/test device.
3319b1aa8d6SNeel NatuThe LPC bridge emulation can only be configured on bus 0.
3327014cb23SMateusz Piotrowski.It Cm fbuf
3336c87a2c0SGleb SmirnoffRaw framebuffer device attached to VNC server.
3347014cb23SMateusz Piotrowski.It Cm xhci
3355c3ec676SGleb SmirnoffeXtensible Host Controller Interface (xHCI) USB controller.
3367014cb23SMateusz Piotrowski.It Cm nvme
337c066c68cSMarcelo AraujoNVM Express (NVMe) controller.
3387014cb23SMateusz Piotrowski.It Cm hda
33936f9f044SWarner LoshHigh Definition Audio Controller.
340b13e60daSPeter Grehan.El
341234d8c47SMateusz Piotrowski.Pp
342234d8c47SMateusz PiotrowskiThe optional parameter
343234d8c47SMateusz Piotrowski.Ar conf
344234d8c47SMateusz Piotrowskidescribes the backend for device emulations.
345b13e60daSPeter GrehanIf
346b13e60daSPeter Grehan.Ar conf
347b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be
348b13e60daSPeter Grehanconsidered unconnected.
349b13e60daSPeter Grehan.Pp
3508d9fefe6SMateusz PiotrowskiNetwork device backends:
3517fb22729SMateusz Piotrowski.Sm off
3527fb22729SMateusz Piotrowski.Bl -bullet
3537fb22729SMateusz Piotrowski.It
3547fb22729SMateusz Piotrowski.Xo
3557fb22729SMateusz Piotrowski.Cm tap Ar N
3567fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
3577fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
3587fb22729SMateusz Piotrowski.Xc
3597fb22729SMateusz Piotrowski.It
3607fb22729SMateusz Piotrowski.Xo
3617fb22729SMateusz Piotrowski.Cm vmnet 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 netgraph,path= Ar ADDRESS Cm \&,peerhook= Ar HOOK
3687fb22729SMateusz Piotrowski.Op Cm \&,socket= Ar NAME
3697fb22729SMateusz Piotrowski.Op Cm \&,hook= Ar HOOK
3707fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
3717fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
3727fb22729SMateusz Piotrowski.Xc
3737fb22729SMateusz Piotrowski.El
3747fb22729SMateusz Piotrowski.Sm on
375b13e60daSPeter GrehanIf
3767fb22729SMateusz Piotrowski.Cm mac
377b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the
378b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and
379b13e60daSPeter Grehanthe device name.
380b13e60daSPeter Grehan.Pp
381b13e60daSPeter GrehanThe MAC address is an ASCII string in
382b13e60daSPeter Grehan.Xr ethers 5
383b13e60daSPeter Grehanformat.
384692dbfe9SVincenzo Maffione.Pp
3857fb22729SMateusz PiotrowskiWith
3867fb22729SMateusz Piotrowski.Cm virtio-net
3877fb22729SMateusz Piotrowskidevices, the
3887fb22729SMateusz Piotrowski.Cm mtu
389692dbfe9SVincenzo Maffioneparameter can be specified to inform the guest about the largest MTU
390692dbfe9SVincenzo Maffionethat should be allowed, expressed in bytes.
391e90337e4SAleksandr Fedorov.Pp
3927fb22729SMateusz PiotrowskiWith
3937fb22729SMateusz Piotrowski.Cm netgraph
3947fb22729SMateusz Piotrowskibackend, the
3957fb22729SMateusz Piotrowski.Cm path
396e90337e4SAleksandr Fedorovand
3977fb22729SMateusz Piotrowski.Cm peerhook
398e90337e4SAleksandr Fedorovparameters must be specified to set the destination node and corresponding hook.
399e90337e4SAleksandr FedorovThe optional parameters
4007fb22729SMateusz Piotrowski.Cm socket
401e90337e4SAleksandr Fedorovand
4027fb22729SMateusz Piotrowski.Cm hook
403e90337e4SAleksandr Fedorovmay be used to set the
404e90337e4SAleksandr Fedorov.Xr ng_socket 4
405e90337e4SAleksandr Fedorovnode name and source hook.
406e90337e4SAleksandr FedorovThe
407e90337e4SAleksandr Fedorov.Ar ADDRESS ,
4087fb22729SMateusz Piotrowski.Ar HOOK ,
409e90337e4SAleksandr Fedorovand
410e90337e4SAleksandr Fedorov.Ar NAME
411e90337e4SAleksandr Fedorovmust comply with
412e90337e4SAleksandr Fedorov.Xr netgraph 4
413e90337e4SAleksandr Fedorovaddressing rules.
414b13e60daSPeter Grehan.Pp
4155232a35fSMateusz PiotrowskiBlock storage device backends:
4165232a35fSMateusz Piotrowski.Sm off
4175232a35fSMateusz Piotrowski.Bl -bullet
4185232a35fSMateusz Piotrowski.It
4195232a35fSMateusz Piotrowski.Ar /filename Op Cm \&, Ar block-device-options
4205232a35fSMateusz Piotrowski.It
4215232a35fSMateusz Piotrowski.Ar /dev/xxx Op Cm \&, Ar block-device-options
4224e43c1e8SNeel Natu.El
4235232a35fSMateusz Piotrowski.Sm on
4244e43c1e8SNeel Natu.Pp
4254e43c1e8SNeel NatuThe
4264e43c1e8SNeel Natu.Ar block-device-options
4274e43c1e8SNeel Natuare:
4285232a35fSMateusz Piotrowski.Bl -tag -width 10n
4295232a35fSMateusz Piotrowski.It Cm nocache
430b13e60daSPeter GrehanOpen the file with
431b13e60daSPeter Grehan.Dv O_DIRECT .
4325232a35fSMateusz Piotrowski.It Cm direct
433b13e60daSPeter GrehanOpen the file using
434b13e60daSPeter Grehan.Dv O_SYNC .
4355232a35fSMateusz Piotrowski.It Cm ro
436b13e60daSPeter GrehanForce the file to be opened read-only.
4375232a35fSMateusz Piotrowski.It Cm sectorsize= Ns Ar logical Ns Oo Cm \&/ Ns Ar physical Oc
4384e43c1e8SNeel NatuSpecify the logical and physical sector sizes of the emulated disk.
4394e43c1e8SNeel NatuThe physical sector size is optional and is equal to the logical sector size
4404e43c1e8SNeel Natuif not explicitly specified.
4415232a35fSMateusz Piotrowski.It Cm nodelete
442e6d795d1SAllan JudeDisable emulation of guest trim requests via
443e6d795d1SAllan Jude.Dv DIOCGDELETE
444e6d795d1SAllan Juderequests.
445b13e60daSPeter Grehan.El
446b13e60daSPeter Grehan.Pp
4477c5829c9SMateusz PiotrowskiSCSI device backends:
4487c5829c9SMateusz Piotrowski.Sm off
4497c5829c9SMateusz Piotrowski.Bl -bullet
4507c5829c9SMateusz Piotrowski.It
4517c5829c9SMateusz Piotrowski.Pa /dev/cam/ctl Oo Ar pp Cm \&. Ar vp Oc Oo Cm \&, Ar scsi-device-options Oc
45249f87822SAlexander Motin.El
4537c5829c9SMateusz Piotrowski.Sm on
45449f87822SAlexander Motin.Pp
45549f87822SAlexander MotinThe
45649f87822SAlexander Motin.Ar scsi-device-options
45749f87822SAlexander Motinare:
45849f87822SAlexander Motin.Bl -tag -width 10n
4597c5829c9SMateusz Piotrowski.It Cm iid= Ns Ar IID
46049f87822SAlexander MotinInitiator ID to use when sending requests to specified CTL port.
46149f87822SAlexander MotinThe default value is 0.
462f9c005a1SMarcelo Araujo.El
463f9c005a1SMarcelo Araujo.Pp
4642d00b570SMateusz Piotrowski9P device backends:
4652d00b570SMateusz Piotrowski.Sm off
4662d00b570SMateusz Piotrowski.Bl -bullet
4672d00b570SMateusz Piotrowski.It
4682d00b570SMateusz Piotrowski.Ar sharename Cm = Ar /path/to/share Op Cm \&, Ar 9p-device-options
469100353cfSJakub Wojciech Klama.El
4702d00b570SMateusz Piotrowski.Sm on
471100353cfSJakub Wojciech Klama.Pp
472100353cfSJakub Wojciech KlamaThe
473100353cfSJakub Wojciech Klama.Ar 9p-device-options
474100353cfSJakub Wojciech Klamaare:
475100353cfSJakub Wojciech Klama.Bl -tag -width 10n
4762d00b570SMateusz Piotrowski.It Cm ro
477100353cfSJakub Wojciech KlamaExpose the share in read-only mode.
478100353cfSJakub Wojciech Klama.El
479100353cfSJakub Wojciech Klama.Pp
4802fda01a1SMateusz PiotrowskiTTY device backends:
481b13e60daSPeter Grehan.Bl -tag -width 10n
4822fda01a1SMateusz Piotrowski.It Cm stdio
483b13e60daSPeter GrehanConnect the serial port to the standard input and output of
48484fe889cSChristian Bruefferthe
48584fe889cSChristian Brueffer.Nm
48684fe889cSChristian Bruefferprocess.
4872fda01a1SMateusz Piotrowski.It Ar /dev/xxx
488b13e60daSPeter GrehanUse the host TTY device for serial port I/O.
489b13e60daSPeter Grehan.El
490b13e60daSPeter Grehan.Pp
4912fda01a1SMateusz PiotrowskiBoot ROM device backends:
4929b1aa8d6SNeel Natu.Bl -tag -width 10n
4932fda01a1SMateusz Piotrowski.It Ar romfile
4949b1aa8d6SNeel NatuMap
4959b1aa8d6SNeel Natu.Ar romfile
4969b1aa8d6SNeel Natuin the guest address space reserved for boot firmware.
4979b1aa8d6SNeel Natu.El
4989b1aa8d6SNeel Natu.Pp
4992fda01a1SMateusz PiotrowskiPass-through device backends:
500b13e60daSPeter Grehan.Bl -tag -width 10n
5012fda01a1SMateusz Piotrowski.It Ns Ar slot Ns Cm \&/ Ns Ar bus Ns Cm \&/ Ns Ar function
502b13e60daSPeter GrehanConnect to a PCI device on the host at the selector described by
503b13e60daSPeter Grehan.Ar slot ,
504b13e60daSPeter Grehan.Ar bus ,
505b13e60daSPeter Grehanand
506b13e60daSPeter Grehan.Ar function
507b13e60daSPeter Grehannumbers.
508b13e60daSPeter Grehan.El
509b13e60daSPeter Grehan.Pp
5109b1aa8d6SNeel NatuGuest memory must be wired using the
5119b1aa8d6SNeel Natu.Fl S
5129b1aa8d6SNeel Natuoption when a pass-through device is configured.
5139b1aa8d6SNeel Natu.Pp
514b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the
515a9258f9bSWarren Block.Va pptdevs
516b13e60daSPeter Grehanloader variable as described in
517b13e60daSPeter Grehan.Xr vmm 4 .
5185121b6ccSRoman Bogorodskiy.Pp
5193f4c771fSMateusz PiotrowskiVirtio console device backends:
5203f4c771fSMateusz Piotrowski.Bl -bullet
5213f4c771fSMateusz Piotrowski.Sm off
5223f4c771fSMateusz Piotrowski.It
5233f4c771fSMateusz 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 ...
5243f4c771fSMateusz Piotrowski.Sm on
5253f4c771fSMateusz Piotrowski.El
5263f4c771fSMateusz Piotrowski.Pp
5275121b6ccSRoman BogorodskiyA maximum of 16 ports per device can be created.
5285121b6ccSRoman BogorodskiyEvery port is named and corresponds to a Unix domain socket created by
5295121b6ccSRoman Bogorodskiy.Nm .
5305121b6ccSRoman Bogorodskiy.Nm
5315121b6ccSRoman Bogorodskiyaccepts at most one connection per port at a time.
5325121b6ccSRoman Bogorodskiy.Pp
5335121b6ccSRoman BogorodskiyLimitations:
5348d9fefe6SMateusz Piotrowski.Bl -bullet
5355121b6ccSRoman Bogorodskiy.It
5365121b6ccSRoman BogorodskiyDue to lack of destructors in
5375121b6ccSRoman Bogorodskiy.Nm ,
5385121b6ccSRoman Bogorodskiysockets on the filesystem must be cleaned up manually after
5395121b6ccSRoman Bogorodskiy.Nm
5405121b6ccSRoman Bogorodskiyexits.
5415121b6ccSRoman Bogorodskiy.It
5423f4c771fSMateusz PiotrowskiThere is no way to use the
5433f4c771fSMateusz Piotrowski.Dq console port
5443f4c771fSMateusz Piotrowskifeature, nor the console port
5450ee3a4b4SRoman Bogorodskiyresize at present.
5465121b6ccSRoman Bogorodskiy.It
5470ee3a4b4SRoman BogorodskiyEmergency write is advertised, but no-op at present.
5485121b6ccSRoman Bogorodskiy.El
5496c87a2c0SGleb Smirnoff.Pp
550054accacSCorvin KöhneVirtio input device backends:
551054accacSCorvin Köhne.Bl -tag -width 10n
552054accacSCorvin Köhne.It Ar /dev/input/eventX
553054accacSCorvin KöhneSend input events of
554054accacSCorvin Köhne.Ar /dev/input/eventX
555054accacSCorvin Köhneto guest by VirtIO Input Interface.
556054accacSCorvin Köhne.El
557054accacSCorvin Köhne.Pp
5588b97e975SMateusz PiotrowskiFramebuffer devices backends:
5598b97e975SMateusz Piotrowski.Bl -bullet
5608b97e975SMateusz Piotrowski.Sm off
5618b97e975SMateusz Piotrowski.It
5628b97e975SMateusz Piotrowski.Op Cm rfb= Ar ip-and-port
5638b97e975SMateusz Piotrowski.Op Cm ,w= Ar width
5648b97e975SMateusz Piotrowski.Op Cm ,h= Ar height
5658b97e975SMateusz Piotrowski.Op Cm ,vga= Ar vgaconf
5668b97e975SMateusz Piotrowski.Op Cm ,wait
5678b97e975SMateusz Piotrowski.Op Cm ,password= Ar password
5688b97e975SMateusz Piotrowski.Sm on
5698b97e975SMateusz Piotrowski.El
5708b97e975SMateusz Piotrowski.Pp
5718b97e975SMateusz PiotrowskiConfiguration options are defined as follows:
5725c3ec676SGleb Smirnoff.Bl -tag -width 10n
5738b97e975SMateusz Piotrowski.It Cm rfb= Ns Ar ip-and-port Pq or Cm tcp= Ns Ar ip-and-port
5748b97e975SMateusz PiotrowskiAn IP address and a port VNC should listen on.
5758b97e975SMateusz PiotrowskiThere are two formats:
5768b97e975SMateusz Piotrowski.Pp
5778b97e975SMateusz Piotrowski.Bl -bullet -compact
5788d9fefe6SMateusz Piotrowski.It
5798b97e975SMateusz Piotrowski.Sm off
5808b97e975SMateusz Piotrowski.Op Ar IPv4 Cm \&:
5815c3ec676SGleb Smirnoff.Ar port
5828b97e975SMateusz Piotrowski.Sm on
5838d9fefe6SMateusz Piotrowski.It
5848b97e975SMateusz Piotrowski.Sm off
5858b97e975SMateusz Piotrowski.Cm \&[ Ar IPv6%zone Cm \&] Cm \&: Ar port
5868b97e975SMateusz Piotrowski.Sm on
5878b97e975SMateusz Piotrowski.El
5888b97e975SMateusz Piotrowski.Pp
5896c87a2c0SGleb SmirnoffThe default is to listen on localhost IPv4 address and default VNC port 5900.
5908883128bSBjoern A. ZeebAn IPv6 address must be enclosed in square brackets and may contain an
5917d9545fcSRodney W. Grimesoptional zone identifier.
5928b97e975SMateusz Piotrowski.It Cm w= Ns Ar width No and Cm h= Ns Ar height
5935c3ec676SGleb SmirnoffA display resolution, width and height, respectively.
5945c3ec676SGleb SmirnoffIf not specified, a default resolution of 1024x768 pixels will be used.
5955c3ec676SGleb SmirnoffMinimal supported resolution is 640x480 pixels,
5965c3ec676SGleb Smirnoffand maximum is 1920x1200 pixels.
5978b97e975SMateusz Piotrowski.It Cm vga= Ns Ar vgaconf
5985c3ec676SGleb SmirnoffPossible values for this option are
5998b97e975SMateusz Piotrowski.Cm io
6005c3ec676SGleb Smirnoff(default),
6018b97e975SMateusz Piotrowski.Cm on
6025c3ec676SGleb Smirnoff, and
6038b97e975SMateusz Piotrowski.Cm off .
6045c3ec676SGleb SmirnoffPCI graphics cards have a dual personality in that they are
6055c3ec676SGleb Smirnoffstandard PCI devices with BAR addressing, but may also
6065c3ec676SGleb Smirnoffimplicitly decode legacy VGA I/O space
6075c3ec676SGleb Smirnoff.Pq Ad 0x3c0-3df
6085c3ec676SGleb Smirnoffand memory space
6095c3ec676SGleb Smirnoff.Pq 64KB at Ad 0xA0000 .
6105c3ec676SGleb SmirnoffThe default
6118b97e975SMateusz Piotrowski.Cm io
6128d56c805SYuri Pankovoption should be used for guests that attempt to issue BIOS calls which result
6138d56c805SYuri Pankovin I/O port queries, and fail to boot if I/O decode is disabled.
6145c3ec676SGleb Smirnoff.Pp
6155c3ec676SGleb SmirnoffThe
6168b97e975SMateusz Piotrowski.Cm on
6175c3ec676SGleb Smirnoffoption should be used along with the CSM BIOS capability in UEFI
6185c3ec676SGleb Smirnoffto boot traditional BIOS guests that require the legacy VGA I/O and
6195c3ec676SGleb Smirnoffmemory regions to be available.
6205c3ec676SGleb Smirnoff.Pp
6215c3ec676SGleb SmirnoffThe
6228b97e975SMateusz Piotrowski.Cm off
6235c3ec676SGleb Smirnoffoption should be used for the UEFI guests that assume that
6245c3ec676SGleb SmirnoffVGA adapter is present if they detect the I/O ports.
6255c3ec676SGleb SmirnoffAn example of such a guest is
6265c3ec676SGleb Smirnoff.Ox
6275c3ec676SGleb Smirnoffin UEFI mode.
6285c3ec676SGleb Smirnoff.Pp
6295c3ec676SGleb SmirnoffPlease refer to the
6305c3ec676SGleb Smirnoff.Nm
6315c3ec676SGleb Smirnoff.Fx
6325c3ec676SGleb Smirnoffwiki page
6335c3ec676SGleb Smirnoff.Pq Lk https://wiki.freebsd.org/bhyve
6345c3ec676SGleb Smirnofffor configuration notes of particular guests.
6358b97e975SMateusz Piotrowski.It Cm wait
6365c3ec676SGleb SmirnoffInstruct
6375c3ec676SGleb Smirnoff.Nm
6388d56c805SYuri Pankovto only boot upon the initiation of a VNC connection, simplifying the
6398d56c805SYuri Pankovinstallation of operating systems that require immediate keyboard input.
6405c3ec676SGleb SmirnoffThis can be removed for post-installation use.
6418b97e975SMateusz Piotrowski.It Cm password= Ns Ar password
642f4d34383SMarcelo AraujoThis type of authentication is known to be cryptographically weak and is not
643f4d34383SMarcelo Araujointended for use on untrusted networks.
644f4d34383SMarcelo AraujoMany implementations will want to use stronger security, such as running
645f4d34383SMarcelo Araujothe session over an encrypted channel provided by IPsec or SSH.
6465c3ec676SGleb Smirnoff.El
6476c87a2c0SGleb Smirnoff.Pp
6486eff58acSMateusz PiotrowskixHCI USB device backends:
6495c3ec676SGleb Smirnoff.Bl -tag -width 10n
6506eff58acSMateusz Piotrowski.It Cm tablet
6515c3ec676SGleb SmirnoffA USB tablet device which provides precise cursor synchronization
6525c3ec676SGleb Smirnoffwhen using VNC.
6536c87a2c0SGleb Smirnoff.El
654c066c68cSMarcelo Araujo.Pp
6556eff58acSMateusz PiotrowskiNVMe device backends:
6566eff58acSMateusz Piotrowski.Bl -bullet
6576eff58acSMateusz Piotrowski.Sm off
6586eff58acSMateusz Piotrowski.It
6596eff58acSMateusz Piotrowski.Ar devpath
6606eff58acSMateusz Piotrowski.Op Cm ,maxq= Ar #
6616eff58acSMateusz Piotrowski.Op Cm ,qsz= Ar #
6626eff58acSMateusz Piotrowski.Op Cm ,ioslots= Ar #
6636eff58acSMateusz Piotrowski.Op Cm ,sectsz= Ar #
6646eff58acSMateusz Piotrowski.Op Cm ,ser= Ar #
6656eff58acSMateusz Piotrowski.Op Cm ,eui64= Ar #
6666eff58acSMateusz Piotrowski.Op Cm ,dsm= Ar opt
6676eff58acSMateusz Piotrowski.Sm on
6686eff58acSMateusz Piotrowski.El
6696eff58acSMateusz Piotrowski.Pp
6706eff58acSMateusz PiotrowskiConfiguration options are defined as follows:
671c066c68cSMarcelo Araujo.Bl -tag -width 10n
6726eff58acSMateusz Piotrowski.It Ar devpath
673c066c68cSMarcelo AraujoAccepted device paths are:
674c066c68cSMarcelo Araujo.Ar /dev/blockdev
675c066c68cSMarcelo Araujoor
676c066c68cSMarcelo Araujo.Ar /path/to/image
677c066c68cSMarcelo Araujoor
6786eff58acSMateusz Piotrowski.Cm ram= Ns Ar size_in_MiB .
6796eff58acSMateusz Piotrowski.It Cm maxq
680c066c68cSMarcelo AraujoMax number of queues.
6816eff58acSMateusz Piotrowski.It Cm qsz
682c066c68cSMarcelo AraujoMax elements in each queue.
6836eff58acSMateusz Piotrowski.It Cm ioslots
684c066c68cSMarcelo AraujoMax number of concurrent I/O requests.
6856eff58acSMateusz Piotrowski.It Cm sectsz
686c066c68cSMarcelo AraujoSector size (defaults to blockif sector size).
6876eff58acSMateusz Piotrowski.It Cm ser
688c066c68cSMarcelo AraujoSerial number with maximum 20 characters.
6896eff58acSMateusz Piotrowski.It Cm eui64
6906eff58acSMateusz PiotrowskiIEEE Extended Unique Identifier (8 byte value).
6916eff58acSMateusz Piotrowski.It Cm dsm
6926eff58acSMateusz PiotrowskiDataSet Management support.
6936eff58acSMateusz PiotrowskiSupported values are:
6946eff58acSMateusz Piotrowski.Cm auto , enable ,
6956eff58acSMateusz Piotrowskiand
6966eff58acSMateusz Piotrowski.Cm disable .
697c066c68cSMarcelo Araujo.El
69836f9f044SWarner Losh.Pp
699d5fcc4b6SMateusz PiotrowskiAHCI device backends:
700d5fcc4b6SMateusz Piotrowski.Bl -bullet
701d5fcc4b6SMateusz Piotrowski.It
702d5fcc4b6SMateusz Piotrowski.Sm off
703d5fcc4b6SMateusz Piotrowski.Op Oo Cm hd\&: | cd\&: Oc Ar path
704d5fcc4b6SMateusz Piotrowski.Op Cm ,nmrr= Ar nmrr
705d5fcc4b6SMateusz Piotrowski.Op Cm ,ser= Ar #
706d5fcc4b6SMateusz Piotrowski.Op Cm ,rev= Ar #
707d5fcc4b6SMateusz Piotrowski.Op Cm ,model= Ar #
708d5fcc4b6SMateusz Piotrowski.Sm on
709d5fcc4b6SMateusz Piotrowski.El
710d5fcc4b6SMateusz Piotrowski.Pp
711d5fcc4b6SMateusz PiotrowskiConfiguration options are defined as follows:
7129af3bcd7SPeter Grehan.Bl -tag -width 10n
713d5fcc4b6SMateusz Piotrowski.It Cm nmrr
714d5fcc4b6SMateusz PiotrowskiNominal Media Rotation Rate, known as RPM.
715d5fcc4b6SMateusz PiotrowskiValue 1 will indicate device as Solid State Disk.
716d5fcc4b6SMateusz PiotrowskiDefault value is 0, not report.
717d5fcc4b6SMateusz Piotrowski.It Cm ser
7189af3bcd7SPeter GrehanSerial Number with maximum 20 characters.
719d5fcc4b6SMateusz Piotrowski.It Cm rev
7209af3bcd7SPeter GrehanRevision Number with maximum 8 characters.
721d5fcc4b6SMateusz Piotrowski.It Cm model
7229af3bcd7SPeter GrehanModel Number with maximum 40 characters.
7239af3bcd7SPeter Grehan.El
7249af3bcd7SPeter Grehan.Pp
725061f37d2SMateusz PiotrowskiHD Audio device backends:
726061f37d2SMateusz Piotrowski.Bl -bullet
727061f37d2SMateusz Piotrowski.It
728061f37d2SMateusz Piotrowski.Sm off
729061f37d2SMateusz Piotrowski.Op Cm play= Ar playback
730061f37d2SMateusz Piotrowski.Op Cm ,rec= Ar recording
731061f37d2SMateusz Piotrowski.Sm on
732061f37d2SMateusz Piotrowski.El
733061f37d2SMateusz Piotrowski.Pp
734061f37d2SMateusz PiotrowskiConfiguration options are defined as follows:
73536f9f044SWarner Losh.Bl -tag -width 10n
736061f37d2SMateusz Piotrowski.It Cm play
73736f9f044SWarner LoshPlayback device, typically
73836f9f044SWarner Losh.Ar /dev/dsp0 .
739061f37d2SMateusz Piotrowski.It Cm rec
74036f9f044SWarner LoshRecording device, typically
74136f9f044SWarner Losh.Ar /dev/dsp0 .
74236f9f044SWarner Losh.El
7435749449dSJohn Baldwin.It Fl U Ar uuid
7445749449dSJohn BaldwinSet the universally unique identifier
7455749449dSJohn Baldwin.Pq UUID
7465749449dSJohn Baldwinin the guest's System Management BIOS System Information structure.
7475749449dSJohn BaldwinBy default a UUID is generated from the host's hostname and
7485749449dSJohn Baldwin.Ar vmname .
749ccb1c87aSMateusz Piotrowski.It Fl u
750ccb1c87aSMateusz PiotrowskiRTC keeps UTC time.
751cde1f5b8SJohn Baldwin.It Fl W
752cde1f5b8SJohn BaldwinForce virtio PCI device emulations to use MSI interrupts instead of MSI-X
753cde1f5b8SJohn Baldwininterrupts.
754ccb1c87aSMateusz Piotrowski.It Fl w
755ccb1c87aSMateusz PiotrowskiIgnore accesses to unimplemented Model Specific Registers (MSRs).
756ccb1c87aSMateusz PiotrowskiThis is intended for debug purposes.
7579777ca20SNeel Natu.It Fl x
7589777ca20SNeel NatuThe guest's local APIC is configured in x2APIC mode.
759b100acf2SNeel Natu.It Fl Y
760b100acf2SNeel NatuDisable MPtable generation.
761b13e60daSPeter Grehan.It Ar vmname
762b13e60daSPeter GrehanAlphanumeric name of the guest.
763b13e60daSPeter GrehanThis should be the same as that created by
764b13e60daSPeter Grehan.Xr bhyveload 8 .
765b13e60daSPeter Grehan.El
766621b5090SJohn Baldwin.Sh CONFIGURATION VARIABLES
767621b5090SJohn Baldwin.Nm
768621b5090SJohn Baldwinuses an internal tree of configuration variables to describe global and
769621b5090SJohn Baldwinper-device settings.
770621b5090SJohn BaldwinWhen
771621b5090SJohn Baldwin.Nm
772621b5090SJohn Baldwinstarts,
773621b5090SJohn Baldwinit parses command line options (including config files) in the order given
774621b5090SJohn Baldwinon the command line.
775621b5090SJohn BaldwinEach command line option sets one or more configuration variables.
776621b5090SJohn BaldwinFor example,
777621b5090SJohn Baldwinthe
778621b5090SJohn Baldwin.Fl s
779621b5090SJohn Baldwinoption creates a new tree node for a PCI device and sets one or more variables
780621b5090SJohn Baldwinunder that node including the device model and device model-specific variables.
781621b5090SJohn BaldwinVariables may be set multiple times during this parsing stage with the final
782621b5090SJohn Baldwinvalue overriding previous values.
783621b5090SJohn Baldwin.Pp
784621b5090SJohn BaldwinOnce all of the command line options have been processed,
785621b5090SJohn Baldwinthe configuration values are frozen.
786621b5090SJohn Baldwin.Nm
787621b5090SJohn Baldwinthen uses the value of configuration values to initialize device models
788621b5090SJohn Baldwinand global settings.
789621b5090SJohn Baldwin.Pp
790621b5090SJohn BaldwinMore details on configuration variables can be found in
791621b5090SJohn Baldwin.Xr bhyve_config 5 .
792cd377eb3SJohn Baldwin.Sh DEBUG SERVER
793cd377eb3SJohn BaldwinThe current debug server provides limited support for debuggers.
794cd377eb3SJohn Baldwin.Ss Registers
795cd377eb3SJohn BaldwinEach virtual CPU is exposed to the debugger as a thread.
796cd377eb3SJohn Baldwin.Pp
797cd377eb3SJohn BaldwinGeneral purpose registers can be queried for each virtual CPU, but other
798cd377eb3SJohn Baldwinregisters such as floating-point and system registers cannot be queried.
799cd377eb3SJohn Baldwin.Ss Memory
800976ba8c6SJohn BaldwinMemory (including memory mapped I/O regions) can be read and written by the debugger.
8018d56c805SYuri PankovMemory operations use virtual addresses that are resolved to physical addresses
8028d56c805SYuri Pankovvia the current virtual CPU's active address translation.
803cd377eb3SJohn Baldwin.Ss Control
804cd377eb3SJohn BaldwinThe running guest can be interrupted by the debugger at any time
805cd377eb3SJohn Baldwin.Pq for example, by pressing Ctrl-C in the debugger .
806cd377eb3SJohn Baldwin.Pp
807cd377eb3SJohn BaldwinSingle stepping is only supported on Intel CPUs supporting the MTRAP VM exit.
808cd377eb3SJohn Baldwin.Pp
809cbd03a9dSJohn BaldwinBreakpoints are supported on Intel CPUs that support single stepping.
810cbd03a9dSJohn BaldwinNote that continuing from a breakpoint while interrupts are enabled in the
811cbd03a9dSJohn Baldwinguest may not work as expected due to timer interrupts firing while single
812cbd03a9dSJohn Baldwinstepping over the breakpoint.
813c2202d41SRoman Bogorodskiy.Sh SIGNAL HANDLING
814c2202d41SRoman Bogorodskiy.Nm
815c2202d41SRoman Bogorodskiydeals with the following signals:
816c2202d41SRoman Bogorodskiy.Pp
8173357e948SMateusz Piotrowski.Bl -tag -width SIGTERM -compact
818c2202d41SRoman Bogorodskiy.It SIGTERM
819c2202d41SRoman BogorodskiyTrigger ACPI poweroff for a VM
820c2202d41SRoman Bogorodskiy.El
821c2202d41SRoman Bogorodskiy.Sh EXIT STATUS
822c2202d41SRoman BogorodskiyExit status indicates how the VM was terminated:
823c2202d41SRoman Bogorodskiy.Pp
824c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact
825c2202d41SRoman Bogorodskiy.It 0
826c2202d41SRoman Bogorodskiyrebooted
827c2202d41SRoman Bogorodskiy.It 1
828c2202d41SRoman Bogorodskiypowered off
829c2202d41SRoman Bogorodskiy.It 2
830c2202d41SRoman Bogorodskiyhalted
831c2202d41SRoman Bogorodskiy.It 3
832c2202d41SRoman Bogorodskiytriple fault
833989e062bSMarcelo Araujo.It 4
834989e062bSMarcelo Araujoexited due to an error
835c2202d41SRoman Bogorodskiy.El
836b13e60daSPeter Grehan.Sh EXAMPLES
8375c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must have been loaded with
83884fe889cSChristian Brueffer.Xr bhyveload 8
839b13e60daSPeter Grehanor a similar boot loader before
840b13e60daSPeter Grehan.Xr bhyve 4
841b13e60daSPeter Grehancan be run.
8425c3ec676SGleb SmirnoffOtherwise, the boot loader is not needed.
843b13e60daSPeter Grehan.Pp
844b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio
845b13e60daSPeter Grehanblock device backed by the
846b13e60daSPeter Grehan.Pa /my/image
847b13e60daSPeter Grehanfilesystem image, and a serial port for the console:
848b13e60daSPeter Grehan.Bd -literal -offset indent
849b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\
850b13e60daSPeter Grehan  -l com1,stdio -A -H -P -m 1G vm1
851b13e60daSPeter Grehan.Ed
852b13e60daSPeter Grehan.Pp
853b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which
854b13e60daSPeter Grehanhas a MAC address specified:
855b13e60daSPeter Grehan.Bd -literal -offset indent
856b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\
857b13e60daSPeter Grehan  -s 2:1,virtio-net,tap1 \\
858b13e60daSPeter Grehan  -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\
859b13e60daSPeter Grehan  -s 3,virtio-blk,/my/image -l com1,stdio \\
860b13e60daSPeter Grehan  -A -H -P -m 24G bigvm
861b13e60daSPeter Grehan.Ed
862b13e60daSPeter Grehan.Pp
863b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI
864b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console
865b13e60daSPeter Grehanport connected to an
866b13e60daSPeter Grehan.Xr nmdm 4
86784fe889cSChristian Brueffernull-modem device.
868b13e60daSPeter Grehan.Bd -literal -offset indent
869a7ab1463SAlexander Motinbhyve -c 4 \\
870b13e60daSPeter Grehan  -s 0,amd_hostbridge -s 1,lpc \\
871098f5155SAlexander Motin  -s 1:0,ahci,hd:/images/disk.1,hd:/images/disk.2,\\
872098f5155SAlexander Motinhd:/images/disk.3,hd:/images/disk.4,\\
873098f5155SAlexander Motinhd:/images/disk.5,hd:/images/disk.6,\\
874098f5155SAlexander Motinhd:/images/disk.7,hd:/images/disk.8,\\
875098f5155SAlexander Motincd:/images/install.iso \\
876b13e60daSPeter Grehan  -s 3,virtio-net,tap0 \\
877b13e60daSPeter Grehan  -l com1,/dev/nmdm0A \\
878b13e60daSPeter Grehan  -A -H -P -m 8G
879b13e60daSPeter Grehan.Ed
8805c3ec676SGleb Smirnoff.Pp
8815c3ec676SGleb SmirnoffRun a UEFI virtual machine with a display resolution of 800 by 600 pixels
8825c3ec676SGleb Smirnoffthat can be accessed via VNC at: 0.0.0.0:5900.
8835c3ec676SGleb Smirnoff.Bd -literal -offset indent
8845c3ec676SGleb Smirnoffbhyve -c 2 -m 4G -w -H \\
8855c3ec676SGleb Smirnoff  -s 0,hostbridge \\
8865c3ec676SGleb Smirnoff  -s 3,ahci-cd,/path/to/uefi-OS-install.iso \\
8875c3ec676SGleb Smirnoff  -s 4,ahci-hd,disk.img \\
8885c3ec676SGleb Smirnoff  -s 5,virtio-net,tap0 \\
8895c3ec676SGleb Smirnoff  -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \\
8905c3ec676SGleb Smirnoff  -s 30,xhci,tablet \\
8915c3ec676SGleb Smirnoff  -s 31,lpc -l com1,stdio \\
8925c3ec676SGleb Smirnoff  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
8935c3ec676SGleb Smirnoff   uefivm
8945c3ec676SGleb Smirnoff.Ed
8958883128bSBjoern A. Zeeb.Pp
8968883128bSBjoern A. ZeebRun a UEFI virtual machine with a VNC display that is bound to all IPv6
8978883128bSBjoern A. Zeebaddresses on port 5900.
8988883128bSBjoern A. Zeeb.Bd -literal -offset indent
8998883128bSBjoern A. Zeebbhyve -c 2 -m 4G -w -H \\
9008883128bSBjoern A. Zeeb  -s 0,hostbridge \\
9018883128bSBjoern A. Zeeb  -s 4,ahci-hd,disk.img \\
9028883128bSBjoern A. Zeeb  -s 5,virtio-net,tap0 \\
9038883128bSBjoern A. Zeeb  -s 29,fbuf,tcp=[::]:5900,w=800,h=600 \\
9048883128bSBjoern A. Zeeb  -s 30,xhci,tablet \\
9058883128bSBjoern A. Zeeb  -s 31,lpc -l com1,stdio \\
9068883128bSBjoern A. Zeeb  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
9078883128bSBjoern A. Zeeb   uefivm
9088883128bSBjoern A. Zeeb.Ed
909b13e60daSPeter Grehan.Sh SEE ALSO
910b13e60daSPeter Grehan.Xr bhyve 4 ,
911e90337e4SAleksandr Fedorov.Xr netgraph 4 ,
912e90337e4SAleksandr Fedorov.Xr ng_socket 4 ,
913b13e60daSPeter Grehan.Xr nmdm 4 ,
914b13e60daSPeter Grehan.Xr vmm 4 ,
915621b5090SJohn Baldwin.Xr bhyve_config 5 ,
916b13e60daSPeter Grehan.Xr ethers 5 ,
91705f7cd8bSJoel Dahl.Xr bhyvectl 8 ,
91805f7cd8bSJoel Dahl.Xr bhyveload 8
9198d56c805SYuri Pankov.Pp
9208d56c805SYuri Pankov.Rs
9218d56c805SYuri Pankov.%A Intel
9228d56c805SYuri Pankov.%B 64 and IA-32 Architectures Software Developer’s Manual
9238d56c805SYuri Pankov.%V Volume 3
9248d56c805SYuri Pankov.Re
925b13e60daSPeter Grehan.Sh HISTORY
926b13e60daSPeter Grehan.Nm
927b13e60daSPeter Grehanfirst appeared in
928b13e60daSPeter Grehan.Fx 10.0 .
929b13e60daSPeter Grehan.Sh AUTHORS
93001c2b8acSBaptiste Daroussin.An Neel Natu Aq Mt neel@freebsd.org
93101c2b8acSBaptiste Daroussin.An Peter Grehan Aq Mt grehan@freebsd.org
932