To install natively from source, first you need to get the source code:
git clone https://github.com/mininet/mininet
Note that the above git command will check out the latest and greatest Mininet (which we recommend!) If you want to run the last tagged/released version of Mininet - or any other version - you may check that version out explicitly:
cd mininet
git tag # list available versions
git checkout -b mininet-2.3.0 2.3.0 # or whatever version you wish to install
cd ..
Once you have the source tree, the command to install Mininet is:
mininet/util/install.sh [options]
Typical install.sh options include:
-a: install everything that is included in the Mininet VM, including dependencies like Open vSwitch as well the additions like the OpenFlow wireshark dissector and POX. By default these tools will be built in directories created in your home directory. -nfv: install Mininet, the OpenFlow reference switch, and Open vSwitch -s mydir: use this option before other options to place source/build trees in a specified directory rather than in your home directory. So, you will probably wish to use one (and only one) of the following commands:
To install everything (using your home directory): install.sh -a To install everything (using another directory for build): install.sh -s mydir -a To install Mininet + user switch + OvS (using your home dir): install.sh -nfv To install Mininet + user switch + OvS (using another dir:) install.sh -s mydir -nfv You can find out about other useful options (e.g. installing the OpenFlow wireshark dissector, if it’s not already included in your version of wireshark) using
install.sh -h
After the installation has completed, test the basic Mininet functionality:
sudo mn --switch ovsbr --test pingall
# apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys 379CE192D401AB61
# echo 'deb http://dl.bintray.com/cpaasch/deb jessie main' >> /etc/apt/sources.list
# apt-get update
# apt-get install linux-mptcp # select "install package mantainer" if asked
# nano /etc/default/grub
And edit following lines:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_DISABLE_SUBMENU=y
# nano /etc/default/grub.d/50-cloudimg-settings.cfg
And comment following line, if present
#GRUB_DEFAULT=0
# export GRUB_CONFIG=`find /boot -name "grub.cfg"`
# update-grub
# grep 'menuentry ' $GRUB_CONFIG | cut -f 2 -d "'" | nl -v 0
Choose the MPTCP kernel from the list and set it as kernel for next boot only
# grub-reboot 'Ubuntu, with Linux 4.9.60.mptcp'
# reboot
So, if something went wrong, you can reboot again from control panel, and the default kernel will be used
Check if you the running kernel is MPTCP
# uname -ir
Set the MPTCP kernel as default
# grub-set-default 'Ubuntu, with Linux 4.9.60.mptcp'
# reboot