xref: /freebsd/usr.sbin/bhyve/bhyve.8 (revision 66659955dafd3effd37e292c36c5404318d388e8)
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*66659955SAlexey 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
48775f6f45SMateusz Piotrowski.Oo
49b70b050aSJohn Baldwin.Sm off
50775f6f45SMateusz Piotrowski.Fl G\~
51b70b050aSJohn Baldwin.Oo Ar w Oc
52775f6f45SMateusz Piotrowski.Oo Ar bind_address Cm \&: Oc
53b70b050aSJohn Baldwin.Ar port
54b70b050aSJohn Baldwin.Sm on
55b70b050aSJohn Baldwin.Oc
56f656df58SMateusz Piotrowski.Op Fl k Ar config_file
5719eaa01bSMichael Reifenberger.Op Fl K Ar layout
5877d208a3SMateusz Piotrowski.Oo Fl l
5977d208a3SMateusz Piotrowski.Sm off
60bfe40b69SMateusz Piotrowski.Ar lpcdev Op Cm \&, Ar conf
6177d208a3SMateusz Piotrowski.Sm on
6277d208a3SMateusz Piotrowski.Oc
6377d208a3SMateusz Piotrowski.Sm off
64775f6f45SMateusz Piotrowski.Oo Fl m\~
6577d208a3SMateusz Piotrowski.Ar memsize
6677d208a3SMateusz Piotrowski.Oo
678d9fefe6SMateusz Piotrowski.Cm K | Cm k | Cm M | Cm m | Cm G | Cm g | Cm T | Cm t
6877d208a3SMateusz Piotrowski.Oc
6977d208a3SMateusz Piotrowski.Sm on
7077d208a3SMateusz Piotrowski.Oc
71621b5090SJohn Baldwin.Op Fl o Ar var Ns Cm = Ns Ar value
7277d208a3SMateusz Piotrowski.Op Fl p Ar vcpu Ns Cm \&: Ns Ar hostcpu
73483d953aSJohn Baldwin.Op Fl r Ar file
7477d208a3SMateusz Piotrowski.Sm off
75bfe40b69SMateusz Piotrowski.Oo Fl s\~
76bfe40b69SMateusz Piotrowski.Ar slot Cm \&, Ar emulation Op Cm \&, Ar conf
7777d208a3SMateusz Piotrowski.Sm on
7877d208a3SMateusz Piotrowski.Oc
795749449dSJohn Baldwin.Op Fl U Ar uuid
80b13e60daSPeter Grehan.Ar vmname
81bfe40b69SMateusz Piotrowski.Nm
82bfe40b69SMateusz Piotrowski.Fl l Cm help
83bfe40b69SMateusz Piotrowski.Nm
84bfe40b69SMateusz Piotrowski.Fl s Cm help
85b13e60daSPeter Grehan.Sh DESCRIPTION
86b13e60daSPeter Grehan.Nm
877fca1ad5SGlen Barberis a hypervisor that runs guest operating systems inside a
88b13e60daSPeter Grehanvirtual machine.
89b13e60daSPeter Grehan.Pp
90b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and
91b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters.
92b13e60daSPeter Grehan.Pp
935c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must be loaded with
9484fe889cSChristian Brueffer.Xr bhyveload 8
95b13e60daSPeter Grehanor a similar boot loader before running
965c3ec676SGleb Smirnoff.Nm ,
975c3ec676SGleb Smirnoffotherwise, it is enough to run
985c3ec676SGleb Smirnoff.Nm
995c3ec676SGleb Smirnoffwith a boot ROM of choice.
100b13e60daSPeter Grehan.Pp
101b13e60daSPeter Grehan.Nm
102b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor
103b13e60daSPeter Grehanexit is detected.
104b13e60daSPeter Grehan.Sh OPTIONS
105b13e60daSPeter Grehan.Bl -tag -width 10n
106b13e60daSPeter Grehan.It Fl A
107b13e60daSPeter GrehanGenerate ACPI tables.
108b13e60daSPeter GrehanRequired for
109b13e60daSPeter Grehan.Fx Ns /amd64
110b13e60daSPeter Grehanguests.
111ccb1c87aSMateusz Piotrowski.It Fl a
112ccb1c87aSMateusz PiotrowskiThe guest's local APIC is configured in xAPIC mode.
113ccb1c87aSMateusz PiotrowskiThe xAPIC mode is the default setting so this option is redundant.
114ccb1c87aSMateusz PiotrowskiIt will be deprecated in a future version.
115ccb1c87aSMateusz Piotrowski.It Fl C
116ccb1c87aSMateusz PiotrowskiInclude guest memory in core file.
11701d822d3SRodney W. Grimes.It Fl c Op Ar setting ...
11801d822d3SRodney W. GrimesNumber of guest virtual CPUs
11901d822d3SRodney W. Grimesand/or the CPU topology.
12001d822d3SRodney W. GrimesThe default value for each of
12101d822d3SRodney W. Grimes.Ar numcpus ,
12201d822d3SRodney W. Grimes.Ar sockets ,
12301d822d3SRodney W. Grimes.Ar cores ,
12401d822d3SRodney W. Grimesand
12501d822d3SRodney W. Grimes.Ar threads
12601d822d3SRodney W. Grimesis 1.
12701d822d3SRodney W. GrimesThe current maximum number of guest virtual CPUs is 16.
12801d822d3SRodney W. GrimesIf
12901d822d3SRodney W. Grimes.Ar numcpus
13001d822d3SRodney W. Grimesis not specified then it will be calculated from the other arguments.
13101d822d3SRodney W. GrimesThe topology must be consistent in that the
13201d822d3SRodney W. Grimes.Ar numcpus
13301d822d3SRodney W. Grimesmust equal the product of
13401d822d3SRodney W. Grimes.Ar sockets ,
13501d822d3SRodney W. Grimes.Ar cores ,
13601d822d3SRodney W. Grimesand
13701d822d3SRodney W. Grimes.Ar threads .
13801d822d3SRodney W. GrimesIf a
13901d822d3SRodney W. Grimes.Ar setting
14001d822d3SRodney W. Grimesis specified more than once the last one has precedence.
1410a1016f9SPawel Biernacki.It Fl D
1420a1016f9SPawel BiernackiDestroy the VM on guest initiated power-off.
143cde1f5b8SJohn Baldwin.It Fl e
144cde1f5b8SJohn BaldwinForce
145cde1f5b8SJohn Baldwin.Nm
146cde1f5b8SJohn Baldwinto exit when a guest issues an access to an I/O port that is not emulated.
147cde1f5b8SJohn BaldwinThis is intended for debug purposes.
1482cdff991SMariusz Zaborski.It Fl G Xo
1492cdff991SMariusz Zaborski.Sm off
1502cdff991SMariusz Zaborski.Oo Ar w Oc
151775f6f45SMateusz Piotrowski.Oo Ar bind_address Cm \&: Oc
1522cdff991SMariusz Zaborski.Ar port
1532cdff991SMariusz Zaborski.Sm on
1542cdff991SMariusz Zaborski.Xc
155cd377eb3SJohn BaldwinStart a debug server that uses the GDB protocol to export guest state to a
156cd377eb3SJohn Baldwindebugger.
157cd377eb3SJohn BaldwinAn IPv4 TCP socket will be bound to the supplied
1582cdff991SMariusz Zaborski.Ar bind_address
1592cdff991SMariusz Zaborskiand
160cd377eb3SJohn Baldwin.Ar port
161cd377eb3SJohn Baldwinto listen for debugger connections.
162cd377eb3SJohn BaldwinOnly a single debugger may be attached to the debug server at a time.
1632cdff991SMariusz ZaborskiIf the option begins with
164cd377eb3SJohn Baldwin.Sq w ,
165cd377eb3SJohn Baldwin.Nm
166cd377eb3SJohn Baldwinwill pause execution at the first instruction waiting for a debugger to attach.
167cde1f5b8SJohn Baldwin.It Fl H
168cde1f5b8SJohn BaldwinYield the virtual CPU thread when a HLT instruction is detected.
169cde1f5b8SJohn BaldwinIf this option is not specified, virtual CPUs will use 100% of a host CPU.
170ccb1c87aSMateusz Piotrowski.It Fl h
171ccb1c87aSMateusz PiotrowskiPrint help message and exit.
172f656df58SMateusz Piotrowski.It Fl k Ar config_file
173621b5090SJohn BaldwinSet configuration variables from a simple, key-value config file.
174621b5090SJohn BaldwinEach line of the config file is expected to consist of a config variable
175621b5090SJohn Baldwinname, an equals sign
17619eaa01bSMichael Reifenberger.It Fl K Ar layout
17719eaa01bSMichael ReifenbergerSpecify the keyboard layout.
17819eaa01bSMichael ReifenbergerThe value that can be specified sets the file name in
17919eaa01bSMichael Reifenberger.Ar /usr/share/bhyve/kbdlayout .
18019eaa01bSMichael ReifenbergerThis specification only works when loaded with UEFI mode for VNC.
18119eaa01bSMichael ReifenbergerWhen using a VNC client that supports QEMU Extended Key Event Message (e.g. TigerVNC), this option isn't needed.
18219eaa01bSMichael 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.
183621b5090SJohn Baldwin.Pq Sq = ,
184621b5090SJohn Baldwinand a value.
185621b5090SJohn BaldwinNo spaces are permitted between the variable name, equals sign, or
186621b5090SJohn Baldwinvalue.
187621b5090SJohn BaldwinBlank lines and lines starting with
188621b5090SJohn Baldwin.Sq #
189621b5090SJohn Baldwinare ignored.
190f656df58SMateusz PiotrowskiSee
191f656df58SMateusz Piotrowski.Xr bhyve_config 5
192f656df58SMateusz Piotrowskifor more details.
1934c08b978SMateusz Piotrowski.It Fl l Cm help
1944c08b978SMateusz PiotrowskiPrint a list of supported LPC devices.
1954c08b978SMateusz Piotrowski.It Fl l Ar lpcdev Ns Op Cm \&, Ns Ar conf
196cde1f5b8SJohn BaldwinAllow devices behind the LPC PCI-ISA bridge to be configured.
1979b1aa8d6SNeel NatuThe only supported devices are the TTY-class devices
1984c08b978SMateusz Piotrowski.Cm com1 , com2 , com3 ,
1994c08b978SMateusz Piotrowskiand
2004c08b978SMateusz Piotrowski.Cm com4 ,
2012f40fc6fSPeter Grehanthe boot ROM device
2024c08b978SMateusz Piotrowski.Cm bootrom ,
203d85147f3SCorvin Köhnethe
204d85147f3SCorvin Köhne.Cm fwcfg
205d85147f3SCorvin Köhnetype and the debug/test device
2064c08b978SMateusz Piotrowski.Cm pc-testdev .
2071aa56353SMarcelo Araujo.Pp
2084c08b978SMateusz PiotrowskiThe possible values for the
2094c08b978SMateusz Piotrowski.Ar conf
2104c08b978SMateusz Piotrowskiargument are listed in the
2114c08b978SMateusz Piotrowski.Fl s
2124c08b978SMateusz Piotrowskiflag description.
2137e0cb3dfSMateusz Piotrowski.It Xo
2147e0cb3dfSMateusz Piotrowski.Fl m Ar memsize Ns Oo
2157e0cb3dfSMateusz Piotrowski.Sm off
2167e0cb3dfSMateusz Piotrowski.Cm K | k | M | m | G | g | T | t
2177e0cb3dfSMateusz Piotrowski.Sm on
2187e0cb3dfSMateusz Piotrowski.Oc
2197e0cb3dfSMateusz Piotrowski.Xc
2207e0cb3dfSMateusz PiotrowskiSet the guest physical memory size
221cde1f5b8SJohn BaldwinThis must be the same size that was given to
222cde1f5b8SJohn Baldwin.Xr bhyveload 8 .
223cde1f5b8SJohn Baldwin.Pp
2247e0cb3dfSMateusz PiotrowskiThe size argument may be suffixed with one of
2257e0cb3dfSMateusz Piotrowski.Cm K , M , G
2267e0cb3dfSMateusz Piotrowskior
2277e0cb3dfSMateusz Piotrowski.Cm T
2287e0cb3dfSMateusz Piotrowski(either upper or lower case)
2297e0cb3dfSMateusz Piotrowskito indicate a multiple of kilobytes, megabytes, gigabytes, or terabytes.
230cde1f5b8SJohn BaldwinIf no suffix is given, the value is assumed to be in megabytes.
2316ee52c65SRoman Bogorodskiy.Pp
2327e0cb3dfSMateusz PiotrowskiThe default is 256M.
233621b5090SJohn Baldwin.It Fl o Ar var Ns Cm = Ns Ar value
234621b5090SJohn BaldwinSet the configuration variable
235621b5090SJohn Baldwin.Ar var
236621b5090SJohn Baldwinto
237621b5090SJohn Baldwin.Ar value .
238ccb1c87aSMateusz Piotrowski.It Fl P
239ccb1c87aSMateusz PiotrowskiForce the guest virtual CPU to exit when a PAUSE instruction is detected.
24090df5437SMateusz Piotrowski.It Fl p Ar vcpu Ns Cm \& : Ns Ar hostcpu
2419b6155a2SNeel NatuPin guest's virtual CPU
2429b6155a2SNeel Natu.Em vcpu
2439b6155a2SNeel Natuto
2449b6155a2SNeel Natu.Em hostcpu .
245483d953aSJohn Baldwin.It Fl r Ar file
246483d953aSJohn BaldwinResume a guest from a snapshot.
247483d953aSJohn BaldwinThe guest memory contents are restored from
248483d953aSJohn Baldwin.Ar file ,
249483d953aSJohn Baldwinand the guest device and vCPU state are restored from the file
250483d953aSJohn Baldwin.Dq Ar file Ns .kern .
251483d953aSJohn Baldwin.Pp
252483d953aSJohn BaldwinNote that the current snapshot file format requires that the configuration of
253483d953aSJohn Baldwindevices in the new VM match the VM from which the snapshot was taken by specifying the
254483d953aSJohn Baldwinsame
255b24eea8cSMateusz Piotrowski.Fl s
256483d953aSJohn Baldwinand
257b24eea8cSMateusz Piotrowski.Fl l
258483d953aSJohn Baldwinoptions.
259483d953aSJohn BaldwinThe count of vCPUs and memory configuration are read from the snapshot.
260ccb1c87aSMateusz Piotrowski.It Fl S
261ccb1c87aSMateusz PiotrowskiWire guest memory.
262449f0e48SMateusz Piotrowski.It Fl s Cm help
263449f0e48SMateusz PiotrowskiPrint a list of supported PCI devices.
264449f0e48SMateusz Piotrowski.It Fl s Ar slot Ns Cm \&, Ns Ar emulation Ns Op Cm \&, Ns Ar conf
265b13e60daSPeter GrehanConfigure a virtual PCI slot and function.
266b13e60daSPeter Grehan.Pp
26784fe889cSChristian Brueffer.Nm
268b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to
269b13e60daSPeter Grehanslots on the bus.
270b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions
271b13e60daSPeter Grehanper slot.
272234d8c47SMateusz Piotrowski.Pp
273234d8c47SMateusz PiotrowskiThe
274234d8c47SMateusz Piotrowski.Ar slot
275234d8c47SMateusz Piotrowskican be specified in one of the following formats:
276234d8c47SMateusz Piotrowski.Pp
277234d8c47SMateusz Piotrowski.Bl -bullet -compact
278234d8c47SMateusz Piotrowski.It
279234d8c47SMateusz Piotrowski.Ar pcislot
280234d8c47SMateusz Piotrowski.It
281234d8c47SMateusz Piotrowski.Sm off
282234d8c47SMateusz Piotrowski.Ar pcislot Cm \&: Ar function
283234d8c47SMateusz Piotrowski.Sm on
284234d8c47SMateusz Piotrowski.It
285234d8c47SMateusz Piotrowski.Sm off
286234d8c47SMateusz Piotrowski.Ar bus Cm \&: Ar pcislot Cm \&: Ar function
287234d8c47SMateusz Piotrowski.Sm on
288234d8c47SMateusz Piotrowski.El
289b13e60daSPeter Grehan.Pp
290b13e60daSPeter GrehanThe
291b13e60daSPeter Grehan.Ar pcislot
29284fe889cSChristian Brueffervalue is 0 to 31.
29384fe889cSChristian BruefferThe optional
29484fe889cSChristian Brueffer.Ar function
29584fe889cSChristian Brueffervalue is 0 to 7.
29684fe889cSChristian BruefferThe optional
29706db1b4aSNeel Natu.Ar bus
29806db1b4aSNeel Natuvalue is 0 to 255.
29984fe889cSChristian BruefferIf not specified, the
30084fe889cSChristian Brueffer.Ar function
30184fe889cSChristian Brueffervalue defaults to 0.
30284fe889cSChristian BruefferIf not specified, the
30384fe889cSChristian Brueffer.Ar bus
30484fe889cSChristian Brueffervalue defaults to 0.
305234d8c47SMateusz Piotrowski.Pp
306234d8c47SMateusz PiotrowskiThe
307234d8c47SMateusz Piotrowski.Ar emulation
308234d8c47SMateusz Piotrowskiargument
309234d8c47SMateusz Piotrowskican be one of the following:
3107014cb23SMateusz Piotrowski.Bl -tag -width "amd_hostbridge"
3117014cb23SMateusz Piotrowski.It Cm hostbridge
3127014cb23SMateusz PiotrowskiA simple host bridge.
313b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest
314b13e60daSPeter Grehanoperating systems.
3157014cb23SMateusz Piotrowski.It Cm amd_hostbridge
3167014cb23SMateusz PiotrowskiEmulation identical to
3177014cb23SMateusz Piotrowski.Cm hostbridge
3187014cb23SMateusz Piotrowskiusing a PCI vendor ID of AMD.
3197014cb23SMateusz Piotrowski.It Cm passthru
320b13e60daSPeter GrehanPCI pass-through device.
3217014cb23SMateusz Piotrowski.It Cm virtio-net
322b13e60daSPeter GrehanVirtio network interface.
3237014cb23SMateusz Piotrowski.It Cm virtio-blk
324b13e60daSPeter GrehanVirtio block storage interface.
3257014cb23SMateusz Piotrowski.It Cm virtio-scsi
326f9c005a1SMarcelo AraujoVirtio SCSI interface.
3277014cb23SMateusz Piotrowski.It Cm virtio-9p
328100353cfSJakub Wojciech KlamaVirtio 9p (VirtFS) interface.
3297014cb23SMateusz Piotrowski.It Cm virtio-rnd
3309d0c4e17SPeter GrehanVirtio RNG interface.
3317014cb23SMateusz Piotrowski.It Cm virtio-console
3325121b6ccSRoman BogorodskiyVirtio console interface, which exposes multiple ports
3335121b6ccSRoman Bogorodskiyto the guest in the form of simple char devices for simple IO
3345121b6ccSRoman Bogorodskiybetween the guest and host userspaces.
335054accacSCorvin Köhne.It Cm virtio-input
336054accacSCorvin KöhneVirtio input interface.
3377014cb23SMateusz Piotrowski.It Cm ahci
338d6099860SMaxim KonovalovAHCI controller attached to arbitrary devices.
3397014cb23SMateusz Piotrowski.It Cm ahci-cd
340b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD.
3417014cb23SMateusz Piotrowski.It Cm ahci-hd
3427014cb23SMateusz PiotrowskiAHCI controller attached to a SATA hard drive.
3437014cb23SMateusz Piotrowski.It Cm e1000
3449e749f25SAlexander MotinIntel e82545 network interface.
3457014cb23SMateusz Piotrowski.It Cm uart
346b13e60daSPeter GrehanPCI 16550 serial device.
3477014cb23SMateusz Piotrowski.It Cm lpc
3487014cb23SMateusz PiotrowskiLPC PCI-ISA bridge with COM1, COM2, COM3, and COM4 16550 serial ports,
3497014cb23SMateusz Piotrowskia boot ROM, and,
350d85147f3SCorvin Köhneoptionally, a fwcfg type and the debug/test device.
3519b1aa8d6SNeel NatuThe LPC bridge emulation can only be configured on bus 0.
3527014cb23SMateusz Piotrowski.It Cm fbuf
3536c87a2c0SGleb SmirnoffRaw framebuffer device attached to VNC server.
3547014cb23SMateusz Piotrowski.It Cm xhci
3555c3ec676SGleb SmirnoffeXtensible Host Controller Interface (xHCI) USB controller.
3567014cb23SMateusz Piotrowski.It Cm nvme
357c066c68cSMarcelo AraujoNVM Express (NVMe) controller.
3587014cb23SMateusz Piotrowski.It Cm hda
35936f9f044SWarner LoshHigh Definition Audio Controller.
360b13e60daSPeter Grehan.El
361234d8c47SMateusz Piotrowski.Pp
362234d8c47SMateusz PiotrowskiThe optional parameter
363234d8c47SMateusz Piotrowski.Ar conf
364234d8c47SMateusz Piotrowskidescribes the backend for device emulations.
365b13e60daSPeter GrehanIf
366b13e60daSPeter Grehan.Ar conf
367b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be
368b13e60daSPeter Grehanconsidered unconnected.
369b13e60daSPeter Grehan.Pp
3708d9fefe6SMateusz PiotrowskiNetwork device backends:
3717fb22729SMateusz Piotrowski.Sm off
3727fb22729SMateusz Piotrowski.Bl -bullet
3737fb22729SMateusz Piotrowski.It
3747fb22729SMateusz Piotrowski.Xo
3757fb22729SMateusz Piotrowski.Cm tap Ar N
3767fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
3777fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
3787fb22729SMateusz Piotrowski.Xc
3797fb22729SMateusz Piotrowski.It
3807fb22729SMateusz Piotrowski.Xo
3817fb22729SMateusz Piotrowski.Cm vmnet Ar N
3827fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
3837fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
3847fb22729SMateusz Piotrowski.Xc
3857fb22729SMateusz Piotrowski.It
3867fb22729SMateusz Piotrowski.Xo
3877fb22729SMateusz Piotrowski.Cm netgraph,path= Ar ADDRESS Cm \&,peerhook= Ar HOOK
3887fb22729SMateusz Piotrowski.Op Cm \&,socket= Ar NAME
3897fb22729SMateusz Piotrowski.Op Cm \&,hook= Ar HOOK
3907fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
3917fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
3927fb22729SMateusz Piotrowski.Xc
3937fb22729SMateusz Piotrowski.El
3947fb22729SMateusz Piotrowski.Sm on
395baf753ccSJohn Baldwin.Pp
396b13e60daSPeter GrehanIf
3977fb22729SMateusz Piotrowski.Cm mac
398b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the
399b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and
400b13e60daSPeter Grehanthe device name.
401b13e60daSPeter Grehan.Pp
402b13e60daSPeter GrehanThe MAC address is an ASCII string in
403b13e60daSPeter Grehan.Xr ethers 5
404b13e60daSPeter Grehanformat.
405692dbfe9SVincenzo Maffione.Pp
4067fb22729SMateusz PiotrowskiWith
4077fb22729SMateusz Piotrowski.Cm virtio-net
4087fb22729SMateusz Piotrowskidevices, the
4097fb22729SMateusz Piotrowski.Cm mtu
410692dbfe9SVincenzo Maffioneparameter can be specified to inform the guest about the largest MTU
411692dbfe9SVincenzo Maffionethat should be allowed, expressed in bytes.
412e90337e4SAleksandr Fedorov.Pp
4137fb22729SMateusz PiotrowskiWith
4147fb22729SMateusz Piotrowski.Cm netgraph
4157fb22729SMateusz Piotrowskibackend, the
4167fb22729SMateusz Piotrowski.Cm path
417e90337e4SAleksandr Fedorovand
4187fb22729SMateusz Piotrowski.Cm peerhook
419e90337e4SAleksandr Fedorovparameters must be specified to set the destination node and corresponding hook.
420e90337e4SAleksandr FedorovThe optional parameters
4217fb22729SMateusz Piotrowski.Cm socket
422e90337e4SAleksandr Fedorovand
4237fb22729SMateusz Piotrowski.Cm hook
424e90337e4SAleksandr Fedorovmay be used to set the
425e90337e4SAleksandr Fedorov.Xr ng_socket 4
426e90337e4SAleksandr Fedorovnode name and source hook.
427e90337e4SAleksandr FedorovThe
428e90337e4SAleksandr Fedorov.Ar ADDRESS ,
4297fb22729SMateusz Piotrowski.Ar HOOK ,
430e90337e4SAleksandr Fedorovand
431e90337e4SAleksandr Fedorov.Ar NAME
432e90337e4SAleksandr Fedorovmust comply with
433e90337e4SAleksandr Fedorov.Xr netgraph 4
434e90337e4SAleksandr Fedorovaddressing rules.
435b13e60daSPeter Grehan.Pp
4365232a35fSMateusz PiotrowskiBlock storage device backends:
4375232a35fSMateusz Piotrowski.Sm off
4385232a35fSMateusz Piotrowski.Bl -bullet
4395232a35fSMateusz Piotrowski.It
4405232a35fSMateusz Piotrowski.Ar /filename Op Cm \&, Ar block-device-options
4415232a35fSMateusz Piotrowski.It
4425232a35fSMateusz Piotrowski.Ar /dev/xxx Op Cm \&, Ar block-device-options
4434e43c1e8SNeel Natu.El
4445232a35fSMateusz Piotrowski.Sm on
4454e43c1e8SNeel Natu.Pp
4464e43c1e8SNeel NatuThe
4474e43c1e8SNeel Natu.Ar block-device-options
4484e43c1e8SNeel Natuare:
4495232a35fSMateusz Piotrowski.Bl -tag -width 10n
4505232a35fSMateusz Piotrowski.It Cm nocache
451b13e60daSPeter GrehanOpen the file with
452b13e60daSPeter Grehan.Dv O_DIRECT .
4535232a35fSMateusz Piotrowski.It Cm direct
454b13e60daSPeter GrehanOpen the file using
455b13e60daSPeter Grehan.Dv O_SYNC .
4565232a35fSMateusz Piotrowski.It Cm ro
457b13e60daSPeter GrehanForce the file to be opened read-only.
4585232a35fSMateusz Piotrowski.It Cm sectorsize= Ns Ar logical Ns Oo Cm \&/ Ns Ar physical Oc
4594e43c1e8SNeel NatuSpecify the logical and physical sector sizes of the emulated disk.
4604e43c1e8SNeel NatuThe physical sector size is optional and is equal to the logical sector size
4614e43c1e8SNeel Natuif not explicitly specified.
4625232a35fSMateusz Piotrowski.It Cm nodelete
463e6d795d1SAllan JudeDisable emulation of guest trim requests via
464e6d795d1SAllan Jude.Dv DIOCGDELETE
465e6d795d1SAllan Juderequests.
466b13e60daSPeter Grehan.El
467b13e60daSPeter Grehan.Pp
4687c5829c9SMateusz PiotrowskiSCSI device backends:
4697c5829c9SMateusz Piotrowski.Sm off
4707c5829c9SMateusz Piotrowski.Bl -bullet
4717c5829c9SMateusz Piotrowski.It
4727c5829c9SMateusz Piotrowski.Pa /dev/cam/ctl Oo Ar pp Cm \&. Ar vp Oc Oo Cm \&, Ar scsi-device-options Oc
47349f87822SAlexander Motin.El
4747c5829c9SMateusz Piotrowski.Sm on
47549f87822SAlexander Motin.Pp
47649f87822SAlexander MotinThe
47749f87822SAlexander Motin.Ar scsi-device-options
47849f87822SAlexander Motinare:
47949f87822SAlexander Motin.Bl -tag -width 10n
4807c5829c9SMateusz Piotrowski.It Cm iid= Ns Ar IID
48149f87822SAlexander MotinInitiator ID to use when sending requests to specified CTL port.
48249f87822SAlexander MotinThe default value is 0.
483f9c005a1SMarcelo Araujo.El
484f9c005a1SMarcelo Araujo.Pp
4852d00b570SMateusz Piotrowski9P device backends:
4862d00b570SMateusz Piotrowski.Sm off
4872d00b570SMateusz Piotrowski.Bl -bullet
4882d00b570SMateusz Piotrowski.It
4892d00b570SMateusz Piotrowski.Ar sharename Cm = Ar /path/to/share Op Cm \&, Ar 9p-device-options
490100353cfSJakub Wojciech Klama.El
4912d00b570SMateusz Piotrowski.Sm on
492100353cfSJakub Wojciech Klama.Pp
493100353cfSJakub Wojciech KlamaThe
494100353cfSJakub Wojciech Klama.Ar 9p-device-options
495100353cfSJakub Wojciech Klamaare:
496100353cfSJakub Wojciech Klama.Bl -tag -width 10n
4972d00b570SMateusz Piotrowski.It Cm ro
498100353cfSJakub Wojciech KlamaExpose the share in read-only mode.
499100353cfSJakub Wojciech Klama.El
500100353cfSJakub Wojciech Klama.Pp
5012fda01a1SMateusz PiotrowskiTTY device backends:
502b13e60daSPeter Grehan.Bl -tag -width 10n
5032fda01a1SMateusz Piotrowski.It Cm stdio
504b13e60daSPeter GrehanConnect the serial port to the standard input and output of
50584fe889cSChristian Bruefferthe
50684fe889cSChristian Brueffer.Nm
50784fe889cSChristian Bruefferprocess.
5082fda01a1SMateusz Piotrowski.It Ar /dev/xxx
509b13e60daSPeter GrehanUse the host TTY device for serial port I/O.
510b13e60daSPeter Grehan.El
511b13e60daSPeter Grehan.Pp
5122fda01a1SMateusz PiotrowskiBoot ROM device backends:
5139b1aa8d6SNeel Natu.Bl -tag -width 10n
514866036f4SRebecca Cran.It Ar romfile Ns Op Cm \&, Ns Ar varfile
5159b1aa8d6SNeel NatuMap
5169b1aa8d6SNeel Natu.Ar romfile
5179b1aa8d6SNeel Natuin the guest address space reserved for boot firmware.
518866036f4SRebecca CranIf
519866036f4SRebecca Cran.Ar varfile
520866036f4SRebecca Cranis provided, that file is also mapped in the boot firmware guest
521866036f4SRebecca Cranaddress space, and any modifications the guest makes will be saved
522866036f4SRebecca Cranto that file.
5239b1aa8d6SNeel Natu.El
5249b1aa8d6SNeel Natu.Pp
525d85147f3SCorvin KöhneFwcfg types:
526d85147f3SCorvin Köhne.Bl -tag -width 10n
527d85147f3SCorvin Köhne.It Ar fwcfg
528d85147f3SCorvin KöhneThe fwcfg interface is used to pass information such as the CPU count or ACPI tables to the guest firmware.
529d85147f3SCorvin KöhneSupported values are
530d85147f3SCorvin Köhne.Ql bhyve
531d85147f3SCorvin Köhneand
532d85147f3SCorvin Köhne.Ql qemu .
533d85147f3SCorvin KöhneDue to backward compatibility reasons,
534d85147f3SCorvin Köhne.Ql bhyve
535d85147f3SCorvin Köhneis the default option.
536d85147f3SCorvin KöhneWhen
537d85147f3SCorvin Köhne.Ql bhyve
538d85147f3SCorvin Köhneis used, bhyve's fwctl interface is used.
539d85147f3SCorvin KöhneIt currently reports only the CPU count to the guest firmware.
540d85147f3SCorvin KöhneThe
541d85147f3SCorvin Köhne.Ql qemu
542d85147f3SCorvin Köhneoption uses QEMU's fwcfg interface.
543d85147f3SCorvin KöhneThis interface is widely used and allows user-defined information to be passed to the guest.
544d85147f3SCorvin KöhneIt is used for passing the CPU count, ACPI tables, a boot order and many other things to the guest.
545d85147f3SCorvin KöhneSome operating systems such as Fedora CoreOS can be configured by qemu's fwcfg interface as well.
546d85147f3SCorvin Köhne.El
547d85147f3SCorvin Köhne.Pp
5482fda01a1SMateusz PiotrowskiPass-through device backends:
549baf753ccSJohn Baldwin.Sm off
550baf753ccSJohn Baldwin.Bl -bullet
551baf753ccSJohn Baldwin.It
552baf753ccSJohn Baldwin.Cm ppt Ar N Oo , Ar passthru-device-options Oc
553baf753ccSJohn Baldwin.It
554baf753ccSJohn Baldwin.Ns Ar bus Cm \&/ Ar slot Cm \&/ Ar function
555baf753ccSJohn Baldwin.Op , Ar passthru-device-options
556baf753ccSJohn Baldwin.It
557baf753ccSJohn Baldwin.Cm pci Ar bus Cm : Ar slot Cm : Ns Ar function
558baf753ccSJohn Baldwin.Op , Ar passthru-device-options
559baf753ccSJohn Baldwin.El
560baf753ccSJohn Baldwin.Sm on
561baf753ccSJohn Baldwin.Pp
562baf753ccSJohn BaldwinConnect to a PCI device on the host either named ppt
563baf753ccSJohn Baldwin.Ns Ar N
564baf753ccSJohn Baldwinor at the selector described by
565b13e60daSPeter Grehan.Ar slot ,
566b13e60daSPeter Grehan.Ar bus ,
567b13e60daSPeter Grehanand
568b13e60daSPeter Grehan.Ar function
569b13e60daSPeter Grehannumbers.
570baf753ccSJohn Baldwin.Pp
571baf753ccSJohn BaldwinThe
572baf753ccSJohn Baldwin.Ar passthru-device-options
573baf753ccSJohn Baldwinare:
574baf753ccSJohn Baldwin.Bl -tag -width 10n
5755e19a518SMateusz Piotrowski.It Cm rom= Ns Ar romfile
576e47fe318SCorvin KöhneAdd
577e47fe318SCorvin Köhne.Ar romfile
578e47fe318SCorvin Köhneas option ROM to the PCI device.
579e47fe318SCorvin KöhneThe ROM will be loaded by firmware and should be capable of initializing the device.
580b13e60daSPeter Grehan.El
581b13e60daSPeter Grehan.Pp
5829b1aa8d6SNeel NatuGuest memory must be wired using the
5839b1aa8d6SNeel Natu.Fl S
5849b1aa8d6SNeel Natuoption when a pass-through device is configured.
5859b1aa8d6SNeel Natu.Pp
586b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the
587a9258f9bSWarren Block.Va pptdevs
588b13e60daSPeter Grehanloader variable as described in
589b13e60daSPeter Grehan.Xr vmm 4 .
5905121b6ccSRoman Bogorodskiy.Pp
5913f4c771fSMateusz PiotrowskiVirtio console device backends:
5923f4c771fSMateusz Piotrowski.Bl -bullet
5933f4c771fSMateusz Piotrowski.Sm off
5943f4c771fSMateusz Piotrowski.It
5953f4c771fSMateusz 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 ...
5963f4c771fSMateusz Piotrowski.Sm on
5973f4c771fSMateusz Piotrowski.El
5983f4c771fSMateusz Piotrowski.Pp
5995121b6ccSRoman BogorodskiyA maximum of 16 ports per device can be created.
6005121b6ccSRoman BogorodskiyEvery port is named and corresponds to a Unix domain socket created by
6015121b6ccSRoman Bogorodskiy.Nm .
6025121b6ccSRoman Bogorodskiy.Nm
6035121b6ccSRoman Bogorodskiyaccepts at most one connection per port at a time.
6045121b6ccSRoman Bogorodskiy.Pp
6055121b6ccSRoman BogorodskiyLimitations:
6068d9fefe6SMateusz Piotrowski.Bl -bullet
6075121b6ccSRoman Bogorodskiy.It
6085121b6ccSRoman BogorodskiyDue to lack of destructors in
6095121b6ccSRoman Bogorodskiy.Nm ,
6105121b6ccSRoman Bogorodskiysockets on the filesystem must be cleaned up manually after
6115121b6ccSRoman Bogorodskiy.Nm
6125121b6ccSRoman Bogorodskiyexits.
6135121b6ccSRoman Bogorodskiy.It
6143f4c771fSMateusz PiotrowskiThere is no way to use the
6153f4c771fSMateusz Piotrowski.Dq console port
6163f4c771fSMateusz Piotrowskifeature, nor the console port
6170ee3a4b4SRoman Bogorodskiyresize at present.
6185121b6ccSRoman Bogorodskiy.It
6190ee3a4b4SRoman BogorodskiyEmergency write is advertised, but no-op at present.
6205121b6ccSRoman Bogorodskiy.El
6216c87a2c0SGleb Smirnoff.Pp
622054accacSCorvin KöhneVirtio input device backends:
623054accacSCorvin Köhne.Bl -tag -width 10n
624054accacSCorvin Köhne.It Ar /dev/input/eventX
625054accacSCorvin KöhneSend input events of
626054accacSCorvin Köhne.Ar /dev/input/eventX
627054accacSCorvin Köhneto guest by VirtIO Input Interface.
628054accacSCorvin Köhne.El
629054accacSCorvin Köhne.Pp
6308b97e975SMateusz PiotrowskiFramebuffer devices backends:
6318b97e975SMateusz Piotrowski.Bl -bullet
6328b97e975SMateusz Piotrowski.Sm off
6338b97e975SMateusz Piotrowski.It
6348b97e975SMateusz Piotrowski.Op Cm rfb= Ar ip-and-port
6358b97e975SMateusz Piotrowski.Op Cm ,w= Ar width
6368b97e975SMateusz Piotrowski.Op Cm ,h= Ar height
6378b97e975SMateusz Piotrowski.Op Cm ,vga= Ar vgaconf
6388b97e975SMateusz Piotrowski.Op Cm ,wait
6398b97e975SMateusz Piotrowski.Op Cm ,password= Ar password
6408b97e975SMateusz Piotrowski.Sm on
6418b97e975SMateusz Piotrowski.El
6428b97e975SMateusz Piotrowski.Pp
6438b97e975SMateusz PiotrowskiConfiguration options are defined as follows:
6445c3ec676SGleb Smirnoff.Bl -tag -width 10n
6458b97e975SMateusz Piotrowski.It Cm rfb= Ns Ar ip-and-port Pq or Cm tcp= Ns Ar ip-and-port
6468b97e975SMateusz PiotrowskiAn IP address and a port VNC should listen on.
6478b97e975SMateusz PiotrowskiThere are two formats:
6488b97e975SMateusz Piotrowski.Pp
6498b97e975SMateusz Piotrowski.Bl -bullet -compact
6508d9fefe6SMateusz Piotrowski.It
6518b97e975SMateusz Piotrowski.Sm off
6528b97e975SMateusz Piotrowski.Op Ar IPv4 Cm \&:
6535c3ec676SGleb Smirnoff.Ar port
6548b97e975SMateusz Piotrowski.Sm on
6558d9fefe6SMateusz Piotrowski.It
6568b97e975SMateusz Piotrowski.Sm off
6578b97e975SMateusz Piotrowski.Cm \&[ Ar IPv6%zone Cm \&] Cm \&: Ar port
6588b97e975SMateusz Piotrowski.Sm on
6598b97e975SMateusz Piotrowski.El
6608b97e975SMateusz Piotrowski.Pp
6616c87a2c0SGleb SmirnoffThe default is to listen on localhost IPv4 address and default VNC port 5900.
6628883128bSBjoern A. ZeebAn IPv6 address must be enclosed in square brackets and may contain an
6637d9545fcSRodney W. Grimesoptional zone identifier.
6648b97e975SMateusz Piotrowski.It Cm w= Ns Ar width No and Cm h= Ns Ar height
6655c3ec676SGleb SmirnoffA display resolution, width and height, respectively.
6665c3ec676SGleb SmirnoffIf not specified, a default resolution of 1024x768 pixels will be used.
6675c3ec676SGleb SmirnoffMinimal supported resolution is 640x480 pixels,
6685c3ec676SGleb Smirnoffand maximum is 1920x1200 pixels.
6698b97e975SMateusz Piotrowski.It Cm vga= Ns Ar vgaconf
6705c3ec676SGleb SmirnoffPossible values for this option are
6718b97e975SMateusz Piotrowski.Cm io
6725c3ec676SGleb Smirnoff(default),
6738b97e975SMateusz Piotrowski.Cm on
6745c3ec676SGleb Smirnoff, and
6758b97e975SMateusz Piotrowski.Cm off .
6765c3ec676SGleb SmirnoffPCI graphics cards have a dual personality in that they are
6775c3ec676SGleb Smirnoffstandard PCI devices with BAR addressing, but may also
6785c3ec676SGleb Smirnoffimplicitly decode legacy VGA I/O space
6795c3ec676SGleb Smirnoff.Pq Ad 0x3c0-3df
6805c3ec676SGleb Smirnoffand memory space
6815c3ec676SGleb Smirnoff.Pq 64KB at Ad 0xA0000 .
6825c3ec676SGleb SmirnoffThe default
6838b97e975SMateusz Piotrowski.Cm io
6848d56c805SYuri Pankovoption should be used for guests that attempt to issue BIOS calls which result
6858d56c805SYuri Pankovin I/O port queries, and fail to boot if I/O decode is disabled.
6865c3ec676SGleb Smirnoff.Pp
6875c3ec676SGleb SmirnoffThe
6888b97e975SMateusz Piotrowski.Cm on
6895c3ec676SGleb Smirnoffoption should be used along with the CSM BIOS capability in UEFI
6905c3ec676SGleb Smirnoffto boot traditional BIOS guests that require the legacy VGA I/O and
6915c3ec676SGleb Smirnoffmemory regions to be available.
6925c3ec676SGleb Smirnoff.Pp
6935c3ec676SGleb SmirnoffThe
6948b97e975SMateusz Piotrowski.Cm off
6955c3ec676SGleb Smirnoffoption should be used for the UEFI guests that assume that
6965c3ec676SGleb SmirnoffVGA adapter is present if they detect the I/O ports.
6975c3ec676SGleb SmirnoffAn example of such a guest is
6985c3ec676SGleb Smirnoff.Ox
6995c3ec676SGleb Smirnoffin UEFI mode.
7005c3ec676SGleb Smirnoff.Pp
7015c3ec676SGleb SmirnoffPlease refer to the
7025c3ec676SGleb Smirnoff.Nm
7035c3ec676SGleb Smirnoff.Fx
7045c3ec676SGleb Smirnoffwiki page
7055c3ec676SGleb Smirnoff.Pq Lk https://wiki.freebsd.org/bhyve
7065c3ec676SGleb Smirnofffor configuration notes of particular guests.
7078b97e975SMateusz Piotrowski.It Cm wait
7085c3ec676SGleb SmirnoffInstruct
7095c3ec676SGleb Smirnoff.Nm
7108d56c805SYuri Pankovto only boot upon the initiation of a VNC connection, simplifying the
7118d56c805SYuri Pankovinstallation of operating systems that require immediate keyboard input.
7125c3ec676SGleb SmirnoffThis can be removed for post-installation use.
7138b97e975SMateusz Piotrowski.It Cm password= Ns Ar password
714f4d34383SMarcelo AraujoThis type of authentication is known to be cryptographically weak and is not
715f4d34383SMarcelo Araujointended for use on untrusted networks.
716f4d34383SMarcelo AraujoMany implementations will want to use stronger security, such as running
717f4d34383SMarcelo Araujothe session over an encrypted channel provided by IPsec or SSH.
7185c3ec676SGleb Smirnoff.El
7196c87a2c0SGleb Smirnoff.Pp
7206eff58acSMateusz PiotrowskixHCI USB device backends:
7215c3ec676SGleb Smirnoff.Bl -tag -width 10n
7226eff58acSMateusz Piotrowski.It Cm tablet
7235c3ec676SGleb SmirnoffA USB tablet device which provides precise cursor synchronization
7245c3ec676SGleb Smirnoffwhen using VNC.
7256c87a2c0SGleb Smirnoff.El
726c066c68cSMarcelo Araujo.Pp
7276eff58acSMateusz PiotrowskiNVMe device backends:
7286eff58acSMateusz Piotrowski.Bl -bullet
7296eff58acSMateusz Piotrowski.Sm off
7306eff58acSMateusz Piotrowski.It
7316eff58acSMateusz Piotrowski.Ar devpath
7326eff58acSMateusz Piotrowski.Op Cm ,maxq= Ar #
7336eff58acSMateusz Piotrowski.Op Cm ,qsz= Ar #
7346eff58acSMateusz Piotrowski.Op Cm ,ioslots= Ar #
7356eff58acSMateusz Piotrowski.Op Cm ,sectsz= Ar #
7366eff58acSMateusz Piotrowski.Op Cm ,ser= Ar #
7376eff58acSMateusz Piotrowski.Op Cm ,eui64= Ar #
7386eff58acSMateusz Piotrowski.Op Cm ,dsm= Ar opt
7396eff58acSMateusz Piotrowski.Sm on
7406eff58acSMateusz Piotrowski.El
7416eff58acSMateusz Piotrowski.Pp
7426eff58acSMateusz PiotrowskiConfiguration options are defined as follows:
743c066c68cSMarcelo Araujo.Bl -tag -width 10n
7446eff58acSMateusz Piotrowski.It Ar devpath
745c066c68cSMarcelo AraujoAccepted device paths are:
746c066c68cSMarcelo Araujo.Ar /dev/blockdev
747c066c68cSMarcelo Araujoor
748c066c68cSMarcelo Araujo.Ar /path/to/image
749c066c68cSMarcelo Araujoor
7506eff58acSMateusz Piotrowski.Cm ram= Ns Ar size_in_MiB .
7516eff58acSMateusz Piotrowski.It Cm maxq
752c066c68cSMarcelo AraujoMax number of queues.
7536eff58acSMateusz Piotrowski.It Cm qsz
754c066c68cSMarcelo AraujoMax elements in each queue.
7556eff58acSMateusz Piotrowski.It Cm ioslots
756c066c68cSMarcelo AraujoMax number of concurrent I/O requests.
7576eff58acSMateusz Piotrowski.It Cm sectsz
758c066c68cSMarcelo AraujoSector size (defaults to blockif sector size).
7596eff58acSMateusz Piotrowski.It Cm ser
760c066c68cSMarcelo AraujoSerial number with maximum 20 characters.
7616eff58acSMateusz Piotrowski.It Cm eui64
7626eff58acSMateusz PiotrowskiIEEE Extended Unique Identifier (8 byte value).
7636eff58acSMateusz Piotrowski.It Cm dsm
7646eff58acSMateusz PiotrowskiDataSet Management support.
7656eff58acSMateusz PiotrowskiSupported values are:
7666eff58acSMateusz Piotrowski.Cm auto , enable ,
7676eff58acSMateusz Piotrowskiand
7686eff58acSMateusz Piotrowski.Cm disable .
769c066c68cSMarcelo Araujo.El
77036f9f044SWarner Losh.Pp
771d5fcc4b6SMateusz PiotrowskiAHCI device backends:
772d5fcc4b6SMateusz Piotrowski.Bl -bullet
773d5fcc4b6SMateusz Piotrowski.It
774d5fcc4b6SMateusz Piotrowski.Sm off
775d5fcc4b6SMateusz Piotrowski.Op Oo Cm hd\&: | cd\&: Oc Ar path
776d5fcc4b6SMateusz Piotrowski.Op Cm ,nmrr= Ar nmrr
777d5fcc4b6SMateusz Piotrowski.Op Cm ,ser= Ar #
778d5fcc4b6SMateusz Piotrowski.Op Cm ,rev= Ar #
779d5fcc4b6SMateusz Piotrowski.Op Cm ,model= Ar #
780d5fcc4b6SMateusz Piotrowski.Sm on
781d5fcc4b6SMateusz Piotrowski.El
782d5fcc4b6SMateusz Piotrowski.Pp
783d5fcc4b6SMateusz PiotrowskiConfiguration options are defined as follows:
7849af3bcd7SPeter Grehan.Bl -tag -width 10n
785d5fcc4b6SMateusz Piotrowski.It Cm nmrr
786d5fcc4b6SMateusz PiotrowskiNominal Media Rotation Rate, known as RPM.
787d5fcc4b6SMateusz PiotrowskiValue 1 will indicate device as Solid State Disk.
788d5fcc4b6SMateusz PiotrowskiDefault value is 0, not report.
789d5fcc4b6SMateusz Piotrowski.It Cm ser
7909af3bcd7SPeter GrehanSerial Number with maximum 20 characters.
791d5fcc4b6SMateusz Piotrowski.It Cm rev
7929af3bcd7SPeter GrehanRevision Number with maximum 8 characters.
793d5fcc4b6SMateusz Piotrowski.It Cm model
7949af3bcd7SPeter GrehanModel Number with maximum 40 characters.
7959af3bcd7SPeter Grehan.El
7969af3bcd7SPeter Grehan.Pp
797061f37d2SMateusz PiotrowskiHD Audio device backends:
798061f37d2SMateusz Piotrowski.Bl -bullet
799061f37d2SMateusz Piotrowski.It
800061f37d2SMateusz Piotrowski.Sm off
801061f37d2SMateusz Piotrowski.Op Cm play= Ar playback
802061f37d2SMateusz Piotrowski.Op Cm ,rec= Ar recording
803061f37d2SMateusz Piotrowski.Sm on
804061f37d2SMateusz Piotrowski.El
805061f37d2SMateusz Piotrowski.Pp
806061f37d2SMateusz PiotrowskiConfiguration options are defined as follows:
80736f9f044SWarner Losh.Bl -tag -width 10n
808061f37d2SMateusz Piotrowski.It Cm play
80936f9f044SWarner LoshPlayback device, typically
81036f9f044SWarner Losh.Ar /dev/dsp0 .
811061f37d2SMateusz Piotrowski.It Cm rec
81236f9f044SWarner LoshRecording device, typically
81336f9f044SWarner Losh.Ar /dev/dsp0 .
81436f9f044SWarner Losh.El
8155749449dSJohn Baldwin.It Fl U Ar uuid
8165749449dSJohn BaldwinSet the universally unique identifier
8175749449dSJohn Baldwin.Pq UUID
8185749449dSJohn Baldwinin the guest's System Management BIOS System Information structure.
8195749449dSJohn BaldwinBy default a UUID is generated from the host's hostname and
8205749449dSJohn Baldwin.Ar vmname .
821ccb1c87aSMateusz Piotrowski.It Fl u
822ccb1c87aSMateusz PiotrowskiRTC keeps UTC time.
823cde1f5b8SJohn Baldwin.It Fl W
824cde1f5b8SJohn BaldwinForce virtio PCI device emulations to use MSI interrupts instead of MSI-X
825cde1f5b8SJohn Baldwininterrupts.
826ccb1c87aSMateusz Piotrowski.It Fl w
827ccb1c87aSMateusz PiotrowskiIgnore accesses to unimplemented Model Specific Registers (MSRs).
828ccb1c87aSMateusz PiotrowskiThis is intended for debug purposes.
8299777ca20SNeel Natu.It Fl x
8309777ca20SNeel NatuThe guest's local APIC is configured in x2APIC mode.
831b100acf2SNeel Natu.It Fl Y
832b100acf2SNeel NatuDisable MPtable generation.
833b13e60daSPeter Grehan.It Ar vmname
834b13e60daSPeter GrehanAlphanumeric name of the guest.
835b13e60daSPeter GrehanThis should be the same as that created by
836b13e60daSPeter Grehan.Xr bhyveload 8 .
837b13e60daSPeter Grehan.El
838621b5090SJohn Baldwin.Sh CONFIGURATION VARIABLES
839621b5090SJohn Baldwin.Nm
840621b5090SJohn Baldwinuses an internal tree of configuration variables to describe global and
841621b5090SJohn Baldwinper-device settings.
842621b5090SJohn BaldwinWhen
843621b5090SJohn Baldwin.Nm
844621b5090SJohn Baldwinstarts,
845621b5090SJohn Baldwinit parses command line options (including config files) in the order given
846621b5090SJohn Baldwinon the command line.
847621b5090SJohn BaldwinEach command line option sets one or more configuration variables.
848621b5090SJohn BaldwinFor example,
849621b5090SJohn Baldwinthe
850621b5090SJohn Baldwin.Fl s
851621b5090SJohn Baldwinoption creates a new tree node for a PCI device and sets one or more variables
852621b5090SJohn Baldwinunder that node including the device model and device model-specific variables.
853621b5090SJohn BaldwinVariables may be set multiple times during this parsing stage with the final
854621b5090SJohn Baldwinvalue overriding previous values.
855621b5090SJohn Baldwin.Pp
856621b5090SJohn BaldwinOnce all of the command line options have been processed,
857621b5090SJohn Baldwinthe configuration values are frozen.
858621b5090SJohn Baldwin.Nm
859621b5090SJohn Baldwinthen uses the value of configuration values to initialize device models
860621b5090SJohn Baldwinand global settings.
861621b5090SJohn Baldwin.Pp
862621b5090SJohn BaldwinMore details on configuration variables can be found in
863621b5090SJohn Baldwin.Xr bhyve_config 5 .
864cd377eb3SJohn Baldwin.Sh DEBUG SERVER
865cd377eb3SJohn BaldwinThe current debug server provides limited support for debuggers.
866cd377eb3SJohn Baldwin.Ss Registers
867cd377eb3SJohn BaldwinEach virtual CPU is exposed to the debugger as a thread.
868cd377eb3SJohn Baldwin.Pp
869cd377eb3SJohn BaldwinGeneral purpose registers can be queried for each virtual CPU, but other
870cd377eb3SJohn Baldwinregisters such as floating-point and system registers cannot be queried.
871cd377eb3SJohn Baldwin.Ss Memory
872976ba8c6SJohn BaldwinMemory (including memory mapped I/O regions) can be read and written by the debugger.
8738d56c805SYuri PankovMemory operations use virtual addresses that are resolved to physical addresses
8748d56c805SYuri Pankovvia the current virtual CPU's active address translation.
875cd377eb3SJohn Baldwin.Ss Control
876cd377eb3SJohn BaldwinThe running guest can be interrupted by the debugger at any time
877cd377eb3SJohn Baldwin.Pq for example, by pressing Ctrl-C in the debugger .
878cd377eb3SJohn Baldwin.Pp
879cd377eb3SJohn BaldwinSingle stepping is only supported on Intel CPUs supporting the MTRAP VM exit.
880cd377eb3SJohn Baldwin.Pp
881cbd03a9dSJohn BaldwinBreakpoints are supported on Intel CPUs that support single stepping.
882cbd03a9dSJohn BaldwinNote that continuing from a breakpoint while interrupts are enabled in the
883cbd03a9dSJohn Baldwinguest may not work as expected due to timer interrupts firing while single
884cbd03a9dSJohn Baldwinstepping over the breakpoint.
885c2202d41SRoman Bogorodskiy.Sh SIGNAL HANDLING
886c2202d41SRoman Bogorodskiy.Nm
887c2202d41SRoman Bogorodskiydeals with the following signals:
888c2202d41SRoman Bogorodskiy.Pp
8893357e948SMateusz Piotrowski.Bl -tag -width SIGTERM -compact
890c2202d41SRoman Bogorodskiy.It SIGTERM
891c2202d41SRoman BogorodskiyTrigger ACPI poweroff for a VM
892c2202d41SRoman Bogorodskiy.El
893c2202d41SRoman Bogorodskiy.Sh EXIT STATUS
894c2202d41SRoman BogorodskiyExit status indicates how the VM was terminated:
895c2202d41SRoman Bogorodskiy.Pp
896c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact
897c2202d41SRoman Bogorodskiy.It 0
898c2202d41SRoman Bogorodskiyrebooted
899c2202d41SRoman Bogorodskiy.It 1
900c2202d41SRoman Bogorodskiypowered off
901c2202d41SRoman Bogorodskiy.It 2
902c2202d41SRoman Bogorodskiyhalted
903c2202d41SRoman Bogorodskiy.It 3
904c2202d41SRoman Bogorodskiytriple fault
905989e062bSMarcelo Araujo.It 4
906989e062bSMarcelo Araujoexited due to an error
907c2202d41SRoman Bogorodskiy.El
908b13e60daSPeter Grehan.Sh EXAMPLES
9095c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must have been loaded with
91084fe889cSChristian Brueffer.Xr bhyveload 8
911b13e60daSPeter Grehanor a similar boot loader before
912b13e60daSPeter Grehan.Xr bhyve 4
913b13e60daSPeter Grehancan be run.
9145c3ec676SGleb SmirnoffOtherwise, the boot loader is not needed.
915b13e60daSPeter Grehan.Pp
916b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio
917b13e60daSPeter Grehanblock device backed by the
918b13e60daSPeter Grehan.Pa /my/image
919b13e60daSPeter Grehanfilesystem image, and a serial port for the console:
920b13e60daSPeter Grehan.Bd -literal -offset indent
921b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\
922b13e60daSPeter Grehan  -l com1,stdio -A -H -P -m 1G vm1
923b13e60daSPeter Grehan.Ed
924b13e60daSPeter Grehan.Pp
925b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which
926b13e60daSPeter Grehanhas a MAC address specified:
927b13e60daSPeter Grehan.Bd -literal -offset indent
928b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\
929b13e60daSPeter Grehan  -s 2:1,virtio-net,tap1 \\
930b13e60daSPeter Grehan  -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\
931b13e60daSPeter Grehan  -s 3,virtio-blk,/my/image -l com1,stdio \\
932b13e60daSPeter Grehan  -A -H -P -m 24G bigvm
933b13e60daSPeter Grehan.Ed
934b13e60daSPeter Grehan.Pp
935b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI
936b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console
937b13e60daSPeter Grehanport connected to an
938b13e60daSPeter Grehan.Xr nmdm 4
93984fe889cSChristian Brueffernull-modem device.
940b13e60daSPeter Grehan.Bd -literal -offset indent
941a7ab1463SAlexander Motinbhyve -c 4 \\
942b13e60daSPeter Grehan  -s 0,amd_hostbridge -s 1,lpc \\
943098f5155SAlexander Motin  -s 1:0,ahci,hd:/images/disk.1,hd:/images/disk.2,\\
944098f5155SAlexander Motinhd:/images/disk.3,hd:/images/disk.4,\\
945098f5155SAlexander Motinhd:/images/disk.5,hd:/images/disk.6,\\
946098f5155SAlexander Motinhd:/images/disk.7,hd:/images/disk.8,\\
947098f5155SAlexander Motincd:/images/install.iso \\
948b13e60daSPeter Grehan  -s 3,virtio-net,tap0 \\
949b13e60daSPeter Grehan  -l com1,/dev/nmdm0A \\
950b13e60daSPeter Grehan  -A -H -P -m 8G
951b13e60daSPeter Grehan.Ed
9525c3ec676SGleb Smirnoff.Pp
9535c3ec676SGleb SmirnoffRun a UEFI virtual machine with a display resolution of 800 by 600 pixels
9545c3ec676SGleb Smirnoffthat can be accessed via VNC at: 0.0.0.0:5900.
9555c3ec676SGleb Smirnoff.Bd -literal -offset indent
9565c3ec676SGleb Smirnoffbhyve -c 2 -m 4G -w -H \\
9575c3ec676SGleb Smirnoff  -s 0,hostbridge \\
9585c3ec676SGleb Smirnoff  -s 3,ahci-cd,/path/to/uefi-OS-install.iso \\
9595c3ec676SGleb Smirnoff  -s 4,ahci-hd,disk.img \\
9605c3ec676SGleb Smirnoff  -s 5,virtio-net,tap0 \\
9615c3ec676SGleb Smirnoff  -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \\
9625c3ec676SGleb Smirnoff  -s 30,xhci,tablet \\
9635c3ec676SGleb Smirnoff  -s 31,lpc -l com1,stdio \\
9645c3ec676SGleb Smirnoff  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
9655c3ec676SGleb Smirnoff   uefivm
9665c3ec676SGleb Smirnoff.Ed
9678883128bSBjoern A. Zeeb.Pp
9688883128bSBjoern A. ZeebRun a UEFI virtual machine with a VNC display that is bound to all IPv6
9698883128bSBjoern A. Zeebaddresses on port 5900.
9708883128bSBjoern A. Zeeb.Bd -literal -offset indent
9718883128bSBjoern A. Zeebbhyve -c 2 -m 4G -w -H \\
9728883128bSBjoern A. Zeeb  -s 0,hostbridge \\
9738883128bSBjoern A. Zeeb  -s 4,ahci-hd,disk.img \\
9748883128bSBjoern A. Zeeb  -s 5,virtio-net,tap0 \\
9758883128bSBjoern A. Zeeb  -s 29,fbuf,tcp=[::]:5900,w=800,h=600 \\
9768883128bSBjoern A. Zeeb  -s 30,xhci,tablet \\
9778883128bSBjoern A. Zeeb  -s 31,lpc -l com1,stdio \\
9788883128bSBjoern A. Zeeb  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
9798883128bSBjoern A. Zeeb   uefivm
9808883128bSBjoern A. Zeeb.Ed
981866036f4SRebecca Cran.Pp
982866036f4SRebecca CranRun a UEFI virtual machine with a VARS file to save EFI variables.
983866036f4SRebecca CranNote that
984866036f4SRebecca Cran.Nm
985866036f4SRebecca Cranwill write guest modifications to the given VARS file.
986866036f4SRebecca CranBe sure to create a per-guest copy of the template VARS file from
987866036f4SRebecca Cran.Pa /usr .
988866036f4SRebecca Cran.Bd -literal -offset indent
989866036f4SRebecca Cranbhyve -c 2 -m 4g -w -H \\
990866036f4SRebecca Cran  -s 0,hostbridge \\
991*66659955SAlexey Marchenko  -s 31,lpc -l com1,stdio \\
992866036f4SRebecca Cran  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI_CODE.fd,BHYVE_UEFI_VARS.fd
993866036f4SRebecca Cran   uefivm
994866036f4SRebecca Cran.Ed
995b13e60daSPeter Grehan.Sh SEE ALSO
996b13e60daSPeter Grehan.Xr bhyve 4 ,
997e90337e4SAleksandr Fedorov.Xr netgraph 4 ,
998e90337e4SAleksandr Fedorov.Xr ng_socket 4 ,
999b13e60daSPeter Grehan.Xr nmdm 4 ,
1000b13e60daSPeter Grehan.Xr vmm 4 ,
1001621b5090SJohn Baldwin.Xr bhyve_config 5 ,
1002b13e60daSPeter Grehan.Xr ethers 5 ,
100305f7cd8bSJoel Dahl.Xr bhyvectl 8 ,
100405f7cd8bSJoel Dahl.Xr bhyveload 8
10058d56c805SYuri Pankov.Pp
10068d56c805SYuri Pankov.Rs
10078d56c805SYuri Pankov.%A Intel
10088d56c805SYuri Pankov.%B 64 and IA-32 Architectures Software Developer’s Manual
10098d56c805SYuri Pankov.%V Volume 3
10108d56c805SYuri Pankov.Re
1011b13e60daSPeter Grehan.Sh HISTORY
1012b13e60daSPeter Grehan.Nm
1013b13e60daSPeter Grehanfirst appeared in
1014b13e60daSPeter Grehan.Fx 10.0 .
1015b13e60daSPeter Grehan.Sh AUTHORS
101601c2b8acSBaptiste Daroussin.An Neel Natu Aq Mt neel@freebsd.org
101701c2b8acSBaptiste Daroussin.An Peter Grehan Aq Mt grehan@freebsd.org
1018