xref: /freebsd/usr.sbin/bhyve/bhyve.8 (revision cd377eb3698f96c2a4aee5a76700d1d735ef25ca)
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*cd377eb3SJohn Baldwin.Dd May 1, 2018
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
359b1aa8d6SNeel Natu.Op Fl abehuwxACHPSWY
3601d822d3SRodney W. Grimes.Oo
3701d822d3SRodney W. Grimes.Fl c\~ Ns
3801d822d3SRodney W. Grimes.Oo
3901d822d3SRodney W. Grimes.Op Ar cpus= Ns
4001d822d3SRodney W. Grimes.Ar numcpus Ns
4101d822d3SRodney W. Grimes.Oc Ns
4201d822d3SRodney W. Grimes.Op Ar ,sockets=n Ns
4301d822d3SRodney W. Grimes.Op Ar ,cores=n Ns
4401d822d3SRodney W. Grimes.Op Ar ,threads=n
4501d822d3SRodney W. Grimes.Oc
46b13e60daSPeter Grehan.Op Fl g Ar gdbport
47cde1f5b8SJohn Baldwin.Op Fl l Ar lpcdev Ns Op , Ns Ar conf
486ee52c65SRoman Bogorodskiy.Op Fl m Ar memsize Ns Op Ar K|k|M|m|G|g|T|t
499b6155a2SNeel Natu.Op Fl p Ar vcpu:hostcpu
50b13e60daSPeter Grehan.Op Fl s Ar slot,emulation Ns Op , Ns Ar conf
51*cd377eb3SJohn Baldwin.Op Fl G Ar port
525749449dSJohn Baldwin.Op Fl U Ar uuid
53b13e60daSPeter Grehan.Ar vmname
54b13e60daSPeter Grehan.Sh DESCRIPTION
55b13e60daSPeter Grehan.Nm
567fca1ad5SGlen Barberis a hypervisor that runs guest operating systems inside a
57b13e60daSPeter Grehanvirtual machine.
58b13e60daSPeter Grehan.Pp
59b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and
60b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters.
61b13e60daSPeter Grehan.Pp
625c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must be loaded with
6384fe889cSChristian Brueffer.Xr bhyveload 8
64b13e60daSPeter Grehanor a similar boot loader before running
655c3ec676SGleb Smirnoff.Nm ,
665c3ec676SGleb Smirnoffotherwise, it is enough to run
675c3ec676SGleb Smirnoff.Nm
685c3ec676SGleb Smirnoffwith a boot ROM of choice.
69b13e60daSPeter Grehan.Pp
70b13e60daSPeter Grehan.Nm
71b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor
72b13e60daSPeter Grehanexit is detected.
73b13e60daSPeter Grehan.Sh OPTIONS
74b13e60daSPeter Grehan.Bl -tag -width 10n
75b13e60daSPeter Grehan.It Fl a
769777ca20SNeel NatuThe guest's local APIC is configured in xAPIC mode.
7784fe889cSChristian BruefferThe xAPIC mode is the default setting so this option is redundant.
7884fe889cSChristian BruefferIt will be deprecated in a future version.
79b13e60daSPeter Grehan.It Fl A
80b13e60daSPeter GrehanGenerate ACPI tables.
81b13e60daSPeter GrehanRequired for
82b13e60daSPeter Grehan.Fx Ns /amd64
83b13e60daSPeter Grehanguests.
845749449dSJohn Baldwin.It Fl b
855749449dSJohn BaldwinEnable a low-level console device supported by
86aca4343cSEdward Tomasz Napierala.Fx
87aca4343cSEdward Tomasz Napieralakernels compiled with
885749449dSJohn Baldwin.Cd "device bvmconsole" .
895749449dSJohn BaldwinThis option will be deprecated in a future version.
9001d822d3SRodney W. Grimes.It Fl c Op Ar setting ...
9101d822d3SRodney W. GrimesNumber of guest virtual CPUs
9201d822d3SRodney W. Grimesand/or the CPU topology.
9301d822d3SRodney W. GrimesThe default value for each of
9401d822d3SRodney W. Grimes.Ar numcpus ,
9501d822d3SRodney W. Grimes.Ar sockets ,
9601d822d3SRodney W. Grimes.Ar cores ,
9701d822d3SRodney W. Grimesand
9801d822d3SRodney W. Grimes.Ar threads
9901d822d3SRodney W. Grimesis 1.
10001d822d3SRodney W. GrimesThe current maximum number of guest virtual CPUs is 16.
10101d822d3SRodney W. GrimesIf
10201d822d3SRodney W. Grimes.Ar numcpus
10301d822d3SRodney W. Grimesis not specified then it will be calculated from the other arguments.
10401d822d3SRodney W. GrimesThe topology must be consistent in that the
10501d822d3SRodney W. Grimes.Ar numcpus
10601d822d3SRodney W. Grimesmust equal the product of
10701d822d3SRodney W. Grimes.Ar sockets ,
10801d822d3SRodney W. Grimes.Ar cores ,
10901d822d3SRodney W. Grimesand
11001d822d3SRodney W. Grimes.Ar threads .
11101d822d3SRodney W. GrimesIf a
11201d822d3SRodney W. Grimes.Ar setting
11301d822d3SRodney W. Grimesis specified more than once the last one has precedence.
1140dd10c00SNeel Natu.It Fl C
1150dd10c00SNeel NatuInclude guest memory in core file.
116cde1f5b8SJohn Baldwin.It Fl e
117cde1f5b8SJohn BaldwinForce
118cde1f5b8SJohn Baldwin.Nm
119cde1f5b8SJohn Baldwinto exit when a guest issues an access to an I/O port that is not emulated.
120cde1f5b8SJohn BaldwinThis is intended for debug purposes.
121b13e60daSPeter Grehan.It Fl g Ar gdbport
122b13e60daSPeter GrehanFor
1235749449dSJohn Baldwin.Fx
1245749449dSJohn Baldwinkernels compiled with
1255749449dSJohn Baldwin.Cd "device bvmdebug" ,
126b13e60daSPeter Grehanallow a remote kernel kgdb to be relayed to the guest kernel gdb stub
127b13e60daSPeter Grehanvia a local IPv4 address and this port.
128b13e60daSPeter GrehanThis option will be deprecated in a future version.
129*cd377eb3SJohn Baldwin.It Fl G Ar port
130*cd377eb3SJohn BaldwinStart a debug server that uses the GDB protocol to export guest state to a
131*cd377eb3SJohn Baldwindebugger.
132*cd377eb3SJohn BaldwinAn IPv4 TCP socket will be bound to the supplied
133*cd377eb3SJohn Baldwin.Ar port
134*cd377eb3SJohn Baldwinto listen for debugger connections.
135*cd377eb3SJohn BaldwinOnly a single debugger may be attached to the debug server at a time.
136*cd377eb3SJohn BaldwinIf
137*cd377eb3SJohn Baldwin.Ar port
138*cd377eb3SJohn Baldwinbegins with
139*cd377eb3SJohn Baldwin.Sq w ,
140*cd377eb3SJohn Baldwin.Nm
141*cd377eb3SJohn Baldwinwill pause execution at the first instruction waiting for a debugger to attach.
142cde1f5b8SJohn Baldwin.It Fl h
143cde1f5b8SJohn BaldwinPrint help message and exit.
144cde1f5b8SJohn Baldwin.It Fl H
145cde1f5b8SJohn BaldwinYield the virtual CPU thread when a HLT instruction is detected.
146cde1f5b8SJohn BaldwinIf this option is not specified, virtual CPUs will use 100% of a host CPU.
147cde1f5b8SJohn Baldwin.It Fl l Ar lpcdev Ns Op , Ns Ar conf
148cde1f5b8SJohn BaldwinAllow devices behind the LPC PCI-ISA bridge to be configured.
1499b1aa8d6SNeel NatuThe only supported devices are the TTY-class devices
1509b1aa8d6SNeel Natu.Ar com1
151cde1f5b8SJohn Baldwinand
1529b1aa8d6SNeel Natu.Ar com2
1539b1aa8d6SNeel Natuand the boot ROM device
1549b1aa8d6SNeel Natu.Ar bootrom .
1556ee52c65SRoman Bogorodskiy.It Fl m Ar memsize Ns Op Ar K|k|M|m|G|g|T|t
156cde1f5b8SJohn BaldwinGuest physical memory size in bytes.
157cde1f5b8SJohn BaldwinThis must be the same size that was given to
158cde1f5b8SJohn Baldwin.Xr bhyveload 8 .
159cde1f5b8SJohn Baldwin.Pp
160cde1f5b8SJohn BaldwinThe size argument may be suffixed with one of K, M, G or T (either upper
161cde1f5b8SJohn Baldwinor lower case) to indicate a multiple of kilobytes, megabytes, gigabytes,
162cde1f5b8SJohn Baldwinor terabytes.
163cde1f5b8SJohn BaldwinIf no suffix is given, the value is assumed to be in megabytes.
1646ee52c65SRoman Bogorodskiy.Pp
1656ee52c65SRoman Bogorodskiy.Ar memsize
1666ee52c65SRoman Bogorodskiydefaults to 256M.
1679b6155a2SNeel Natu.It Fl p Ar vcpu:hostcpu
1689b6155a2SNeel NatuPin guest's virtual CPU
1699b6155a2SNeel Natu.Em vcpu
1709b6155a2SNeel Natuto
1719b6155a2SNeel Natu.Em hostcpu .
172b13e60daSPeter Grehan.It Fl P
173b13e60daSPeter GrehanForce the guest virtual CPU to exit when a PAUSE instruction is detected.
174b13e60daSPeter Grehan.It Fl s Ar slot,emulation Ns Op , Ns Ar conf
175b13e60daSPeter GrehanConfigure a virtual PCI slot and function.
176b13e60daSPeter Grehan.Pp
17784fe889cSChristian Brueffer.Nm
178b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to
179b13e60daSPeter Grehanslots on the bus.
180b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions
181b13e60daSPeter Grehanper slot.
182b13e60daSPeter Grehan.Bl -tag -width 10n
183b13e60daSPeter Grehan.It Ar slot
18406db1b4aSNeel Natu.Ar pcislot[:function]
18506db1b4aSNeel Natu.Ar bus:pcislot:function
186b13e60daSPeter Grehan.Pp
187b13e60daSPeter GrehanThe
188b13e60daSPeter Grehan.Ar pcislot
18984fe889cSChristian Brueffervalue is 0 to 31.
19084fe889cSChristian BruefferThe optional
19184fe889cSChristian Brueffer.Ar function
19284fe889cSChristian Brueffervalue is 0 to 7.
19384fe889cSChristian BruefferThe optional
19406db1b4aSNeel Natu.Ar bus
19506db1b4aSNeel Natuvalue is 0 to 255.
19684fe889cSChristian BruefferIf not specified, the
19784fe889cSChristian Brueffer.Ar function
19884fe889cSChristian Brueffervalue defaults to 0.
19984fe889cSChristian BruefferIf not specified, the
20084fe889cSChristian Brueffer.Ar bus
20184fe889cSChristian Brueffervalue defaults to 0.
202b13e60daSPeter Grehan.It Ar emulation
203b13e60daSPeter Grehan.Bl -tag -width 10n
204b13e60daSPeter Grehan.It Li hostbridge | Li amd_hostbridge
205b13e60daSPeter Grehan.Pp
206b13e60daSPeter GrehanProvide a simple host bridge.
207b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest
208b13e60daSPeter Grehanoperating systems.
209b13e60daSPeter GrehanThe
210b13e60daSPeter Grehan.Li amd_hostbridge
211b13e60daSPeter Grehanemulation is identical but uses a PCI vendor ID of
212b13e60daSPeter Grehan.Li AMD .
213b13e60daSPeter Grehan.It Li passthru
214b13e60daSPeter GrehanPCI pass-through device.
215b13e60daSPeter Grehan.It Li virtio-net
216b13e60daSPeter GrehanVirtio network interface.
217a8be8e5eSRemko Lodder.It Li virtio-blk
218b13e60daSPeter GrehanVirtio block storage interface.
2199d0c4e17SPeter Grehan.It Li virtio-rnd
2209d0c4e17SPeter GrehanVirtio RNG interface.
2215121b6ccSRoman Bogorodskiy.It Li virtio-console
2225121b6ccSRoman BogorodskiyVirtio console interface, which exposes multiple ports
2235121b6ccSRoman Bogorodskiyto the guest in the form of simple char devices for simple IO
2245121b6ccSRoman Bogorodskiybetween the guest and host userspaces.
225098f5155SAlexander Motin.It Li ahci
226d6099860SMaxim KonovalovAHCI controller attached to arbitrary devices.
227b13e60daSPeter Grehan.It Li ahci-cd
228b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD.
229b13e60daSPeter Grehan.It Li ahci-hd
230b13e60daSPeter GrehanAHCI controller attached to a SATA hard-drive.
2319e749f25SAlexander Motin.It Li e1000
2329e749f25SAlexander MotinIntel e82545 network interface.
233b13e60daSPeter Grehan.It Li uart
234b13e60daSPeter GrehanPCI 16550 serial device.
235b13e60daSPeter Grehan.It Li lpc
2369b1aa8d6SNeel NatuLPC PCI-ISA bridge with COM1 and COM2 16550 serial ports and a boot ROM.
2379b1aa8d6SNeel NatuThe LPC bridge emulation can only be configured on bus 0.
2386c87a2c0SGleb Smirnoff.It Li fbuf
2396c87a2c0SGleb SmirnoffRaw framebuffer device attached to VNC server.
2406c87a2c0SGleb Smirnoff.It Li xhci
2415c3ec676SGleb SmirnoffeXtensible Host Controller Interface (xHCI) USB controller.
242b13e60daSPeter Grehan.El
243b13e60daSPeter Grehan.It Op Ar conf
244b13e60daSPeter GrehanThis optional parameter describes the backend for device emulations.
245b13e60daSPeter GrehanIf
246b13e60daSPeter Grehan.Ar conf
247b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be
248b13e60daSPeter Grehanconsidered unconnected.
249b13e60daSPeter Grehan.Pp
250b13e60daSPeter GrehanNetwork devices:
251b13e60daSPeter Grehan.Bl -tag -width 10n
252b13e60daSPeter Grehan.It Ar tapN Ns Op , Ns Ar mac=xx:xx:xx:xx:xx:xx
253b13e60daSPeter Grehan.It Ar vmnetN Ns Op , Ns Ar mac=xx:xx:xx:xx:xx:xx
254b13e60daSPeter Grehan.Pp
255b13e60daSPeter GrehanIf
256b13e60daSPeter Grehan.Ar mac
257b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the
258b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and
259b13e60daSPeter Grehanthe device name.
260b13e60daSPeter Grehan.Pp
261b13e60daSPeter GrehanThe MAC address is an ASCII string in
262b13e60daSPeter Grehan.Xr ethers 5
263b13e60daSPeter Grehanformat.
264b13e60daSPeter Grehan.El
265b13e60daSPeter Grehan.Pp
266b13e60daSPeter GrehanBlock storage devices:
267b13e60daSPeter Grehan.Bl -tag -width 10n
2684e43c1e8SNeel Natu.It Pa /filename Ns Oo , Ns Ar block-device-options Oc
2694e43c1e8SNeel Natu.It Pa /dev/xxx Ns Oo , Ns Ar block-device-options Oc
2704e43c1e8SNeel Natu.El
2714e43c1e8SNeel Natu.Pp
2724e43c1e8SNeel NatuThe
2734e43c1e8SNeel Natu.Ar block-device-options
2744e43c1e8SNeel Natuare:
275b13e60daSPeter Grehan.Bl -tag -width 8n
276b13e60daSPeter Grehan.It Li nocache
277b13e60daSPeter GrehanOpen the file with
278b13e60daSPeter Grehan.Dv O_DIRECT .
279b13e60daSPeter Grehan.It Li direct
280b13e60daSPeter GrehanOpen the file using
281b13e60daSPeter Grehan.Dv O_SYNC .
282b13e60daSPeter Grehan.It Li ro
283b13e60daSPeter GrehanForce the file to be opened read-only.
2844e43c1e8SNeel Natu.It Li sectorsize= Ns Ar logical Ns Oo / Ns Ar physical Oc
2854e43c1e8SNeel NatuSpecify the logical and physical sector sizes of the emulated disk.
2864e43c1e8SNeel NatuThe physical sector size is optional and is equal to the logical sector size
2874e43c1e8SNeel Natuif not explicitly specified.
288b13e60daSPeter Grehan.El
289b13e60daSPeter Grehan.Pp
290b13e60daSPeter GrehanTTY devices:
291b13e60daSPeter Grehan.Bl -tag -width 10n
292b13e60daSPeter Grehan.It Li stdio
293b13e60daSPeter GrehanConnect the serial port to the standard input and output of
29484fe889cSChristian Bruefferthe
29584fe889cSChristian Brueffer.Nm
29684fe889cSChristian Bruefferprocess.
297b13e60daSPeter Grehan.It Pa /dev/xxx
298b13e60daSPeter GrehanUse the host TTY device for serial port I/O.
299b13e60daSPeter Grehan.El
300b13e60daSPeter Grehan.Pp
3019b1aa8d6SNeel NatuBoot ROM device:
3029b1aa8d6SNeel Natu.Bl -tag -width 10n
3039b1aa8d6SNeel Natu.It Pa romfile
3049b1aa8d6SNeel NatuMap
3059b1aa8d6SNeel Natu.Ar romfile
3069b1aa8d6SNeel Natuin the guest address space reserved for boot firmware.
3079b1aa8d6SNeel Natu.El
3089b1aa8d6SNeel Natu.Pp
309b13e60daSPeter GrehanPass-through devices:
310b13e60daSPeter Grehan.Bl -tag -width 10n
311b13e60daSPeter Grehan.It Ns Ar slot Ns / Ns Ar bus Ns / Ns Ar function
312b13e60daSPeter GrehanConnect to a PCI device on the host at the selector described by
313b13e60daSPeter Grehan.Ar slot ,
314b13e60daSPeter Grehan.Ar bus ,
315b13e60daSPeter Grehanand
316b13e60daSPeter Grehan.Ar function
317b13e60daSPeter Grehannumbers.
318b13e60daSPeter Grehan.El
319b13e60daSPeter Grehan.Pp
3209b1aa8d6SNeel NatuGuest memory must be wired using the
3219b1aa8d6SNeel Natu.Fl S
3229b1aa8d6SNeel Natuoption when a pass-through device is configured.
3239b1aa8d6SNeel Natu.Pp
324b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the
325b13e60daSPeter Grehan.Va pptdev
326b13e60daSPeter Grehanloader variable as described in
327b13e60daSPeter Grehan.Xr vmm 4 .
3285121b6ccSRoman Bogorodskiy.Pp
3295121b6ccSRoman BogorodskiyVirtio console devices:
3305121b6ccSRoman Bogorodskiy.Bl -tag -width 10n
3315121b6ccSRoman Bogorodskiy.It Li port1= Ns Pa /path/to/port1.sock Ns ,anotherport= Ns Pa ...
3325121b6ccSRoman BogorodskiyA maximum of 16 ports per device can be created.
3335121b6ccSRoman BogorodskiyEvery port is named and corresponds to a Unix domain socket created by
3345121b6ccSRoman Bogorodskiy.Nm .
3355121b6ccSRoman Bogorodskiy.Nm
3365121b6ccSRoman Bogorodskiyaccepts at most one connection per port at a time.
3375121b6ccSRoman Bogorodskiy.Pp
3385121b6ccSRoman BogorodskiyLimitations:
3395121b6ccSRoman Bogorodskiy.Bl -bullet -offset 2n
3405121b6ccSRoman Bogorodskiy.It
3415121b6ccSRoman BogorodskiyDue to lack of destructors in
3425121b6ccSRoman Bogorodskiy.Nm ,
3435121b6ccSRoman Bogorodskiysockets on the filesystem must be cleaned up manually after
3445121b6ccSRoman Bogorodskiy.Nm
3455121b6ccSRoman Bogorodskiyexits.
3465121b6ccSRoman Bogorodskiy.It
3475121b6ccSRoman BogorodskiyThere is no way to use the "console port" feature, nor the console port
3480ee3a4b4SRoman Bogorodskiyresize at present.
3495121b6ccSRoman Bogorodskiy.It
3500ee3a4b4SRoman BogorodskiyEmergency write is advertised, but no-op at present.
3515121b6ccSRoman Bogorodskiy.El
3525121b6ccSRoman Bogorodskiy.El
3536c87a2c0SGleb Smirnoff.Pp
3545c3ec676SGleb SmirnoffFramebuffer devices:
3555c3ec676SGleb Smirnoff.Bl -tag -width 10n
356f4d34383SMarcelo Araujo.It Oo rfb= Ns Oo Ar IP: Oc Ns Ar port Oc Ns Oo ,w= Ns Ar width Oc Ns Oo ,h= Ns Ar height Oc Ns Oo ,vga= Ns Ar vgaconf Oc Ns Oo Ns ,wait Oc Ns Oo ,password= Ns Ar password Oc
3575c3ec676SGleb Smirnoff.Bl -tag -width 8n
3585c3ec676SGleb Smirnoff.It Ar IP:port
3595c3ec676SGleb SmirnoffAn
3605c3ec676SGleb Smirnoff.Ar IP
3615c3ec676SGleb Smirnoffaddress and a
3625c3ec676SGleb Smirnoff.Ar port
3635c3ec676SGleb SmirnoffVNC should listen on.
3646c87a2c0SGleb SmirnoffThe default is to listen on localhost IPv4 address and default VNC port 5900.
3655c3ec676SGleb SmirnoffListening on an IPv6 address is not supported.
3665c3ec676SGleb Smirnoff.It Ar width No and Ar height
3675c3ec676SGleb SmirnoffA display resolution, width and height, respectively.
3685c3ec676SGleb SmirnoffIf not specified, a default resolution of 1024x768 pixels will be used.
3695c3ec676SGleb SmirnoffMinimal supported resolution is 640x480 pixels,
3705c3ec676SGleb Smirnoffand maximum is 1920x1200 pixels.
3715c3ec676SGleb Smirnoff.It Ar vgaconf
3725c3ec676SGleb SmirnoffPossible values for this option are
3735c3ec676SGleb Smirnoff.Dq io
3745c3ec676SGleb Smirnoff(default),
3755c3ec676SGleb Smirnoff.Dq on
3765c3ec676SGleb Smirnoff, and
3775c3ec676SGleb Smirnoff.Dq off .
3785c3ec676SGleb SmirnoffPCI graphics cards have a dual personality in that they are
3795c3ec676SGleb Smirnoffstandard PCI devices with BAR addressing, but may also
3805c3ec676SGleb Smirnoffimplicitly decode legacy VGA I/O space
3815c3ec676SGleb Smirnoff.Pq Ad 0x3c0-3df
3825c3ec676SGleb Smirnoffand memory space
3835c3ec676SGleb Smirnoff.Pq 64KB at Ad 0xA0000 .
3845c3ec676SGleb SmirnoffThe default
3855c3ec676SGleb Smirnoff.Dq io
3865c3ec676SGleb Smirnoffoption should be used for guests that attempt to issue BIOS
3875c3ec676SGleb Smirnoffcalls which result in I/O port queries, and fail to boot if I/O decode is disabled.
3885c3ec676SGleb Smirnoff.Pp
3895c3ec676SGleb SmirnoffThe
3905c3ec676SGleb Smirnoff.Dq on
3915c3ec676SGleb Smirnoffoption should be used along with the CSM BIOS capability in UEFI
3925c3ec676SGleb Smirnoffto boot traditional BIOS guests that require the legacy VGA I/O and
3935c3ec676SGleb Smirnoffmemory regions to be available.
3945c3ec676SGleb Smirnoff.Pp
3955c3ec676SGleb SmirnoffThe
3965c3ec676SGleb Smirnoff.Dq off
3975c3ec676SGleb Smirnoffoption should be used for the UEFI guests that assume that
3985c3ec676SGleb SmirnoffVGA adapter is present if they detect the I/O ports.
3995c3ec676SGleb SmirnoffAn example of such a guest is
4005c3ec676SGleb Smirnoff.Ox
4015c3ec676SGleb Smirnoffin UEFI mode.
4025c3ec676SGleb Smirnoff.Pp
4035c3ec676SGleb SmirnoffPlease refer to the
4045c3ec676SGleb Smirnoff.Nm
4055c3ec676SGleb Smirnoff.Fx
4065c3ec676SGleb Smirnoffwiki page
4075c3ec676SGleb Smirnoff.Pq Lk https://wiki.freebsd.org/bhyve
4085c3ec676SGleb Smirnofffor configuration notes of particular guests.
4095c3ec676SGleb Smirnoff.It wait
4105c3ec676SGleb SmirnoffInstruct
4115c3ec676SGleb Smirnoff.Nm
4125c3ec676SGleb Smirnoffto only boot upon the initiation of a VNC connection, simplifying the installation
4135c3ec676SGleb Smirnoffof operating systems that require immediate keyboard input.
4145c3ec676SGleb SmirnoffThis can be removed for post-installation use.
415f4d34383SMarcelo Araujo.It password
416f4d34383SMarcelo AraujoThis type of authentication is known to be cryptographically weak and is not
417f4d34383SMarcelo Araujointended for use on untrusted networks.
418f4d34383SMarcelo AraujoMany implementations will want to use stronger security, such as running
419f4d34383SMarcelo Araujothe session over an encrypted channel provided by IPsec or SSH.
4205c3ec676SGleb Smirnoff.El
4216c87a2c0SGleb Smirnoff.El
4226c87a2c0SGleb Smirnoff.Pp
4235c3ec676SGleb SmirnoffxHCI USB devices:
4245c3ec676SGleb Smirnoff.Bl -tag -width 10n
4255c3ec676SGleb Smirnoff.It Li tablet
4265c3ec676SGleb SmirnoffA USB tablet device which provides precise cursor synchronization
4275c3ec676SGleb Smirnoffwhen using VNC.
4286c87a2c0SGleb Smirnoff.El
429b13e60daSPeter Grehan.El
4309b1aa8d6SNeel Natu.It Fl S
4319b1aa8d6SNeel NatuWire guest memory.
432c9747678SNeel Natu.It Fl u
433c9747678SNeel NatuRTC keeps UTC time.
4345749449dSJohn Baldwin.It Fl U Ar uuid
4355749449dSJohn BaldwinSet the universally unique identifier
4365749449dSJohn Baldwin.Pq UUID
4375749449dSJohn Baldwinin the guest's System Management BIOS System Information structure.
4385749449dSJohn BaldwinBy default a UUID is generated from the host's hostname and
4395749449dSJohn Baldwin.Ar vmname .
440851d84f1SNeel Natu.It Fl w
44184fe889cSChristian BruefferIgnore accesses to unimplemented Model Specific Registers (MSRs).
44284fe889cSChristian BruefferThis is intended for debug purposes.
443cde1f5b8SJohn Baldwin.It Fl W
444cde1f5b8SJohn BaldwinForce virtio PCI device emulations to use MSI interrupts instead of MSI-X
445cde1f5b8SJohn Baldwininterrupts.
4469777ca20SNeel Natu.It Fl x
4479777ca20SNeel NatuThe guest's local APIC is configured in x2APIC mode.
448b100acf2SNeel Natu.It Fl Y
449b100acf2SNeel NatuDisable MPtable generation.
450b13e60daSPeter Grehan.It Ar vmname
451b13e60daSPeter GrehanAlphanumeric name of the guest.
452b13e60daSPeter GrehanThis should be the same as that created by
453b13e60daSPeter Grehan.Xr bhyveload 8 .
454b13e60daSPeter Grehan.El
455*cd377eb3SJohn Baldwin.Sh DEBUG SERVER
456*cd377eb3SJohn BaldwinThe current debug server provides limited support for debuggers.
457*cd377eb3SJohn Baldwin.Ss Registers
458*cd377eb3SJohn BaldwinEach virtual CPU is exposed to the debugger as a thread.
459*cd377eb3SJohn Baldwin.Pp
460*cd377eb3SJohn BaldwinGeneral purpose registers can be queried for each virtual CPU, but other
461*cd377eb3SJohn Baldwinregisters such as floating-point and system registers cannot be queried.
462*cd377eb3SJohn Baldwin.Ss Memory
463*cd377eb3SJohn BaldwinMemory (including memory mapped I/O regions) can be read by the debugger,
464*cd377eb3SJohn Baldwinbut not written.  Memory operations use virtual addresses that are resolved
465*cd377eb3SJohn Baldwinto physical addresses via the current virtual CPU's active address translation.
466*cd377eb3SJohn Baldwin.Ss Control
467*cd377eb3SJohn BaldwinThe running guest can be interrupted by the debugger at any time
468*cd377eb3SJohn Baldwin.Pq for example, by pressing Ctrl-C in the debugger .
469*cd377eb3SJohn Baldwin.Pp
470*cd377eb3SJohn BaldwinSingle stepping is only supported on Intel CPUs supporting the MTRAP VM exit.
471*cd377eb3SJohn Baldwin.Pp
472*cd377eb3SJohn BaldwinBreakpoints are not supported.
473c2202d41SRoman Bogorodskiy.Sh SIGNAL HANDLING
474c2202d41SRoman Bogorodskiy.Nm
475c2202d41SRoman Bogorodskiydeals with the following signals:
476c2202d41SRoman Bogorodskiy.Pp
477c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact
478c2202d41SRoman Bogorodskiy.It SIGTERM
479c2202d41SRoman BogorodskiyTrigger ACPI poweroff for a VM
480c2202d41SRoman Bogorodskiy.El
481c2202d41SRoman Bogorodskiy.Sh EXIT STATUS
482c2202d41SRoman BogorodskiyExit status indicates how the VM was terminated:
483c2202d41SRoman Bogorodskiy.Pp
484c2202d41SRoman Bogorodskiy.Bl -tag -width indent -compact
485c2202d41SRoman Bogorodskiy.It 0
486c2202d41SRoman Bogorodskiyrebooted
487c2202d41SRoman Bogorodskiy.It 1
488c2202d41SRoman Bogorodskiypowered off
489c2202d41SRoman Bogorodskiy.It 2
490c2202d41SRoman Bogorodskiyhalted
491c2202d41SRoman Bogorodskiy.It 3
492c2202d41SRoman Bogorodskiytriple fault
493c2202d41SRoman Bogorodskiy.El
494b13e60daSPeter Grehan.Sh EXAMPLES
4955c3ec676SGleb SmirnoffIf not using a boot ROM, the guest operating system must have been loaded with
49684fe889cSChristian Brueffer.Xr bhyveload 8
497b13e60daSPeter Grehanor a similar boot loader before
498b13e60daSPeter Grehan.Xr bhyve 4
499b13e60daSPeter Grehancan be run.
5005c3ec676SGleb SmirnoffOtherwise, the boot loader is not needed.
501b13e60daSPeter Grehan.Pp
502b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio
503b13e60daSPeter Grehanblock device backed by the
504b13e60daSPeter Grehan.Pa /my/image
505b13e60daSPeter Grehanfilesystem image, and a serial port for the console:
506b13e60daSPeter Grehan.Bd -literal -offset indent
507b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\
508b13e60daSPeter Grehan  -l com1,stdio -A -H -P -m 1G vm1
509b13e60daSPeter Grehan.Ed
510b13e60daSPeter Grehan.Pp
511b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which
512b13e60daSPeter Grehanhas a MAC address specified:
513b13e60daSPeter Grehan.Bd -literal -offset indent
514b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\
515b13e60daSPeter Grehan  -s 2:1,virtio-net,tap1 \\
516b13e60daSPeter Grehan  -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\
517b13e60daSPeter Grehan  -s 3,virtio-blk,/my/image -l com1,stdio \\
518b13e60daSPeter Grehan  -A -H -P -m 24G bigvm
519b13e60daSPeter Grehan.Ed
520b13e60daSPeter Grehan.Pp
521b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI
522b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console
523b13e60daSPeter Grehanport connected to an
524b13e60daSPeter Grehan.Xr nmdm 4
52584fe889cSChristian Brueffernull-modem device.
526b13e60daSPeter Grehan.Bd -literal -offset indent
527a7ab1463SAlexander Motinbhyve -c 4 \\
528b13e60daSPeter Grehan  -s 0,amd_hostbridge -s 1,lpc \\
529098f5155SAlexander Motin  -s 1:0,ahci,hd:/images/disk.1,hd:/images/disk.2,\\
530098f5155SAlexander Motinhd:/images/disk.3,hd:/images/disk.4,\\
531098f5155SAlexander Motinhd:/images/disk.5,hd:/images/disk.6,\\
532098f5155SAlexander Motinhd:/images/disk.7,hd:/images/disk.8,\\
533098f5155SAlexander Motincd:/images/install.iso \\
534b13e60daSPeter Grehan  -s 3,virtio-net,tap0 \\
535b13e60daSPeter Grehan  -l com1,/dev/nmdm0A \\
536b13e60daSPeter Grehan  -A -H -P -m 8G
537b13e60daSPeter Grehan.Ed
5385c3ec676SGleb Smirnoff.Pp
5395c3ec676SGleb SmirnoffRun a UEFI virtual machine with a display resolution of 800 by 600 pixels
5405c3ec676SGleb Smirnoffthat can be accessed via VNC at: 0.0.0.0:5900.
5415c3ec676SGleb Smirnoff.Bd -literal -offset indent
5425c3ec676SGleb Smirnoffbhyve -c 2 -m 4G -w -H \\
5435c3ec676SGleb Smirnoff  -s 0,hostbridge \\
5445c3ec676SGleb Smirnoff  -s 3,ahci-cd,/path/to/uefi-OS-install.iso \\
5455c3ec676SGleb Smirnoff  -s 4,ahci-hd,disk.img \\
5465c3ec676SGleb Smirnoff  -s 5,virtio-net,tap0 \\
5475c3ec676SGleb Smirnoff  -s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \\
5485c3ec676SGleb Smirnoff  -s 30,xhci,tablet \\
5495c3ec676SGleb Smirnoff  -s 31,lpc -l com1,stdio \\
5505c3ec676SGleb Smirnoff  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \\
5515c3ec676SGleb Smirnoff   uefivm
5525c3ec676SGleb Smirnoff.Ed
553b13e60daSPeter Grehan.Sh SEE ALSO
554b13e60daSPeter Grehan.Xr bhyve 4 ,
555b13e60daSPeter Grehan.Xr nmdm 4 ,
556b13e60daSPeter Grehan.Xr vmm 4 ,
557b13e60daSPeter Grehan.Xr ethers 5 ,
55805f7cd8bSJoel Dahl.Xr bhyvectl 8 ,
55905f7cd8bSJoel Dahl.Xr bhyveload 8
560b13e60daSPeter Grehan.Sh HISTORY
561b13e60daSPeter Grehan.Nm
562b13e60daSPeter Grehanfirst appeared in
563b13e60daSPeter Grehan.Fx 10.0 .
564b13e60daSPeter Grehan.Sh AUTHORS
56501c2b8acSBaptiste Daroussin.An Neel Natu Aq Mt neel@freebsd.org
56601c2b8acSBaptiste Daroussin.An Peter Grehan Aq Mt grehan@freebsd.org
567