Update Manager - Ubuntu Hardy Heron

Tutorial: Ns-2.33 (and nam) on Ubuntu 8.04 (Hardy Heron)

 

Since I have been working with ns2 for the last few months in preparation for my thesis I have decided to write a guide on how to install the most recent version of ns2 on the most recent version of ubuntu (at the time of this writing, Monday June 9th, 2008).

I have found many people already who have had difficulty setting it up so maybe this will be of some help to someone. For this tutorial I am assuming you have installed the most recent version of Ubuntu (8.04). (At the time of writing)

Step 1: Update Ubuntu

Since it has already been a month or so since Hardy Heron has been released its probably best, if you haven’t already done so to update Ubuntu. The easiest way I’ve found is to go to System>>Administration>>Update Manager. Alternatively, you can enter this into the terminal:

sudo apt-get update
sudo apt-get upgrade
Update Manager - Ubuntu Hardy Heron

Step 2: Download all of the required pieces to make ns2 work

Here is a list of archives required for ns2 to work properly (you can download them by clicking the links or just enter all of the commands in the code sections below for automatic download and untar). I saved each archive to the desktop so I could find each one easily but you could use anywhere you like.

  1. tcl 8.4.14
  2. tk 8.4.14
  3. otcl 1.13
  4. tclcl 1.19
  5. ns 2.33
  6. nam 1.13

Step 2.5: Install Ubuntu Packages

Before installing everything else, I have found that it is helpful to get a few packages from the ubuntu repositories or else it wont build correctly. Grab a cup of coffee it might take a while since kdebase-dev is somewhat large. I’m sure there is a way to do this with fewer packages however I know this works. If anyone figures out exactly which packages are required let me know so I can update this.

sudo apt-get install libx11-dev kdebase-dev

Step 3: Install tcl

wget http://www.jasonernst.com/wp-content/uploads/2008/06/tcl8.4.19-src.tar.gz
tar xvf tcl8.4.19-src.tar.gz
cd tcl8.4.19/unix
./configure
make
sudo make install

Step 4: Install tk

cd ..
cd ..
wget http://www.jasonernst.com/wp-content/uploads/2008/06/tk8.4.19-src.tar.gz
tar xvf tk8.4.19-src.tar.gz
cd tk8.4.19/unix
./configure
make
sudo make install

Step 5: Install oTcl

Important Note: The ‘./configure –with-tcl=’ portion of the following two code fragments should point to the source files for tcl. If you have been following the guide by copying and pasting the previous commands what we have here will work just fine. Otherwise you will need to change this to point to the correct location of your tcl source files.

cd ..
cd ..
wget http://www.jasonernst.com/wp-content/uploads/2008/06/otcl-src-1.13.tar.gz
tar xvf otcl-src-1.13.tar.gz
cd otcl-1.13
./configure --with-tcl=../tcl*/
make
sudo make install

Step 6: Install tclcl

cd ..
wget http://www.jasonernst.com/wp-content/uploads/2008/06/tclcl-src-1.19.tar.gz
tar xvf tclcl-src-1.19.tar.gz
cd tclcl-1.19
./configure --with-tcl=../tcl*/
make
sudo make install

Step 7: Install ns2

cd ..
wget http://www.jasonernst.com/wp-content/uploads/2008/06/ns-2.33.tar.gz
tar xvf ns-2.33.tar.gz
cd ns-2.33
./configure
make
sudo make install

You will likely get alot of warnings for deprecated conversions. Just ignore these or if you really are concerned about them visit the nsnam troubleshooting page. If you want to make sure your version of ns-2 is working correctly after the install you can run the validation test from within the ns2 source directory. You can do this by entering:

./validate

You should see that the test output agrees with the reference output. Congratulations you have a working version of ns-2 installed.

Step 8: (optional) Install nam

cd ..
wget http://www.jasonernst.com/wp-content/uploads/2008/06/nam-src-1.13.tar.gz
tar xvf nam-src-1.13.tar.gz
cd nam-1.13
./configure
make
sudo make install

Note: if you get this error:

error: X11/Xmu/WinUtil.h: No such file or directory

it may be necesary to do this:

sudo apt-get install libxmu-dev

You are now ready to start working with ns2 and nam. If you are like me and working on a new protocol or something you will want to start modifying the ns-2 source code and recompile again so you might want to keep that folder handy. The rest of the source can be safely removed as far as i know. Keep in mind after you have modified the source you will want to do another make install so that when you type ns in your terminal the version you just compiled is used.

Getting Started with NS2

These are some quick tips to get you started using ns2 if you are a beginner.

All example files are located in ns/tcl/ex. You can run these scenarios on ns2 using ns filename.tcl The best way to start is probably changing things in these files until you understand what is happening more thoroughly.

The output will usually be a trace file with a similar name: ex) filename.tr. Trace files can usually be viewed with a text-editor program. There are also tools to analyze the trace files and pull stats from them. These may require some tweaking however depending on the format of the trace file. Additionally, a nam output file for visualization may be generated as well. This will usually be named filename.nam. To view the visualization use: nam filename.nam

Useful Links

I thought it might be useful to add a section on useful links here since this article has become quite popular. If you would like to suggest a link feel free to contact me.

 

