# Unable to launch virtual machine with bhyve



## z662 (Jan 21, 2015)

I am unable to launch a virtual machine with bhyve.  I believe my CPU meets the requirements based on my `dmesg` output.  I have followed the steps in the handbook here:

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/virtualization-host-bhyve.html

Below is the output of `dmesg` and `ifconfig`

Please let me know how I can fix/troubleshoot this.


```
brad@mercury:/home/brad$ dmesg | grep -i popcnt
  Features2=0x802009<SSE3,MON,CX16,POPCNT>
brad@mercury:/home/brad$ dmesg | grep -i cpu
CPU: AMD Phenom(tm) II X4 945 Processor (3000.13-MHz K8-class CPU)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP): APIC ID:  3
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
cpu2: <ACPI CPU> on acpi0
cpu3: <ACPI CPU> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
hwpstate0: <Cool`n'Quiet 2.0> on cpu0
SMP: AP CPU #3 Launched!
SMP: AP CPU #2 Launched!
SMP: AP CPU #1 Launched!

brad@mercury:/home/brad$ ifconfig
re0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
  options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
  ether b8:97:5a:23:26:32
  nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
  media: Ethernet autoselect (none)
  status: no carrier
re1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
  options=82099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
  ether 00:14:d1:2b:9c:b5
  inet 192.168.0.101 netmask 0xffffff00 broadcast 192.168.0.255
  inet 192.168.0.103 netmask 0xffffffff broadcast 192.168.0.103
  inet 192.168.0.102 netmask 0xffffffff broadcast 192.168.0.102
  nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
  media: Ethernet autoselect (1000baseT <full-duplex>)
  status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
  options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
  inet6 ::1 prefixlen 128
  inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
  inet 127.0.0.1 netmask 0xff000000
  nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
  ether 02:fb:38:44:1d:00
  nd6 options=9<PERFORMNUD,IFDISABLED>
  id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
  maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
  root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
  member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
  ifmaxaddr 0 port 5 priority 128 path cost 2000000
  member: re1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
  ifmaxaddr 0 port 2 priority 128 path cost 20000
tap0: flags=8902<BROADCAST,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
  options=80000<LINKSTATE>
  ether 00:bd:f3:50:00:00
  nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
  media: Ethernet autoselect
  status: no carrier
brad@mercury:/home/brad$ sudo sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 1024M -t tap0 -d guest.img -i -I FreeBSD-10.1-RELEASE-amd64-bootonly.iso virtualPlex
Password:
Launching virtual machine "virtualPlex" ...
vm_create: Device not configured
brad@mercury:/home/brad$
```


----------



## junovitch@ (Jan 22, 2015)

Shucks.  AMD support in Bhyve came in SVN revision 276403 [Link 1].  This was after 10.1-RELEASE so you would have to run this on one of the STABLE snapshot images [Link 2].

[1] https://svnweb.freebsd.org/base?view=revision&revision=276403

[2] ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/


----------



## z662 (Jan 22, 2015)

Can I do upgrade via freebsd-update(8)?


----------



## SirDice (Jan 22, 2015)

No, you can only update to a -RELEASE version with freebsd-update(8). If you want to upgrade to -STABLE you will have to build world from source.


----------



## z662 (Jan 22, 2015)

Do you have a ballpark idea when that version that supports bhyve will be in a RELEASE?  Perhaps 10.2?  I think I would prefer to stick with RELEASE unless it will be many months until that functionality is available.


----------



## SirDice (Jan 22, 2015)

The current -RELEASE versions will not change, they'll only receive security updates. The first -RELEASE that would include this feature would indeed be 10.2.


----------



## z662 (Jan 24, 2015)

I followed these instructions (1-13): https://www.freebsd.org/doc/handbook/makeworld.html
after updating my svn repository to follow STABLE but the changes do not seem to have taken effect.  To update svn I followed the steps here:  https://www.freebsd.org/doc/handbook/svn.html


```
brad@mercury:/home/brad$ uname -a
FreeBSD mercury.milkyway 10.1-RELEASE-p4 FreeBSD 10.1-RELEASE-p4 #0: Fri Jan 23 22:34:31 EST 2015  root@mercury.milkyway:/usr/obj/usr/src/sys/GENERIC  amd64
brad@mercury:/home/brad$
```

I also still get the same error with `bhyve`

```
brad@mercury:/home/brad$ sudo sh /usr/share/examples/bhyve/vmrun.sh -c 1 -m 1024M -t tap0 -d /usr/jails/plex.img -i -I FreeBSD-10.1-RELEASE-amd64-bootonly.iso virtualPlex
Password:
Launching virtual machine "virtualPlex" ...
vm_create: Device not configured
```


----------



## chrbr (Jan 24, 2015)

Please do `cd /usr/src` assuming that this is where the repository is located. Then launch `svn info`. It should output which repository is followed and so on. Please check if this meets your expectations.


----------



## z662 (Jan 24, 2015)

I believe so:


```
brad@mercury:/usr/src$ sudo !!
sudo svn info
Password:
Path: .
Working Copy Root Path: /usr/src
URL: https://svn0.us-east.freebsd.org/base/stable/10
Relative URL: ^/stable/10
Repository Root: https://svn0.us-east.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 277636
Node Kind: directory
Schedule: normal
Last Changed Author: smh
Last Changed Rev: 277628
Last Changed Date: 2015-01-23 19:40:42 -0500 (Fri, 23 Jan 2015)

