xref: /freebsd/usr.sbin/bhyve/bhyve.8 (revision ca14781c8170f3517ae79e198c0c880dbc3142dd)
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.\"
2766659955SAlexey Marchenko.Dd May 5, 2023
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*ca14781cSCorvin Köhne.Oo Fl f
49*ca14781cSCorvin Köhne.Sm off
50*ca14781cSCorvin Köhne.Ar name Cm \&,
51*ca14781cSCorvin Köhne.Oo
52*ca14781cSCorvin Köhne.Cm string No | Cm file
53*ca14781cSCorvin Köhne.Oc
54*ca14781cSCorvin Köhne.Cm \&= Ar data
55*ca14781cSCorvin Köhne.Sm on
56*ca14781cSCorvin Köhne.Oc
57775f6f45SMateusz Piotrowski.Oo
58b70b050aSJohn Baldwin.Sm off
59775f6f45SMateusz Piotrowski.Fl G\~
60b70b050aSJohn Baldwin.Oo Ar w Oc
61775f6f45SMateusz Piotrowski.Oo Ar bind_address Cm \&: Oc
62b70b050aSJohn Baldwin.Ar port
63b70b050aSJohn Baldwin.Sm on
64b70b050aSJohn Baldwin.Oc
65f656df58SMateusz Piotrowski.Op Fl k Ar config_file
6619eaa01bSMichael Reifenberger.Op Fl K Ar layout
6777d208a3SMateusz Piotrowski.Oo Fl l
6877d208a3SMateusz Piotrowski.Sm off
69bfe40b69SMateusz Piotrowski.Ar lpcdev Op Cm \&, Ar conf
7077d208a3SMateusz Piotrowski.Sm on
7177d208a3SMateusz Piotrowski.Oc
7277d208a3SMateusz Piotrowski.Sm off
73775f6f45SMateusz Piotrowski.Oo Fl m\~
7477d208a3SMateusz Piotrowski.Ar memsize
7577d208a3SMateusz Piotrowski.Oo
768d9fefe6SMateusz Piotrowski.Cm K | Cm k | Cm M | Cm m | Cm G | Cm g | Cm T | Cm t
7777d208a3SMateusz Piotrowski.Oc
7877d208a3SMateusz Piotrowski.Sm on
7977d208a3SMateusz Piotrowski.Oc
80621b5090SJohn Baldwin.Op Fl o Ar var Ns Cm = Ns Ar value
8177d208a3SMateusz Piotrowski.Op Fl p Ar vcpu Ns Cm \&: Ns Ar hostcpu
82483d953aSJohn Baldwin.Op Fl r Ar file
8377d208a3SMateusz Piotrowski.Sm off
84bfe40b69SMateusz Piotrowski.Oo Fl s\~
85bfe40b69SMateusz Piotrowski.Ar slot Cm \&, Ar emulation Op Cm \&, Ar conf
8677d208a3SMateusz Piotrowski.Sm on
8777d208a3SMateusz Piotrowski.Oc
885749449dSJohn Baldwin.Op Fl U Ar uuid
89b13e60daSPeter Grehan.Ar vmname
90bfe40b69SMateusz Piotrowski.Nm
91bfe40b69SMateusz Piotrowski.Fl l Cm help
92bfe40b69SMateusz Piotrowski.Nm
93bfe40b69SMateusz Piotrowski.Fl s Cm help
94b13e60daSPeter Grehan.Sh DESCRIPTION
95b13e60daSPeter Grehan.Nm
967fca1ad5SGlen Barberis a hypervisor that runs guest operating systems inside a
97b13e60daSPeter Grehanvirtual machine.
98b13e60daSPeter Grehan.Pp
99b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and
100b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters.
101b13e60daSPeter Grehan.Pp
1025c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must be loaded with
10384fe889cSChristian Brueffer.Xr bhyveload 8
104b13e60daSPeter Grehanor a similar boot loader before running
1055c3ec676SGleb Smirnoff.Nm ,
1065c3ec676SGleb Smirnoffotherwise, it is enough to run
1075c3ec676SGleb Smirnoff.Nm
1085c3ec676SGleb Smirnoffwith a boot ROM of choice.
109b13e60daSPeter Grehan.Pp
110b13e60daSPeter Grehan.Nm
111b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor
112b13e60daSPeter Grehanexit is detected.
113b13e60daSPeter Grehan.Sh OPTIONS
114b13e60daSPeter Grehan.Bl -tag -width 10n
115b13e60daSPeter Grehan.It Fl A
116b13e60daSPeter GrehanGenerate ACPI tables.
117b13e60daSPeter GrehanRequired for
118b13e60daSPeter Grehan.Fx Ns /amd64
119b13e60daSPeter Grehanguests.
120ccb1c87aSMateusz Piotrowski.It Fl a
121ccb1c87aSMateusz PiotrowskiThe guest's local APIC is configured in xAPIC mode.
122ccb1c87aSMateusz PiotrowskiThe xAPIC mode is the default setting so this option is redundant.
123ccb1c87aSMateusz PiotrowskiIt will be deprecated in a future version.
124ccb1c87aSMateusz Piotrowski.It Fl C
125ccb1c87aSMateusz PiotrowskiInclude guest memory in core file.
12601d822d3SRodney W. Grimes.It Fl c Op Ar setting ...
12701d822d3SRodney W. GrimesNumber of guest virtual CPUs
12801d822d3SRodney W. Grimesand/or the CPU topology.
12901d822d3SRodney W. GrimesThe default value for each of
13001d822d3SRodney W. Grimes.Ar numcpus ,
13101d822d3SRodney W. Grimes.Ar sockets ,
13201d822d3SRodney W. Grimes.Ar cores ,
13301d822d3SRodney W. Grimesand
13401d822d3SRodney W. Grimes.Ar threads
13501d822d3SRodney W. Grimesis 1.
13601d822d3SRodney W. GrimesThe current maximum number of guest virtual CPUs is 16.
13701d822d3SRodney W. GrimesIf
13801d822d3SRodney W. Grimes.Ar numcpus
13901d822d3SRodney W. Grimesis not specified then it will be calculated from the other arguments.
14001d822d3SRodney W. GrimesThe topology must be consistent in that the
14101d822d3SRodney W. Grimes.Ar numcpus
14201d822d3SRodney W. Grimesmust equal the product of
14301d822d3SRodney W. Grimes.Ar sockets ,
14401d822d3SRodney W. Grimes.Ar cores ,
14501d822d3SRodney W. Grimesand
14601d822d3SRodney W. Grimes.Ar threads .
14701d822d3SRodney W. GrimesIf a
14801d822d3SRodney W. Grimes.Ar setting
14901d822d3SRodney W. Grimesis specified more than once the last one has precedence.
1500a1016f9SPawel Biernacki.It Fl D
1510a1016f9SPawel BiernackiDestroy the VM on guest initiated power-off.
152cde1f5b8SJohn Baldwin.It Fl e
153cde1f5b8SJohn BaldwinForce
154cde1f5b8SJohn Baldwin.Nm
155cde1f5b8SJohn Baldwinto exit when a guest issues an access to an I/O port that is not emulated.
156cde1f5b8SJohn BaldwinThis is intended for debug purposes.
157*ca14781cSCorvin Köhne.It Fl f Ar name Ns Cm \&, Ns Oo Cm string Ns No | Ns Cm file Ns Oc Ns Cm \&= Ns Ar data
158*ca14781cSCorvin KöhneAdd a fw_cfg file
159*ca14781cSCorvin Köhne.Ar name
160*ca14781cSCorvin Köhneto the fw_cfg interface.
161*ca14781cSCorvin KöhneIf a
162*ca14781cSCorvin Köhne.Cm string
163*ca14781cSCorvin Köhneis specified, the fw_cfg file contains the string as data.
164*ca14781cSCorvin KöhneIf a
165*ca14781cSCorvin Köhne.Cm file
166*ca14781cSCorvin Köhneis specified, bhyve reads the file and adds the file content as fw_cfg data.
1672cdff991SMariusz Zaborski.It Fl G Xo
1682cdff991SMariusz Zaborski.Sm off
1692cdff991SMariusz Zaborski.Oo Ar w Oc
170775f6f45SMateusz Piotrowski.Oo Ar bind_address Cm \&: Oc
1712cdff991SMariusz Zaborski.Ar port
1722cdff991SMariusz Zaborski.Sm on
1732cdff991SMariusz Zaborski.Xc
174cd377eb3SJohn BaldwinStart a debug server that uses the GDB protocol to export guest state to a
175cd377eb3SJohn Baldwindebugger.
176cd377eb3SJohn BaldwinAn IPv4 TCP socket will be bound to the supplied
1772cdff991SMariusz Zaborski.Ar bind_address
1782cdff991SMariusz Zaborskiand
179cd377eb3SJohn Baldwin.Ar port
180cd377eb3SJohn Baldwinto listen for debugger connections.
181cd377eb3SJohn BaldwinOnly a single debugger may be attached to the debug server at a time.
1822cdff991SMariusz ZaborskiIf the option begins with
183cd377eb3SJohn Baldwin.Sq w ,
184cd377eb3SJohn Baldwin.Nm
185cd377eb3SJohn Baldwinwill pause execution at the first instruction waiting for a debugger to attach.
186cde1f5b8SJohn Baldwin.It Fl H
187cde1f5b8SJohn BaldwinYield the virtual CPU thread when a HLT instruction is detected.
188cde1f5b8SJohn BaldwinIf this option is not specified, virtual CPUs will use 100% of a host CPU.
189ccb1c87aSMateusz Piotrowski.It Fl h
190ccb1c87aSMateusz PiotrowskiPrint help message and exit.
191f656df58SMateusz Piotrowski.It Fl k Ar config_file
192621b5090SJohn BaldwinSet configuration variables from a simple, key-value config file.
193621b5090SJohn BaldwinEach line of the config file is expected to consist of a config variable
194621b5090SJohn Baldwinname, an equals sign
19519eaa01bSMichael Reifenberger.It Fl K Ar layout
19619eaa01bSMichael ReifenbergerSpecify the keyboard layout.
19719eaa01bSMichael ReifenbergerThe value that can be specified sets the file name in
19819eaa01bSMichael Reifenberger.Ar /usr/share/bhyve/kbdlayout .
19919eaa01bSMichael ReifenbergerThis specification only works when loaded with UEFI mode for VNC.
20019eaa01bSMichael ReifenbergerWhen using a VNC client that supports QEMU Extended Key Event Message (e.g. TigerVNC), this option isn't needed.
20119eaa01bSMichael ReifenbergerWhen using a VNC client that doesn't support QEMU Extended Key Event Message (e.g. tightVNC), the layout defaults to the US keyboard unless specified otherwise.
202621b5090SJohn Baldwin.Pq Sq = ,
203621b5090SJohn Baldwinand a value.
204621b5090SJohn BaldwinNo spaces are permitted between the variable name, equals sign, or
205621b5090SJohn Baldwinvalue.
206621b5090SJohn BaldwinBlank lines and lines starting with
207621b5090SJohn Baldwin.Sq #
208621b5090SJohn Baldwinare ignored.
209f656df58SMateusz PiotrowskiSee
210f656df58SMateusz Piotrowski.Xr bhyve_config 5
211f656df58SMateusz Piotrowskifor more details.
2124c08b978SMateusz Piotrowski.It Fl l Cm help
2134c08b978SMateusz PiotrowskiPrint a list of supported LPC devices.
2144c08b978SMateusz Piotrowski.It Fl l Ar lpcdev Ns Op Cm \&, Ns Ar conf
215cde1f5b8SJohn BaldwinAllow devices behind the LPC PCI-ISA bridge to be configured.
2169b1aa8d6SNeel NatuThe only supported devices are the TTY-class devices
2174c08b978SMateusz Piotrowski.Cm com1 , com2 , com3 ,
2184c08b978SMateusz Piotrowskiand
2194c08b978SMateusz Piotrowski.Cm com4 ,
2202f40fc6fSPeter Grehanthe boot ROM device
2214c08b978SMateusz Piotrowski.Cm bootrom ,
222d85147f3SCorvin Köhnethe
223d85147f3SCorvin Köhne.Cm fwcfg
224d85147f3SCorvin Köhnetype and the debug/test device
2254c08b978SMateusz Piotrowski.Cm pc-testdev .
2261aa56353SMarcelo Araujo.Pp
2274c08b978SMateusz PiotrowskiThe possible values for the
2284c08b978SMateusz Piotrowski.Ar conf
2294c08b978SMateusz Piotrowskiargument are listed in the
2304c08b978SMateusz Piotrowski.Fl s
2314c08b978SMateusz Piotrowskiflag description.
2327e0cb3dfSMateusz Piotrowski.It Xo
2337e0cb3dfSMateusz Piotrowski.Fl m Ar memsize Ns Oo
2347e0cb3dfSMateusz Piotrowski.Sm off
2357e0cb3dfSMateusz Piotrowski.Cm K | k | M | m | G | g | T | t
2367e0cb3dfSMateusz Piotrowski.Sm on
2377e0cb3dfSMateusz Piotrowski.Oc
2387e0cb3dfSMateusz Piotrowski.Xc
2397e0cb3dfSMateusz PiotrowskiSet the guest physical memory size
240cde1f5b8SJohn BaldwinThis must be the same size that was given to
241cde1f5b8SJohn Baldwin.Xr bhyveload 8 .
242cde1f5b8SJohn Baldwin.Pp
2437e0cb3dfSMateusz PiotrowskiThe size argument may be suffixed with one of
2447e0cb3dfSMateusz Piotrowski.Cm K , M , G
2457e0cb3dfSMateusz Piotrowskior
2467e0cb3dfSMateusz Piotrowski.Cm T
2477e0cb3dfSMateusz Piotrowski(either upper or lower case)
2487e0cb3dfSMateusz Piotrowskito indicate a multiple of kilobytes, megabytes, gigabytes, or terabytes.
249cde1f5b8SJohn BaldwinIf no suffix is given, the value is assumed to be in megabytes.
2506ee52c65SRoman Bogorodskiy.Pp
2517e0cb3dfSMateusz PiotrowskiThe default is 256M.
252621b5090SJohn Baldwin.It Fl o Ar var Ns Cm = Ns Ar value
253621b5090SJohn BaldwinSet the configuration variable
254621b5090SJohn Baldwin.Ar var
255621b5090SJohn Baldwinto
256621b5090SJohn Baldwin.Ar value .
257ccb1c87aSMateusz Piotrowski.It Fl P
258ccb1c87aSMateusz PiotrowskiForce the guest virtual CPU to exit when a PAUSE instruction is detected.
25990df5437SMateusz Piotrowski.It Fl p Ar vcpu Ns Cm \& : Ns Ar hostcpu
2609b6155a2SNeel NatuPin guest's virtual CPU
2619b6155a2SNeel Natu.Em vcpu
2629b6155a2SNeel Natuto
2639b6155a2SNeel Natu.Em hostcpu .
264483d953aSJohn Baldwin.It Fl r Ar file
265483d953aSJohn BaldwinResume a guest from a snapshot.
266483d953aSJohn BaldwinThe guest memory contents are restored from
267483d953aSJohn Baldwin.Ar file ,
268483d953aSJohn Baldwinand the guest device and vCPU state are restored from the file
269483d953aSJohn Baldwin.Dq Ar file Ns .kern .
270483d953aSJohn Baldwin.Pp
271483d953aSJohn BaldwinNote that the current snapshot file format requires that the configuration of
272483d953aSJohn Baldwindevices in the new VM match the VM from which the snapshot was taken by specifying the
273483d953aSJohn Baldwinsame
274b24eea8cSMateusz Piotrowski.Fl s
275483d953aSJohn Baldwinand
276b24eea8cSMateusz Piotrowski.Fl l
277483d953aSJohn Baldwinoptions.
278483d953aSJohn BaldwinThe count of vCPUs and memory configuration are read from the snapshot.
279ccb1c87aSMateusz Piotrowski.It Fl S
280ccb1c87aSMateusz PiotrowskiWire guest memory.
281449f0e48SMateusz Piotrowski.It Fl s Cm help
282449f0e48SMateusz PiotrowskiPrint a list of supported PCI devices.
283449f0e48SMateusz Piotrowski.It Fl s Ar slot Ns Cm \&, Ns Ar emulation Ns Op Cm \&, Ns Ar conf
284b13e60daSPeter GrehanConfigure a virtual PCI slot and function.
285b13e60daSPeter Grehan.Pp
28684fe889cSChristian Brueffer.Nm
287b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to
288b13e60daSPeter Grehanslots on the bus.
289b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions
290b13e60daSPeter Grehanper slot.
291234d8c47SMateusz Piotrowski.Pp
292234d8c47SMateusz PiotrowskiThe
293234d8c47SMateusz Piotrowski.Ar slot
294234d8c47SMateusz Piotrowskican be specified in one of the following formats:
295234d8c47SMateusz Piotrowski.Pp
296234d8c47SMateusz Piotrowski.Bl -bullet -compact
297234d8c47SMateusz Piotrowski.It
298234d8c47SMateusz Piotrowski.Ar pcislot
299234d8c47SMateusz Piotrowski.It
300234d8c47SMateusz Piotrowski.Sm off
301234d8c47SMateusz Piotrowski.Ar pcislot Cm \&: Ar function
302234d8c47SMateusz Piotrowski.Sm on
303234d8c47SMateusz Piotrowski.It
304234d8c47SMateusz Piotrowski.Sm off
305234d8c47SMateusz Piotrowski.Ar bus Cm \&: Ar pcislot Cm \&: Ar function
306234d8c47SMateusz Piotrowski.Sm on
307234d8c47SMateusz Piotrowski.El
308b13e60daSPeter Grehan.Pp
309b13e60daSPeter GrehanThe
310b13e60daSPeter Grehan.Ar pcislot
31184fe889cSChristian Brueffervalue is 0 to 31.
31284fe889cSChristian BruefferThe optional
31384fe889cSChristian Brueffer.Ar function
31484fe889cSChristian Brueffervalue is 0 to 7.
31584fe889cSChristian BruefferThe optional
31606db1b4aSNeel Natu.Ar bus
31706db1b4aSNeel Natuvalue is 0 to 255.
31884fe889cSChristian BruefferIf not specified, the
31984fe889cSChristian Brueffer.Ar function
32084fe889cSChristian Brueffervalue defaults to 0.
32184fe889cSChristian BruefferIf not specified, the
32284fe889cSChristian Brueffer.Ar bus
32384fe889cSChristian Brueffervalue defaults to 0.
324234d8c47SMateusz Piotrowski.Pp
325234d8c47SMateusz PiotrowskiThe
326234d8c47SMateusz Piotrowski.Ar emulation
327234d8c47SMateusz Piotrowskiargument
328234d8c47SMateusz Piotrowskican be one of the following:
3297014cb23SMateusz Piotrowski.Bl -tag -width "amd_hostbridge"
3307014cb23SMateusz Piotrowski.It Cm hostbridge
3317014cb23SMateusz PiotrowskiA simple host bridge.
332b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest
333b13e60daSPeter Grehanoperating systems.
3347014cb23SMateusz Piotrowski.It Cm amd_hostbridge
3357014cb23SMateusz PiotrowskiEmulation identical to
3367014cb23SMateusz Piotrowski.Cm hostbridge
3377014cb23SMateusz Piotrowskiusing a PCI vendor ID of AMD.
3387014cb23SMateusz Piotrowski.It Cm passthru
339b13e60daSPeter GrehanPCI pass-through device.
3407014cb23SMateusz Piotrowski.It Cm virtio-net
341b13e60daSPeter GrehanVirtio network interface.
3427014cb23SMateusz Piotrowski.It Cm virtio-blk
343b13e60daSPeter GrehanVirtio block storage interface.
3447014cb23SMateusz Piotrowski.It Cm virtio-scsi
345f9c005a1SMarcelo AraujoVirtio SCSI interface.
3467014cb23SMateusz Piotrowski.It Cm virtio-9p
347100353cfSJakub Wojciech KlamaVirtio 9p (VirtFS) interface.
3487014cb23SMateusz Piotrowski.It Cm virtio-rnd
3499d0c4e17SPeter GrehanVirtio RNG interface.
3507014cb23SMateusz Piotrowski.It Cm virtio-console
3515121b6ccSRoman BogorodskiyVirtio console interface, which exposes multiple ports
3525121b6ccSRoman Bogorodskiyto the guest in the form of simple char devices for simple IO
3535121b6ccSRoman Bogorodskiybetween the guest and host userspaces.
354054accacSCorvin Köhne.It Cm virtio-input
355054accacSCorvin KöhneVirtio input interface.
3567014cb23SMateusz Piotrowski.It Cm ahci
357d6099860SMaxim KonovalovAHCI controller attached to arbitrary devices.
3587014cb23SMateusz Piotrowski.It Cm ahci-cd
359b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD.
3607014cb23SMateusz Piotrowski.It Cm ahci-hd
3617014cb23SMateusz PiotrowskiAHCI controller attached to a SATA hard drive.
3627014cb23SMateusz Piotrowski.It Cm e1000
3639e749f25SAlexander MotinIntel e82545 network interface.
3647014cb23SMateusz Piotrowski.It Cm uart
365b13e60daSPeter GrehanPCI 16550 serial device.
3667014cb23SMateusz Piotrowski.It Cm lpc
3677014cb23SMateusz PiotrowskiLPC PCI-ISA bridge with COM1, COM2, COM3, and COM4 16550 serial ports,
3687014cb23SMateusz Piotrowskia boot ROM, and,
369d85147f3SCorvin Köhneoptionally, a fwcfg type and the debug/test device.
3709b1aa8d6SNeel NatuThe LPC bridge emulation can only be configured on bus 0.
3717014cb23SMateusz Piotrowski.It Cm fbuf
3726c87a2c0SGleb SmirnoffRaw framebuffer device attached to VNC server.
3737014cb23SMateusz Piotrowski.It Cm xhci
3745c3ec676SGleb SmirnoffeXtensible Host Controller Interface (xHCI) USB controller.
3757014cb23SMateusz Piotrowski.It Cm nvme
376c066c68cSMarcelo AraujoNVM Express (NVMe) controller.
3777014cb23SMateusz Piotrowski.It Cm hda
37836f9f044SWarner LoshHigh Definition Audio Controller.
379b13e60daSPeter Grehan.El
380234d8c47SMateusz Piotrowski.Pp
381234d8c47SMateusz PiotrowskiThe optional parameter
382234d8c47SMateusz Piotrowski.Ar conf
383234d8c47SMateusz Piotrowskidescribes the backend for device emulations.
384b13e60daSPeter GrehanIf
385b13e60daSPeter Grehan.Ar conf
386b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be
387b13e60daSPeter Grehanconsidered unconnected.
388b13e60daSPeter Grehan.Pp
3898d9fefe6SMateusz PiotrowskiNetwork device backends:
3907fb22729SMateusz Piotrowski.Sm off
3917fb22729SMateusz Piotrowski.Bl -bullet
3927fb22729SMateusz Piotrowski.It
3937fb22729SMateusz Piotrowski.Xo
3947fb22729SMateusz Piotrowski.Cm tap Ar N
3957fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
3967fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
3977fb22729SMateusz Piotrowski.Xc
3987fb22729SMateusz Piotrowski.It
3997fb22729SMateusz Piotrowski.Xo
4007fb22729SMateusz Piotrowski.Cm vmnet Ar N
4017fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
4027fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
4037fb22729SMateusz Piotrowski.Xc
4047fb22729SMateusz Piotrowski.It
4057fb22729SMateusz Piotrowski.Xo
4067fb22729SMateusz Piotrowski.Cm netgraph,path= Ar ADDRESS Cm \&,peerhook= Ar HOOK
4077fb22729SMateusz Piotrowski.Op Cm \&,socket= Ar NAME
4087fb22729SMateusz Piotrowski.Op Cm \&,hook= Ar HOOK
4097fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
4107fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
4117fb22729SMateusz Piotrowski.Xc
4127fb22729SMateusz Piotrowski.El
4137fb22729SMateusz Piotrowski.Sm on
414baf753ccSJohn Baldwin.Pp
415b13e60daSPeter GrehanIf
4167fb22729SMateusz Piotrowski.Cm mac
417b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the
418b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and
419b13e60daSPeter Grehanthe device name.
420b13e60daSPeter Grehan.Pp
421b13e60daSPeter GrehanThe MAC address is an ASCII string in
422b13e60daSPeter Grehan.Xr ethers 5
423b13e60daSPeter Grehanformat.
424692dbfe9SVincenzo Maffione.Pp
4257fb22729SMateusz PiotrowskiWith
4267fb22729SMateusz Piotrowski.Cm virtio-net
4277fb22729SMateusz Piotrowskidevices, the
4287fb22729SMateusz Piotrowski.Cm mtu
429692dbfe9SVincenzo Maffioneparameter can be specified to inform the guest about the largest MTU
430692dbfe9SVincenzo Maffionethat should be allowed, expressed in bytes.
431e90337e4SAleksandr Fedorov.Pp
4327fb22729SMateusz PiotrowskiWith
4337fb22729SMateusz Piotrowski.Cm netgraph
4347fb22729SMateusz Piotrowskibackend, the
4357fb22729SMateusz Piotrowski.Cm path
436e90337e4SAleksandr Fedorovand
4377fb22729SMateusz Piotrowski.Cm peerhook
438e90337e4SAleksandr Fedorovparameters must be specified to set the destination node and corresponding hook.
439e90337e4SAleksandr FedorovThe optional parameters
4407fb22729SMateusz Piotrowski.Cm socket
441e90337e4SAleksandr Fedorovand
4427fb22729SMateusz Piotrowski.Cm hook
443e90337e4SAleksandr Fedorovmay be used to set the
444e90337e4SAleksandr Fedorov.Xr ng_socket 4
445e90337e4SAleksandr Fedorovnode name and source hook.
446e90337e4SAleksandr FedorovThe
447e90337e4SAleksandr Fedorov.Ar ADDRESS ,
4487fb22729SMateusz Piotrowski.Ar HOOK ,
449e90337e4SAleksandr Fedorovand
450e90337e4SAleksandr Fedorov.Ar NAME
451e90337e4SAleksandr Fedorovmust comply with
452e90337e4SAleksandr Fedorov.Xr netgraph 4
453e90337e4SAleksandr Fedorovaddressing rules.
454b13e60daSPeter Grehan.Pp
4555232a35fSMateusz PiotrowskiBlock storage device backends:
4565232a35fSMateusz Piotrowski.Sm off
4575232a35fSMateusz Piotrowski.Bl -bullet
4585232a35fSMateusz Piotrowski.It
4595232a35fSMateusz Piotrowski.Ar /filename Op Cm \&, Ar block-device-options
4605232a35fSMateusz Piotrowski.It
4615232a35fSMateusz Piotrowski.Ar /dev/xxx Op Cm \&, Ar block-device-options
4624e43c1e8SNeel Natu.El
4635232a35fSMateusz Piotrowski.Sm on
4644e43c1e8SNeel Natu.Pp
4654e43c1e8SNeel NatuThe
4664e43c1e8SNeel Natu.Ar block-device-options
4674e43c1e8SNeel Natuare:
4685232a35fSMateusz Piotrowski.Bl -tag -width 10n
4695232a35fSMateusz Piotrowski.It Cm nocache
470b13e60daSPeter GrehanOpen the file with
471b13e60daSPeter Grehan.Dv O_DIRECT .
4725232a35fSMateusz Piotrowski.It Cm direct
473b13e60daSPeter GrehanOpen the file using
474b13e60daSPeter Grehan.Dv O_SYNC .
4755232a35fSMateusz Piotrowski.It Cm ro
476b13e60daSPeter GrehanForce the file to be opened read-only.
4775232a35fSMateusz Piotrowski.It Cm sectorsize= Ns Ar logical Ns Oo Cm \&/ Ns Ar physical Oc
4784e43c1e8SNeel NatuSpecify the logical and physical sector sizes of the emulated disk.
4794e43c1e8SNeel NatuThe physical sector size is optional and is equal to the logical sector size
4804e43c1e8SNeel Natuif not explicitly specified.
4815232a35fSMateusz Piotrowski.It Cm nodelete
482e6d795d1SAllan JudeDisable emulation of guest trim requests via
483e6d795d1SAllan Jude.Dv DIOCGDELETE
484e6d795d1SAllan Juderequests.
485b13e60daSPeter Grehan.El
486b13e60daSPeter Grehan.Pp
4877c5829c9SMateusz PiotrowskiSCSI device backends:
4887c5829c9SMateusz Piotrowski.Sm off
4897c5829c9SMateusz Piotrowski.Bl -bullet
4907c5829c9SMateusz Piotrowski.It
4917c5829c9SMateusz Piotrowski.Pa /dev/cam/ctl Oo Ar pp Cm \&. Ar vp Oc Oo Cm \&, Ar scsi-device-options Oc
49249f87822SAlexander Motin.El
4937c5829c9SMateusz Piotrowski.Sm on
49449f87822SAlexander Motin.Pp
49549f87822SAlexander MotinThe
49649f87822SAlexander Motin.Ar scsi-device-options
49749f87822SAlexander Motinare:
49849f87822SAlexander Motin.Bl -tag -width 10n
4997c5829c9SMateusz Piotrowski.It Cm iid= Ns Ar IID
50049f87822SAlexander MotinInitiator ID to use when sending requests to specified CTL port.
50149f87822SAlexander MotinThe default value is 0.
502f9c005a1SMarcelo Araujo.El
503f9c005a1SMarcelo Araujo.Pp
5042d00b570SMateusz Piotrowski9P device backends:
5052d00b570SMateusz Piotrowski.Sm off
5062d00b570SMateusz Piotrowski.Bl -bullet
5072d00b570SMateusz Piotrowski.It
5082d00b570SMateusz Piotrowski.Ar sharename Cm = Ar /path/to/share Op Cm \&, Ar 9p-device-options
509100353cfSJakub Wojciech Klama.El
5102d00b570SMateusz Piotrowski.Sm on
511100353cfSJakub Wojciech Klama.Pp
512100353cfSJakub Wojciech KlamaThe
513100353cfSJakub Wojciech Klama.Ar 9p-device-options
514100353cfSJakub Wojciech Klamaare:
515100353cfSJakub Wojciech Klama.Bl -tag -width 10n
5162d00b570SMateusz Piotrowski.It Cm ro
517100353cfSJakub Wojciech KlamaExpose the share in read-only mode.
518100353cfSJakub Wojciech Klama.El
519100353cfSJakub Wojciech Klama.Pp
5202fda01a1SMateusz PiotrowskiTTY device backends:
521b13e60daSPeter Grehan.Bl -tag -width 10n
5222fda01a1SMateusz Piotrowski.It Cm stdio
523b13e60daSPeter GrehanConnect the serial port to the standard input and output of
52484fe889cSChristian Bruefferthe
52584fe889cSChristian Brueffer.Nm
52684fe889cSChristian Bruefferprocess.
5272fda01a1SMateusz Piotrowski.It Ar /dev/xxx
528b13e60daSPeter GrehanUse the host TTY device for serial port I/O.
529b13e60daSPeter Grehan.El
530b13e60daSPeter Grehan.Pp
5312fda01a1SMateusz PiotrowskiBoot ROM device backends:
5329b1aa8d6SNeel Natu.Bl -tag -width 10n
533866036f4SRebecca Cran.It Ar romfile Ns Op Cm \&, Ns Ar varfile
5349b1aa8d6SNeel NatuMap
5359b1aa8d6SNeel Natu.Ar romfile
5369b1aa8d6SNeel Natuin the guest address space reserved for boot firmware.
537866036f4SRebecca CranIf
538866036f4SRebecca Cran.Ar varfile
539866036f4SRebecca Cranis provided, that file is also mapped in the boot firmware guest
540866036f4SRebecca Cranaddress space, and any modifications the guest makes will be saved
541866036f4SRebecca Cranto that file.
5429b1aa8d6SNeel Natu.El
5439b1aa8d6SNeel Natu.Pp
544d85147f3SCorvin KöhneFwcfg types:
545d85147f3SCorvin Köhne.Bl -tag -width 10n
546d85147f3SCorvin Köhne.It Ar fwcfg
547d85147f3SCorvin KöhneThe fwcfg interface is used to pass information such as the CPU count or ACPI tables to the guest firmware.
548d85147f3SCorvin KöhneSupported values are
549d85147f3SCorvin Köhne.Ql bhyve
550d85147f3SCorvin Köhneand
551d85147f3SCorvin Köhne.Ql qemu .
552d85147f3SCorvin KöhneDue to backward compatibility reasons,
553d85147f3SCorvin Köhne.Ql bhyve
554d85147f3SCorvin Köhneis the default option.
555d85147f3SCorvin KöhneWhen
556d85147f3SCorvin Köhne.Ql bhyve
557d85147f3SCorvin Köhneis used, bhyve's fwctl interface is used.
558d85147f3SCorvin KöhneIt currently reports only the CPU count to the guest firmware.
559d85147f3SCorvin KöhneThe
560d85147f3SCorvin Köhne.Ql qemu
561d85147f3SCorvin Köhneoption uses QEMU's fwcfg interface.
562d85147f3SCorvin KöhneThis interface is widely used and allows user-defined information to be passed to the guest.
563d85147f3SCorvin KöhneIt is used for passing the CPU count, ACPI tables, a boot order and many other things to the guest.
564d85147f3SCorvin KöhneSome operating systems such as Fedora CoreOS can be configured by qemu's fwcfg interface as well.
565d85147f3SCorvin Köhne.El
566d85147f3SCorvin Köhne.Pp
5672fda01a1SMateusz PiotrowskiPass-through device backends:
568baf753ccSJohn Baldwin.Sm off
569baf753ccSJohn Baldwin.Bl -bullet
570baf753ccSJohn Baldwin.It
571baf753ccSJohn Baldwin.Cm ppt Ar N Oo , Ar passthru-device-options Oc
572baf753ccSJohn Baldwin.It
573baf753ccSJohn Baldwin.Ns Ar bus Cm \&/ Ar slot Cm \&/ Ar function
574baf753ccSJohn Baldwin.Op , Ar passthru-device-options
575baf753ccSJohn Baldwin.It
576baf753ccSJohn Baldwin.Cm pci Ar bus Cm : Ar slot Cm : Ns Ar function
577baf753ccSJohn Baldwin.Op , Ar passthru-device-options
578baf753ccSJohn Baldwin.El
579baf753ccSJohn Baldwin.Sm on
580baf753ccSJohn Baldwin.Pp
581baf753ccSJohn BaldwinConnect to a PCI device on the host either named ppt
582baf753ccSJohn Baldwin.Ns Ar N
583baf753ccSJohn Baldwinor at the selector described by
584b13e60daSPeter Grehan.Ar slot ,
585b13e60daSPeter Grehan.Ar bus ,
586b13e60daSPeter Grehanand
587b13e60daSPeter Grehan.Ar function
588b13e60daSPeter Grehannumbers.
589baf753ccSJohn Baldwin.Pp
590baf753ccSJohn BaldwinThe
591baf753ccSJohn Baldwin.Ar passthru-device-options
592baf753ccSJohn Baldwinare:
593baf753ccSJohn Baldwin.Bl -tag -width 10n
5945e19a518SMateusz Piotrowski.It Cm rom= Ns Ar romfile
595e47fe318SCorvin KöhneAdd
596e47fe318SCorvin Köhne.Ar romfile
597e47fe318SCorvin Köhneas option ROM to the PCI device.
598e47fe318SCorvin KöhneThe ROM will be loaded by firmware and should be capable of initializing the device.
599b13e60daSPeter Grehan.El
600b13e60daSPeter Grehan.Pp
6019b1aa8d6SNeel NatuGuest memory must be wired using the
6029b1aa8d6SNeel Natu.Fl S
6039b1aa8d6SNeel Natuoption when a pass-through device is configured.
6049b1aa8d6SNeel Natu.Pp
605b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the
606a9258f9bSWarren Block.Va pptdevs
607b13e60daSPeter Grehanloader variable as described in
608b13e60daSPeter Grehan.Xr vmm 4 .
6095121b6ccSRoman Bogorodskiy.Pp
6103f4c771fSMateusz PiotrowskiVirtio console device backends:
6113f4c771fSMateusz Piotrowski.Bl -bullet
6123f4c771fSMateusz Piotrowski.Sm off
6133f4c771fSMateusz Piotrowski.It
6143f4c771fSMateusz 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 ...
6153f4c771fSMateusz Piotrowski.Sm on
6163f4c771fSMateusz Piotrowski.El
6173f4c771fSMateusz Piotrowski.Pp
6185121b6ccSRoman BogorodskiyA maximum of 16 ports per device can be created.
6195121b6ccSRoman BogorodskiyEvery port is named and corresponds to a Unix domain socket created by
6205121b6ccSRoman Bogorodskiy.Nm .
6215121b6ccSRoman Bogorodskiy.Nm
6225121b6ccSRoman Bogorodskiyaccepts at most one connection per port at a time.
6235121b6ccSRoman Bogorodskiy.Pp
6245121b6ccSRoman BogorodskiyLimitations:
6258d9fefe6SMateusz Piotrowski.Bl -bullet
6265121b6ccSRoman Bogorodskiy.It
6275121b6ccSRoman BogorodskiyDue to lack of destructors in
6285121b6ccSRoman Bogorodskiy.Nm ,
6295121b6ccSRoman Bogorodskiysockets on the filesystem must be cleaned up manually after
6305121b6ccSRoman Bogorodskiy.Nm
6315121b6ccSRoman Bogorodskiyexits.
6325121b6ccSRoman Bogorodskiy.It
6333f4c771fSMateusz PiotrowskiThere is no way to use the
6343f4c771fSMateusz Piotrowski.Dq console port
6353f4c771fSMateusz Piotrowskifeature, nor the console port
6360ee3a4b4SRoman Bogorodskiyresize at present.
6375121b6ccSRoman Bogorodskiy.It
6380ee3a4b4SRoman BogorodskiyEmergency write is advertised, but no-op at present.
6395121b6ccSRoman Bogorodskiy.El
6406c87a2c0SGleb Smirnoff.Pp
641054accacSCorvin KöhneVirtio input device backends:
642054accacSCorvin Köhne.Bl -tag -width 10n
643054accacSCorvin Köhne.It Ar /dev/input/eventX
644054accacSCorvin KöhneSend input events of
645054accacSCorvin Köhne.Ar /dev/input/eventX
646054accacSCorvin Köhneto guest by VirtIO Input Interface.
647054accacSCorvin Köhne.El
648054accacSCorvin Köhne.Pp
6498b97e975SMateusz PiotrowskiFramebuffer devices backends:
6508b97e975SMateusz Piotrowski.Bl -bullet
6518b97e975SMateusz Piotrowski.Sm off
6528b97e975SMateusz Piotrowski.It
6538b97e975SMateusz Piotrowski.Op Cm rfb= Ar ip-and-port
6548b97e975SMateusz Piotrowski.Op Cm ,w= Ar width
6558b97e975SMateusz Piotrowski.Op Cm ,h= Ar height
6568b97e975SMateusz Piotrowski.Op Cm ,vga= Ar vgaconf
6578b97e975SMateusz Piotrowski.Op Cm ,wait
6588b97e975SMateusz Piotrowski.Op Cm ,password= Ar password
6598b97e975SMateusz Piotrowski.Sm on
6608b97e975SMateusz Piotrowski.El
6618b97e975SMateusz Piotrowski.Pp
6628b97e975SMateusz PiotrowskiConfiguration options are defined as follows:
6635c3ec676SGleb Smirnoff.Bl -tag -width 10n
6648b97e975SMateusz Piotrowski.It Cm rfb= Ns Ar ip-and-port Pq or Cm tcp= Ns Ar ip-and-port
6658b97e975SMateusz PiotrowskiAn IP address and a port VNC should listen on.
6668b97e975SMateusz PiotrowskiThere are two formats:
6678b97e975SMateusz Piotrowski.Pp
6688b97e975SMateusz Piotrowski.Bl -bullet -compact
6698d9fefe6SMateusz Piotrowski.It
6708b97e975SMateusz Piotrowski.Sm off
6718b97e975SMateusz Piotrowski.Op Ar IPv4 Cm \&:
6725c3ec676SGleb Smirnoff.Ar port
6738b97e975SMateusz Piotrowski.Sm on
6748d9fefe6SMateusz Piotrowski.It
6758b97e975SMateusz Piotrowski.Sm off
6768b97e975SMateusz Piotrowski.Cm \&[ Ar IPv6%zone Cm \&] Cm \&: Ar port
6778b97e975SMateusz Piotrowski.Sm on
6788b97e975SMateusz Piotrowski.El
6798b97e975SMateusz Piotrowski.Pp
6806c87a2c0SGleb SmirnoffThe default is to listen on localhost IPv4 address and default VNC port 5900.
6818883128bSBjoern A. ZeebAn IPv6 address must be enclosed in square brackets and may contain an
6827d9545fcSRodney W. Grimesoptional zone identifier.
6838b97e975SMateusz Piotrowski.It Cm w= Ns Ar width No and Cm h= Ns Ar height
6845c3ec676SGleb SmirnoffA display resolution, width and height, respectively.
6855c3ec676SGleb SmirnoffIf not specified, a default resolution of 1024x768 pixels will be used.
6865c3ec676SGleb SmirnoffMinimal supported resolution is 640x480 pixels,
6875c3ec676SGleb Smirnoffand maximum is 1920x1200 pixels.
6888b97e975SMateusz Piotrowski.It Cm vga= Ns Ar vgaconf
6895c3ec676SGleb SmirnoffPossible values for this option are
6908b97e975SMateusz Piotrowski.Cm io
6915c3ec676SGleb Smirnoff(default),
6928b97e975SMateusz Piotrowski.Cm on
6935c3ec676SGleb Smirnoff, and
6948b97e975SMateusz Piotrowski.Cm off .
6955c3ec676SGleb SmirnoffPCI graphics cards have a dual personality in that they are
6965c3ec676SGleb Smirnoffstandard PCI devices with BAR addressing, but may also
6975c3ec676SGleb Smirnoffimplicitly decode legacy VGA I/O space
6985c3ec676SGleb Smirnoff.Pq Ad 0x3c0-3df
6995c3ec676SGleb Smirnoffand memory space
7005c3ec676SGleb Smirnoff.Pq 64KB at Ad 0xA0000 .
7015c3ec676SGleb SmirnoffThe default
7028b97e975SMateusz Piotrowski.Cm io
7038d56c805SYuri Pankovoption should be used for guests that attempt to issue BIOS calls which result
7048d56c805SYuri Pankovin I/O port queries, and fail to boot if I/O decode is disabled.
7055c3ec676SGleb Smirnoff.Pp
7065c3ec676SGleb SmirnoffThe
7078b97e975SMateusz Piotrowski.Cm on
7085c3ec676SGleb Smirnoffoption should be used along with the CSM BIOS capability in UEFI
7095c3ec676SGleb Smirnoffto boot traditional BIOS guests that require the legacy VGA I/O and
7105c3ec676SGleb Smirnoffmemory regions to be available.
7115c3ec676SGleb Smirnoff.Pp
7125c3ec676SGleb SmirnoffThe
7138b97e975SMateusz Piotrowski.Cm off
7145c3ec676SGleb Smirnoffoption should be used for the UEFI guests that assume that
7155c3ec676SGleb SmirnoffVGA adapter is present if they detect the I/O ports.
7165c3ec676SGleb SmirnoffAn example of such a guest is
7175c3ec676SGleb Smirnoff.Ox
7185c3ec676SGleb Smirnoffin UEFI mode.
7195c3ec676SGleb Smirnoff.Pp
7205c3ec676SGleb SmirnoffPlease refer to the
7215c3ec676SGleb Smirnoff.Nm
7225c3ec676SGleb Smirnoff.Fx
7235c3ec676SGleb Smirnoffwiki page
7245c3ec676SGleb Smirnoff.Pq Lk https://wiki.freebsd.org/bhyve
7255c3ec676SGleb Smirnofffor configuration notes of particular guests.
7268b97e975SMateusz Piotrowski.It Cm wait
7275c3ec676SGleb SmirnoffInstruct
7285c3ec676SGleb Smirnoff.Nm
7298d56c805SYuri Pankovto only boot upon the initiation of a VNC connection, simplifying the
7308d56c805SYuri Pankovinstallation of operating systems that require immediate keyboard input.
7315c3ec676SGleb SmirnoffThis can be removed for post-installation use.
7328b97e975SMateusz Piotrowski.It Cm password= Ns Ar password
733f4d34383SMarcelo AraujoThis type of authentication is known to be cryptographically weak and is not
734f4d34383SMarcelo Araujointended for use on untrusted networks.
735f4d34383SMarcelo AraujoMany implementations will want to use stronger security, such as running
736f4d34383SMarcelo Araujothe session over an encrypted channel provided by IPsec or SSH.
7375c3ec676SGleb Smirnoff.El
7386c87a2c0SGleb Smirnoff.Pp
7396eff58acSMateusz PiotrowskixHCI USB device backends:
7405c3ec676SGleb Smirnoff.Bl -tag -width 10n
7416eff58acSMateusz Piotrowski.It Cm tablet
7425c3ec676SGleb SmirnoffA USB tablet device which provides precise cursor synchronization
7435c3ec676SGleb Smirnoffwhen using VNC.
7446c87a2c0SGleb Smirnoff.El
745c066c68cSMarcelo Araujo.Pp
7466eff58acSMateusz PiotrowskiNVMe device backends:
7476eff58acSMateusz Piotrowski.Bl -bullet
7486eff58acSMateusz Piotrowski.Sm off
7496eff58acSMateusz Piotrowski.It
7506eff58acSMateusz Piotrowski.Ar devpath
7516eff58acSMateusz Piotrowski.Op Cm ,maxq= Ar #
7526eff58acSMateusz Piotrowski.Op Cm ,qsz= Ar #
7536eff58acSMateusz Piotrowski.Op Cm ,ioslots= Ar #
7546eff58acSMateusz Piotrowski.Op Cm ,sectsz= Ar #
7556eff58acSMateusz Piotrowski.Op Cm ,ser= Ar #
7566eff58acSMateusz Piotrowski.Op Cm ,eui64= Ar #
7576eff58acSMateusz Piotrowski.Op Cm ,dsm= Ar opt
7586eff58acSMateusz Piotrowski.Sm on
7596eff58acSMateusz Piotrowski.El
7606eff58acSMateusz Piotrowski.Pp
7616eff58acSMateusz PiotrowskiConfiguration options are defined as follows:
762c066c68cSMarcelo Araujo.Bl -tag -width 10n
7636eff58acSMateusz Piotrowski.It Ar devpath
764c066c68cSMarcelo AraujoAccepted device paths are:
765c066c68cSMarcelo Araujo.Ar /dev/blockdev
766c066c68cSMarcelo Araujoor
767c066c68cSMarcelo Araujo.Ar /path/to/image
768c066c68cSMarcelo Araujoor
7696eff58acSMateusz Piotrowski.Cm ram= Ns Ar size_in_MiB .
7706eff58acSMateusz Piotrowski.It Cm maxq
771c066c68cSMarcelo AraujoMax number of queues.
7726eff58acSMateusz Piotrowski.It Cm qsz
773c066c68cSMarcelo AraujoMax elements in each queue.
7746eff58acSMateusz Piotrowski.It Cm ioslots
775c066c68cSMarcelo AraujoMax number of concurrent I/O requests.
7766eff58acSMateusz Piotrowski.It Cm sectsz
777c066c68cSMarcelo AraujoSector size (defaults to blockif sector size).
7786eff58acSMateusz Piotrowski.It Cm ser
779c066c68cSMarcelo AraujoSerial number with maximum 20 characters.
7806eff58acSMateusz Piotrowski.It Cm eui64
7816eff58acSMateusz PiotrowskiIEEE Extended Unique Identifier (8 byte value).
7826eff58acSMateusz Piotrowski.It Cm dsm
7836eff58acSMateusz PiotrowskiDataSet Management support.
7846eff58acSMateusz PiotrowskiSupported values are:
7856eff58acSMateusz Piotrowski.Cm auto , enable ,
7866eff58acSMateusz Piotrowskiand
7876eff58acSMateusz Piotrowski.Cm disable .
788c066c68cSMarcelo Araujo.El
78936f9f044SWarner Losh.Pp
790d5fcc4b6SMateusz PiotrowskiAHCI device backends:
791d5fcc4b6SMateusz Piotrowski.Bl -bullet
792d5fcc4b6SMateusz Piotrowski.It
793d5fcc4b6SMateusz Piotrowski.Sm off
794d5fcc4b6SMateusz Piotrowski.Op Oo Cm hd\&: | cd\&: Oc Ar path
795d5fcc4b6SMateusz Piotrowski.Op Cm ,nmrr= Ar nmrr
796d5fcc4b6SMateusz Piotrowski.Op Cm ,ser= Ar #
797d5fcc4b6SMateusz Piotrowski.Op Cm ,rev= Ar #
798d5fcc4b6SMateusz Piotrowski.Op Cm ,model= Ar #
799d5fcc4b6SMateusz Piotrowski.Sm on
800d5fcc4b6SMateusz Piotrowski.El
801d5fcc4b6SMateusz Piotrowski.Pp
802d5fcc4b6SMateusz PiotrowskiConfiguration options are defined as follows:
8039af3bcd7SPeter Grehan.Bl -tag -width 10n
804d5fcc4b6SMateusz Piotrowski.It Cm nmrr
805d5fcc4b6SMateusz PiotrowskiNominal Media Rotation Rate, known as RPM.
806d5fcc4b6SMateusz PiotrowskiValue 1 will indicate device as Solid State Disk.
807d5fcc4b6SMateusz PiotrowskiDefault value is 0, not report.
808d5fcc4b6SMateusz Piotrowski.It Cm ser
8099af3bcd7SPeter GrehanSerial Number with maximum 20 characters.
810d5fcc4b6SMateusz Piotrowski.It Cm rev
8119af3bcd7SPeter GrehanRevision Number with maximum 8 characters.
812d5fcc4b6SMateusz Piotrowski.It Cm model
8139af3bcd7SPeter GrehanModel Number with maximum 40 characters.
8149af3bcd7SPeter Grehan.El
8159af3bcd7SPeter Grehan.Pp
816061f37d2SMateusz PiotrowskiHD Audio device backends:
817061f37d2SMateusz Piotrowski.Bl -bullet
818061f37d2SMateusz Piotrowski.It
819061f37d2SMateusz Piotrowski.Sm off
820061f37d2SMateusz Piotrowski.Op Cm play= Ar playback
821061f37d2SMateusz Piotrowski.Op Cm ,rec= Ar recording
822061f37d2SMateusz Piotrowski.Sm on
823061f37d2SMateusz Piotrowski.El
824061f37d2SMateusz Piotrowski.Pp
825061f37d2SMateusz PiotrowskiConfiguration options are defined as follows:
82636f9f044SWarner Losh.Bl -tag -width 10n
827061f37d2SMateusz Piotrowski.It Cm play
82836f9f044SWarner LoshPlayback device, typically
82936f9f044SWarner Losh.Ar /dev/dsp0 .
830061f37d2SMateusz Piotrowski.It Cm rec
83136f9f044SWarner LoshRecording device, typically
83236f9f044SWarner Losh.Ar /dev/dsp0 .
83336f9f044SWarner Losh.El
8345749449dSJohn Baldwin.It Fl U Ar uuid
8355749449dSJohn BaldwinSet the universally unique identifier
8365749449dSJohn Baldwin.Pq UUID
8375749449dSJohn Baldwinin the guest's System Management BIOS System Information structure.
8385749449dSJohn BaldwinBy default a UUID is generated from the host's hostname and
8395749449dSJohn Baldwin.Ar vmname .
840ccb1c87aSMateusz Piotrowski.It Fl u
841ccb1c87aSMateusz PiotrowskiRTC keeps UTC time.
842cde1f5b8SJohn Baldwin.It Fl W
843cde1f5b8SJohn BaldwinForce virtio PCI device emulations to use MSI interrupts instead of MSI-X
844cde1f5b8SJohn Baldwininterrupts.
845ccb1c87aSMateusz Piotrowski.It Fl w
846ccb1c87aSMateusz PiotrowskiIgnore accesses to unimplemented Model Specific Registers (MSRs).
847ccb1c87aSMateusz PiotrowskiThis is intended for debug purposes.
8489777ca20SNeel Natu.It Fl x
8499777ca20SNeel NatuThe guest's local APIC is configured in x2APIC mode.
850b100acf2SNeel Natu.It Fl Y
851b100acf2SNeel NatuDisable MPtable generation.
852b13e60daSPeter Grehan.It Ar vmname
853b13e60daSPeter GrehanAlphanumeric name of the guest.
854b13e60daSPeter GrehanThis should be the same as that created by
855b13e60daSPeter Grehan.Xr bhyveload 8 .
856b13e60daSPeter Grehan.El
857621b5090SJohn Baldwin.Sh CONFIGURATION VARIABLES
858621b5090SJohn Baldwin.Nm
859621b5090SJohn Baldwinuses an internal tree of configuration variables to describe global and
860621b5090SJohn Baldwinper-device settings.
861621b5090SJohn BaldwinWhen
862621b5090SJohn Baldwin.Nm
863621b5090SJohn Baldwinstarts,
864621b5090SJohn Baldwinit parses command line options (including config files) in the order given
865621b5090SJohn Baldwinon the command line.
866621b5090SJohn BaldwinEach command line option sets one or more configuration variables.
867621b5090SJohn BaldwinFor example,
868621b5090SJohn Baldwinthe
869621b5090SJohn Baldwin.Fl s
870621b5090SJohn Baldwinoption creates a new tree node for a PCI device and sets one or more variables
871621b5090SJohn Baldwinunder that node including the device model and device model-specific variables.
872621b5090SJohn BaldwinVariables may be set multiple times during this parsing stage with the final
873621b5090SJohn Baldwinvalue overriding previous values.
874621b5090SJohn Baldwin.Pp
875621b5090SJohn BaldwinOnce all of the command line options have been processed,
876621b5090SJohn Baldwinthe configuration values are frozen.
877621b5090SJohn Baldwin.Nm
878621b5090SJohn Baldwinthen uses the value of configuration values to initialize device models
879621b5090SJohn Baldwinand global settings.
880621b5090SJohn Baldwin.Pp
881621b5090SJohn BaldwinMore details on configuration variables can be found in
882621b5090SJohn Baldwin.Xr bhyve_config 5 .
883cd377eb3SJohn Baldwin.Sh DEBUG SERVER
884cd377eb3SJohn BaldwinThe current debug server provides limited support for debuggers.
885cd377eb3SJohn Baldwin.Ss Registers
886cd377eb3SJohn BaldwinEach virtual CPU is exposed to the debugger as a thread.
887cd377eb3SJohn Baldwin.Pp
888cd377eb3SJohn BaldwinGeneral purpose registers can be queried for each virtual CPU, but other
889cd377eb3SJohn Baldwinregisters such as floating-point and system registers cannot be queried.
890cd377eb3SJohn Baldwin.Ss Memory
891976ba8c6SJohn BaldwinMemory (including memory mapped I/O regions) can be read and written by the debugger.
8928d56c805SYuri PankovMemory operations use virtual addresses that are resolved to physical addresses
8938d56c805SYuri Pankovvia the current virtual CPU's active address translation.
894cd377eb3SJohn Baldwin.Ss Control
895cd377eb3SJohn BaldwinThe running guest can be interrupted by the debugger at any time
896cd377eb3SJohn Baldwin.Pq for example, by pressing Ctrl-C in the debugger .
897cd377eb3SJohn Baldwin.Pp
898cd377eb3SJohn BaldwinSingle stepping is only supported on Intel CPUs supporting the MTRAP VM exit.
899cd377eb3SJohn Baldwin.Pp
900cbd03a9dSJohn BaldwinBreakpoints are supported on Intel CPUs that support single stepping.
901cbd03a9dSJohn BaldwinNote that continuing from a breakpoint while interrupts are enabled in the
902cbd03a9dSJohn Baldwinguest may not work as expected due to timer interrupts firing while single
903cbd03a9dSJohn Baldwinstepping over the breakpoint.
904c2202d41SRoman Bogorodskiy.Sh SIGNAL HANDLING
905c2202d41SRoman Bogorodskiy.Nm
906c2202d41SRoman Bogorodskiydeals with the following signals:
907c2202d41SRoman Bogorodskiy.Pp
9083357e948SMateusz Piotrowski.Bl -tag -width SIGTERM -compact
909c2202d41SRoman Bogorodskiy.It SIGTERM
910c2202d41SRoman BogorodskiyTrigger ACPI poweroff for a VM
911c2202d41SRoman Bogorodskiy.El
912c2202d41SRoman Bogorodskiy.Sh EXIT STATUS
913c2202d41SRoman BogorodskiyExit status indicates how the VM was terminated:
914c2202d41SRoman Bogorodskiy.Pp
915c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact
916c2202d41SRoman Bogorodskiy.It 0
917c2202d41SRoman Bogorodskiyrebooted
918c2202d41SRoman Bogorodskiy.It 1
919c2202d41SRoman Bogorodskiypowered off
920c2202d41SRoman Bogorodskiy.It 2
921c2202d41SRoman Bogorodskiyhalted
922c2202d41SRoman Bogorodskiy.It 3
923c2202d41SRoman Bogorodskiytriple fault
924989e062bSMarcelo Araujo.It 4
925989e062bSMarcelo Araujoexited due to an error
926c2202d41SRoman Bogorodskiy.El
927b13e60daSPeter Grehan.Sh EXAMPLES
9285c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must have been loaded with
92984fe889cSChristian Brueffer.Xr bhyveload 8
930b13e60daSPeter Grehanor a similar boot loader before
931b13e60daSPeter Grehan.Xr bhyve 4
932b13e60daSPeter Grehancan be run.
9335c3ec676SGleb SmirnoffOtherwise, the boot loader is not needed.
934b13e60daSPeter Grehan.Pp
935b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio
936b13e60daSPeter Grehanblock device backed by the
937b13e60daSPeter Grehan.Pa /my/image
938b13e60daSPeter Grehanfilesystem image, and a serial port for the console:
939b13e60daSPeter Grehan.Bd -literal -offset indent
940b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\
941b13e60daSPeter Grehan  -l com1,stdio -A -H -P -m 1G vm1
942b13e60daSPeter Grehan.Ed
943b13e60daSPeter Grehan.Pp
944b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which
945b13e60daSPeter Grehanhas a MAC address specified:
946b13e60daSPeter Grehan.Bd -literal -offset indent
947b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\
948b13e60daSPeter Grehan  -s 2:1,virtio-net,tap1 \\
949b13e60daSPeter Grehan  -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\
950b13e60daSPeter Grehan  -s 3,virtio-blk,/my/image -l com1,stdio \\
951b13e60daSPeter Grehan  -A -H -P -m 24G bigvm
952b13e60daSPeter Grehan.Ed
953b13e60daSPeter Grehan.Pp
954b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI
955b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console
956b13e60daSPeter Grehanport connected to an
957b13e60daSPeter Grehan.Xr nmdm 4
95884fe889cSChristian Brueffernull-modem device.
959b13e60daSPeter Grehan.Bd -literal -offset indent
960a7ab1463SAlexander Motinbhyve -c 4 \\
961b13e60daSPeter Grehan  -s 0,amd_hostbridge -s 1,lpc \\
962098f5155SAlexander Motin  -s 1:0,ahci,hd:/images/disk.1,hd:/images/disk.2,\\
963098f5155SAlexander Motinhd:/images/disk.3,hd:/images/disk.4,\\
964098f5155SAlexander Motinhd:/images/disk.5,hd:/images/disk.6,\\
965098f5155SAlexander Motinhd:/images/disk.7,hd:/images/disk.8,\\
966098f5155SAlexander Motincd:/images/install.iso \\
967b13e60daSPeter Grehan  -s 3,virtio-net,tap0 \\
968b13e60daSPeter Grehan  -l com1,/dev/nmdm0A \\
969b13e60daSPeter Grehan  -A -H -P -m 8G
970b13e60daSPeter Grehan.Ed
9715c3ec676SGleb Smirnoff.Pp
9725c3ec676SGleb SmirnoffRun a UEFI virtual machine with a display resolution of 800 by 600 pixels
9735c3ec676SGleb Smirnoffthat can be accessed via VNC at: 0.0.0.0:5900.
9745c3ec676SGleb Smirnoff.Bd -literal -offset indent
9755c3ec676SGleb Smirnoffbhyve -c 2 -m 4G -w -H \\
9765c3ec676SGleb Smirnoff  -s 0,hostbridge \\
9775c3ec676SGleb Smirnoff  -s 3,ahci-cd,/path/to/uefi-OS-install.iso \\
9785c3ec676SGleb Smirnoff  -s 4,ahci-hd,disk.img \\
9795c3ec676SGleb Smirnoff  -s 5,virtio-net,tap0 \\
9805c3ec676SGleb Smirnoff  -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \\
9815c3ec676SGleb Smirnoff  -s 30,xhci,tablet \\
9825c3ec676SGleb Smirnoff  -s 31,lpc -l com1,stdio \\
9835c3ec676SGleb Smirnoff  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
9845c3ec676SGleb Smirnoff   uefivm
9855c3ec676SGleb Smirnoff.Ed
9868883128bSBjoern A. Zeeb.Pp
9878883128bSBjoern A. ZeebRun a UEFI virtual machine with a VNC display that is bound to all IPv6
9888883128bSBjoern A. Zeebaddresses on port 5900.
9898883128bSBjoern A. Zeeb.Bd -literal -offset indent
9908883128bSBjoern A. Zeebbhyve -c 2 -m 4G -w -H \\
9918883128bSBjoern A. Zeeb  -s 0,hostbridge \\
9928883128bSBjoern A. Zeeb  -s 4,ahci-hd,disk.img \\
9938883128bSBjoern A. Zeeb  -s 5,virtio-net,tap0 \\
9948883128bSBjoern A. Zeeb  -s 29,fbuf,tcp=[::]:5900,w=800,h=600 \\
9958883128bSBjoern A. Zeeb  -s 30,xhci,tablet \\
9968883128bSBjoern A. Zeeb  -s 31,lpc -l com1,stdio \\
9978883128bSBjoern A. Zeeb  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
9988883128bSBjoern A. Zeeb   uefivm
9998883128bSBjoern A. Zeeb.Ed
1000866036f4SRebecca Cran.Pp
1001866036f4SRebecca CranRun a UEFI virtual machine with a VARS file to save EFI variables.
1002866036f4SRebecca CranNote that
1003866036f4SRebecca Cran.Nm
1004866036f4SRebecca Cranwill write guest modifications to the given VARS file.
1005866036f4SRebecca CranBe sure to create a per-guest copy of the template VARS file from
1006866036f4SRebecca Cran.Pa /usr .
1007866036f4SRebecca Cran.Bd -literal -offset indent
1008866036f4SRebecca Cranbhyve -c 2 -m 4g -w -H \\
1009866036f4SRebecca Cran  -s 0,hostbridge \\
101066659955SAlexey Marchenko  -s 31,lpc -l com1,stdio \\
1011866036f4SRebecca Cran  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI_CODE.fd,BHYVE_UEFI_VARS.fd
1012866036f4SRebecca Cran   uefivm
1013866036f4SRebecca Cran.Ed
1014b13e60daSPeter Grehan.Sh SEE ALSO
1015b13e60daSPeter Grehan.Xr bhyve 4 ,
1016e90337e4SAleksandr Fedorov.Xr netgraph 4 ,
1017e90337e4SAleksandr Fedorov.Xr ng_socket 4 ,
1018b13e60daSPeter Grehan.Xr nmdm 4 ,
1019b13e60daSPeter Grehan.Xr vmm 4 ,
1020621b5090SJohn Baldwin.Xr bhyve_config 5 ,
1021b13e60daSPeter Grehan.Xr ethers 5 ,
102205f7cd8bSJoel Dahl.Xr bhyvectl 8 ,
102305f7cd8bSJoel Dahl.Xr bhyveload 8
10248d56c805SYuri Pankov.Pp
10258d56c805SYuri Pankov.Rs
10268d56c805SYuri Pankov.%A Intel
10278d56c805SYuri Pankov.%B 64 and IA-32 Architectures Software Developer’s Manual
10288d56c805SYuri Pankov.%V Volume 3
10298d56c805SYuri Pankov.Re
1030b13e60daSPeter Grehan.Sh HISTORY
1031b13e60daSPeter Grehan.Nm
1032b13e60daSPeter Grehanfirst appeared in
1033b13e60daSPeter Grehan.Fx 10.0 .
1034b13e60daSPeter Grehan.Sh AUTHORS
103501c2b8acSBaptiste Daroussin.An Neel Natu Aq Mt neel@freebsd.org
103601c2b8acSBaptiste Daroussin.An Peter Grehan Aq Mt grehan@freebsd.org
1037