Installing Ns2.34 with Mannasim in Linux Mint 14

Post Version: 1.1

Version of GCC I use: 4.7.2

This is the version of GCC that comes default with Linux Mint 14.

gcc_VersionIf you wish to install ns2.34 without Mannasim skip steps 4 and 9.

1. Download ns-allinone-2.34 from this site:
http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.34/ns-allinone-2.34.tar.gz/download
2. Extract the downloaded file into your home folder(say, /home/micman)

Throughout this post, I shall be mentioning my home folder /home/micman. When you follow these procedures, replace my username micman with your username.
3. Place the file ns2.34-mannasim-gcc4.3.patch into the following folder:

 /home/micman/ns-allinone-2.34 

4. In Terminal, type the following commands:

cd /home/micman/ns-allinone-2.34
path -p1 < ns2.34-mannasim-gcc4.3.patch

5. If the patch gets applied without any error, proceed to next step open the following file

 /home/micman/ns-allinone-2.34/otcl-1.13/configure 

Replace the following lines:

Linux*)
SHLIB_CFLAGS="-fpic"
SHLIB_LD="ld -shared"
SHLIB_SUFFIX=".so"
DL_LIBS="-ldl"
SHLD_FLAGS=""

with the following:

Linux*)
SHLIB_CFLAGS="-fpic"
SHLIB_LD="gcc -shared"
SHLIB_SUFFIX=".so"
DL_LIBS="-ldl"
SHLD_FLAGS=""

6. Next, open the following file:

/home/micman/ns-allinone-2.34/ns-2.34/tools/ranvar.cc

In line 219, make the following changes:
Find this line:

return GammaRandomVariable::GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);

and replace it with:

 return GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);

7. Next, open the following file:

/home/micman/ns-allinone-2.34/ns-2.34/mac/mac-802_11Ext.h

In line 65, make the following changes:

Include this header file

#include "cstddef" 

8. Open the following file:

 /home/micman/ns-allinone-2.34/ns-2.34/mobile/nakagami.cc

Find the following code:

if (int_m == m) {
resultPower = ErlangRandomVariable::ErlangRandomVariable(Pr/m, int_m).value();
} else {
resultPower = GammaRandomVariable::GammaRandomVariable(m, Pr/m).value();
}
return resultPower;
}

Replace it with the code below:

if (int_m == m) {
resultPower = ErlangRandomVariable(Pr/m, int_m).value();
} else {
resultPower = GammaRandomVariable(m, Pr/m).value();
}
return resultPower;
}
}

9. In the following file, some code needs to be commented:

/home/micman/ns-allinone-2.34/ns-2.34/mannasim/onDemandData.cc


Comment the following lines:

OnDemandData :: OnDemandData()
{
/// REAL request type is default.
OnDemandData::OnDemandData(REAL);
}

10. Finally, in the following file:

/home/micman/ns-allinone-2.34/ns-2.34/linkstate/ls.h

Make the following changes:
In line 137, change the following line

void eraseAll() { erase(baseMap::begin(), baseMap::end()); }

into

void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }

11. When all the above steps have been completed successfully, run the following commands in Terminal before we begin installing ns2:

sudo apt-get install build-essential autoconf automake libxmu-dev

Once the above updates are successful, we shall proceed with installing ns2.

12. Navigate into the ns-allinone-2.34 folder:

cd /home/micman/ns-allinone-2.34

13. Just run the following command:

./install

14. Meanwhile, while the installation is happening, create the following file in /home/micman, if it doesn’t exist(else use the existing file):

.bashrc

15. Copy the following contents into .bashrc file created now:

# LD_LIBRARY_PATH
OTCL_LIB=/home/micman/ns-allinone-2.34/otcl-1.13
NS2_LIB=/home/micman/ns-allinone-2.34/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB

# TCL_LIBRARY
TCL_LIB=/home/micman/ns-allinone-2.34/tcl8.4.18/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB

# PATH
XGRAPH=/home/micman/ns-allinone-2.34/bin:/home/micman/ns-allinone-2.34/tcl8.4.18/unix:/home/micman/ns-allinone-2.34/tk8.4.18/unix
NS=/home/micman/ns-allinone-2.34/ns-2.34/
NAM=/home/micman/ns-allinone-2.34/nam-1.14/
PATH=$PATH:$XGRAPH:$NS:$NAM

Here, micman is my username, replace it with your system username.

16. Meanwhile, in the Terminal, if the installation completes without any error, then close the terminal, and reopen it and type the following command:

ns
if % sign appears then the installation has been successful.

Additional Links:

Download Linux Mint: http://www.linuxmint.com/download.php

Download mannasim patch for ns2.34: https://www.box.com/shared/th6qi9b5v0

Download PowerIso: http://www.poweriso.com/download.htm

This article is sponsored by: http://hikmainfotech.com

hikma

Was this post helpful? Then thank me by clicking <this link>