# ONOS VM Build Script

### Setup
First, install the build.py dependencies:

$ ~/mininet/util/vm/build.py --depend

Also, if you will be running this script in a VM, make sure that it supports nested virtualization (for KVM).
In VMWare Fusion, this can be enabled in: Settings > Processors & Memory > Advanced Options > Enable hypervisor application in this virtual machine

### Building a base image (Mininet VM)
The first step is to build a base image. We will use a Mininet VM as a base image because it already has Mininet and a bunch of oother dependencies installed. We can do this using the following command:

$ ~/mininet/util/vm/build.py raring64server

Note: This will download the ISO, install Ubuntu, and install Mininet; it may take about 15 minutes on a Macbook Pro.

The image will be placed in a timestamped folder in the current directory. (e.g. mn-raring64server-140606-19-21-35)

### Building the ONOS VM
The ONOS VM is built from an existing VM image (probably the base image that we just created).
From the ONOS-VM directory:

$ ./onos-build-vm.py -i mn-raring64server-*/mininet-vm-x86_64.vmdk -o onos-vm-v1
Note: You should replace the image file with the correct directory.

This script will boot the image and run the installONOS function (which just downloads a script and runs it).

This will create onos-vm-v1.ovf and onos-vm-v1.vmdk

To change what is installed on the VM, you should edit vm-setup.sh
