Packer definitions for VirtualBox virtual machines based on Ubuntu 14.04 LTS server used for xpcc and EUROBOT development.
The xpcc-vm.box
is a headless VM, which provides all required tools for the development of our xpcc microcontroller framework.
We provide you with a packaged version of this box:
$ vagrant init http://box.xpcc.io/xpcc-vm.box
$ vagrant up
The eurobot-vm.box
incorporates all software in xpcc-vm.box
, but has the Xubuntu Desktop with Java, the Eclipse IDE and EAGLE and is used to develop our software and pcbs for the EUROBOT competition.
(We have to use the Xfce desktop, since Unity is too slow in a VM for practical use.)
A few final manual configuration steps for eurobot-vm.box
can be omitted:
- We ship this VM with all our internal software repositories already on disk (done by script/repositories.sh). You need to declare the username, password and url of our git server to do this step, otherwise it is ignored.
- We import eclipse preferences and project sets manually and then repackage the VM.
- We add a license to EAGLE.
You need Packer, VirtualBox and Vagrant installed on your system.
If you are running OS X, you can install Packer using Homebrew and Vagrant and VirtualBox using Homebrew Cask:
brew tap homebrew/binary
brew install packer
brew install caskroom/cask/brew-cask
brew install vagrant virtualbox
To build the xpcc-vm.box
:
cd rca-vm/
packer build xpcc-vm.json
To build the eurobot-vm.box
:
cd rca-vm/
packer build eurobot-vm.json
You can import the boxes into VirtualBox manually, however, using Vagrant as a management tool is strongly recommended!
After building, import the boxes into Vagrant:
cd rca-vm/
vagrant box add xpcc box/xpcc-vm.box
vagrant box add eurobot box/eurobot-vm.box
Then you can start the xpcc-vm from any suitable location:
mkdir xpcc-vm
cd xpcc-vm
vagrant init xpcc
vagrant up
vagrant ssh
To use the eurobot-vm, do the same in a different location:
mkdir eurobot-vm
cd eurobot-vm
vagrant init eurobot
vagrant up
# no need for `vagrant ssh`, the GUI will pop up.
Consult the documentation on Vagrant's CLI for proficient use of the tool.