xref: /freebsd/usr.sbin/bhyve/bhyve.8 (revision c5359e2af5ab582f9a0b862ce90ad3962f9f1d03)
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.\"
25*c5359e2aSMark Johnston.Dd November 20, 2023
26b13e60daSPeter Grehan.Dt BHYVE 8
27b13e60daSPeter Grehan.Os
28b13e60daSPeter Grehan.Sh NAME
29b13e60daSPeter Grehan.Nm bhyve
30b13e60daSPeter Grehan.Nd "run a guest operating system inside a virtual machine"
31b13e60daSPeter Grehan.Sh SYNOPSIS
32b13e60daSPeter Grehan.Nm
33c4df8cbfSRobert Wing.Op Fl AaCDeHhPSuWwxY
3401d822d3SRodney W. Grimes.Oo
3577d208a3SMateusz Piotrowski.Sm off
3677d208a3SMateusz Piotrowski.Fl c\~
3701d822d3SRodney W. Grimes.Oo
3877d208a3SMateusz Piotrowski.Op Cm cpus=
3977d208a3SMateusz Piotrowski.Ar numcpus
4001d822d3SRodney W. Grimes.Oc
4177d208a3SMateusz Piotrowski.Op Cm ,sockets= Ar n
4277d208a3SMateusz Piotrowski.Op Cm ,cores= Ar n
4377d208a3SMateusz Piotrowski.Op Cm ,threads= Ar n
4477d208a3SMateusz Piotrowski.Oc
4577d208a3SMateusz Piotrowski.Sm on
46ca14781cSCorvin Köhne.Oo Fl f
47ca14781cSCorvin Köhne.Sm off
48ca14781cSCorvin Köhne.Ar name Cm \&,
49ca14781cSCorvin Köhne.Oo
50ca14781cSCorvin Köhne.Cm string No | Cm file
51ca14781cSCorvin Köhne.Oc
52ca14781cSCorvin Köhne.Cm \&= Ar data
53ca14781cSCorvin Köhne.Sm on
54ca14781cSCorvin Köhne.Oc
55775f6f45SMateusz Piotrowski.Oo
56b70b050aSJohn Baldwin.Sm off
57775f6f45SMateusz Piotrowski.Fl G\~
58b70b050aSJohn Baldwin.Oo Ar w Oc
59775f6f45SMateusz Piotrowski.Oo Ar bind_address Cm \&: Oc
60b70b050aSJohn Baldwin.Ar port
61b70b050aSJohn Baldwin.Sm on
62b70b050aSJohn Baldwin.Oc
63f656df58SMateusz Piotrowski.Op Fl k Ar config_file
6419eaa01bSMichael Reifenberger.Op Fl K Ar layout
6577d208a3SMateusz Piotrowski.Oo Fl l
6677d208a3SMateusz Piotrowski.Sm off
67bfe40b69SMateusz Piotrowski.Ar lpcdev Op Cm \&, Ar conf
6877d208a3SMateusz Piotrowski.Sm on
6977d208a3SMateusz Piotrowski.Oc
7077d208a3SMateusz Piotrowski.Sm off
71775f6f45SMateusz Piotrowski.Oo Fl m\~
7277d208a3SMateusz Piotrowski.Ar memsize
7377d208a3SMateusz Piotrowski.Oo
748d9fefe6SMateusz Piotrowski.Cm K | Cm k | Cm M | Cm m | Cm G | Cm g | Cm T | Cm t
7577d208a3SMateusz Piotrowski.Oc
7677d208a3SMateusz Piotrowski.Sm on
7777d208a3SMateusz Piotrowski.Oc
78621b5090SJohn Baldwin.Op Fl o Ar var Ns Cm = Ns Ar value
7977d208a3SMateusz Piotrowski.Op Fl p Ar vcpu Ns Cm \&: Ns Ar hostcpu
80483d953aSJohn Baldwin.Op Fl r Ar file
8177d208a3SMateusz Piotrowski.Sm off
82bfe40b69SMateusz Piotrowski.Oo Fl s\~
83bfe40b69SMateusz Piotrowski.Ar slot Cm \&, Ar emulation Op Cm \&, Ar conf
8477d208a3SMateusz Piotrowski.Sm on
8577d208a3SMateusz Piotrowski.Oc
865749449dSJohn Baldwin.Op Fl U Ar uuid
87b13e60daSPeter Grehan.Ar vmname
88bfe40b69SMateusz Piotrowski.Nm
89bfe40b69SMateusz Piotrowski.Fl l Cm help
90bfe40b69SMateusz Piotrowski.Nm
91bfe40b69SMateusz Piotrowski.Fl s Cm help
92b13e60daSPeter Grehan.Sh DESCRIPTION
93b13e60daSPeter Grehan.Nm
947fca1ad5SGlen Barberis a hypervisor that runs guest operating systems inside a
95b13e60daSPeter Grehanvirtual machine.
96b13e60daSPeter Grehan.Pp
97b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and
98b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters.
99b13e60daSPeter Grehan.Pp
1005c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must be loaded with
10184fe889cSChristian Brueffer.Xr bhyveload 8
102b13e60daSPeter Grehanor a similar boot loader before running
1035c3ec676SGleb Smirnoff.Nm ,
1045c3ec676SGleb Smirnoffotherwise, it is enough to run
1055c3ec676SGleb Smirnoff.Nm
1065c3ec676SGleb Smirnoffwith a boot ROM of choice.
107b13e60daSPeter Grehan.Pp
108b13e60daSPeter Grehan.Nm
109b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor
110b13e60daSPeter Grehanexit is detected.
111b13e60daSPeter Grehan.Sh OPTIONS
112b13e60daSPeter Grehan.Bl -tag -width 10n
113b13e60daSPeter Grehan.It Fl A
114b13e60daSPeter GrehanGenerate ACPI tables.
1156a0e7f90SCorvin Köhnebhyve always generates ACPI tables so this option is obsolete.
116ccb1c87aSMateusz Piotrowski.It Fl a
117ccb1c87aSMateusz PiotrowskiThe guest's local APIC is configured in xAPIC mode.
118ccb1c87aSMateusz PiotrowskiThe xAPIC mode is the default setting so this option is redundant.
119ccb1c87aSMateusz PiotrowskiIt will be deprecated in a future version.
120ccb1c87aSMateusz Piotrowski.It Fl C
121ccb1c87aSMateusz PiotrowskiInclude guest memory in core file.
12201d822d3SRodney W. Grimes.It Fl c Op Ar setting ...
12301d822d3SRodney W. GrimesNumber of guest virtual CPUs
12401d822d3SRodney W. Grimesand/or the CPU topology.
12501d822d3SRodney W. GrimesThe default value for each of
12601d822d3SRodney W. Grimes.Ar numcpus ,
12701d822d3SRodney W. Grimes.Ar sockets ,
12801d822d3SRodney W. Grimes.Ar cores ,
12901d822d3SRodney W. Grimesand
13001d822d3SRodney W. Grimes.Ar threads
13101d822d3SRodney W. Grimesis 1.
13201d822d3SRodney W. GrimesIf
13301d822d3SRodney W. Grimes.Ar numcpus
13401d822d3SRodney W. Grimesis not specified then it will be calculated from the other arguments.
13501d822d3SRodney W. GrimesThe topology must be consistent in that the
13601d822d3SRodney W. Grimes.Ar numcpus
13701d822d3SRodney W. Grimesmust equal the product of
13801d822d3SRodney W. Grimes.Ar sockets ,
13901d822d3SRodney W. Grimes.Ar cores ,
14001d822d3SRodney W. Grimesand
14101d822d3SRodney W. Grimes.Ar threads .
14201d822d3SRodney W. GrimesIf a
14301d822d3SRodney W. Grimes.Ar setting
14401d822d3SRodney W. Grimesis specified more than once the last one has precedence.
145da202b0fSYuri Pankov.Pp
146da202b0fSYuri PankovThe maximum number of virtual CPUs defaults to the number of active
147da202b0fSYuri Pankovphysical CPUs in the system available via the
148da202b0fSYuri Pankov.Va hw.vmm.maxcpu
149da202b0fSYuri Pankov.Xr sysctl 8
150da202b0fSYuri Pankovvariable.
151da202b0fSYuri PankovThe limit can be adjusted via the
152da202b0fSYuri Pankov.Va hw.vmm.maxcpu
153da202b0fSYuri Pankovloader tunable.
1540a1016f9SPawel Biernacki.It Fl D
1550a1016f9SPawel BiernackiDestroy the VM on guest initiated power-off.
156cde1f5b8SJohn Baldwin.It Fl e
157cde1f5b8SJohn BaldwinForce
158cde1f5b8SJohn Baldwin.Nm
159cde1f5b8SJohn Baldwinto exit when a guest issues an access to an I/O port that is not emulated.
160cde1f5b8SJohn BaldwinThis is intended for debug purposes.
161ca14781cSCorvin 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
162ca14781cSCorvin KöhneAdd a fw_cfg file
163ca14781cSCorvin Köhne.Ar name
164ca14781cSCorvin Köhneto the fw_cfg interface.
165ca14781cSCorvin KöhneIf a
166ca14781cSCorvin Köhne.Cm string
167ca14781cSCorvin Köhneis specified, the fw_cfg file contains the string as data.
168ca14781cSCorvin KöhneIf a
169ca14781cSCorvin Köhne.Cm file
170ca14781cSCorvin Köhneis specified, bhyve reads the file and adds the file content as fw_cfg data.
1712cdff991SMariusz Zaborski.It Fl G Xo
1722cdff991SMariusz Zaborski.Sm off
1732cdff991SMariusz Zaborski.Oo Ar w Oc
174775f6f45SMateusz Piotrowski.Oo Ar bind_address Cm \&: Oc
1752cdff991SMariusz Zaborski.Ar port
1762cdff991SMariusz Zaborski.Sm on
1772cdff991SMariusz Zaborski.Xc
178cd377eb3SJohn BaldwinStart a debug server that uses the GDB protocol to export guest state to a
179cd377eb3SJohn Baldwindebugger.
180cd377eb3SJohn BaldwinAn IPv4 TCP socket will be bound to the supplied
1812cdff991SMariusz Zaborski.Ar bind_address
1822cdff991SMariusz Zaborskiand
183cd377eb3SJohn Baldwin.Ar port
184cd377eb3SJohn Baldwinto listen for debugger connections.
185cd377eb3SJohn BaldwinOnly a single debugger may be attached to the debug server at a time.
1862cdff991SMariusz ZaborskiIf the option begins with
187cd377eb3SJohn Baldwin.Sq w ,
188cd377eb3SJohn Baldwin.Nm
189cd377eb3SJohn Baldwinwill pause execution at the first instruction waiting for a debugger to attach.
190cde1f5b8SJohn Baldwin.It Fl H
191cde1f5b8SJohn BaldwinYield the virtual CPU thread when a HLT instruction is detected.
192cde1f5b8SJohn BaldwinIf this option is not specified, virtual CPUs will use 100% of a host CPU.
193ccb1c87aSMateusz Piotrowski.It Fl h
194ccb1c87aSMateusz PiotrowskiPrint help message and exit.
195f656df58SMateusz Piotrowski.It Fl k Ar config_file
196621b5090SJohn BaldwinSet configuration variables from a simple, key-value config file.
197621b5090SJohn BaldwinEach line of the config file is expected to consist of a config variable
198621b5090SJohn Baldwinname, an equals sign
19919eaa01bSMichael Reifenberger.It Fl K Ar layout
20019eaa01bSMichael ReifenbergerSpecify the keyboard layout.
20119eaa01bSMichael ReifenbergerThe value that can be specified sets the file name in
20219eaa01bSMichael Reifenberger.Ar /usr/share/bhyve/kbdlayout .
20319eaa01bSMichael ReifenbergerThis specification only works when loaded with UEFI mode for VNC.
204a3b3e89fSBenedict ReuschlingWhen using a VNC client that supports QEMU Extended Key Event Message (e.g.
205a3b3e89fSBenedict ReuschlingTigerVNC), this option isn't needed.
206a3b3e89fSBenedict ReuschlingWhen using a VNC client that doesn't support QEMU Extended Key Event Message
207a3b3e89fSBenedict Reuschling(e.g. tightVNC), the layout defaults to the US keyboard unless specified
208a3b3e89fSBenedict Reuschlingotherwise.
209621b5090SJohn Baldwin.Pq Sq = ,
210621b5090SJohn Baldwinand a value.
211621b5090SJohn BaldwinNo spaces are permitted between the variable name, equals sign, or
212621b5090SJohn Baldwinvalue.
213621b5090SJohn BaldwinBlank lines and lines starting with
214621b5090SJohn Baldwin.Sq #
215621b5090SJohn Baldwinare ignored.
216f656df58SMateusz PiotrowskiSee
217f656df58SMateusz Piotrowski.Xr bhyve_config 5
218f656df58SMateusz Piotrowskifor more details.
2194c08b978SMateusz Piotrowski.It Fl l Cm help
2204c08b978SMateusz PiotrowskiPrint a list of supported LPC devices.
2214c08b978SMateusz Piotrowski.It Fl l Ar lpcdev Ns Op Cm \&, Ns Ar conf
222cde1f5b8SJohn BaldwinAllow devices behind the LPC PCI-ISA bridge to be configured.
2239b1aa8d6SNeel NatuThe only supported devices are the TTY-class devices
2244c08b978SMateusz Piotrowski.Cm com1 , com2 , com3 ,
2254c08b978SMateusz Piotrowskiand
2264c08b978SMateusz Piotrowski.Cm com4 ,
22767c26eb2SCorvin Köhnethe TPM module
22867c26eb2SCorvin Köhne.Cm tpm ,
2292f40fc6fSPeter Grehanthe boot ROM device
2304c08b978SMateusz Piotrowski.Cm bootrom ,
231d85147f3SCorvin Köhnethe
232d85147f3SCorvin Köhne.Cm fwcfg
233d85147f3SCorvin Köhnetype and the debug/test device
2344c08b978SMateusz Piotrowski.Cm pc-testdev .
2351aa56353SMarcelo Araujo.Pp
2364c08b978SMateusz PiotrowskiThe possible values for the
2374c08b978SMateusz Piotrowski.Ar conf
2384c08b978SMateusz Piotrowskiargument are listed in the
2394c08b978SMateusz Piotrowski.Fl s
2404c08b978SMateusz Piotrowskiflag description.
2417e0cb3dfSMateusz Piotrowski.It Xo
2427e0cb3dfSMateusz Piotrowski.Fl m Ar memsize Ns Oo
2437e0cb3dfSMateusz Piotrowski.Sm off
2447e0cb3dfSMateusz Piotrowski.Cm K | k | M | m | G | g | T | t
2457e0cb3dfSMateusz Piotrowski.Sm on
2467e0cb3dfSMateusz Piotrowski.Oc
2477e0cb3dfSMateusz Piotrowski.Xc
2487e0cb3dfSMateusz PiotrowskiSet the guest physical memory size
249cde1f5b8SJohn BaldwinThis must be the same size that was given to
250cde1f5b8SJohn Baldwin.Xr bhyveload 8 .
251cde1f5b8SJohn Baldwin.Pp
2527e0cb3dfSMateusz PiotrowskiThe size argument may be suffixed with one of
2537e0cb3dfSMateusz Piotrowski.Cm K , M , G
2547e0cb3dfSMateusz Piotrowskior
2557e0cb3dfSMateusz Piotrowski.Cm T
2567e0cb3dfSMateusz Piotrowski(either upper or lower case)
2577e0cb3dfSMateusz Piotrowskito indicate a multiple of kilobytes, megabytes, gigabytes, or terabytes.
258cde1f5b8SJohn BaldwinIf no suffix is given, the value is assumed to be in megabytes.
2596ee52c65SRoman Bogorodskiy.Pp
2607e0cb3dfSMateusz PiotrowskiThe default is 256M.
261621b5090SJohn Baldwin.It Fl o Ar var Ns Cm = Ns Ar value
262621b5090SJohn BaldwinSet the configuration variable
263621b5090SJohn Baldwin.Ar var
264621b5090SJohn Baldwinto
265621b5090SJohn Baldwin.Ar value .
266ccb1c87aSMateusz Piotrowski.It Fl P
267ccb1c87aSMateusz PiotrowskiForce the guest virtual CPU to exit when a PAUSE instruction is detected.
26890df5437SMateusz Piotrowski.It Fl p Ar vcpu Ns Cm \& : Ns Ar hostcpu
2699b6155a2SNeel NatuPin guest's virtual CPU
2709b6155a2SNeel Natu.Em vcpu
2719b6155a2SNeel Natuto
2729b6155a2SNeel Natu.Em hostcpu .
2738120190fSFelix JohnsonHost CPUs and guest virtual CPUs are numbered starting from 0.
2748120190fSFelix JohnsonA
2758120190fSFelix Johnson.Fl p
2768120190fSFelix Johnsonoption is required for every guest vCPU to be pinned.
2778120190fSFelix JohnsonTo map a 4 vCPU guest to host CPUs 12-15:
2788120190fSFelix Johnson.Bd -literal
2798120190fSFelix Johnson-p 0:12 -p 1:13 -p 2:14 -p 3:15
2808120190fSFelix Johnson.Ed
281483d953aSJohn Baldwin.It Fl r Ar file
282483d953aSJohn BaldwinResume a guest from a snapshot.
283483d953aSJohn BaldwinThe guest memory contents are restored from
284483d953aSJohn Baldwin.Ar file ,
285483d953aSJohn Baldwinand the guest device and vCPU state are restored from the file
286483d953aSJohn Baldwin.Dq Ar file Ns .kern .
287483d953aSJohn Baldwin.Pp
288a3b3e89fSBenedict ReuschlingNote that the current snapshot file format requires that the
289a3b3e89fSBenedict Reuschlingconfiguration of devices in the new VM match the VM from which the
290a3b3e89fSBenedict Reuschlingsnapshot was taken by specifying the same
291b24eea8cSMateusz Piotrowski.Fl s
292483d953aSJohn Baldwinand
293b24eea8cSMateusz Piotrowski.Fl l
294483d953aSJohn Baldwinoptions.
295483d953aSJohn BaldwinThe count of vCPUs and memory configuration are read from the snapshot.
296ccb1c87aSMateusz Piotrowski.It Fl S
297ccb1c87aSMateusz PiotrowskiWire guest memory.
298449f0e48SMateusz Piotrowski.It Fl s Cm help
299449f0e48SMateusz PiotrowskiPrint a list of supported PCI devices.
300449f0e48SMateusz Piotrowski.It Fl s Ar slot Ns Cm \&, Ns Ar emulation Ns Op Cm \&, Ns Ar conf
301b13e60daSPeter GrehanConfigure a virtual PCI slot and function.
302b13e60daSPeter Grehan.Pp
30384fe889cSChristian Brueffer.Nm
304b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to
305b13e60daSPeter Grehanslots on the bus.
306b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions
307b13e60daSPeter Grehanper slot.
308234d8c47SMateusz Piotrowski.Pp
309234d8c47SMateusz PiotrowskiThe
310234d8c47SMateusz Piotrowski.Ar slot
311234d8c47SMateusz Piotrowskican be specified in one of the following formats:
312234d8c47SMateusz Piotrowski.Pp
313234d8c47SMateusz Piotrowski.Bl -bullet -compact
314234d8c47SMateusz Piotrowski.It
315234d8c47SMateusz Piotrowski.Ar pcislot
316234d8c47SMateusz Piotrowski.It
317234d8c47SMateusz Piotrowski.Sm off
318234d8c47SMateusz Piotrowski.Ar pcislot Cm \&: Ar function
319234d8c47SMateusz Piotrowski.Sm on
320234d8c47SMateusz Piotrowski.It
321234d8c47SMateusz Piotrowski.Sm off
322234d8c47SMateusz Piotrowski.Ar bus Cm \&: Ar pcislot Cm \&: Ar function
323234d8c47SMateusz Piotrowski.Sm on
324234d8c47SMateusz Piotrowski.El
325b13e60daSPeter Grehan.Pp
326b13e60daSPeter GrehanThe
327b13e60daSPeter Grehan.Ar pcislot
32884fe889cSChristian Brueffervalue is 0 to 31.
32984fe889cSChristian BruefferThe optional
33084fe889cSChristian Brueffer.Ar function
33184fe889cSChristian Brueffervalue is 0 to 7.
33284fe889cSChristian BruefferThe optional
33306db1b4aSNeel Natu.Ar bus
33406db1b4aSNeel Natuvalue is 0 to 255.
33584fe889cSChristian BruefferIf not specified, the
33684fe889cSChristian Brueffer.Ar function
33784fe889cSChristian Brueffervalue defaults to 0.
33884fe889cSChristian BruefferIf not specified, the
33984fe889cSChristian Brueffer.Ar bus
34084fe889cSChristian Brueffervalue defaults to 0.
341234d8c47SMateusz Piotrowski.Pp
342234d8c47SMateusz PiotrowskiThe
343234d8c47SMateusz Piotrowski.Ar emulation
344234d8c47SMateusz Piotrowskiargument
345234d8c47SMateusz Piotrowskican be one of the following:
3467014cb23SMateusz Piotrowski.Bl -tag -width "amd_hostbridge"
3477014cb23SMateusz Piotrowski.It Cm hostbridge
3487014cb23SMateusz PiotrowskiA simple host bridge.
349b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest
350b13e60daSPeter Grehanoperating systems.
3517014cb23SMateusz Piotrowski.It Cm amd_hostbridge
3527014cb23SMateusz PiotrowskiEmulation identical to
3537014cb23SMateusz Piotrowski.Cm hostbridge
3547014cb23SMateusz Piotrowskiusing a PCI vendor ID of AMD.
3557014cb23SMateusz Piotrowski.It Cm passthru
356b13e60daSPeter GrehanPCI pass-through device.
3577014cb23SMateusz Piotrowski.It Cm virtio-net
358b13e60daSPeter GrehanVirtio network interface.
3597014cb23SMateusz Piotrowski.It Cm virtio-blk
360b13e60daSPeter GrehanVirtio block storage interface.
3617014cb23SMateusz Piotrowski.It Cm virtio-scsi
362f9c005a1SMarcelo AraujoVirtio SCSI interface.
3637014cb23SMateusz Piotrowski.It Cm virtio-9p
364100353cfSJakub Wojciech KlamaVirtio 9p (VirtFS) interface.
3657014cb23SMateusz Piotrowski.It Cm virtio-rnd
3669d0c4e17SPeter GrehanVirtio RNG interface.
3677014cb23SMateusz Piotrowski.It Cm virtio-console
3685121b6ccSRoman BogorodskiyVirtio console interface, which exposes multiple ports
3695121b6ccSRoman Bogorodskiyto the guest in the form of simple char devices for simple IO
3705121b6ccSRoman Bogorodskiybetween the guest and host userspaces.
371054accacSCorvin Köhne.It Cm virtio-input
372054accacSCorvin KöhneVirtio input interface.
3737014cb23SMateusz Piotrowski.It Cm ahci
374d6099860SMaxim KonovalovAHCI controller attached to arbitrary devices.
3757014cb23SMateusz Piotrowski.It Cm ahci-cd
376b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD.
3777014cb23SMateusz Piotrowski.It Cm ahci-hd
3787014cb23SMateusz PiotrowskiAHCI controller attached to a SATA hard drive.
3797014cb23SMateusz Piotrowski.It Cm e1000
3809e749f25SAlexander MotinIntel e82545 network interface.
3817014cb23SMateusz Piotrowski.It Cm uart
382b13e60daSPeter GrehanPCI 16550 serial device.
3837014cb23SMateusz Piotrowski.It Cm lpc
3847014cb23SMateusz PiotrowskiLPC PCI-ISA bridge with COM1, COM2, COM3, and COM4 16550 serial ports,
3857014cb23SMateusz Piotrowskia boot ROM, and,
386d85147f3SCorvin Köhneoptionally, a fwcfg type and the debug/test device.
3879b1aa8d6SNeel NatuThe LPC bridge emulation can only be configured on bus 0.
3887014cb23SMateusz Piotrowski.It Cm fbuf
3896c87a2c0SGleb SmirnoffRaw framebuffer device attached to VNC server.
3907014cb23SMateusz Piotrowski.It Cm xhci
3915c3ec676SGleb SmirnoffeXtensible Host Controller Interface (xHCI) USB controller.
3927014cb23SMateusz Piotrowski.It Cm nvme
393c066c68cSMarcelo AraujoNVM Express (NVMe) controller.
3947014cb23SMateusz Piotrowski.It Cm hda
39536f9f044SWarner LoshHigh Definition Audio Controller.
396b13e60daSPeter Grehan.El
397234d8c47SMateusz Piotrowski.Pp
398234d8c47SMateusz PiotrowskiThe optional parameter
399234d8c47SMateusz Piotrowski.Ar conf
400234d8c47SMateusz Piotrowskidescribes the backend for device emulations.
401b13e60daSPeter GrehanIf
402b13e60daSPeter Grehan.Ar conf
403b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be
404b13e60daSPeter Grehanconsidered unconnected.
405b13e60daSPeter Grehan.Pp
4068d9fefe6SMateusz PiotrowskiNetwork device backends:
4077fb22729SMateusz Piotrowski.Sm off
4087fb22729SMateusz Piotrowski.Bl -bullet
4097fb22729SMateusz Piotrowski.It
4107fb22729SMateusz Piotrowski.Xo
4117fb22729SMateusz Piotrowski.Cm tap Ar N
4127fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
4137fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
4147fb22729SMateusz Piotrowski.Xc
4157fb22729SMateusz Piotrowski.It
4167fb22729SMateusz Piotrowski.Xo
4177fb22729SMateusz Piotrowski.Cm vmnet Ar N
4187fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
4197fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
4207fb22729SMateusz Piotrowski.Xc
4217fb22729SMateusz Piotrowski.It
4227fb22729SMateusz Piotrowski.Xo
4237fb22729SMateusz Piotrowski.Cm netgraph,path= Ar ADDRESS Cm \&,peerhook= Ar HOOK
4247fb22729SMateusz Piotrowski.Op Cm \&,socket= Ar NAME
4257fb22729SMateusz Piotrowski.Op Cm \&,hook= Ar HOOK
4267fb22729SMateusz Piotrowski.Op Cm \&,mac= Ar xx:xx:xx:xx:xx:xx
4277fb22729SMateusz Piotrowski.Op Cm \&,mtu= Ar N
4287fb22729SMateusz Piotrowski.Xc
429*c5359e2aSMark Johnston.It
430*c5359e2aSMark Johnston.Xo
431*c5359e2aSMark Johnston.Cm slirp,hostfwd= Ar proto : Ar hostaddr : Ar hostport - Ar guestaddr : Ar guestport
432*c5359e2aSMark Johnston.Xc
4337fb22729SMateusz Piotrowski.El
4347fb22729SMateusz Piotrowski.Sm on
435baf753ccSJohn Baldwin.Pp
436b13e60daSPeter GrehanIf
4377fb22729SMateusz Piotrowski.Cm mac
438b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the
439b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and
440b13e60daSPeter Grehanthe device name.
441b13e60daSPeter Grehan.Pp
442b13e60daSPeter GrehanThe MAC address is an ASCII string in
443b13e60daSPeter Grehan.Xr ethers 5
444b13e60daSPeter Grehanformat.
445692dbfe9SVincenzo Maffione.Pp
4467fb22729SMateusz PiotrowskiWith
4477fb22729SMateusz Piotrowski.Cm virtio-net
4487fb22729SMateusz Piotrowskidevices, the
4497fb22729SMateusz Piotrowski.Cm mtu
450692dbfe9SVincenzo Maffioneparameter can be specified to inform the guest about the largest MTU
451692dbfe9SVincenzo Maffionethat should be allowed, expressed in bytes.
452e90337e4SAleksandr Fedorov.Pp
4537fb22729SMateusz PiotrowskiWith
4547fb22729SMateusz Piotrowski.Cm netgraph
4557fb22729SMateusz Piotrowskibackend, the
4567fb22729SMateusz Piotrowski.Cm path
457e90337e4SAleksandr Fedorovand
4587fb22729SMateusz Piotrowski.Cm peerhook
459e90337e4SAleksandr Fedorovparameters must be specified to set the destination node and corresponding hook.
460e90337e4SAleksandr FedorovThe optional parameters
4617fb22729SMateusz Piotrowski.Cm socket
462e90337e4SAleksandr Fedorovand
4637fb22729SMateusz Piotrowski.Cm hook
464e90337e4SAleksandr Fedorovmay be used to set the
465e90337e4SAleksandr Fedorov.Xr ng_socket 4
466e90337e4SAleksandr Fedorovnode name and source hook.
467e90337e4SAleksandr FedorovThe
468e90337e4SAleksandr Fedorov.Ar ADDRESS ,
4697fb22729SMateusz Piotrowski.Ar HOOK ,
470e90337e4SAleksandr Fedorovand
471e90337e4SAleksandr Fedorov.Ar NAME
472e90337e4SAleksandr Fedorovmust comply with
473e90337e4SAleksandr Fedorov.Xr netgraph 4
474e90337e4SAleksandr Fedorovaddressing rules.
475b13e60daSPeter Grehan.Pp
476*c5359e2aSMark JohnstonThe slirp backend can be used to provide a NATed network to the guest.
477*c5359e2aSMark JohnstonThis backend has poor performance but does not require any network
478*c5359e2aSMark Johnstonconfiguration on the host system.
479*c5359e2aSMark JohnstonIt depends on the
480*c5359e2aSMark Johnston.Pa net/libslirp
481*c5359e2aSMark Johnstonport.
482*c5359e2aSMark JohnstonThe
483*c5359e2aSMark Johnston.Cm hostfwd
484*c5359e2aSMark Johnstonoption takes a 5-tuple describing how connections from the host are to be
485*c5359e2aSMark Johnstonforwarded to the guest.
486*c5359e2aSMark JohnstonMultiple rules can be specified, separated by semicolons.
487*c5359e2aSMark JohnstonNote that semicolons must be escaped or quoted to prevent the shell from
488*c5359e2aSMark Johnstoninterpreting them.
489*c5359e2aSMark Johnston.Pp
4905232a35fSMateusz PiotrowskiBlock storage device backends:
4915232a35fSMateusz Piotrowski.Sm off
4925232a35fSMateusz Piotrowski.Bl -bullet
4935232a35fSMateusz Piotrowski.It
4945232a35fSMateusz Piotrowski.Ar /filename Op Cm \&, Ar block-device-options
4955232a35fSMateusz Piotrowski.It
4965232a35fSMateusz Piotrowski.Ar /dev/xxx Op Cm \&, Ar block-device-options
4974e43c1e8SNeel Natu.El
4985232a35fSMateusz Piotrowski.Sm on
4994e43c1e8SNeel Natu.Pp
5004e43c1e8SNeel NatuThe
5014e43c1e8SNeel Natu.Ar block-device-options
5024e43c1e8SNeel Natuare:
5035232a35fSMateusz Piotrowski.Bl -tag -width 10n
5045232a35fSMateusz Piotrowski.It Cm nocache
505b13e60daSPeter GrehanOpen the file with
506b13e60daSPeter Grehan.Dv O_DIRECT .
5075232a35fSMateusz Piotrowski.It Cm direct
508b13e60daSPeter GrehanOpen the file using
509b13e60daSPeter Grehan.Dv O_SYNC .
5105232a35fSMateusz Piotrowski.It Cm ro
511b13e60daSPeter GrehanForce the file to be opened read-only.
5125232a35fSMateusz Piotrowski.It Cm sectorsize= Ns Ar logical Ns Oo Cm \&/ Ns Ar physical Oc
5134e43c1e8SNeel NatuSpecify the logical and physical sector sizes of the emulated disk.
5144e43c1e8SNeel NatuThe physical sector size is optional and is equal to the logical sector size
5154e43c1e8SNeel Natuif not explicitly specified.
5165232a35fSMateusz Piotrowski.It Cm nodelete
517e6d795d1SAllan JudeDisable emulation of guest trim requests via
518e6d795d1SAllan Jude.Dv DIOCGDELETE
519e6d795d1SAllan Juderequests.
520480bef94SCorvin Köhne.It Li bootindex= Ns Ar index
521480bef94SCorvin KöhneAdd the device to the bootorder at
522480bef94SCorvin Köhne.Ar index .
523480bef94SCorvin KöhneA fwcfg file is used to specify the bootorder.
524480bef94SCorvin KöhneThe guest firmware may ignore or doesn't support this fwcfg file.
525480bef94SCorvin KöhneIn that case, this feature doesn't work as expected.
526b13e60daSPeter Grehan.El
527b13e60daSPeter Grehan.Pp
5287c5829c9SMateusz PiotrowskiSCSI device backends:
5297c5829c9SMateusz Piotrowski.Sm off
5307c5829c9SMateusz Piotrowski.Bl -bullet
5317c5829c9SMateusz Piotrowski.It
5327c5829c9SMateusz Piotrowski.Pa /dev/cam/ctl Oo Ar pp Cm \&. Ar vp Oc Oo Cm \&, Ar scsi-device-options Oc
53349f87822SAlexander Motin.El
5347c5829c9SMateusz Piotrowski.Sm on
53549f87822SAlexander Motin.Pp
53649f87822SAlexander MotinThe
53749f87822SAlexander Motin.Ar scsi-device-options
53849f87822SAlexander Motinare:
53949f87822SAlexander Motin.Bl -tag -width 10n
5407c5829c9SMateusz Piotrowski.It Cm iid= Ns Ar IID
54149f87822SAlexander MotinInitiator ID to use when sending requests to specified CTL port.
54249f87822SAlexander MotinThe default value is 0.
543480bef94SCorvin Köhne.It Li bootindex= Ns Ar index
544480bef94SCorvin KöhneAdd the device to the bootorder at
545480bef94SCorvin Köhne.Ar index .
546480bef94SCorvin KöhneA fwcfg file is used to specify the bootorder.
547480bef94SCorvin KöhneThe guest firmware may ignore or doesn't support this fwcfg file.
548480bef94SCorvin KöhneIn that case, this feature doesn't work as expected.
549f9c005a1SMarcelo Araujo.El
550f9c005a1SMarcelo Araujo.Pp
5512d00b570SMateusz Piotrowski9P device backends:
5522d00b570SMateusz Piotrowski.Sm off
5532d00b570SMateusz Piotrowski.Bl -bullet
5542d00b570SMateusz Piotrowski.It
5552d00b570SMateusz Piotrowski.Ar sharename Cm = Ar /path/to/share Op Cm \&, Ar 9p-device-options
556100353cfSJakub Wojciech Klama.El
5572d00b570SMateusz Piotrowski.Sm on
558100353cfSJakub Wojciech Klama.Pp
559100353cfSJakub Wojciech KlamaThe
560100353cfSJakub Wojciech Klama.Ar 9p-device-options
561100353cfSJakub Wojciech Klamaare:
562100353cfSJakub Wojciech Klama.Bl -tag -width 10n
5632d00b570SMateusz Piotrowski.It Cm ro
564100353cfSJakub Wojciech KlamaExpose the share in read-only mode.
565100353cfSJakub Wojciech Klama.El
566100353cfSJakub Wojciech Klama.Pp
5672fda01a1SMateusz PiotrowskiTTY device backends:
568b13e60daSPeter Grehan.Bl -tag -width 10n
5692fda01a1SMateusz Piotrowski.It Cm stdio
570b13e60daSPeter GrehanConnect the serial port to the standard input and output of
57184fe889cSChristian Bruefferthe
57284fe889cSChristian Brueffer.Nm
57384fe889cSChristian Bruefferprocess.
5742fda01a1SMateusz Piotrowski.It Ar /dev/xxx
575b13e60daSPeter GrehanUse the host TTY device for serial port I/O.
576b13e60daSPeter Grehan.El
577b13e60daSPeter Grehan.Pp
57867c26eb2SCorvin KöhneTPM device backends:
57967c26eb2SCorvin Köhne.Bl -tag -width 10n
58067c26eb2SCorvin Köhne.It Ar type Ns \&, Ns Ar path Ns Op Cm \&, Ns Ar tpm-device-options
58167c26eb2SCorvin KöhneEmulate a TPM device.
58267c26eb2SCorvin Köhne.El
58367c26eb2SCorvin Köhne.Pp
58467c26eb2SCorvin KöhneThe
58567c26eb2SCorvin Köhne.Ar tpm-device-options
58667c26eb2SCorvin Köhneare:
58767c26eb2SCorvin Köhne.Bl -tag -width 10n
58867c26eb2SCorvin Köhne.It Cm version= Ns Ar version
58967c26eb2SCorvin KöhneVersion of the TPM device according to the TCG specification.
59067c26eb2SCorvin KöhneDefaults to
59167c26eb2SCorvin Köhne.Cm 2.0
59267c26eb2SCorvin Köhne.El
59367c26eb2SCorvin Köhne.Pp
5942fda01a1SMateusz PiotrowskiBoot ROM device backends:
5959b1aa8d6SNeel Natu.Bl -tag -width 10n
596866036f4SRebecca Cran.It Ar romfile Ns Op Cm \&, Ns Ar varfile
5979b1aa8d6SNeel NatuMap
5989b1aa8d6SNeel Natu.Ar romfile
5999b1aa8d6SNeel Natuin the guest address space reserved for boot firmware.
600866036f4SRebecca CranIf
601866036f4SRebecca Cran.Ar varfile
602866036f4SRebecca Cranis provided, that file is also mapped in the boot firmware guest
603866036f4SRebecca Cranaddress space, and any modifications the guest makes will be saved
604866036f4SRebecca Cranto that file.
6059b1aa8d6SNeel Natu.El
6069b1aa8d6SNeel Natu.Pp
607d85147f3SCorvin KöhneFwcfg types:
608d85147f3SCorvin Köhne.Bl -tag -width 10n
609d85147f3SCorvin Köhne.It Ar fwcfg
610a3b3e89fSBenedict ReuschlingThe fwcfg interface is used to pass information such as the CPU count
611a3b3e89fSBenedict Reuschlingor ACPI tables to the guest firmware.
612d85147f3SCorvin KöhneSupported values are
613d85147f3SCorvin Köhne.Ql bhyve
614d85147f3SCorvin Köhneand
615d85147f3SCorvin Köhne.Ql qemu .
616d85147f3SCorvin KöhneDue to backward compatibility reasons,
617d85147f3SCorvin Köhne.Ql bhyve
618d85147f3SCorvin Köhneis the default option.
619d85147f3SCorvin KöhneWhen
620d85147f3SCorvin Köhne.Ql bhyve
621d85147f3SCorvin Köhneis used, bhyve's fwctl interface is used.
622d85147f3SCorvin KöhneIt currently reports only the CPU count to the guest firmware.
623d85147f3SCorvin KöhneThe
624d85147f3SCorvin Köhne.Ql qemu
625d85147f3SCorvin Köhneoption uses QEMU's fwcfg interface.
626a3b3e89fSBenedict ReuschlingThis interface is widely used and allows user-defined information to
627a3b3e89fSBenedict Reuschlingbe passed to the guest.
628a3b3e89fSBenedict ReuschlingIt is used for passing the CPU count, ACPI tables, a boot order and
629a3b3e89fSBenedict Reuschlingmany other things to the guest.
630a3b3e89fSBenedict ReuschlingSome operating systems such as Fedora CoreOS can be configured by
631a3b3e89fSBenedict Reuschlingqemu's fwcfg interface as well.
632d85147f3SCorvin Köhne.El
633d85147f3SCorvin Köhne.Pp
6342fda01a1SMateusz PiotrowskiPass-through device backends:
635baf753ccSJohn Baldwin.Sm off
636baf753ccSJohn Baldwin.Bl -bullet
637baf753ccSJohn Baldwin.It
638baf753ccSJohn Baldwin.Cm ppt Ar N Oo , Ar passthru-device-options Oc
639baf753ccSJohn Baldwin.It
640baf753ccSJohn Baldwin.Ns Ar bus Cm \&/ Ar slot Cm \&/ Ar function
641baf753ccSJohn Baldwin.Op , Ar passthru-device-options
642baf753ccSJohn Baldwin.It
643baf753ccSJohn Baldwin.Cm pci Ar bus Cm : Ar slot Cm : Ns Ar function
644baf753ccSJohn Baldwin.Op , Ar passthru-device-options
645baf753ccSJohn Baldwin.El
646baf753ccSJohn Baldwin.Sm on
647baf753ccSJohn Baldwin.Pp
648baf753ccSJohn BaldwinConnect to a PCI device on the host either named ppt
649baf753ccSJohn Baldwin.Ns Ar N
650baf753ccSJohn Baldwinor at the selector described by
651b13e60daSPeter Grehan.Ar slot ,
652b13e60daSPeter Grehan.Ar bus ,
653b13e60daSPeter Grehanand
654b13e60daSPeter Grehan.Ar function
655b13e60daSPeter Grehannumbers.
656baf753ccSJohn Baldwin.Pp
657baf753ccSJohn BaldwinThe
658baf753ccSJohn Baldwin.Ar passthru-device-options
659baf753ccSJohn Baldwinare:
660baf753ccSJohn Baldwin.Bl -tag -width 10n
6615e19a518SMateusz Piotrowski.It Cm rom= Ns Ar romfile
662e47fe318SCorvin KöhneAdd
663e47fe318SCorvin Köhne.Ar romfile
664e47fe318SCorvin Köhneas option ROM to the PCI device.
665a3b3e89fSBenedict ReuschlingThe ROM will be loaded by firmware and should be capable of
666a3b3e89fSBenedict Reuschlinginitializing the device.
667480bef94SCorvin Köhne.It Li bootindex= Ns Ar index
668480bef94SCorvin KöhneAdd the device to the bootorder at
669480bef94SCorvin Köhne.Ar index .
670480bef94SCorvin KöhneA fwcfg file is used to specify the bootorder.
671480bef94SCorvin KöhneThe guest firmware may ignore or doesn't support this fwcfg file.
672480bef94SCorvin KöhneIn that case, this feature doesn't work as expected.
673b13e60daSPeter Grehan.El
674b13e60daSPeter Grehan.Pp
6759b1aa8d6SNeel NatuGuest memory must be wired using the
6769b1aa8d6SNeel Natu.Fl S
6779b1aa8d6SNeel Natuoption when a pass-through device is configured.
6789b1aa8d6SNeel Natu.Pp
679b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the
680a9258f9bSWarren Block.Va pptdevs
681b13e60daSPeter Grehanloader variable as described in
682b13e60daSPeter Grehan.Xr vmm 4 .
6835121b6ccSRoman Bogorodskiy.Pp
68467c26eb2SCorvin KöhneTPM devices:
68567c26eb2SCorvin Köhne.Bl -tag -width 10n
68667c26eb2SCorvin Köhne.It Ns Ar type
68767c26eb2SCorvin KöhneSpecifies the type of the TPM device.
68867c26eb2SCorvin Köhne.Pp
68967c26eb2SCorvin KöhneSupported types:
69067c26eb2SCorvin Köhne.Bl -tag -width 10n
69167c26eb2SCorvin Köhne.It Cm passthru
69267c26eb2SCorvin Köhne.El
69367c26eb2SCorvin Köhne.It Cm version= Ns Ar version
69467c26eb2SCorvin KöhneThe
69567c26eb2SCorvin Köhne.Ar version
69667c26eb2SCorvin Köhneof the emulated TPM device according to the TCG specification.
69767c26eb2SCorvin Köhne.Pp
69867c26eb2SCorvin KöhneSupported versions:
69967c26eb2SCorvin Köhne.Bl -tag -width 10n
70067c26eb2SCorvin Köhne.It Cm 2.0
70167c26eb2SCorvin Köhne.El
70267c26eb2SCorvin Köhne.El
70367c26eb2SCorvin Köhne.Pp
7043f4c771fSMateusz PiotrowskiVirtio console device backends:
7053f4c771fSMateusz Piotrowski.Bl -bullet
7063f4c771fSMateusz Piotrowski.Sm off
7073f4c771fSMateusz Piotrowski.It
7083f4c771fSMateusz 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 ...
7093f4c771fSMateusz Piotrowski.Sm on
7103f4c771fSMateusz Piotrowski.El
7113f4c771fSMateusz Piotrowski.Pp
7125121b6ccSRoman BogorodskiyA maximum of 16 ports per device can be created.
7135121b6ccSRoman BogorodskiyEvery port is named and corresponds to a Unix domain socket created by
7145121b6ccSRoman Bogorodskiy.Nm .
7155121b6ccSRoman Bogorodskiy.Nm
7165121b6ccSRoman Bogorodskiyaccepts at most one connection per port at a time.
7175121b6ccSRoman Bogorodskiy.Pp
7185121b6ccSRoman BogorodskiyLimitations:
7198d9fefe6SMateusz Piotrowski.Bl -bullet
7205121b6ccSRoman Bogorodskiy.It
7215121b6ccSRoman BogorodskiyDue to lack of destructors in
7225121b6ccSRoman Bogorodskiy.Nm ,
7235121b6ccSRoman Bogorodskiysockets on the filesystem must be cleaned up manually after
7245121b6ccSRoman Bogorodskiy.Nm
7255121b6ccSRoman Bogorodskiyexits.
7265121b6ccSRoman Bogorodskiy.It
7273f4c771fSMateusz PiotrowskiThere is no way to use the
7283f4c771fSMateusz Piotrowski.Dq console port
7293f4c771fSMateusz Piotrowskifeature, nor the console port
7300ee3a4b4SRoman Bogorodskiyresize at present.
7315121b6ccSRoman Bogorodskiy.It
7320ee3a4b4SRoman BogorodskiyEmergency write is advertised, but no-op at present.
7335121b6ccSRoman Bogorodskiy.El
7346c87a2c0SGleb Smirnoff.Pp
735054accacSCorvin KöhneVirtio input device backends:
736054accacSCorvin Köhne.Bl -tag -width 10n
737054accacSCorvin Köhne.It Ar /dev/input/eventX
738054accacSCorvin KöhneSend input events of
739054accacSCorvin Köhne.Ar /dev/input/eventX
740054accacSCorvin Köhneto guest by VirtIO Input Interface.
741054accacSCorvin Köhne.El
742054accacSCorvin Köhne.Pp
7438b97e975SMateusz PiotrowskiFramebuffer devices backends:
7448b97e975SMateusz Piotrowski.Bl -bullet
7458b97e975SMateusz Piotrowski.Sm off
7468b97e975SMateusz Piotrowski.It
7478b97e975SMateusz Piotrowski.Op Cm rfb= Ar ip-and-port
7488b97e975SMateusz Piotrowski.Op Cm ,w= Ar width
7498b97e975SMateusz Piotrowski.Op Cm ,h= Ar height
7508b97e975SMateusz Piotrowski.Op Cm ,vga= Ar vgaconf
7518b97e975SMateusz Piotrowski.Op Cm ,wait
7528b97e975SMateusz Piotrowski.Op Cm ,password= Ar password
7538b97e975SMateusz Piotrowski.Sm on
7548b97e975SMateusz Piotrowski.El
7558b97e975SMateusz Piotrowski.Pp
7568b97e975SMateusz PiotrowskiConfiguration options are defined as follows:
7575c3ec676SGleb Smirnoff.Bl -tag -width 10n
7588b97e975SMateusz Piotrowski.It Cm rfb= Ns Ar ip-and-port Pq or Cm tcp= Ns Ar ip-and-port
7598b97e975SMateusz PiotrowskiAn IP address and a port VNC should listen on.
7608b97e975SMateusz PiotrowskiThere are two formats:
7618b97e975SMateusz Piotrowski.Pp
7628b97e975SMateusz Piotrowski.Bl -bullet -compact
7638d9fefe6SMateusz Piotrowski.It
7648b97e975SMateusz Piotrowski.Sm off
7658b97e975SMateusz Piotrowski.Op Ar IPv4 Cm \&:
7665c3ec676SGleb Smirnoff.Ar port
7678b97e975SMateusz Piotrowski.Sm on
7688d9fefe6SMateusz Piotrowski.It
7698b97e975SMateusz Piotrowski.Sm off
7708b97e975SMateusz Piotrowski.Cm \&[ Ar IPv6%zone Cm \&] Cm \&: Ar port
7718b97e975SMateusz Piotrowski.Sm on
7728b97e975SMateusz Piotrowski.El
7738b97e975SMateusz Piotrowski.Pp
7746c87a2c0SGleb SmirnoffThe default is to listen on localhost IPv4 address and default VNC port 5900.
7758883128bSBjoern A. ZeebAn IPv6 address must be enclosed in square brackets and may contain an
7767d9545fcSRodney W. Grimesoptional zone identifier.
7778b97e975SMateusz Piotrowski.It Cm w= Ns Ar width No and Cm h= Ns Ar height
7785c3ec676SGleb SmirnoffA display resolution, width and height, respectively.
7795c3ec676SGleb SmirnoffIf not specified, a default resolution of 1024x768 pixels will be used.
7805c3ec676SGleb SmirnoffMinimal supported resolution is 640x480 pixels,
7815c3ec676SGleb Smirnoffand maximum is 1920x1200 pixels.
7828b97e975SMateusz Piotrowski.It Cm vga= Ns Ar vgaconf
7835c3ec676SGleb SmirnoffPossible values for this option are
7848b97e975SMateusz Piotrowski.Cm io
7855c3ec676SGleb Smirnoff(default),
7868b97e975SMateusz Piotrowski.Cm on
7875c3ec676SGleb Smirnoff, and
7888b97e975SMateusz Piotrowski.Cm off .
7895c3ec676SGleb SmirnoffPCI graphics cards have a dual personality in that they are
7905c3ec676SGleb Smirnoffstandard PCI devices with BAR addressing, but may also
7915c3ec676SGleb Smirnoffimplicitly decode legacy VGA I/O space
7925c3ec676SGleb Smirnoff.Pq Ad 0x3c0-3df
7935c3ec676SGleb Smirnoffand memory space
7945c3ec676SGleb Smirnoff.Pq 64KB at Ad 0xA0000 .
7955c3ec676SGleb SmirnoffThe default
7968b97e975SMateusz Piotrowski.Cm io
7978d56c805SYuri Pankovoption should be used for guests that attempt to issue BIOS calls which result
7988d56c805SYuri Pankovin I/O port queries, and fail to boot if I/O decode is disabled.
7995c3ec676SGleb Smirnoff.Pp
8005c3ec676SGleb SmirnoffThe
8018b97e975SMateusz Piotrowski.Cm on
8025c3ec676SGleb Smirnoffoption should be used along with the CSM BIOS capability in UEFI
8035c3ec676SGleb Smirnoffto boot traditional BIOS guests that require the legacy VGA I/O and
8045c3ec676SGleb Smirnoffmemory regions to be available.
8055c3ec676SGleb Smirnoff.Pp
8065c3ec676SGleb SmirnoffThe
8078b97e975SMateusz Piotrowski.Cm off
8085c3ec676SGleb Smirnoffoption should be used for the UEFI guests that assume that
8095c3ec676SGleb SmirnoffVGA adapter is present if they detect the I/O ports.
8105c3ec676SGleb SmirnoffAn example of such a guest is
8115c3ec676SGleb Smirnoff.Ox
8125c3ec676SGleb Smirnoffin UEFI mode.
8135c3ec676SGleb Smirnoff.Pp
8145c3ec676SGleb SmirnoffPlease refer to the
8155c3ec676SGleb Smirnoff.Nm
8165c3ec676SGleb Smirnoff.Fx
8175c3ec676SGleb Smirnoffwiki page
8185c3ec676SGleb Smirnoff.Pq Lk https://wiki.freebsd.org/bhyve
8195c3ec676SGleb Smirnofffor configuration notes of particular guests.
8208b97e975SMateusz Piotrowski.It Cm wait
8215c3ec676SGleb SmirnoffInstruct
8225c3ec676SGleb Smirnoff.Nm
8238d56c805SYuri Pankovto only boot upon the initiation of a VNC connection, simplifying the
8248d56c805SYuri Pankovinstallation of operating systems that require immediate keyboard input.
8255c3ec676SGleb SmirnoffThis can be removed for post-installation use.
8268b97e975SMateusz Piotrowski.It Cm password= Ns Ar password
827f4d34383SMarcelo AraujoThis type of authentication is known to be cryptographically weak and is not
828f4d34383SMarcelo Araujointended for use on untrusted networks.
829f4d34383SMarcelo AraujoMany implementations will want to use stronger security, such as running
830f4d34383SMarcelo Araujothe session over an encrypted channel provided by IPsec or SSH.
8315c3ec676SGleb Smirnoff.El
8326c87a2c0SGleb Smirnoff.Pp
8336eff58acSMateusz PiotrowskixHCI USB device backends:
8345c3ec676SGleb Smirnoff.Bl -tag -width 10n
8356eff58acSMateusz Piotrowski.It Cm tablet
8365c3ec676SGleb SmirnoffA USB tablet device which provides precise cursor synchronization
8375c3ec676SGleb Smirnoffwhen using VNC.
8386c87a2c0SGleb Smirnoff.El
839c066c68cSMarcelo Araujo.Pp
8406eff58acSMateusz PiotrowskiNVMe device backends:
8416eff58acSMateusz Piotrowski.Bl -bullet
8426eff58acSMateusz Piotrowski.Sm off
8436eff58acSMateusz Piotrowski.It
8446eff58acSMateusz Piotrowski.Ar devpath
8456eff58acSMateusz Piotrowski.Op Cm ,maxq= Ar #
8466eff58acSMateusz Piotrowski.Op Cm ,qsz= Ar #
8476eff58acSMateusz Piotrowski.Op Cm ,ioslots= Ar #
8486eff58acSMateusz Piotrowski.Op Cm ,sectsz= Ar #
8496eff58acSMateusz Piotrowski.Op Cm ,ser= Ar #
8506eff58acSMateusz Piotrowski.Op Cm ,eui64= Ar #
8516eff58acSMateusz Piotrowski.Op Cm ,dsm= Ar opt
8526eff58acSMateusz Piotrowski.Sm on
8536eff58acSMateusz Piotrowski.El
8546eff58acSMateusz Piotrowski.Pp
8556eff58acSMateusz PiotrowskiConfiguration options are defined as follows:
856c066c68cSMarcelo Araujo.Bl -tag -width 10n
8576eff58acSMateusz Piotrowski.It Ar devpath
858c066c68cSMarcelo AraujoAccepted device paths are:
859c066c68cSMarcelo Araujo.Ar /dev/blockdev
860c066c68cSMarcelo Araujoor
861c066c68cSMarcelo Araujo.Ar /path/to/image
862c066c68cSMarcelo Araujoor
8636eff58acSMateusz Piotrowski.Cm ram= Ns Ar size_in_MiB .
8646eff58acSMateusz Piotrowski.It Cm maxq
865c066c68cSMarcelo AraujoMax number of queues.
8666eff58acSMateusz Piotrowski.It Cm qsz
867c066c68cSMarcelo AraujoMax elements in each queue.
8686eff58acSMateusz Piotrowski.It Cm ioslots
869c066c68cSMarcelo AraujoMax number of concurrent I/O requests.
8706eff58acSMateusz Piotrowski.It Cm sectsz
871c066c68cSMarcelo AraujoSector size (defaults to blockif sector size).
8726eff58acSMateusz Piotrowski.It Cm ser
873c066c68cSMarcelo AraujoSerial number with maximum 20 characters.
8746eff58acSMateusz Piotrowski.It Cm eui64
8756eff58acSMateusz PiotrowskiIEEE Extended Unique Identifier (8 byte value).
8766eff58acSMateusz Piotrowski.It Cm dsm
8776eff58acSMateusz PiotrowskiDataSet Management support.
8786eff58acSMateusz PiotrowskiSupported values are:
8796eff58acSMateusz Piotrowski.Cm auto , enable ,
8806eff58acSMateusz Piotrowskiand
8816eff58acSMateusz Piotrowski.Cm disable .
882c066c68cSMarcelo Araujo.El
88336f9f044SWarner Losh.Pp
884d5fcc4b6SMateusz PiotrowskiAHCI device backends:
885d5fcc4b6SMateusz Piotrowski.Bl -bullet
886d5fcc4b6SMateusz Piotrowski.It
887d5fcc4b6SMateusz Piotrowski.Sm off
888d5fcc4b6SMateusz Piotrowski.Op Oo Cm hd\&: | cd\&: Oc Ar path
889d5fcc4b6SMateusz Piotrowski.Op Cm ,nmrr= Ar nmrr
890d5fcc4b6SMateusz Piotrowski.Op Cm ,ser= Ar #
891d5fcc4b6SMateusz Piotrowski.Op Cm ,rev= Ar #
892d5fcc4b6SMateusz Piotrowski.Op Cm ,model= Ar #
893d5fcc4b6SMateusz Piotrowski.Sm on
894d5fcc4b6SMateusz Piotrowski.El
895d5fcc4b6SMateusz Piotrowski.Pp
896d5fcc4b6SMateusz PiotrowskiConfiguration options are defined as follows:
8979af3bcd7SPeter Grehan.Bl -tag -width 10n
898d5fcc4b6SMateusz Piotrowski.It Cm nmrr
899d5fcc4b6SMateusz PiotrowskiNominal Media Rotation Rate, known as RPM.
900d5fcc4b6SMateusz PiotrowskiValue 1 will indicate device as Solid State Disk.
901d5fcc4b6SMateusz PiotrowskiDefault value is 0, not report.
902d5fcc4b6SMateusz Piotrowski.It Cm ser
9039af3bcd7SPeter GrehanSerial Number with maximum 20 characters.
904d5fcc4b6SMateusz Piotrowski.It Cm rev
9059af3bcd7SPeter GrehanRevision Number with maximum 8 characters.
906d5fcc4b6SMateusz Piotrowski.It Cm model
9079af3bcd7SPeter GrehanModel Number with maximum 40 characters.
9089af3bcd7SPeter Grehan.El
9099af3bcd7SPeter Grehan.Pp
910061f37d2SMateusz PiotrowskiHD Audio device backends:
911061f37d2SMateusz Piotrowski.Bl -bullet
912061f37d2SMateusz Piotrowski.It
913061f37d2SMateusz Piotrowski.Sm off
914061f37d2SMateusz Piotrowski.Op Cm play= Ar playback
915061f37d2SMateusz Piotrowski.Op Cm ,rec= Ar recording
916061f37d2SMateusz Piotrowski.Sm on
917061f37d2SMateusz Piotrowski.El
918061f37d2SMateusz Piotrowski.Pp
919061f37d2SMateusz PiotrowskiConfiguration options are defined as follows:
92036f9f044SWarner Losh.Bl -tag -width 10n
921061f37d2SMateusz Piotrowski.It Cm play
92236f9f044SWarner LoshPlayback device, typically
92336f9f044SWarner Losh.Ar /dev/dsp0 .
924061f37d2SMateusz Piotrowski.It Cm rec
92536f9f044SWarner LoshRecording device, typically
92636f9f044SWarner Losh.Ar /dev/dsp0 .
92736f9f044SWarner Losh.El
9285749449dSJohn Baldwin.It Fl U Ar uuid
9295749449dSJohn BaldwinSet the universally unique identifier
9305749449dSJohn Baldwin.Pq UUID
9315749449dSJohn Baldwinin the guest's System Management BIOS System Information structure.
9325749449dSJohn BaldwinBy default a UUID is generated from the host's hostname and
9335749449dSJohn Baldwin.Ar vmname .
934ccb1c87aSMateusz Piotrowski.It Fl u
935ccb1c87aSMateusz PiotrowskiRTC keeps UTC time.
936cde1f5b8SJohn Baldwin.It Fl W
937cde1f5b8SJohn BaldwinForce virtio PCI device emulations to use MSI interrupts instead of MSI-X
938cde1f5b8SJohn Baldwininterrupts.
939ccb1c87aSMateusz Piotrowski.It Fl w
940ccb1c87aSMateusz PiotrowskiIgnore accesses to unimplemented Model Specific Registers (MSRs).
941ccb1c87aSMateusz PiotrowskiThis is intended for debug purposes.
9429777ca20SNeel Natu.It Fl x
9439777ca20SNeel NatuThe guest's local APIC is configured in x2APIC mode.
944b100acf2SNeel Natu.It Fl Y
945b100acf2SNeel NatuDisable MPtable generation.
946b13e60daSPeter Grehan.It Ar vmname
947b13e60daSPeter GrehanAlphanumeric name of the guest.
948b13e60daSPeter GrehanThis should be the same as that created by
949b13e60daSPeter Grehan.Xr bhyveload 8 .
950b13e60daSPeter Grehan.El
951621b5090SJohn Baldwin.Sh CONFIGURATION VARIABLES
952621b5090SJohn Baldwin.Nm
953621b5090SJohn Baldwinuses an internal tree of configuration variables to describe global and
954621b5090SJohn Baldwinper-device settings.
955621b5090SJohn BaldwinWhen
956621b5090SJohn Baldwin.Nm
957621b5090SJohn Baldwinstarts,
958621b5090SJohn Baldwinit parses command line options (including config files) in the order given
959621b5090SJohn Baldwinon the command line.
960621b5090SJohn BaldwinEach command line option sets one or more configuration variables.
961621b5090SJohn BaldwinFor example,
962621b5090SJohn Baldwinthe
963621b5090SJohn Baldwin.Fl s
964621b5090SJohn Baldwinoption creates a new tree node for a PCI device and sets one or more variables
965621b5090SJohn Baldwinunder that node including the device model and device model-specific variables.
966621b5090SJohn BaldwinVariables may be set multiple times during this parsing stage with the final
967621b5090SJohn Baldwinvalue overriding previous values.
968621b5090SJohn Baldwin.Pp
969621b5090SJohn BaldwinOnce all of the command line options have been processed,
970621b5090SJohn Baldwinthe configuration values are frozen.
971621b5090SJohn Baldwin.Nm
972621b5090SJohn Baldwinthen uses the value of configuration values to initialize device models
973621b5090SJohn Baldwinand global settings.
974621b5090SJohn Baldwin.Pp
975621b5090SJohn BaldwinMore details on configuration variables can be found in
976621b5090SJohn Baldwin.Xr bhyve_config 5 .
977cd377eb3SJohn Baldwin.Sh DEBUG SERVER
978cd377eb3SJohn BaldwinThe current debug server provides limited support for debuggers.
979cd377eb3SJohn Baldwin.Ss Registers
980cd377eb3SJohn BaldwinEach virtual CPU is exposed to the debugger as a thread.
981cd377eb3SJohn Baldwin.Pp
982cd377eb3SJohn BaldwinGeneral purpose registers can be queried for each virtual CPU, but other
983cd377eb3SJohn Baldwinregisters such as floating-point and system registers cannot be queried.
984cd377eb3SJohn Baldwin.Ss Memory
985a3b3e89fSBenedict ReuschlingMemory (including memory mapped I/O regions) can be read and written
986a3b3e89fSBenedict Reuschlingby the debugger.
987a3b3e89fSBenedict ReuschlingMemory operations use virtual addresses that are resolved to physical
988a3b3e89fSBenedict Reuschlingaddresses via the current virtual CPU's active address translation.
989cd377eb3SJohn Baldwin.Ss Control
990cd377eb3SJohn BaldwinThe running guest can be interrupted by the debugger at any time
991cd377eb3SJohn Baldwin.Pq for example, by pressing Ctrl-C in the debugger .
992cd377eb3SJohn Baldwin.Pp
993cd377eb3SJohn BaldwinSingle stepping is only supported on Intel CPUs supporting the MTRAP VM exit.
994cd377eb3SJohn Baldwin.Pp
995cbd03a9dSJohn BaldwinBreakpoints are supported on Intel CPUs that support single stepping.
996cbd03a9dSJohn BaldwinNote that continuing from a breakpoint while interrupts are enabled in the
997cbd03a9dSJohn Baldwinguest may not work as expected due to timer interrupts firing while single
998cbd03a9dSJohn Baldwinstepping over the breakpoint.
999c2202d41SRoman Bogorodskiy.Sh SIGNAL HANDLING
1000c2202d41SRoman Bogorodskiy.Nm
1001c2202d41SRoman Bogorodskiydeals with the following signals:
1002c2202d41SRoman Bogorodskiy.Pp
10033357e948SMateusz Piotrowski.Bl -tag -width SIGTERM -compact
1004c2202d41SRoman Bogorodskiy.It SIGTERM
1005c2202d41SRoman BogorodskiyTrigger ACPI poweroff for a VM
1006c2202d41SRoman Bogorodskiy.El
1007c2202d41SRoman Bogorodskiy.Sh EXIT STATUS
1008c2202d41SRoman BogorodskiyExit status indicates how the VM was terminated:
1009c2202d41SRoman Bogorodskiy.Pp
1010c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact
1011c2202d41SRoman Bogorodskiy.It 0
1012c2202d41SRoman Bogorodskiyrebooted
1013c2202d41SRoman Bogorodskiy.It 1
1014c2202d41SRoman Bogorodskiypowered off
1015c2202d41SRoman Bogorodskiy.It 2
1016c2202d41SRoman Bogorodskiyhalted
1017c2202d41SRoman Bogorodskiy.It 3
1018c2202d41SRoman Bogorodskiytriple fault
1019989e062bSMarcelo Araujo.It 4
1020989e062bSMarcelo Araujoexited due to an error
1021c2202d41SRoman Bogorodskiy.El
1022b13e60daSPeter Grehan.Sh EXAMPLES
10235c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must have been loaded with
102484fe889cSChristian Brueffer.Xr bhyveload 8
1025b13e60daSPeter Grehanor a similar boot loader before
1026b13e60daSPeter Grehan.Xr bhyve 4
1027b13e60daSPeter Grehancan be run.
10285c3ec676SGleb SmirnoffOtherwise, the boot loader is not needed.
1029b13e60daSPeter Grehan.Pp
1030b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio
1031b13e60daSPeter Grehanblock device backed by the
1032b13e60daSPeter Grehan.Pa /my/image
1033b13e60daSPeter Grehanfilesystem image, and a serial port for the console:
1034b13e60daSPeter Grehan.Bd -literal -offset indent
1035b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\
1036b13e60daSPeter Grehan  -l com1,stdio -A -H -P -m 1G vm1
1037b13e60daSPeter Grehan.Ed
1038b13e60daSPeter Grehan.Pp
1039b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which
1040b13e60daSPeter Grehanhas a MAC address specified:
1041b13e60daSPeter Grehan.Bd -literal -offset indent
1042b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\
1043b13e60daSPeter Grehan  -s 2:1,virtio-net,tap1 \\
1044b13e60daSPeter Grehan  -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\
1045b13e60daSPeter Grehan  -s 3,virtio-blk,/my/image -l com1,stdio \\
1046b13e60daSPeter Grehan  -A -H -P -m 24G bigvm
1047b13e60daSPeter Grehan.Ed
1048b13e60daSPeter Grehan.Pp
1049b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI
1050b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console
1051b13e60daSPeter Grehanport connected to an
1052b13e60daSPeter Grehan.Xr nmdm 4
105384fe889cSChristian Brueffernull-modem device.
1054b13e60daSPeter Grehan.Bd -literal -offset indent
1055a7ab1463SAlexander Motinbhyve -c 4 \\
1056b13e60daSPeter Grehan  -s 0,amd_hostbridge -s 1,lpc \\
1057098f5155SAlexander Motin  -s 1:0,ahci,hd:/images/disk.1,hd:/images/disk.2,\\
1058098f5155SAlexander Motinhd:/images/disk.3,hd:/images/disk.4,\\
1059098f5155SAlexander Motinhd:/images/disk.5,hd:/images/disk.6,\\
1060098f5155SAlexander Motinhd:/images/disk.7,hd:/images/disk.8,\\
1061098f5155SAlexander Motincd:/images/install.iso \\
1062b13e60daSPeter Grehan  -s 3,virtio-net,tap0 \\
1063b13e60daSPeter Grehan  -l com1,/dev/nmdm0A \\
1064b13e60daSPeter Grehan  -A -H -P -m 8G
1065b13e60daSPeter Grehan.Ed
10665c3ec676SGleb Smirnoff.Pp
10675c3ec676SGleb SmirnoffRun a UEFI virtual machine with a display resolution of 800 by 600 pixels
10685c3ec676SGleb Smirnoffthat can be accessed via VNC at: 0.0.0.0:5900.
10695c3ec676SGleb Smirnoff.Bd -literal -offset indent
10705c3ec676SGleb Smirnoffbhyve -c 2 -m 4G -w -H \\
10715c3ec676SGleb Smirnoff  -s 0,hostbridge \\
10725c3ec676SGleb Smirnoff  -s 3,ahci-cd,/path/to/uefi-OS-install.iso \\
10735c3ec676SGleb Smirnoff  -s 4,ahci-hd,disk.img \\
10745c3ec676SGleb Smirnoff  -s 5,virtio-net,tap0 \\
10755c3ec676SGleb Smirnoff  -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \\
10765c3ec676SGleb Smirnoff  -s 30,xhci,tablet \\
10775c3ec676SGleb Smirnoff  -s 31,lpc -l com1,stdio \\
10785c3ec676SGleb Smirnoff  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
10795c3ec676SGleb Smirnoff   uefivm
10805c3ec676SGleb Smirnoff.Ed
10818883128bSBjoern A. Zeeb.Pp
10828883128bSBjoern A. ZeebRun a UEFI virtual machine with a VNC display that is bound to all IPv6
10838883128bSBjoern A. Zeebaddresses on port 5900.
10848883128bSBjoern A. Zeeb.Bd -literal -offset indent
10858883128bSBjoern A. Zeebbhyve -c 2 -m 4G -w -H \\
10868883128bSBjoern A. Zeeb  -s 0,hostbridge \\
10878883128bSBjoern A. Zeeb  -s 4,ahci-hd,disk.img \\
10888883128bSBjoern A. Zeeb  -s 5,virtio-net,tap0 \\
10898883128bSBjoern A. Zeeb  -s 29,fbuf,tcp=[::]:5900,w=800,h=600 \\
10908883128bSBjoern A. Zeeb  -s 30,xhci,tablet \\
10918883128bSBjoern A. Zeeb  -s 31,lpc -l com1,stdio \\
10928883128bSBjoern A. Zeeb  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
10938883128bSBjoern A. Zeeb   uefivm
10948883128bSBjoern A. Zeeb.Ed
1095866036f4SRebecca Cran.Pp
1096866036f4SRebecca CranRun a UEFI virtual machine with a VARS file to save EFI variables.
1097866036f4SRebecca CranNote that
1098866036f4SRebecca Cran.Nm
1099866036f4SRebecca Cranwill write guest modifications to the given VARS file.
1100866036f4SRebecca CranBe sure to create a per-guest copy of the template VARS file from
1101866036f4SRebecca Cran.Pa /usr .
1102866036f4SRebecca Cran.Bd -literal -offset indent
1103866036f4SRebecca Cranbhyve -c 2 -m 4g -w -H \\
1104866036f4SRebecca Cran  -s 0,hostbridge \\
110566659955SAlexey Marchenko  -s 31,lpc -l com1,stdio \\
1106866036f4SRebecca Cran  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI_CODE.fd,BHYVE_UEFI_VARS.fd
1107866036f4SRebecca Cran   uefivm
1108866036f4SRebecca Cran.Ed
1109b13e60daSPeter Grehan.Sh SEE ALSO
1110b13e60daSPeter Grehan.Xr bhyve 4 ,
1111e90337e4SAleksandr Fedorov.Xr netgraph 4 ,
1112e90337e4SAleksandr Fedorov.Xr ng_socket 4 ,
1113b13e60daSPeter Grehan.Xr nmdm 4 ,
1114b13e60daSPeter Grehan.Xr vmm 4 ,
1115621b5090SJohn Baldwin.Xr bhyve_config 5 ,
1116b13e60daSPeter Grehan.Xr ethers 5 ,
111705f7cd8bSJoel Dahl.Xr bhyvectl 8 ,
111805f7cd8bSJoel Dahl.Xr bhyveload 8
11198d56c805SYuri Pankov.Pp
11208d56c805SYuri Pankov.Rs
11218d56c805SYuri Pankov.%A Intel
11228d56c805SYuri Pankov.%B 64 and IA-32 Architectures Software Developer’s Manual
11238d56c805SYuri Pankov.%V Volume 3
11248d56c805SYuri Pankov.Re
1125b13e60daSPeter Grehan.Sh HISTORY
1126b13e60daSPeter Grehan.Nm
1127b13e60daSPeter Grehanfirst appeared in
1128b13e60daSPeter Grehan.Fx 10.0 .
1129b13e60daSPeter Grehan.Sh AUTHORS
113001c2b8acSBaptiste Daroussin.An Neel Natu Aq Mt neel@freebsd.org
113101c2b8acSBaptiste Daroussin.An Peter Grehan Aq Mt grehan@freebsd.org
1132