103 Responses to Tutorial: Ns-2.33 (and nam) on Ubuntu 8.04 (Hardy Heron)

 
  1. gh says:

    Hi
    Thank you for this guide . It helped me so much.
    I followed all the steps mentioned below but when I tried to test an example using ns I wrote: cd ~/ns/ns-2.33/tcl/ex
    ns simple.tcl
    I have this error:simple.tcl does not exist, try again.
    But thisfile exists really in this path.
    I don’t know how to solve this problem and use ns normally.
    please help me.
    Thank you for your help.

  2. gh says:

    Hi
    sorry but I forget to inform you that I’m using ns2.33 under Ubuntu Hardy Heron and I m using tcl/tk 8.4.16; oTCL 1.13; and nam 1.13.
    Thanks

  3. Jason Ernst says:

    @ asmat: Ensure you have done the ‘./configure’ and ‘make’ finished properly from the guide above. If they did finish without errors, then make sure you have done the ‘make install’ step. This step is what places the executables where your system can find them. Another option would be to find the location of the ‘nam’ executable yourself and add it to the global environment variables. To find the executable you could do something like this:

    
    find / -name nam
    

    Then to add the environment variable:
    
    LD_LIBRARY_PATH=/path-to-nam
    export LD_LIBRARY_PATH
    

    If this works, then you can put the LD_LIBRARY stuff into your .bashrc, .bash_profile or /etc/profile depending on how your system is configured. (see this page: http://www.linuxforums.org/forum/redhat-fedora-linux-help/40271-environment-variables-manuals.html)

  4. Jason Ernst says:

    @gh: I have tried to reproduce similar errors to what you are getting: If I specify a file that I know does not exist: ns simple1.tcl
    couldn't read file "simple1.tcl": no such file or directory.
    If I misspell ns when I try to run it: ns2 simple.tcl
    -bash: ns2: command not found
    So since neither of the errors are exactly what you are seeing, its hard to say what is going on, on your system. You could try doing this:

    
    cd ~/ns/ns-2.33
    touch test.tcl
    ./ns test.tcl
    

    If you don’t get any errors then it may be that somehow your ns2 did not do the ‘make install’ step properly and it cannot find ns2 when you are not in the same directory as the executable. As a workaround until you get this fixed, you could just try running all of your tcl scripts from within the same directory as the executable if that happens to work for you.

  5. gh says:

    Hi

    Do you know please where can I find an NS2.33 sample with a power measurement . It is a very important factor and I want to measure it.
    Thank you for your help.

  6. Jason Ernst says:

    @gh: I don’t know any off hand, but a good place to start would be looking through papers on power control or cross-layered design. Then you could try visiting the authors websites or contacting them directly since they likely have done simulation work in this area. It is an area I am also beginning to explore myself so I may end up posting something on it here in the future.

  7. nadine says:

    Hi Jason
    Thank you very much for this blog.
    I wanted to ask you if you have an idea about NS2 trace file (.tr).
    and how to interpret them.I’ve found that I can do this by using awk or xgraph but I didn’t understand how exactly.
    So if you know how, help me please.
    Tanks a lot for your help

  8. Jason Ernst says:

    Hey Nadine,
    For traces files in ns2, they seem to be very dependent on the changes made to the code. For example if you are using any patches the trace format can be very different from the standard ns2 traces. If you have an unmodified ns2 however, it may be easier. This link: http://nsnam.isi.edu/nsnam/index.php/NS-2_Trace_Formats explains how to make some sense of the trace files, and generally most of them follow this pattern, or something similar. There are also several tools out specifically for analysis of trace files ex: http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/4339287/4339288/04339302.pdf?temp=x . You could try contacting the authors or some of them since they will likely be the experts on this subject.

  9. naourez says:

    Hi, thanks for the clear description of howto install ns2.33 on ubuntu 8.04.
    I am using gcc4.3.2 and i am having the same problem as in “ns-2.30/ns-2.31 do not build with gcc/g++ 4.1 ” however even after modifying the file configure.in i am still having the same problem. I couldn’t find gcc 4.0 to install.
    any ideas how to do?

  10. Jason Ernst says:

    Hi naourez,
    If you are using Ubuntu, this guide may be helpful in installing an alternate version of gcc: http://ubuntuforums.org/showthread.php?t=441889 . Other than that, my only suggestion would be to try search through the ns2 mailing list archives since I’m sure many people have had similar problems. If you are still stuck you could always try posting the list yourself.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Recent Articles

Creating a Bluetooth Access point (NAP) in Ubuntu 11.10

Creating a Bluetooth Access point (NAP) in Ubuntu 11.10

November 29, 2011

A Bluetooth NAP is similar to a Wi-Fi access point. In this case, we will...

Screenshot at 2011-11-29 08:54:32

Burg / Grub 2 Icons for Meego

November 29, 2011

Only recently I noticed that Moblin (which I sometimes use) has changed...

Aircrack suite + Ubuntu 11.10 problems with monitor mode channel

Aircrack suite + Ubuntu 11.10 problems with monitor mode...

November 4, 2011

Recently I have been playing around with the aircrack suite and in...

 
Upcoming PhD QE Progress

Upcoming PhD QE Progress

July 27, 2011

So I've been doing my PhD for over two years now, and I haven't posted a...

waterloo

Why Blanket Wireless Coverage in Waterloo Failed, and...

July 22, 2011

Today the KW Record ran an article entitled "Blanket Wi-Fi plans unplugged...

sp1

Windows 7 – SP1, Multiple OS – Grub

July 17, 2011

A while ago I bought a Toshiba netbook which of course came with Windows 7...