-
Notifications
You must be signed in to change notification settings - Fork 99
Building the Pyretic VM
Instructions for creating a Pyretic VM from the Mininet VM using VirualBox
-
Download the official Mininet VM (instructions tested using mininet-2.1.0p2-140718-ubuntu-14.04-server amd64 and i386 images)
-
Follow instructions at http://mininet.org/vm-setup-notes/ through "Log in into VM"
-
Install Python dependencies
$ sudo apt-get install python-dev python-pip python-netaddr screen hping3 ml-lpt graphviz ruby1.9.1-dev libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev python-all python-all-dev python-all-dbg $ sudo pip install networkx bitarray netaddr ipaddr pytest ipdb sphinx pyparsing==1.5.7 yappi $ sudo gem install jekyll
-
Patch asynchat Python dependency (addresses some, but not all, of the bugs in this library)
$ wget https://raw.github.com/frenetic-lang/pyretic/master/pyretic/backend/patch/asynchat.py $ sudo mv asynchat.py /usr/lib/python2.7/ $ sudo chown root:root /usr/lib/python2.7/asynchat.py
-
Install git subtree
$ git clone https://github.com/git/git.git $ pushd git/contrib/subtree/ $ make $ mv git-subtree.sh git-subtree $ sudo install -m 755 git-subtree /usr/lib/git-core $ popd $ rm -rf git
-
Clone the pyretic repository to your home directory
$ cd ~ $ git clone http://github.com/frenetic-lang/pyretic.git
-
Setup your environment variables EITHER by adding the following lines to end of .profile:
export PATH=$PATH:$HOME/pyretic:$HOME/pox export PYTHONPATH=$HOME/pyretic:$HOME/mininet:$HOME/pox
OR by replacing your .profile
$ rm .profile
$ wget http://frenetic-lang.org/pyretic/useful/.profile
$ chmod g-w .profile
-
add my helpful .screenrc
$ wget http://frenetic-lang.org/pyretic/useful/.screenrc
-
Prepare VM for export
$ sudo cat /dev/zero > zero.fill; sudo sync; sleep 1; sudo sync; sudo rm -f zero.fill; sudo shutdown -h now
NOTE: The above command will be interrupted when disk is full, the following output will be displayed: cat: write error: No space left on the device.
-
Export as an ovf
-
Import OVF
-
Boot
-
Append
# The host-only network interface auto eth1 iface eth1 inet dhcp
to /etc/network/interfaces
In some instances, VirtualBox might not name the interfaces starting from eth0, eth1, ... (instead, it appends a higher number after eth
for the first interface). You can check this through ifconfig -a
, and add the corresponding interface entry above.
-
Reboot
$ sudo reboot
-
Continue with http://mininet.org/vm-setup-notes/ "SSH into VM"