brad@mercury:/usr/src$
```


----------



## chrbr (Jan 24, 2015)

This looks ok. Please check /usr/obj/usr/src/sys/GENERIC/Makefile. There should be a line showing something close to:

```
# $FreeBSD: stable/10/sys/conf/Makefile.amd64 254967 2013-08-27 18:35:04Z rdivacky $
```
At least there should be a note about stable. If this is OK it might be worth to check the age of the files in /boot/kernel to be sure that the age matches with the time of installation.


----------



## junovitch@ (Jan 25, 2015)

Currently, /usr/src/sys/conf/newvers.sh should list the following:

```
TYPE="FreeBSD"
REVISION="10.1"
BRANCH="STABLE"
```

`freebsd-version -u -k` should say both kernel and world are the same.

```
10.1-STABLE
10.1-STABLE
```

`uname -a` would also list 10.1-STABLE but something isn't quite right as yours still says RELEASE.  The date shown however was updated so appears you built from RELEASE.  If you can post the outputs of the above commands that would be good.  Maybe /usr/src wasn't empty before doing a checkout.  Doing a `rm -r /usr/src; cd /usr; svnlite co <URL here>` to get a clean checkout may be the most expedient solution.[/CMD]


----------



## z662 (Jan 25, 2015)

Nothing mentions stable.  I posted the first 40 lines of my Makefile.  


```
brad@mercury:/usr/obj$ sudo head -40 /usr/obj/usr/src/sys/GENERIC/Makefile
KERN_IDENT=GENERIC
MACHINE=amd64
MACHINE_ARCH=amd64
WITH_CTF=1
DEBUG=-g
S=/usr/src/sys
# Makefile.amd64 -- with config changes.
# Copyright 1990 W. Jolitz
#  from: @(#)Makefile.i386 7.1 5/10/91
#  from FreeBSD: src/sys/conf/Makefile.i386,v 1.255 2002/02/20 23:35:49
# $FreeBSD: releng/10.1/sys/conf/Makefile.amd64 254967 2013-08-27 18:35:04Z rdivacky $
#
# Makefile for FreeBSD
#
# This makefile is constructed from a machine description:
#  config machineid
# Most changes should be made in the machine description
#  /sys/amd64/conf/``machineid''
# after which you should do
#  config machineid
# Generic makefile changes should be made in
#  /sys/conf/Makefile.amd64
# after which config should be rerun for all machines.
#

# Which version of config(8) is required.

STD8X16FONT?=  iso

.if !defined(S)
.if exists(./@/.)
S=  ./@
.else
S=  ../../..
.endif
.endif
.include "$S/conf/kern.pre.mk"

INCLUDES+= -I$S/contrib/libfdt
```


----------



## junovitch@ (Jan 26, 2015)

The RCS version string show say stable.

```
# $FreeBSD: releng/10.1/sys/conf/Makefile.amd64 254967 2013-08-27 18:35:04Z rdivacky $
```

I would remove the /usr/src directory and get a fresh checkout.  That way you are 100% you have 10-STABLE.  Also /usr/src/sys/conf/newvers.sh mentioned above is where the the information that gets baked into the `uname` output is found.  That would like like the lines mentioned in my post above.


----------



## z662 (Jan 26, 2015)

Oh ok.  I did not delete out /usr/src so that was probably the issue.  I will purge and try again.

Thanks


----------

