![]() |
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
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.
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 installStep 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 directoryit may be necesary to do this:
sudo apt-get install libxmu-devYou 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.
- Ns2 Wiki
- Marc Greis’ Tutorial
- NS Manual
- NS for Beginners (pdf)
- Common NS2 Installation Problems
- NS2 Wireless and Mobility Modules
- NS2 Mailing Lists
- NS2.33 Wireless MAC and PHY improvements
Previous: « Fair Scheduling & Load Balancing in WMN
103 Responses to Tutorial: Ns-2.33 (and nam) on Ubuntu 8.04 (Hardy Heron)
Leave a Reply
Leave a Reply
Recent Articles
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...
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...
November 4, 2011
Recently I have been playing around with the aircrack suite and in...
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...
Why Blanket Wireless Coverage in Waterloo Failed, and...
July 22, 2011
Today the KW Record ran an article entitled "Blanket Wi-Fi plans unplugged...
Windows 7 – SP1, Multiple OS – Grub
July 17, 2011
A while ago I bought a Toshiba netbook which of course came with Windows 7...








June 11, 2008

Categories:
Tags: 










Sitemap
Valid XHTML
Valid CSS
Login
now I downloaded tried to start a simple simulation example
ns ns-simple.tcl
given in that page but it gives me this message in my shell prompt.
>>> ns-simple.tcl does not exist, try again <<<<
Can somebody explain me what should i do?
my ns2.29 is somehow working now on Ubuntu. but there is still a problem, that is when i run .tcl files which does not include nam appearance are run without any error. but when i try to open files with nam, are produce the following error.
>>> root@ubuntu:/home/shahzad/Desktop/Store/NS2# ns ns-simple.tcl~ <<<
CBR packet size = 1000
CBR interval = 0.0080000000000000002
root@ubuntu:/home/shahzad/Desktop/Store/NS2# nam:
[code omitted because of length]
: no event type or button # or keysym
while executing
"bind Listbox {
%W yview scroll [expr {- (%D / 120) * 4}] units
}"
invoked from within
"if {[string equal [tk windowingsystem] "classic"]
|| [string equal [tk windowingsystem] "aqua"]} {
bind Listbox {
%W yview scroll [expr {..."
please tell me the solution as soon as possible in a very simple way.
When I run a file with the command : ./ns myfirst.tcl or ./ns convert.tcl. There is not anything happened. Can you explain it for me?
If you are using the ./ns … you need to be doing that in the ns folder as far as i know. If you have installed it properly using a ‘sudo make install’ then you should be able to leave out the ./ in front and it should work. If you haven’t done a ‘sudo make install’ then you will always need to make sure you are running from the same folder as the executable, or set up your paths so that the system knows where to look for ns
hi jason,it’s me again
i change my ns to lower version become ns2.29, i install it then i start again to add antnet module,i also edit my-endian.h but when i run ‘make’ again i got the same errors as when i run it in ns2.33.
This should work unless it involves constant data structures referencing symbols
from auto-imported DLLs.Info: resolving __timezone by linking to __imp___timezo
ne (auto-import)
for i in indep-utils/cmu-scen-gen/setdest indep-utils/webtrace-conv/dec indep-ut
ils/webtrace-conv/epa indep-utils/webtrace-conv/nlanr indep-utils/webtrace-conv/
ucb; do ( cd $i; make all; ) done
make[1]: Entering directory `/usr/local/ns-allinone-2.29.2/ns-allinone-2.29/ns-2
.29/indep-utils/cmu-scen-gen/setdest’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/usr/local/ns-allinone-2.29.2/ns-allinone-2.29/ns-2.
29/indep-utils/cmu-scen-gen/setdest’
make[1]: Entering directory `/usr/local/ns-allinone-2.29.2/ns-allinone-2.29/ns-2
.29/indep-utils/webtrace-conv/dec’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/usr/local/ns-allinone-2.29.2/ns-allinone-2.29/ns-2.
29/indep-utils/webtrace-conv/dec’
make[1]: Entering directory `/usr/local/ns-allinone-2.29.2/ns-allinone-2.29/ns-2
.29/indep-utils/webtrace-conv/epa’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/usr/local/ns-allinone-2.29.2/ns-allinone-2.29/ns-2.
29/indep-utils/webtrace-conv/epa’
make[1]: Entering directory `/usr/local/ns-allinone-2.29.2/ns-allinone-2.29/ns-2
.29/indep-utils/webtrace-conv/nlanr’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/usr/local/ns-allinone-2.29.2/ns-allinone-2.29/ns-2.
29/indep-utils/webtrace-conv/nlanr’
make[1]: Entering directory `/usr/local/ns-allinone-2.29.2/ns-allinone-2.29/ns-2
.29/indep-utils/webtrace-conv/ucb’
make[1]: Nothing to be done for `all’.
make[1]: Leaving directory `/usr/local/ns-allinone-2.29.2/ns-allinone-2.29/ns-2.
29/indep-utils/webtrace-conv/ucb’
i confused why i always got the same errors??is the problem in the installation of ns2 (maybe i wrong in installation) or maybe because i use ns2 in xp using cygwin (could it be not support???). i have no idea why it happen because i can run tcl script from marc greis but fail when i run antnet by lavina jain.help me to solve it please.
thx
Not sure what the problem is exactly. I have never tried ns2 with cygwin yet myself. Again it is some type of problem with make. Look into googling cygwin and the ns2 versions you are using, perhaps there is some sort of known issue with cygwin which causes this error. If you are able to run the tcl from marc then maybe it ended up installing properly despite the errors you got. Perhaps the problem is with the antnet script you are trying to run, maybe try consulting the people who made that script because maybe they have encountered this problem as well.
Hello Jason.
I am a new user in NS2 environment. So, my question seems funny to others as its a very basic question!
I installed ns2 version 2.33 in RedHat enterprise Linux 5. Installation is done without any error and I also did validate.
Now I want to run a basic simulation program to understand how things work here. Plz advise me how to run a simulation in ns 2.33. After I understood the process, I have to check the AODV protocol simulation.
Many thanks in advance.
Regards.
hello,i m new to ns2..my project requires me to set up a real scenario mobile ipv4 and mobile ipv6 networks in ns2 .i already have ns2.33 and cygwin 1.5.25-15 software ready to install it on my pc.does this version of ns2 and cygwin require a patch to support mobile ipv4 and mobile ipv6?
regards
Hi Jason…
I’m having problems with my nam. Each time I try to run the simple.tcl file using the command ‘ns simple.tcl’ it compiles but I cant view the nam animator. I always get the error below. Please help…
[afo@localhost ex]$ ns simple.tcl
210
0.0037499999999999999
running nam…
[afo@localhost ex]$ nam:
[code omitted because of length]
: no event type or button # or keysym
while executing
"bind Listbox {
%W yview scroll [expr {- (%D / 120) * 4}] units
}"
invoked from within
"if {[string equal [tk windowingsystem] "classic"]
|| [string equal [tk windowingsystem] "aqua"]} {
bind Listbox {
%W yview scroll [expr {..."
I will appreciate any help asap!!
Hi gesit adnd
I am doing my thesis workon scheduling algorithms in ns-2.33.
I get difficulty how and where am i supposed to change or work in ns.
my scheduling algorithms are used for giving different priority or accessing the channels in cellular networks to users. pls help me it is so urgent how could i proceed?
Thanks in Advance
Hi Dear
On step 7 when i type make it gives following error
make: *** [ns] Error 1
what should i do now
Your prompt response would be appreciated.
thanx in advance
usman
this is a complete error
ns: hidden symbol `__stack_chk_fail_local’ in /usr/lib/libc_nonshared.a(stack_chk_fail_local.oS) is referenced by DSO
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make: *** [ns] Error 1