blob: 60767a99995d1a73127847f8c8644c1b5ba8a6de [file] [log] [blame]
Brian O'Connor5abe3db2014-08-05 02:08:34 -07001#!/bin/bash
Brian O'Connor37f0cc72014-06-06 20:03:05 -07002# vm-setup.sh
3#
4# This script installs ONOS dependencies and installs a desktop environment on a Miniet VM.
5
6ONOS_USER=mininet
7ONOS_USER_HOME=/home/${ONOS_USER}
8
Brian O'Connor37f0cc72014-06-06 20:03:05 -07009sudo apt-get update
10
Brian O'Connor3ca84022014-08-11 19:46:54 -070011# -------------- Bufferbloat Install ----------
Brian O'Connor10d941e2014-06-12 19:55:09 -070012
Brian O'Connor3ca84022014-08-11 19:46:54 -070013cd ~
14git clone https://bitbucket.org/huangty/cs144_bufferbloat.git
15sudo apt-get -y install screen
16sudo apt-get -y install python-matplotlib
Brian O'Connor10d941e2014-06-12 19:55:09 -070017
Brian O'Connor3ca84022014-08-11 19:46:54 -070018# -------------- BGP-attack Install -----------
Brian O'Connor10d941e2014-06-12 19:55:09 -070019
Brian O'Connor3ca84022014-08-11 19:46:54 -070020git clone https://bitbucket.org/jvimal/bgp.git
21cd bgp
22./install.sh
23cd ~
24
25# ------------- DHCP demo Install ------------
26
27git clone https://bitbucket.org/lantz/cs144-dhcp.git
28cd cs144-dhcp
29# TODO fix this
30#sudo ./dhcp.py --check-required
31cd ~
Brian O'Connor37f0cc72014-06-06 20:03:05 -070032
Brian O'Connor24512552014-08-11 23:22:14 -070033# -------------- Offline content -------------
34sudo apt-get install -y python-pip
35sudo pip install grip
36
37git clone https://github.com/mininet/mininet.wiki.git
38cd mininet.wiki
39grip --gfm --export Bufferbloat.md
40grip --gfm --export Dhcp-masquerade-attack.md
41
Brian O'Connor37f0cc72014-06-06 20:03:05 -070042# -------------- Setup Desktop ----------------
43sudo apt-get install -y xorg lxde
44
45#TODO: add backgrounds folder
46#TODO: change background
47# Remove wallpaper, change background color, and disable screensaver
48sudo sed -i 's/wallpaper_mode=1/wallpaper_mode=0/g' /usr/share/lxde/pcmanfm/LXDE.conf
49sudo sed -i 's/desktop_bg=#000000/desktop_bg=#104187/g' /usr/share/lxde/pcmanfm/LXDE.conf
50sudo sed -i '/screensaver/d' /etc/xdg/lxsession/LXDE/autostart
51
52DESKTOP=${ONOS_USER_HOME}/Desktop
53
54mkdir -p ${DESKTOP}
55
Brian O'Connor3ca84022014-08-11 19:46:54 -070056#cat > ${DESKTOP}/Eclipse << EOF
57#[Desktop Entry]
58#Encoding=UTF-8
59#Type=Application
60#Name=Eclipse
61#Name[en_US]=Eclipse
62#Icon=/opt/eclipse/icon.xpm
63#Exec=/usr/bin/eclipse
64#Comment[en_US]=
65#EOF
Brian O'Connor37f0cc72014-06-06 20:03:05 -070066
67cat > ${DESKTOP}/Terminal << EOF
68[Desktop Entry]
69Encoding=UTF-8
70Type=Application
71Name=Terminal
72Name[en_US]=Terminal
73Icon=konsole
74Exec=/usr/bin/x-terminal-emulator
75Comment[en_US]=
76EOF
77
Brian O'Connor24512552014-08-11 23:22:14 -070078cat > ${DESKTOP}/Bufferbloat << EOF
Brian O'Connor37f0cc72014-06-06 20:03:05 -070079[Desktop Entry]
80Encoding=UTF-8
81Type=Application
Brian O'Connor24512552014-08-11 23:22:14 -070082Name=Bufferbloat (Offline)
83Name[en_US]=Bufferbloat
Brian O'Connor37f0cc72014-06-06 20:03:05 -070084Icon=internet-web-browser
Brian O'Connor24512552014-08-11 23:22:14 -070085Exec=/usr/bin/chromium-browser file:///home/mininet/mininet.wiki/Bufferbloat.html
Brian O'Connor37f0cc72014-06-06 20:03:05 -070086Comment[en_US]=
87EOF
88
89cat > ${DESKTOP}/Wireshark << EOF
90[Desktop Entry]
91Encoding=UTF-8
92Type=Application
93Name=Wireshark
94Name[en_US]=Wireshark
95Icon=wireshark
96Exec=/usr/bin/wireshark
97Comment[en_US]=
98EOF
99
100# ------------- Install Other Tools -------------
101sudo apt-get install -y wireshark
102# Enable root-less wireshark and add mininet
103echo "Enabling wireshark group"
104echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
105sudo dpkg-reconfigure -f noninteractive wireshark-common
106sudo usermod -a -G wireshark mininet
107
Brian O'Connor40a238d2014-08-11 20:30:16 -0700108# ------------- Zero Unused Blocks -------------
109#TODO investigate zerofree
110echo "Zeroing unused blocks"
111dd if=/dev/zero of=tmp-zeros
112sync
113rm tmp-zeros