xref: /freebsd/usr.sbin/bhyve/bhyve.8 (revision 05f7cd8bce27465437e9393f366ad113ee12ffbf)
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.\"
27b13e60daSPeter Grehan.Dd December 12, 2013
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
35b13e60daSPeter Grehan.Op Fl aehAHPW
36b13e60daSPeter Grehan.Op Fl c Ar numcpus
37b13e60daSPeter Grehan.Op Fl g Ar gdbport
38b13e60daSPeter Grehan.Op Fl p Ar pinnedcpu
39b13e60daSPeter Grehan.Op Fl s Ar slot,emulation Ns Op , Ns Ar conf
40b13e60daSPeter Grehan.Op Fl S Ar slot,emulation Ns Op , Ns Ar conf
41b13e60daSPeter Grehan.Op Fl l Ar lpcdev Ns Op , Ns Ar conf
42b13e60daSPeter Grehan.Ar vmname
43b13e60daSPeter Grehan.Sh DESCRIPTION
44b13e60daSPeter Grehan.Nm
45b13e60daSPeter Grehanis an experimental hypervisor that runs guest operating systems inside a
46b13e60daSPeter Grehanvirtual machine.
47b13e60daSPeter Grehan.Pp
48b13e60daSPeter GrehanParameters such as the number of virtual CPUs, amount of guest memory, and
49b13e60daSPeter GrehanI/O connectivity can be specified with command-line parameters.
50b13e60daSPeter Grehan.Pp
51b13e60daSPeter GrehanThe guest operating system must be loaded with
52b13e60daSPeter Grehan.Xr bhyveload 4
53b13e60daSPeter Grehanor a similar boot loader before running
54b13e60daSPeter Grehan.Nm .
55b13e60daSPeter Grehan.Pp
56b13e60daSPeter Grehan.Nm
57b13e60daSPeter Grehanruns until the guest operating system reboots or an unhandled hypervisor
58b13e60daSPeter Grehanexit is detected.
59b13e60daSPeter Grehan.Sh OPTIONS
60b13e60daSPeter Grehan.Bl -tag -width 10n
61b13e60daSPeter Grehan.It Fl a
62b13e60daSPeter GrehanDisallow use of the local APIC in X2APIC mode.
63b13e60daSPeter Grehan.It Fl A
64b13e60daSPeter GrehanGenerate ACPI tables.
65b13e60daSPeter GrehanRequired for
66b13e60daSPeter Grehan.Fx Ns /amd64
67b13e60daSPeter Grehanguests.
68b13e60daSPeter Grehan.It Fl c Ar numcpus
69b13e60daSPeter GrehanNumber of guest virtual CPUs.
70b13e60daSPeter GrehanThe default is 1 and the maximum is 16.
71b13e60daSPeter Grehan.It Fl H
72b13e60daSPeter GrehanYield the virtual CPU thread when a HLT instruction is detected.
73b13e60daSPeter GrehanIf this option is not specified, virtual CPUs will use 100% of a host CPU.
74b13e60daSPeter Grehan.It Fl g Ar gdbport
75b13e60daSPeter GrehanFor
76b13e60daSPeter Grehan.Fx Ns /amd64 kernels compiled with
77b13e60daSPeter Grehan.Cd "option bvmdebug" ,
78b13e60daSPeter Grehanallow a remote kernel kgdb to be relayed to the guest kernel gdb stub
79b13e60daSPeter Grehanvia a local IPv4 address and this port.
80b13e60daSPeter GrehanThis option will be deprecated in a future version.
81b13e60daSPeter Grehan.It Fl p Ar pinnedcpu
82b13e60daSPeter GrehanForce guest virtual CPUs to be pinned to host CPUs.
83b13e60daSPeter GrehanVirtual CPU
84b13e60daSPeter Grehan.Em n
85b13e60daSPeter Grehanis pinned to host CPU
86b13e60daSPeter Grehan.Em pinnedcpu+n .
87b13e60daSPeter Grehan.It Fl P
88b13e60daSPeter GrehanForce the guest virtual CPU to exit when a PAUSE instruction is detected.
89b13e60daSPeter Grehan.It Fl W
90b13e60daSPeter GrehanForce virtio PCI device emulations to use MSI interrupts instead of MSI-X
91b13e60daSPeter Grehaninterrupts.
92b13e60daSPeter Grehan.It Fl s Ar slot,emulation Ns Op , Ns Ar conf
93b13e60daSPeter GrehanConfigure a virtual PCI slot and function.
94b13e60daSPeter Grehan.Pp
95b13e60daSPeter Grehan.Nm bhyve
96b13e60daSPeter Grehanprovides PCI bus emulation and virtual devices that can be attached to
97b13e60daSPeter Grehanslots on the bus.
98b13e60daSPeter GrehanThere are 32 available slots, with the option of providing up to 8 functions
99b13e60daSPeter Grehanper slot.
100b13e60daSPeter Grehan.Bl -tag -width 10n
101b13e60daSPeter Grehan.It Ar slot
102b13e60daSPeter Grehan.Ar pcislot Ns Op Ar :function
103b13e60daSPeter Grehan.Pp
104b13e60daSPeter GrehanThe
105b13e60daSPeter Grehan.Ar pcislot
106b13e60daSPeter Grehanvalue is 0 to 31 and the optional function value is 0 to 7.
107b13e60daSPeter GrehanIf not specified, the function value defaults to 0.
108b13e60daSPeter Grehan.It Ar emulation
109b13e60daSPeter Grehan.Bl -tag -width 10n
110b13e60daSPeter Grehan.It Li hostbridge | Li amd_hostbridge
111b13e60daSPeter Grehan.Pp
112b13e60daSPeter GrehanProvide a simple host bridge.
113b13e60daSPeter GrehanThis is usually configured at slot 0, and is required by most guest
114b13e60daSPeter Grehanoperating systems.
115b13e60daSPeter GrehanThe
116b13e60daSPeter Grehan.Li amd_hostbridge
117b13e60daSPeter Grehanemulation is identical but uses a PCI vendor ID of
118b13e60daSPeter Grehan.Li AMD .
119b13e60daSPeter Grehan.It Li passthru
120b13e60daSPeter GrehanPCI pass-through device.
121b13e60daSPeter Grehan.It Li virtio-net
122b13e60daSPeter GrehanVirtio network interface.
123b13e60daSPeter Grehan.It Li virtio-block
124b13e60daSPeter GrehanVirtio block storage interface.
125b13e60daSPeter Grehan.It Li ahci-cd
126b13e60daSPeter GrehanAHCI controller attached to an ATAPI CD/DVD.
127b13e60daSPeter Grehan.It Li ahci-hd
128b13e60daSPeter GrehanAHCI controller attached to a SATA hard-drive.
129b13e60daSPeter Grehan.It Li uart
130b13e60daSPeter GrehanPCI 16550 serial device.
131b13e60daSPeter Grehan.It Li lpc
132b13e60daSPeter GrehanLPC PCI-ISA bridge with COM1 and COM2 16550 serial ports.
133b13e60daSPeter Grehan.El
134b13e60daSPeter Grehan.It Op Ar conf
135b13e60daSPeter GrehanThis optional parameter describes the backend for device emulations.
136b13e60daSPeter GrehanIf
137b13e60daSPeter Grehan.Ar conf
138b13e60daSPeter Grehanis not specified, the device emulation has no backend and can be
139b13e60daSPeter Grehanconsidered unconnected.
140b13e60daSPeter Grehan.Pp
141b13e60daSPeter GrehanNetwork devices:
142b13e60daSPeter Grehan.Bl -tag -width 10n
143b13e60daSPeter Grehan.It Ar tapN Ns Op , Ns Ar mac=xx:xx:xx:xx:xx:xx
144b13e60daSPeter Grehan.It Ar vmnetN Ns Op , Ns Ar mac=xx:xx:xx:xx:xx:xx
145b13e60daSPeter Grehan.Pp
146b13e60daSPeter GrehanIf
147b13e60daSPeter Grehan.Ar mac
148b13e60daSPeter Grehanis not specified, the MAC address is derived from a fixed OUI and the
149b13e60daSPeter Grehanremaining bytes from an MD5 hash of the slot and function numbers and
150b13e60daSPeter Grehanthe device name.
151b13e60daSPeter Grehan.Pp
152b13e60daSPeter GrehanThe MAC address is an ASCII string in
153b13e60daSPeter Grehan.Xr ethers 5
154b13e60daSPeter Grehanformat.
155b13e60daSPeter Grehan.El
156b13e60daSPeter Grehan.Pp
157b13e60daSPeter GrehanBlock storage devices:
158b13e60daSPeter Grehan.Bl -tag -width 10n
159b13e60daSPeter Grehan.It Pa /filename Ns Oo , Ns Li nocache Oc Ns Oo , Ns Li direct Oc Ns Oo , Ns Li ro Oc
160b13e60daSPeter Grehan.It Pa /dev/xxx Ns Oo , Ns Ar nocache Oc Ns Oo , Ns Ar direct Oc Ns Oo , Ns Ar ro Oc
161b13e60daSPeter Grehan.Bl -tag -width 8n
162b13e60daSPeter Grehan.It Li nocache
163b13e60daSPeter GrehanOpen the file with
164b13e60daSPeter Grehan.Dv O_DIRECT .
165b13e60daSPeter Grehan.It Li direct
166b13e60daSPeter GrehanOpen the file using
167b13e60daSPeter Grehan.Dv O_SYNC .
168b13e60daSPeter Grehan.It Li ro
169b13e60daSPeter GrehanForce the file to be opened read-only.
170b13e60daSPeter Grehan.El
171b13e60daSPeter Grehan.Pp
172b13e60daSPeter GrehanThe
173b13e60daSPeter Grehan.Li nocache ,
174b13e60daSPeter Grehan.Li direct ,
175b13e60daSPeter Grehanand
176b13e60daSPeter Grehan.Li ro
177b13e60daSPeter Grehanoptions are not available for virtio block devices.
178b13e60daSPeter Grehan.El
179b13e60daSPeter Grehan.Pp
180b13e60daSPeter GrehanTTY devices:
181b13e60daSPeter Grehan.Bl -tag -width 10n
182b13e60daSPeter Grehan.It Li stdio
183b13e60daSPeter GrehanConnect the serial port to the standard input and output of
184b13e60daSPeter Grehanthe bhyve process.
185b13e60daSPeter Grehan.It Pa /dev/xxx
186b13e60daSPeter GrehanUse the host TTY device for serial port I/O.
187b13e60daSPeter Grehan.El
188b13e60daSPeter Grehan.Pp
189b13e60daSPeter GrehanPass-through devices:
190b13e60daSPeter Grehan.Bl -tag -width 10n
191b13e60daSPeter Grehan.It Ns Ar slot Ns / Ns Ar bus Ns / Ns Ar function
192b13e60daSPeter GrehanConnect to a PCI device on the host at the selector described by
193b13e60daSPeter Grehan.Ar slot ,
194b13e60daSPeter Grehan.Ar bus ,
195b13e60daSPeter Grehanand
196b13e60daSPeter Grehan.Ar function
197b13e60daSPeter Grehannumbers.
198b13e60daSPeter Grehan.El
199b13e60daSPeter Grehan.Pp
200b13e60daSPeter GrehanThe host device must have been reserved at boot-time using the
201b13e60daSPeter Grehan.Va pptdev
202b13e60daSPeter Grehanloader variable as described in
203b13e60daSPeter Grehan.Xr vmm 4 .
204b13e60daSPeter Grehan.El
205b13e60daSPeter Grehan.It Fl S Ar slot , Ns Ar emulation Ns Op , Ns Ar conf
206b13e60daSPeter GrehanIdentical to the -s option except the device is instructed to use legacy
207b13e60daSPeter GrehanISA addresses if possible.
208b13e60daSPeter GrehanCurrently this only has an effect with the
209b13e60daSPeter Grehan.Li uart
210b13e60daSPeter Grehandevice emulation.
211b13e60daSPeter GrehanThis option will be deprecated in a future version.
212b13e60daSPeter Grehan.It Fl l Ar lpcdev Ns Op , Ns Ar conf
213b13e60daSPeter GrehanAllow devices behind the LPC PCI-ISA bridge to be configured.
214b13e60daSPeter GrehanThe only supported devices are the TTY-class devices,
215b13e60daSPeter Grehan.Li com1
216b13e60daSPeter Grehanand
217b13e60daSPeter Grehan.Li com2 .
218b13e60daSPeter Grehan.It Fl m Ar size Ns Op Ar K|k|M|m|G|g|T|t
219b13e60daSPeter GrehanGuest physical memory size in bytes.
220b13e60daSPeter GrehanThis must be the same size that was given to
221b13e60daSPeter Grehan.Xr bhyveload 8 .
222b13e60daSPeter Grehan.Pp
223b13e60daSPeter GrehanThe size argument may be suffixed with one of K, M, G or T (either upper
224b13e60daSPeter Grehanor lower case) to indicate a multiple of kilobytes, megabytes, gigabytes,
225b13e60daSPeter Grehanor terabytes.
226b13e60daSPeter GrehanIf no suffix is given, the value is assumed to be in megabytes.
227b13e60daSPeter Grehan.It Fl e
228b13e60daSPeter GrehanForce
229b13e60daSPeter Grehan.Nm
230b13e60daSPeter Grehanto exit when a guest issues an access to an I/O port that is not emulated.
231b13e60daSPeter GrehanThis is intended for debug purposes.
232b13e60daSPeter Grehan.It Fl h
233b13e60daSPeter GrehanPrint help message and exit.
234b13e60daSPeter Grehan.It Ar vmname
235b13e60daSPeter GrehanAlphanumeric name of the guest.
236b13e60daSPeter GrehanThis should be the same as that created by
237b13e60daSPeter Grehan.Xr bhyveload 8 .
238b13e60daSPeter Grehan.El
239b13e60daSPeter Grehan.Sh EXAMPLES
240b13e60daSPeter GrehanThe guest operating system must have been loaded with
241b13e60daSPeter Grehan.Xr bhyveload 4
242b13e60daSPeter Grehanor a similar boot loader before
243b13e60daSPeter Grehan.Xr bhyve 4
244b13e60daSPeter Grehancan be run.
245b13e60daSPeter Grehan.Pp
246b13e60daSPeter GrehanTo run a virtual machine with 1GB of memory, two virtual CPUs, a virtio
247b13e60daSPeter Grehanblock device backed by the
248b13e60daSPeter Grehan.Pa /my/image
249b13e60daSPeter Grehanfilesystem image, and a serial port for the console:
250b13e60daSPeter Grehan.Bd -literal -offset indent
251b13e60daSPeter Grehanbhyve -c 2 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\
252b13e60daSPeter Grehan  -l com1,stdio -A -H -P -m 1G vm1
253b13e60daSPeter Grehan.Ed
254b13e60daSPeter Grehan.Pp
255b13e60daSPeter GrehanRun a 24GB single-CPU virtual machine with three network ports, one of which
256b13e60daSPeter Grehanhas a MAC address specified:
257b13e60daSPeter Grehan.Bd -literal -offset indent
258b13e60daSPeter Grehanbhyve -s 0,hostbridge -s 1,lpc -s 2:0,virtio-net,tap0 \\
259b13e60daSPeter Grehan  -s 2:1,virtio-net,tap1 \\
260b13e60daSPeter Grehan  -s 2:2,virtio-net,tap2,mac=00:be:fa:76:45:00 \\
261b13e60daSPeter Grehan  -s 3,virtio-blk,/my/image -l com1,stdio \\
262b13e60daSPeter Grehan  -A -H -P -m 24G bigvm
263b13e60daSPeter Grehan.Ed
264b13e60daSPeter Grehan.Pp
265b13e60daSPeter GrehanRun an 8GB quad-CPU virtual machine with 8 AHCI SATA disks, an AHCI ATAPI
266b13e60daSPeter GrehanCD-ROM, a single virtio network port, an AMD hostbridge, and the console
267b13e60daSPeter Grehanport connected to an
268b13e60daSPeter Grehan.Xr nmdm 4
269b13e60daSPeter Grehannull-model device.
270b13e60daSPeter Grehan.Bd -literal -offset indent
271b13e60daSPeter Grehanbhyve -c 4 \e\
272b13e60daSPeter Grehan  -s 0,amd_hostbridge -s 1,lpc \\
273b13e60daSPeter Grehan  -s 1:0,ahci-hd,/images/disk.1 \\
274b13e60daSPeter Grehan  -s 1:1,ahci-hd,/images/disk.2 \\
275b13e60daSPeter Grehan  -s 1:2,ahci-hd,/images/disk.3 \\
276b13e60daSPeter Grehan  -s 1:3,ahci-hd,/images/disk.4 \\
277b13e60daSPeter Grehan  -s 1:4,ahci-hd,/images/disk.5 \\
278b13e60daSPeter Grehan  -s 1:5,ahci-hd,/images/disk.6 \\
279b13e60daSPeter Grehan  -s 1:6,ahci-hd,/images/disk.7 \\
280b13e60daSPeter Grehan  -s 1:7,ahci-hd,/images/disk.8 \\
281b13e60daSPeter Grehan  -s 2,ahci-cd,/images.install.iso \\
282b13e60daSPeter Grehan  -s 3,virtio-net,tap0 \\
283b13e60daSPeter Grehan  -l com1,/dev/nmdm0A \\
284b13e60daSPeter Grehan  -A -H -P -m 8G
285b13e60daSPeter Grehan.Ed
286b13e60daSPeter Grehan.Sh SEE ALSO
287b13e60daSPeter Grehan.Xr bhyve 4 ,
288b13e60daSPeter Grehan.Xr nmdm 4 ,
289b13e60daSPeter Grehan.Xr vmm 4 ,
290b13e60daSPeter Grehan.Xr ethers 5 ,
291*05f7cd8bSJoel Dahl.Xr bhyvectl 8 ,
292*05f7cd8bSJoel Dahl.Xr bhyveload 8
293b13e60daSPeter Grehan.Sh HISTORY
294b13e60daSPeter Grehan.Nm
295b13e60daSPeter Grehanfirst appeared in
296b13e60daSPeter Grehan.Fx 10.0 .
297b13e60daSPeter Grehan.Sh AUTHORS
298b13e60daSPeter Grehan.An Neel Natu Aq neel@freebsd.org
299b13e60daSPeter Grehan.An Peter Grehan Aq grehan@freebsd.org
300