From 127eb435d88a7c3040f36b08085e67a0ad19a969 Mon Sep 17 00:00:00 2001 From: Jonathan Beri Date: Fri, 24 Mar 2017 23:05:57 -0700 Subject: [PATCH] Basic Vagrantfile for simulation (#1501) * Basic Vagrantfile for simulation --- .gitignore | 1 + etc/vagrant/Vagrantfile | 86 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 etc/vagrant/Vagrantfile diff --git a/.gitignore b/.gitignore index 6c2aa02e4..2209c0b63 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ .dirstamp .DS_Store .local-version +.vagrant aclocal.m4 autom4te.cache build diff --git a/etc/vagrant/Vagrantfile b/etc/vagrant/Vagrantfile new file mode 100644 index 000000000..5ad0433f1 --- /dev/null +++ b/etc/vagrant/Vagrantfile @@ -0,0 +1,86 @@ +# +# Copyright (c) 2016, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# cribbed from https://github.com/adafruit/esp8266-micropython-vagrant +Vagrant.configure("2") do |config| + config.vm.box = "ubuntu/trusty64" + + # Virtualbox VM configuration. + config.vm.provider "virtualbox" do |v| + # extra memory for compilation + v.memory = 2048 + end + + # downloads and configuration dependencies + config.vm.provision "shell", privileged: false, inline: <<-SHELL + echo "Installing dependencies..." + + # quiets some stdin errors + export DEBIAN_FRONTEND=noninteractive + + sudo apt-get install -y python-software-properties + sudo add-apt-repository -y ppa:terry.guo/gcc-arm-embedded + sudo apt-get update -qq + + # wpandtund runtime & build requirements + sudo apt-get install -y build-essential git make autoconf autoconf-archive \ + automake dbus libtool gcc g++ gperf flex bison texinfo \ + ncurses-dev libexpat-dev python sed python-pip gawk \ + libreadline6-dev libreadline6 libdbus-1-dev libboost-dev + sudo apt-get install -y --force-yes gcc-arm-none-eabi + + sudo pip install pexpect + + echo "Installing OpenThread & wpandtund..." + mkdir -p ~/src + + # install wpantund + cd ~/src + echo "installing wpantund" + git clone --recursive https://github.com/openthread/wpantund.git + cd wpantund + sudo git checkout full/master + ./configure --sysconfdir=/etc + make + sudo make install + # dbus sometimes is wonky; forcing restart + sudo service dbus restart + + # install OpenThread + cd ~/src + git clone --recursive https://github.com/openthread/openthread.git + cd openthread + ./bootstrap + + echo "OpenThread and wpantund setup complete! Examples can be found in ~/src/openthread/examples" + SHELL + +end